ziko 0.0.17 → 0.0.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (267) hide show
  1. package/README.md +91 -200
  2. package/package.json +17 -46
  3. package/src/__helpers__/index.js +61 -61
  4. package/src/app/json-style-sheet.js +64 -64
  5. package/src/app/spa-file-based-routing.js +0 -1
  6. package/src/app/ziko-app.js +38 -38
  7. package/src/data/api/fetchdom.js +13 -13
  8. package/src/data/api/index.js +3 -3
  9. package/src/data/api/preload.js +10 -10
  10. package/src/data/converter/adoc.js +130 -130
  11. package/src/data/converter/array.js +42 -42
  12. package/src/data/converter/canvas.js +24 -24
  13. package/src/data/converter/css.js +36 -36
  14. package/src/data/converter/csv.js +32 -32
  15. package/src/data/converter/idea.txt +9 -9
  16. package/src/data/converter/index.js +36 -36
  17. package/src/data/converter/json.js +80 -80
  18. package/src/data/converter/markdown.js +95 -95
  19. package/src/data/converter/object.js +69 -69
  20. package/src/data/converter/svg.js +10 -10
  21. package/src/data/datatypes/color.js +11 -0
  22. package/src/data/index.js +16 -16
  23. package/src/data/parser/xml.js +46 -46
  24. package/src/data/string/patterns.js +11 -11
  25. package/src/data/string/string.js +169 -169
  26. package/src/global/{themes → _themes}/dark.js +884 -884
  27. package/src/global/{themes → _themes}/index.js +10 -10
  28. package/src/global/{themes → _themes}/light.js +254 -254
  29. package/src/global/app/index.js +45 -45
  30. package/src/global/component/index.js +38 -38
  31. package/src/global/globals/index.js +20 -20
  32. package/src/global/index.js +3 -11
  33. package/src/global/params/index.js +39 -39
  34. package/src/global/router/index.js +66 -66
  35. package/src/global/seo/index.js +42 -42
  36. package/src/graphics/canvas/canvas.js +176 -189
  37. package/src/graphics/canvas/elements/Basic/arc.js +42 -42
  38. package/src/graphics/canvas/elements/Basic/line.js +25 -25
  39. package/src/graphics/canvas/elements/Basic/points.js +47 -47
  40. package/src/graphics/canvas/elements/Basic/polygon.js +6 -6
  41. package/src/graphics/canvas/elements/Basic/rect.js +45 -45
  42. package/src/graphics/canvas/elements/Chart/scatter.js +2 -2
  43. package/src/graphics/canvas/elements/Element.js +114 -114
  44. package/src/graphics/canvas/elements/index.js +13 -13
  45. package/src/graphics/canvas/index.js +2 -15
  46. package/src/graphics/canvas/utils/color.js +7 -7
  47. package/src/graphics/canvas/utils/floodFill.js +57 -57
  48. package/src/graphics/index.js +10 -69
  49. package/src/graphics/svg/Elements/Basic/circle.js +29 -26
  50. package/src/graphics/svg/Elements/Basic/ellipse.js +24 -21
  51. package/src/graphics/svg/Elements/Basic/{foreignObject.js → foreign-object.js} +36 -33
  52. package/src/graphics/svg/Elements/Basic/groupe.js +32 -29
  53. package/src/graphics/svg/Elements/Basic/image.js +36 -33
  54. package/src/graphics/svg/Elements/Basic/index.js +11 -0
  55. package/src/graphics/svg/Elements/Basic/line.js +32 -29
  56. package/src/graphics/svg/Elements/Basic/link.js +33 -30
  57. package/src/graphics/svg/Elements/Basic/path.js +62 -59
  58. package/src/graphics/svg/Elements/Basic/polygon.js +31 -31
  59. package/src/graphics/svg/Elements/Basic/polyline.js +7 -4
  60. package/src/graphics/svg/Elements/Basic/rect.js +46 -43
  61. package/src/graphics/svg/Elements/Basic/text.js +29 -26
  62. package/src/graphics/svg/Elements/Derived/grid.js +8 -8
  63. package/src/graphics/svg/Elements/Derived/index.js +1 -0
  64. package/src/graphics/svg/Elements/index.js +2 -14
  65. package/src/graphics/svg/Elements/{ZikoSvgElement.js → ziko-svg-element.js} +48 -46
  66. package/src/graphics/svg/index.js +2 -2
  67. package/src/graphics/svg/svg.js +68 -114
  68. package/src/index.js +85 -84
  69. package/src/math/calculus/index.js +2 -2
  70. package/src/math/calculus/special-functions/bessel.js +30 -30
  71. package/src/math/calculus/special-functions/beta.js +37 -37
  72. package/src/math/calculus/special-functions/gamma.js +29 -29
  73. package/src/math/calculus/special-functions/index.js +4 -4
  74. package/src/math/complex/index.js +202 -202
  75. package/src/math/const.js +2 -2
  76. package/src/math/discret/Combinaison/index.js +33 -33
  77. package/src/math/discret/Conversion/index.js +85 -85
  78. package/src/math/discret/Logic/index.js +45 -45
  79. package/src/math/discret/Permutation/index.js +30 -30
  80. package/src/math/discret/Set/index.js +1 -1
  81. package/src/math/discret/Set/power-set.js +14 -14
  82. package/src/math/discret/Set/sub-set.js +10 -10
  83. package/src/math/discret/index.js +11 -11
  84. package/src/math/functions/index.js +161 -161
  85. package/src/math/index.js +32 -32
  86. package/src/math/matrix/Decomposition.js +90 -90
  87. package/src/math/matrix/LinearSystem.js +9 -9
  88. package/src/math/matrix/Matrix.js +716 -716
  89. package/src/math/matrix/index.js +2 -2
  90. package/src/math/random/index.js +172 -172
  91. package/src/math/signal/__np.py.txt +39 -39
  92. package/src/math/signal/conv.js +174 -174
  93. package/src/math/signal/fft.js +54 -54
  94. package/src/math/signal/filter.js +38 -38
  95. package/src/math/signal/functions.js +145 -145
  96. package/src/math/signal/index.js +109 -109
  97. package/src/math/statistics/Functions/index.js +99 -99
  98. package/src/math/statistics/index.js +15 -15
  99. package/src/math/utils/arithmetic.js +138 -138
  100. package/src/math/utils/checkers.js +29 -29
  101. package/src/math/utils/conversions.js +19 -19
  102. package/src/math/utils/discret.js +51 -51
  103. package/src/math/utils/index.js +101 -101
  104. package/src/math/utils/mapfun.js +49 -49
  105. package/src/reactivity/events/Input.js +61 -61
  106. package/src/reactivity/events/Pointer.js +231 -231
  107. package/src/reactivity/events/ZikoEvent.js +90 -90
  108. package/src/reactivity/events/click.js +59 -59
  109. package/src/reactivity/events/clipboard.js +87 -87
  110. package/src/reactivity/events/custom-event.js +56 -56
  111. package/src/reactivity/events/drag.js +136 -136
  112. package/src/reactivity/events/focus.js +58 -58
  113. package/src/reactivity/events/hash.js +46 -46
  114. package/src/reactivity/events/index.js +12 -63
  115. package/src/reactivity/events/key.js +101 -101
  116. package/src/reactivity/events/mouse.js +232 -232
  117. package/src/reactivity/events/swipe.js +149 -149
  118. package/src/reactivity/events/wheel.js +46 -46
  119. package/src/reactivity/hooks/{contexte → Contexte}/useSuccesifKeys.js +13 -13
  120. package/src/reactivity/hooks/{decorators → Decorators}/index.js +6 -6
  121. package/src/reactivity/hooks/{decorators → Decorators}/time.js +16 -16
  122. package/src/reactivity/hooks/{decorators → Decorators}/type.js +87 -87
  123. package/src/reactivity/hooks/{head/useCssText.js → Head/_useCssText.js} +20 -20
  124. package/src/reactivity/hooks/{head → Head}/index.js +5 -5
  125. package/src/reactivity/hooks/{head → Head}/useFavIcon.js +37 -37
  126. package/src/reactivity/hooks/{head → Head}/useHead.js +27 -27
  127. package/src/reactivity/hooks/{head → Head}/useMeta.js +52 -52
  128. package/src/reactivity/hooks/{head → Head}/useTitle.js +29 -29
  129. package/src/reactivity/hooks/{interactions/useBluetooth.js → Interactions/_useBluetooth.js} +47 -47
  130. package/src/reactivity/hooks/{interactions → Interactions}/index.js +4 -4
  131. package/src/reactivity/hooks/{interactions → Interactions}/useChannel.js +49 -49
  132. package/src/reactivity/hooks/{interactions → Interactions}/useEventEmmiter.js +63 -63
  133. package/src/reactivity/hooks/{interactions → Interactions}/useThread.js +43 -43
  134. package/src/reactivity/hooks/Sensors/index.js +2 -0
  135. package/src/reactivity/hooks/{sensors → Sensors}/useBattery.js +35 -35
  136. package/src/reactivity/hooks/{sensors → Sensors}/useGeolocation.js +16 -16
  137. package/src/reactivity/hooks/{storage → Storage}/useStorage.js +72 -72
  138. package/src/reactivity/hooks/{ui → UI}/index.js +6 -5
  139. package/src/reactivity/hooks/{ui → UI}/useMediaQuery.js +43 -43
  140. package/src/reactivity/hooks/UI/useRoot.js +39 -0
  141. package/src/reactivity/hooks/{ui → UI}/useStyle.js +79 -79
  142. package/src/reactivity/hooks/{ui → UI}/useTheme.js +61 -61
  143. package/src/reactivity/hooks/index.js +8 -91
  144. package/src/reactivity/hooks/todo.md +26 -26
  145. package/src/reactivity/idea +1 -1
  146. package/src/reactivity/index.js +11 -11
  147. package/src/reactivity/observer/attributes.js +28 -28
  148. package/src/reactivity/observer/children.js +36 -36
  149. package/src/reactivity/observer/index.js +6 -6
  150. package/src/reactivity/observer/intersection.js +43 -43
  151. package/src/reactivity/observer/mutation.js +112 -112
  152. package/src/reactivity/observer/resize.js +46 -46
  153. package/src/reactivity/observer/screen.js +44 -44
  154. package/src/reactivity/observer/screen.js.txt +83 -83
  155. package/src/reactivity/observer/screen.txt +12 -12
  156. package/src/time/animation.js +75 -75
  157. package/src/time/index.js +11 -11
  158. package/src/time/loop.js +87 -87
  159. package/src/time/utils/decorators.js +16 -16
  160. package/src/time/utils/ease.js +143 -143
  161. package/src/time/utils/index.js +17 -17
  162. package/src/time/utils/performance.js +15 -15
  163. package/src/time/utils/ui.js +25 -25
  164. package/src/types.js +73 -73
  165. package/src/ui/elements/derived/accordion/accordion.js +42 -42
  166. package/src/ui/elements/derived/accordion/collapsible.js +82 -82
  167. package/src/ui/elements/derived/accordion/index.js +1 -1
  168. package/src/ui/elements/derived/alert/alert.js +80 -80
  169. package/src/ui/elements/derived/alert/palette.js +51 -51
  170. package/src/ui/elements/derived/carousel/index.js +50 -50
  171. package/src/ui/elements/derived/code-note/SubElements.js.txt +104 -104
  172. package/src/ui/elements/derived/code-note/code-cell.js +194 -194
  173. package/src/ui/elements/derived/code-note/code-note.js +71 -71
  174. package/src/ui/elements/derived/code-note/index.js +1 -1
  175. package/src/ui/elements/derived/code-note/sub-elements.js +66 -66
  176. package/src/ui/elements/derived/elements/Swipper.js +3 -3
  177. package/src/ui/elements/derived/elements/index.js +9 -9
  178. package/src/ui/elements/derived/flex/index.js +102 -102
  179. package/src/ui/elements/derived/grid/index.js +32 -32
  180. package/src/ui/elements/derived/index.js +11 -11
  181. package/src/ui/elements/derived/menu/menu3d.js +259 -259
  182. package/src/ui/elements/derived/modal/index.js +91 -91
  183. package/src/ui/elements/derived/pagination/breadcrumbs.js +53 -53
  184. package/src/ui/elements/derived/slider/__ZikoUISlider__.js +111 -111
  185. package/src/ui/elements/derived/slider/hSlider.js +33 -33
  186. package/src/ui/elements/derived/slider/index.js +11 -11
  187. package/src/ui/elements/derived/slider/vSlider.js +26 -26
  188. package/src/ui/elements/derived/splitter/__ZikoUISplitter__.js +61 -61
  189. package/src/ui/elements/derived/splitter/hsplitter.js +39 -39
  190. package/src/ui/elements/derived/splitter/index.js +11 -11
  191. package/src/ui/elements/derived/splitter/vsplitter.js +39 -39
  192. package/src/ui/elements/derived/tabs/index.js +179 -179
  193. package/src/ui/elements/primitives/ZikoUIContainerElement.js +163 -126
  194. package/src/ui/elements/primitives/ZikoUIElement.js +492 -492
  195. package/src/ui/elements/primitives/embaded/html.js +19 -19
  196. package/src/ui/elements/primitives/embaded/index.js +3 -3
  197. package/src/ui/elements/primitives/embaded/pdf.js +16 -16
  198. package/src/ui/elements/primitives/embaded/youtube.js +23 -23
  199. package/src/ui/elements/primitives/index.js +7 -7
  200. package/src/ui/elements/primitives/io/Form/index.js +41 -41
  201. package/src/ui/elements/primitives/io/Form/index.js.txt +104 -104
  202. package/src/ui/elements/primitives/io/Inputs/__helpers__.js +51 -51
  203. package/src/ui/elements/primitives/io/Inputs/index.js +12 -12
  204. package/src/ui/elements/primitives/io/Inputs/input/index.js +98 -98
  205. package/src/ui/elements/primitives/io/Inputs/input-camera/index.js +26 -26
  206. package/src/ui/elements/primitives/io/Inputs/input-checkbox/index.js +25 -25
  207. package/src/ui/elements/primitives/io/Inputs/input-color/index.js +15 -15
  208. package/src/ui/elements/primitives/io/Inputs/input-date-time/index.js +2 -2
  209. package/src/ui/elements/primitives/io/Inputs/input-date-time/input-date-time.js +13 -13
  210. package/src/ui/elements/primitives/io/Inputs/input-date-time/input-date.js +13 -13
  211. package/src/ui/elements/primitives/io/Inputs/input-date-time/input-time.js +13 -13
  212. package/src/ui/elements/primitives/io/Inputs/input-email-password/index.js +1 -1
  213. package/src/ui/elements/primitives/io/Inputs/input-email-password/input-email.js +14 -14
  214. package/src/ui/elements/primitives/io/Inputs/input-email-password/input-password.js +13 -13
  215. package/src/ui/elements/primitives/io/Inputs/input-file/input-image.js +42 -42
  216. package/src/ui/elements/primitives/io/Inputs/input-number/index.js +36 -36
  217. package/src/ui/elements/primitives/io/Inputs/input-radio/index.js +25 -25
  218. package/src/ui/elements/primitives/io/Inputs/input-search/index.js +45 -45
  219. package/src/ui/elements/primitives/io/Inputs/input-slider/index.js +34 -34
  220. package/src/ui/elements/primitives/io/Select/index.js +19 -19
  221. package/src/ui/elements/primitives/io/Textarea/index.js +17 -17
  222. package/src/ui/elements/primitives/io/index.js +3 -3
  223. package/src/ui/elements/primitives/list/index.js +138 -138
  224. package/src/ui/elements/primitives/media/Audio/index.js +16 -16
  225. package/src/ui/elements/primitives/media/Image/figure.js +18 -18
  226. package/src/ui/elements/primitives/media/Image/image.js +36 -36
  227. package/src/ui/elements/primitives/media/Image/index.js +1 -1
  228. package/src/ui/elements/primitives/media/Video/index.js +26 -26
  229. package/src/ui/elements/primitives/media/__ZikoUIDynamicMediaELement__.js +46 -46
  230. package/src/ui/elements/primitives/media/index.js +2 -2
  231. package/src/ui/elements/primitives/misc/index.js +101 -101
  232. package/src/ui/elements/primitives/misc/xml-wrapper.js +3 -2
  233. package/src/ui/elements/primitives/semantic/index.js +81 -81
  234. package/src/ui/elements/primitives/table/elements.js +93 -93
  235. package/src/ui/elements/primitives/table/index.js +2 -2
  236. package/src/ui/elements/primitives/table/table.js +115 -115
  237. package/src/ui/elements/primitives/table/utils.js +11 -11
  238. package/src/ui/elements/primitives/text/__ZikoUIText__.js +71 -71
  239. package/src/ui/elements/primitives/text/heading.js +35 -35
  240. package/src/ui/elements/primitives/text/index.js +2 -2
  241. package/src/ui/elements/primitives/text/p.js +26 -26
  242. package/src/ui/elements/primitives/text/text.js +80 -80
  243. package/src/ui/index.js +37 -37
  244. package/src/ui/style/index.js +504 -515
  245. package/src/ui/utils/index.js +69 -69
  246. package/starter/bin/index.js +11 -11
  247. package/dist/ziko.cjs +0 -14018
  248. package/dist/ziko.js +0 -14028
  249. package/dist/ziko.min.js +0 -9
  250. package/dist/ziko.mjs +0 -13688
  251. package/src/graphics/canvas/elements/Groupe.js +0 -0
  252. package/src/graphics/canvas/elements/grid.js +0 -0
  253. package/src/graphics/canvas/filter/index.js +0 -0
  254. package/src/graphics/canvas/paint/index.js +0 -0
  255. package/src/reactivity/hooks/sensors/index.js +0 -2
  256. /package/src/reactivity/hooks/{contexte → Contexte}/index.js +0 -0
  257. /package/src/reactivity/hooks/{interactions → Interactions}/useSerial.js +0 -0
  258. /package/src/reactivity/hooks/{interactions → Interactions}/useUsb.js +0 -0
  259. /package/src/reactivity/hooks/{sensors → Sensors}/useCamera.js +0 -0
  260. /package/src/reactivity/hooks/{sensors → Sensors}/useMicro.js +0 -0
  261. /package/src/reactivity/hooks/{sensors → Sensors}/useOrientation.js +0 -0
  262. /package/src/reactivity/hooks/{storage → Storage}/index.js +0 -0
  263. /package/src/reactivity/hooks/{storage → Storage}/useCookie.js +0 -0
  264. /package/src/reactivity/hooks/{storage → Storage}/useIndexedDb.js +0 -0
  265. /package/src/reactivity/hooks/{ui → UI}/useCssLink.js +0 -0
  266. /package/src/reactivity/hooks/{ui → UI}/useLinearGradient.js +0 -0
  267. /package/src/reactivity/hooks/{ui → UI}/useRadialGradient.js +0 -0
@@ -1,146 +1,146 @@
1
- import { Complex , complex } from "../complex/index.js";
2
- import { abs , pow , sqrtn , max , min} from "../functions/index.js";
3
- import { mul } from "../utils/index.js";
4
- import { E } from "../const.js";
5
- import { Matrix } from "../matrix/Matrix.js";
6
- const zeros=(n)=>new Array(n).fill(0);
7
- const ones=(n)=>new Array(n).fill(1);
8
- const nums=(num,n)=>new Array(n).fill(num);
9
- const norm=(value, min, max)=>{
10
- if (typeof value === "number") return min !== max ? (value - min) / (max - min) : 0;
11
- else if (value instanceof Matrix) return new Matrix(value.rows, value.cols, norm(value.arr.flat(1), min, max));
12
- else if (value instanceof Complex) return new Complex(norm(value.a, min, max), norm(value.b, min, max));
13
- else if (value instanceof Array) {
14
- if (value.every((n) => typeof (n === "number"))) {
15
- return value.map((n) => norm(n, min, max));
16
- } else {
17
- let y = new Array(value.length);
18
- for (let i = 0; i < value.length; i++) {
19
- y[i] = norm(value[i]);
20
- }
21
- }
22
- }
23
- }
24
- const lerp=(value, min, max)=>{
25
- if (typeof value === "number") return (max - min) * value + min;
26
- else if (value instanceof Matrix) return new Matrix(value.rows, value.cols, lerp(value.arr.flat(1), min, max));
27
- else if (value instanceof Complex) return new Complex(lerp(value.a, min, max), lerp(value.b, min, max));
28
- else if (value instanceof Array) {
29
- if (value.every((n) => typeof (n === "number"))) {
30
- return value.map((n) => lerp(n, min, max));
31
- } else {
32
- let y = new Array(value.length);
33
- for (let i = 0; i < value.length; i++) {
34
- y[i] = lerp(value[i]);
35
- }
36
- }
37
- }
38
- }
39
- const map=(value, a, b, c, d)=>{
40
- if (typeof value === "number") return lerp(norm(value, a, b), c, d);
41
- else if (value instanceof Matrix) return new Matrix(value.rows, value.cols, map(value.arr.flat(1), a, b, c, d));
42
- else if (value instanceof Complex) return new Complex(map(value.a, b, c, d), map(value.b, a, b, c, d));
43
- else if (value instanceof Array) {
44
- if (value.every((n) => typeof (n === "number"))) {
45
- return value.map((n) => map(n, a, b, c, d));
46
- } else {
47
- let y = new Array(value.length);
48
- for (let i = 0; i < value.length; i++) {
49
- y[i] = map(value[i], a, b, c, d);
50
- }
51
- }
52
- }
53
- }
54
- const clamp=(x, a , b)=>{
55
- const [min_value,max_value]=[min(a,b),max(a,b)]
56
- if (typeof x === "number") return min(max(x, min_value), max_value);
57
- else if (x instanceof Matrix) return new Matrix(x.rows, x.cols, clamp(x.arr.flat(1), min_value, max_value));
58
- else if (x instanceof Complex) return new Complex(clamp(x.a, min_value, max_value), clamp(x.b, min_value, max_value));
59
- else if (x instanceof Array) {
60
- if (x.every((n) => typeof (n === "number"))) {
61
- return x.map((n) => clamp(n, min_value, max_value));
62
- } else {
63
- let y = new Array(x.length);
64
- for (let i = 0; i < x.length; i++) {
65
- y[i] = clamp(x[i], min_value, max_value);
66
- }
67
- }
68
- }
69
- }
70
- const arange=(a, b, step , include = false)=>{
71
- let tab = [];
72
- if(a<b){
73
- for (let i = a; include?i<=b:i<b; i += step) tab.push((i * 10) / 10);
74
- }
75
- else{
76
- for(let i = a; include?i>=b:i>b; i -= step) tab.push((i * 10) / 10);
77
- }
78
- return tab;
79
- }
80
- const linspace=(a,b,n=abs(b-a)+1,endpoint=true)=>{
81
- if(Math.floor(n)!==n)return;
82
- if([a,b].every(n=>typeof n==="number")){
83
- const [max,min]=[a,b].sort((a,b)=>b-a);
84
- var Y = [];
85
- let step ;
86
- endpoint ? step = (max - min) / (n - 1) : step = (max - min) / n;
87
- for (var i = 0; i < n; i++) {
88
- a<b?Y.push(min+step*i):Y.push(max-step*i);
89
- }
90
- return Y
91
- }
92
-
93
- if([a,b].some(n=>n instanceof Complex)){
94
- const z1=complex(a)
95
- const z2=complex(b)
96
- n=n||Math.abs(z1.a-z2.a)+1;
97
- const X=linspace(z1.a,z2.a,n,endpoint);
98
- const Y=linspace(z1.b,z2.b,n,endpoint);
99
- let Z=new Array(n).fill(null);
100
- Z=Z.map((n,i)=>complex(X[i],Y[i]));
101
- return Z;
102
- }
103
- }
104
- const logspace=(a,b,n=b-a+1,base=E,endpoint=true)=>{
105
- return linspace(a,b,n,endpoint).map(n=>pow(base,n))
106
- }
107
- const geomspace=(a,b,n=abs(b-a)+1,endpoint=true)=>{
108
- if(Math.floor(n)!==n)return;
109
- if([a,b].every(n=>typeof n==="number")){
110
- const [max,min]=[a,b].sort((a,b)=>b-a);
111
- let base;
112
- endpoint ? base = sqrtn(max/min,n-1) : base = sqrtn(max/min,n) ;
113
- const Y = [min];
114
- for (let i = 1; i < n; i++) {
115
- Y.push(Y[i-1]*base)
116
- }
117
- return a<b?Y:Y.reverse()
118
- }
119
-
120
- if([a,b].some(n=>n instanceof Complex)){
121
- const z1=complex(a)
122
- const z2=complex(b)
123
- n=n||Math.abs(z1.a-z2.a)+1;
124
- let base;
125
- endpoint ? base = sqrtn(z2.div(z1),n-1) : base = sqrtn(z2.div(z1),n) ;
126
- const Y = [z1];
127
- for (let i = 1; i < n; i++) {
128
- Y.push(mul(Y[i-1],base))
129
- }
130
- return Y;
131
- }
132
- }
133
- export {
134
- zeros,
135
- ones,
136
- nums,
137
- norm,
138
- lerp,
139
- map,
140
- clamp,
141
- arange,
142
- linspace,
143
- logspace,
144
- geomspace,
145
-
1
+ import { Complex , complex } from "../complex/index.js";
2
+ import { abs , pow , sqrtn , max , min} from "../functions/index.js";
3
+ import { mul } from "../utils/index.js";
4
+ import { E } from "../const.js";
5
+ import { Matrix } from "../matrix/Matrix.js";
6
+ const zeros=(n)=>new Array(n).fill(0);
7
+ const ones=(n)=>new Array(n).fill(1);
8
+ const nums=(num,n)=>new Array(n).fill(num);
9
+ const norm=(value, min, max)=>{
10
+ if (typeof value === "number") return min !== max ? (value - min) / (max - min) : 0;
11
+ else if (value instanceof Matrix) return new Matrix(value.rows, value.cols, norm(value.arr.flat(1), min, max));
12
+ else if (value instanceof Complex) return new Complex(norm(value.a, min, max), norm(value.b, min, max));
13
+ else if (value instanceof Array) {
14
+ if (value.every((n) => typeof (n === "number"))) {
15
+ return value.map((n) => norm(n, min, max));
16
+ } else {
17
+ let y = new Array(value.length);
18
+ for (let i = 0; i < value.length; i++) {
19
+ y[i] = norm(value[i]);
20
+ }
21
+ }
22
+ }
23
+ }
24
+ const lerp=(value, min, max)=>{
25
+ if (typeof value === "number") return (max - min) * value + min;
26
+ else if (value instanceof Matrix) return new Matrix(value.rows, value.cols, lerp(value.arr.flat(1), min, max));
27
+ else if (value instanceof Complex) return new Complex(lerp(value.a, min, max), lerp(value.b, min, max));
28
+ else if (value instanceof Array) {
29
+ if (value.every((n) => typeof (n === "number"))) {
30
+ return value.map((n) => lerp(n, min, max));
31
+ } else {
32
+ let y = new Array(value.length);
33
+ for (let i = 0; i < value.length; i++) {
34
+ y[i] = lerp(value[i]);
35
+ }
36
+ }
37
+ }
38
+ }
39
+ const map=(value, a, b, c, d)=>{
40
+ if (typeof value === "number") return lerp(norm(value, a, b), c, d);
41
+ else if (value instanceof Matrix) return new Matrix(value.rows, value.cols, map(value.arr.flat(1), a, b, c, d));
42
+ else if (value instanceof Complex) return new Complex(map(value.a, b, c, d), map(value.b, a, b, c, d));
43
+ else if (value instanceof Array) {
44
+ if (value.every((n) => typeof (n === "number"))) {
45
+ return value.map((n) => map(n, a, b, c, d));
46
+ } else {
47
+ let y = new Array(value.length);
48
+ for (let i = 0; i < value.length; i++) {
49
+ y[i] = map(value[i], a, b, c, d);
50
+ }
51
+ }
52
+ }
53
+ }
54
+ const clamp=(x, a , b)=>{
55
+ const [min_value,max_value]=[min(a,b),max(a,b)]
56
+ if (typeof x === "number") return min(max(x, min_value), max_value);
57
+ else if (x instanceof Matrix) return new Matrix(x.rows, x.cols, clamp(x.arr.flat(1), min_value, max_value));
58
+ else if (x instanceof Complex) return new Complex(clamp(x.a, min_value, max_value), clamp(x.b, min_value, max_value));
59
+ else if (x instanceof Array) {
60
+ if (x.every((n) => typeof (n === "number"))) {
61
+ return x.map((n) => clamp(n, min_value, max_value));
62
+ } else {
63
+ let y = new Array(x.length);
64
+ for (let i = 0; i < x.length; i++) {
65
+ y[i] = clamp(x[i], min_value, max_value);
66
+ }
67
+ }
68
+ }
69
+ }
70
+ const arange=(a, b, step , include = false)=>{
71
+ let tab = [];
72
+ if(a<b){
73
+ for (let i = a; include?i<=b:i<b; i += step) tab.push((i * 10) / 10);
74
+ }
75
+ else{
76
+ for(let i = a; include?i>=b:i>b; i -= step) tab.push((i * 10) / 10);
77
+ }
78
+ return tab;
79
+ }
80
+ const linspace=(a,b,n=abs(b-a)+1,endpoint=true)=>{
81
+ if(Math.floor(n)!==n)return;
82
+ if([a,b].every(n=>typeof n==="number")){
83
+ const [max,min]=[a,b].sort((a,b)=>b-a);
84
+ var Y = [];
85
+ let step ;
86
+ endpoint ? step = (max - min) / (n - 1) : step = (max - min) / n;
87
+ for (var i = 0; i < n; i++) {
88
+ a<b?Y.push(min+step*i):Y.push(max-step*i);
89
+ }
90
+ return Y
91
+ }
92
+
93
+ if([a,b].some(n=>n instanceof Complex)){
94
+ const z1=complex(a)
95
+ const z2=complex(b)
96
+ n=n||Math.abs(z1.a-z2.a)+1;
97
+ const X=linspace(z1.a,z2.a,n,endpoint);
98
+ const Y=linspace(z1.b,z2.b,n,endpoint);
99
+ let Z=new Array(n).fill(null);
100
+ Z=Z.map((n,i)=>complex(X[i],Y[i]));
101
+ return Z;
102
+ }
103
+ }
104
+ const logspace=(a,b,n=b-a+1,base=E,endpoint=true)=>{
105
+ return linspace(a,b,n,endpoint).map(n=>pow(base,n))
106
+ }
107
+ const geomspace=(a,b,n=abs(b-a)+1,endpoint=true)=>{
108
+ if(Math.floor(n)!==n)return;
109
+ if([a,b].every(n=>typeof n==="number")){
110
+ const [max,min]=[a,b].sort((a,b)=>b-a);
111
+ let base;
112
+ endpoint ? base = sqrtn(max/min,n-1) : base = sqrtn(max/min,n) ;
113
+ const Y = [min];
114
+ for (let i = 1; i < n; i++) {
115
+ Y.push(Y[i-1]*base)
116
+ }
117
+ return a<b?Y:Y.reverse()
118
+ }
119
+
120
+ if([a,b].some(n=>n instanceof Complex)){
121
+ const z1=complex(a)
122
+ const z2=complex(b)
123
+ n=n||Math.abs(z1.a-z2.a)+1;
124
+ let base;
125
+ endpoint ? base = sqrtn(z2.div(z1),n-1) : base = sqrtn(z2.div(z1),n) ;
126
+ const Y = [z1];
127
+ for (let i = 1; i < n; i++) {
128
+ Y.push(mul(Y[i-1],base))
129
+ }
130
+ return Y;
131
+ }
132
+ }
133
+ export {
134
+ zeros,
135
+ ones,
136
+ nums,
137
+ norm,
138
+ lerp,
139
+ map,
140
+ clamp,
141
+ arange,
142
+ linspace,
143
+ logspace,
144
+ geomspace,
145
+
146
146
  }
@@ -1,110 +1,110 @@
1
- import { mapfun } from "../utils/index.js";
2
- import { abs , sinc , sign , sin } from "../functions/index.js"
3
- import { Random } from "../random/index.js";
4
- import {
5
- zeros,
6
- ones,
7
- nums,
8
- arange,
9
- linspace,
10
- logspace,
11
- geomspace,
12
- map,
13
- norm,
14
- lerp,
15
- clamp,
16
- } from "./functions.js";
17
- import{
18
- fft,
19
- ifft
20
- } from "./fft.js"
21
- import {
22
- conv,
23
- conv1d,
24
- conv2d,
25
- circularConv,
26
- linearConv,
27
- circularConv1d,
28
- linearConv1d,
29
- circularConv2d,
30
- linearConv2d
31
- } from "./conv.js";
32
- import {
33
- filter
34
- } from "./filter.js";
35
- //import { Matrix } from "../Matrix/index.js";
36
- const Signal={
37
- zeros,
38
- ones,
39
- nums,
40
- arange,
41
- linspace,
42
- logspace,
43
- geomspace,
44
- map,
45
- norm,
46
- lerp,
47
- clamp,
48
- noise(n,min = 0,max = 1){
49
- return Random.floats(n,min,max);
50
- },
51
- echelon(t,t0 = 0 , A = 1){
52
- if(!(t instanceof Array))t=[t];
53
- const Y = mapfun(n=>n>=t0?1:0,...t);
54
- return Y instanceof Array ? Y.map(n=>n*A) : Y*A
55
- },
56
- rampe(t,t0 = 0 , A = 1){
57
- if(!(t instanceof Array))t=[t]
58
- const Y = mapfun(n=>n>=t0?n-t0:0,...t);
59
- return Y instanceof Array ? Y.map(n=>n*A) : Y*A
60
- },
61
- sign(t,t0 = 0 , A = 1){
62
- if(!(t instanceof Array))t=[t]
63
- const Y = mapfun(n=>Math.sign(n-t0),...t);
64
- return Y instanceof Array ? Y.map(n=>n*A) : Y*A
65
- },
66
- rect(t,T,t0 = 0, A = 1){
67
- if(!(t instanceof Array))t=[t];
68
- const Y = mapfun(n=>((t0-T/2 < n) && (t0+T/2 > n)? 1 - 2 * abs(n/T) : 0),...t)
69
- return Y instanceof Array ? Y.map(n=>n*A) : Y*A
70
- },
71
- tri(t,T,t0 = 0 , A = 1){
72
- if(!(t instanceof Array))t=[t]
73
- const Y = mapfun(n=>((t0-T/2 < n) && (t0+T/2 > n)? 1 - 2 * abs(n/T) : 0),...t)
74
- return Y instanceof Array ? Y.map(n=>n*A) : Y*A;
75
- },
76
- dirac(t,t0){
77
- return mapfun(n=>n===t0?Infinity:0,...t);
78
- },
79
- lorentz(t , t0 = 0 , A = 1){
80
- if(!(t instanceof Array))t=[t]
81
- const Y = mapfun(n => 1/(1+(n-t0)**2),...t);
82
- return Y instanceof Array ? Y.map(n=>n*A) : Y*A;
83
- },
84
- sinc(t , t0 , A = 1){
85
- if(!(t instanceof Array))t=[t]
86
- const Y = mapfun(n=>sinc(n-t0),...t);
87
- return Y instanceof Array ? Y.map(n=>n*A) : Y*A;
88
- },
89
- square(t,T=1,A=1){
90
- if(!(t instanceof Array))t=[t]
91
- const Y = mapfun(n=>sign(sin(n*2*Math.PI/T)),...t);
92
- return Y instanceof Array ? Y.map(n=>n*A) : Y*A;
93
- },
94
- sawtooth(){
95
-
96
- },
97
- conv,
98
- conv1d,
99
- conv2d,
100
- circularConv,
101
- linearConv,
102
- circularConv1d,
103
- linearConv1d,
104
- circularConv2d,
105
- linearConv2d,
106
- fft,
107
- ifft,
108
- filter,
109
- }
1
+ import { mapfun } from "../utils/index.js";
2
+ import { abs , sinc , sign , sin } from "../functions/index.js"
3
+ import { Random } from "../random/index.js";
4
+ import {
5
+ zeros,
6
+ ones,
7
+ nums,
8
+ arange,
9
+ linspace,
10
+ logspace,
11
+ geomspace,
12
+ map,
13
+ norm,
14
+ lerp,
15
+ clamp,
16
+ } from "./functions.js";
17
+ import{
18
+ fft,
19
+ ifft
20
+ } from "./fft.js"
21
+ import {
22
+ conv,
23
+ conv1d,
24
+ conv2d,
25
+ circularConv,
26
+ linearConv,
27
+ circularConv1d,
28
+ linearConv1d,
29
+ circularConv2d,
30
+ linearConv2d
31
+ } from "./conv.js";
32
+ import {
33
+ filter
34
+ } from "./filter.js";
35
+ //import { Matrix } from "../Matrix/index.js";
36
+ const Signal={
37
+ zeros,
38
+ ones,
39
+ nums,
40
+ arange,
41
+ linspace,
42
+ logspace,
43
+ geomspace,
44
+ map,
45
+ norm,
46
+ lerp,
47
+ clamp,
48
+ noise(n,min = 0,max = 1){
49
+ return Random.floats(n,min,max);
50
+ },
51
+ echelon(t,t0 = 0 , A = 1){
52
+ if(!(t instanceof Array))t=[t];
53
+ const Y = mapfun(n=>n>=t0?1:0,...t);
54
+ return Y instanceof Array ? Y.map(n=>n*A) : Y*A
55
+ },
56
+ rampe(t,t0 = 0 , A = 1){
57
+ if(!(t instanceof Array))t=[t]
58
+ const Y = mapfun(n=>n>=t0?n-t0:0,...t);
59
+ return Y instanceof Array ? Y.map(n=>n*A) : Y*A
60
+ },
61
+ sign(t,t0 = 0 , A = 1){
62
+ if(!(t instanceof Array))t=[t]
63
+ const Y = mapfun(n=>Math.sign(n-t0),...t);
64
+ return Y instanceof Array ? Y.map(n=>n*A) : Y*A
65
+ },
66
+ rect(t,T,t0 = 0, A = 1){
67
+ if(!(t instanceof Array))t=[t];
68
+ const Y = mapfun(n=>((t0-T/2 < n) && (t0+T/2 > n)? 1 - 2 * abs(n/T) : 0),...t)
69
+ return Y instanceof Array ? Y.map(n=>n*A) : Y*A
70
+ },
71
+ tri(t,T,t0 = 0 , A = 1){
72
+ if(!(t instanceof Array))t=[t]
73
+ const Y = mapfun(n=>((t0-T/2 < n) && (t0+T/2 > n)? 1 - 2 * abs(n/T) : 0),...t)
74
+ return Y instanceof Array ? Y.map(n=>n*A) : Y*A;
75
+ },
76
+ dirac(t,t0){
77
+ return mapfun(n=>n===t0?Infinity:0,...t);
78
+ },
79
+ lorentz(t , t0 = 0 , A = 1){
80
+ if(!(t instanceof Array))t=[t]
81
+ const Y = mapfun(n => 1/(1+(n-t0)**2),...t);
82
+ return Y instanceof Array ? Y.map(n=>n*A) : Y*A;
83
+ },
84
+ sinc(t , t0 , A = 1){
85
+ if(!(t instanceof Array))t=[t]
86
+ const Y = mapfun(n=>sinc(n-t0),...t);
87
+ return Y instanceof Array ? Y.map(n=>n*A) : Y*A;
88
+ },
89
+ square(t,T=1,A=1){
90
+ if(!(t instanceof Array))t=[t]
91
+ const Y = mapfun(n=>sign(sin(n*2*Math.PI/T)),...t);
92
+ return Y instanceof Array ? Y.map(n=>n*A) : Y*A;
93
+ },
94
+ sawtooth(){
95
+
96
+ },
97
+ conv,
98
+ conv1d,
99
+ conv2d,
100
+ circularConv,
101
+ linearConv,
102
+ circularConv1d,
103
+ linearConv1d,
104
+ circularConv2d,
105
+ linearConv2d,
106
+ fft,
107
+ ifft,
108
+ filter,
109
+ }
110
110
  export{Signal}