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,162 +1,162 @@
1
- import { Fixed } from "./helper.js";
2
- import { Complex } from "../complex/index.js";
3
- import { mapfun } from "../utils/mapfun.js";
4
- import {
5
- min,
6
- max
7
- }from "../statistics/index.js";
8
- import {
9
- gamma,
10
- bessel,
11
- beta
12
- } from "../calculus/index.js";
13
-
14
- const abs=(...x)=>mapfun(Math.abs,...x);
15
- const sqrt=(...x)=>mapfun(Math.sqrt,...x);
16
- const pow=(x,n)=>{
17
- if(typeof x === "number"){
18
- if(typeof n === "number")return Math.pow(x,n);
19
- else if(n instanceof Complex)return Complex.fromExpo(x**n.a,n.b*ln(x))
20
- else return mapfun(a=>pow(x,a),...n);
21
- }
22
- else if(x instanceof Complex){
23
- if(typeof n === "number")return Complex.fromExpo(x.z**n,x.phi*n);
24
- else if(n instanceof Complex)return Complex.fromExpo(
25
- x.z**n.a*e(-x.phi*n.b),
26
- ln(x.z)*n.b+n.a*x.phi
27
- )
28
- else return mapfun(a=>pow(x,a),...n);
29
- }
30
- else if(x instanceof Array){
31
- if(typeof n === "number") return mapfun(a=>pow(a,n),...x);
32
- else if(n instanceof Array){
33
- const Y=[];
34
- for(let i=0;i<x.length;i++){
35
- Y.push(mapfun(a=>pow(x[i],a),...n))
36
- }
37
- return Y;
38
- }
39
- }
40
- }
41
- const sqrtn=(x,n)=>{
42
- if(typeof x === "number"){
43
- if(typeof n === "number")return Math.pow(x,1/n);
44
- else return mapfun(a=>sqrtn(x,a),...n);
45
- }
46
- else if(x instanceof Complex){
47
- if(typeof n === "number")return Complex.fromExpo(sqrtn(x.z,n),x.phi/n);
48
- else return mapfun(a=>sqrtn(x,a),...n);
49
- }
50
- else if(x instanceof Array){
51
- if(typeof n === "number") return mapfun(a=>sqrtn(a,n),...x);
52
- else if(n instanceof Array){
53
- const Y=[];
54
- for(let i=0;i<x.length;i++){
55
- Y.push(mapfun(a=>sqrtn(x[i],a),...n))
56
- }
57
- return Y;
58
- }
59
- }
60
- }
61
- const e=(...x)=>mapfun(Math.exp,...x);
62
- const ln=(...x)=>mapfun(Math.log,...x);
63
- const cos=(...x)=>mapfun(Fixed.cos,...x);
64
- const sin=(...x)=>mapfun(Fixed.sin,...x);
65
- const tan=(...x)=>mapfun(Fixed.tan,...x);
66
- const sec=(...x)=>mapfun(Fixed.sec,...x);
67
- const sinc=(...x)=>mapfun(Fixed.sinc,...x)
68
- const csc=(...x)=>mapfun(Fixed.csc,...x);
69
- const cot=(...x)=>mapfun(Fixed.cot,...x);
70
- const acos=(...x)=>mapfun(Fixed.acos,...x);
71
- const asin=(...x)=>mapfun(Fixed.asin,...x);
72
- const atan=(...x)=>mapfun(Fixed.atan,...x);
73
- const acot=(...x)=>mapfun(Fixed.acot,...x);
74
- const cosh=(...x)=>mapfun(Fixed.cosh,...x);
75
- const sinh=(...x)=>mapfun(Fixed.sinh,...x);
76
- const tanh=(...x)=>mapfun(Fixed.tanh,...x);
77
- const coth=(...x)=>mapfun(Fixed.coth,...x);
78
- const acosh=(...x)=>mapfun(Fixed.acosh,...x);
79
- const asinh=(...x)=>mapfun(Fixed.asinh,...x);
80
- const atanh=(...x)=>mapfun(Fixed.atanh,...x);
81
- const ceil=(...x)=>mapfun(Math.ceil,...x);
82
- const floor=(...x)=>mapfun(Math.floor,...x);
83
- const round=(...x)=>mapfun(Math.round,...x);
84
- const atan2=(x,y,rad=true)=>{
85
- if(typeof x === "number"){
86
- if(typeof y === "number")return rad?Math.atan2(x,y):Math.atan2(x,y)*180/Math.PI;
87
- else return mapfun(a=>atan2(x,a,rad),...y);
88
- }
89
- // else if(x instanceof Complex){
90
- // if(typeof n === "number")return Complex.fromExpo(x.z**n,x.phi*n);
91
- // else return mapfun(a=>pow(x,a),...n);
92
- // }
93
- else if(x instanceof Array){
94
- if(typeof y === "number") return mapfun(a=>atan2(a,y,rad),...x);
95
- else if(y instanceof Array){
96
- const Y=[];
97
- for(let i=0;i<x.length;i++){
98
- Y.push(mapfun(a=>pow(x[i],a,rad),...y))
99
- }
100
- return Y;
101
- }
102
- }
103
- }
104
- const fact=(...x)=>mapfun(n=> {
105
- let i,
106
- y = 1;
107
- if (n == 0) y = 1;
108
- else if (n > 0) for (i = 1; i <= n; i++) y *= i;
109
- else y = NaN;
110
- return y;
111
- },...x);
112
- const sign=(...x)=>mapfun(Math.sign,...x);
113
-
114
- const sig=(...x)=>mapfun(n=>1/(1+e(-n)),...x);
115
-
116
- const hypot=(...x)=>{
117
- if(x.every(n=>typeof n === "number"))return Math.hypot(...x);
118
- if(x.every(n=>n instanceof Array))return mapfun(
119
- Math.hypot,
120
- ...x
121
- )
122
- }
123
-
124
- export{
125
- cos,
126
- sin,
127
- tan,
128
- sinc,
129
- cot,
130
- sec,
131
- csc,
132
- abs,
133
- sqrt,
134
- pow,
135
- sqrtn,
136
- e,
137
- ln,
138
- acos,
139
- asin,
140
- atan,
141
- acot,
142
- cosh,
143
- sinh,
144
- tanh,
145
- coth,
146
- acosh,
147
- asinh,
148
- atanh,
149
- min,
150
- max,
151
- sign,
152
- floor,
153
- ceil,
154
- round,
155
- fact,
156
- hypot,
157
- sig,
158
- atan2,
159
- gamma,
160
- bessel,
161
- beta
1
+ import { Fixed } from "./helper.js";
2
+ import { Complex } from "../complex/index.js";
3
+ import { mapfun } from "../utils/mapfun.js";
4
+ import {
5
+ min,
6
+ max
7
+ }from "../statistics/index.js";
8
+ import {
9
+ gamma,
10
+ bessel,
11
+ beta
12
+ } from "../calculus/index.js";
13
+
14
+ const abs=(...x)=>mapfun(Math.abs,...x);
15
+ const sqrt=(...x)=>mapfun(Math.sqrt,...x);
16
+ const pow=(x,n)=>{
17
+ if(typeof x === "number"){
18
+ if(typeof n === "number")return Math.pow(x,n);
19
+ else if(n instanceof Complex)return Complex.fromExpo(x**n.a,n.b*ln(x))
20
+ else return mapfun(a=>pow(x,a),...n);
21
+ }
22
+ else if(x instanceof Complex){
23
+ if(typeof n === "number")return Complex.fromExpo(x.z**n,x.phi*n);
24
+ else if(n instanceof Complex)return Complex.fromExpo(
25
+ x.z**n.a*e(-x.phi*n.b),
26
+ ln(x.z)*n.b+n.a*x.phi
27
+ )
28
+ else return mapfun(a=>pow(x,a),...n);
29
+ }
30
+ else if(x instanceof Array){
31
+ if(typeof n === "number") return mapfun(a=>pow(a,n),...x);
32
+ else if(n instanceof Array){
33
+ const Y=[];
34
+ for(let i=0;i<x.length;i++){
35
+ Y.push(mapfun(a=>pow(x[i],a),...n))
36
+ }
37
+ return Y;
38
+ }
39
+ }
40
+ }
41
+ const sqrtn=(x,n)=>{
42
+ if(typeof x === "number"){
43
+ if(typeof n === "number")return Math.pow(x,1/n);
44
+ else return mapfun(a=>sqrtn(x,a),...n);
45
+ }
46
+ else if(x instanceof Complex){
47
+ if(typeof n === "number")return Complex.fromExpo(sqrtn(x.z,n),x.phi/n);
48
+ else return mapfun(a=>sqrtn(x,a),...n);
49
+ }
50
+ else if(x instanceof Array){
51
+ if(typeof n === "number") return mapfun(a=>sqrtn(a,n),...x);
52
+ else if(n instanceof Array){
53
+ const Y=[];
54
+ for(let i=0;i<x.length;i++){
55
+ Y.push(mapfun(a=>sqrtn(x[i],a),...n))
56
+ }
57
+ return Y;
58
+ }
59
+ }
60
+ }
61
+ const e=(...x)=>mapfun(Math.exp,...x);
62
+ const ln=(...x)=>mapfun(Math.log,...x);
63
+ const cos=(...x)=>mapfun(Fixed.cos,...x);
64
+ const sin=(...x)=>mapfun(Fixed.sin,...x);
65
+ const tan=(...x)=>mapfun(Fixed.tan,...x);
66
+ const sec=(...x)=>mapfun(Fixed.sec,...x);
67
+ const sinc=(...x)=>mapfun(Fixed.sinc,...x)
68
+ const csc=(...x)=>mapfun(Fixed.csc,...x);
69
+ const cot=(...x)=>mapfun(Fixed.cot,...x);
70
+ const acos=(...x)=>mapfun(Fixed.acos,...x);
71
+ const asin=(...x)=>mapfun(Fixed.asin,...x);
72
+ const atan=(...x)=>mapfun(Fixed.atan,...x);
73
+ const acot=(...x)=>mapfun(Fixed.acot,...x);
74
+ const cosh=(...x)=>mapfun(Fixed.cosh,...x);
75
+ const sinh=(...x)=>mapfun(Fixed.sinh,...x);
76
+ const tanh=(...x)=>mapfun(Fixed.tanh,...x);
77
+ const coth=(...x)=>mapfun(Fixed.coth,...x);
78
+ const acosh=(...x)=>mapfun(Fixed.acosh,...x);
79
+ const asinh=(...x)=>mapfun(Fixed.asinh,...x);
80
+ const atanh=(...x)=>mapfun(Fixed.atanh,...x);
81
+ const ceil=(...x)=>mapfun(Math.ceil,...x);
82
+ const floor=(...x)=>mapfun(Math.floor,...x);
83
+ const round=(...x)=>mapfun(Math.round,...x);
84
+ const atan2=(x,y,rad=true)=>{
85
+ if(typeof x === "number"){
86
+ if(typeof y === "number")return rad?Math.atan2(x,y):Math.atan2(x,y)*180/Math.PI;
87
+ else return mapfun(a=>atan2(x,a,rad),...y);
88
+ }
89
+ // else if(x instanceof Complex){
90
+ // if(typeof n === "number")return Complex.fromExpo(x.z**n,x.phi*n);
91
+ // else return mapfun(a=>pow(x,a),...n);
92
+ // }
93
+ else if(x instanceof Array){
94
+ if(typeof y === "number") return mapfun(a=>atan2(a,y,rad),...x);
95
+ else if(y instanceof Array){
96
+ const Y=[];
97
+ for(let i=0;i<x.length;i++){
98
+ Y.push(mapfun(a=>pow(x[i],a,rad),...y))
99
+ }
100
+ return Y;
101
+ }
102
+ }
103
+ }
104
+ const fact=(...x)=>mapfun(n=> {
105
+ let i,
106
+ y = 1;
107
+ if (n == 0) y = 1;
108
+ else if (n > 0) for (i = 1; i <= n; i++) y *= i;
109
+ else y = NaN;
110
+ return y;
111
+ },...x);
112
+ const sign=(...x)=>mapfun(Math.sign,...x);
113
+
114
+ const sig=(...x)=>mapfun(n=>1/(1+e(-n)),...x);
115
+
116
+ const hypot=(...x)=>{
117
+ if(x.every(n=>typeof n === "number"))return Math.hypot(...x);
118
+ if(x.every(n=>n instanceof Array))return mapfun(
119
+ Math.hypot,
120
+ ...x
121
+ )
122
+ }
123
+
124
+ export{
125
+ cos,
126
+ sin,
127
+ tan,
128
+ sinc,
129
+ cot,
130
+ sec,
131
+ csc,
132
+ abs,
133
+ sqrt,
134
+ pow,
135
+ sqrtn,
136
+ e,
137
+ ln,
138
+ acos,
139
+ asin,
140
+ atan,
141
+ acot,
142
+ cosh,
143
+ sinh,
144
+ tanh,
145
+ coth,
146
+ acosh,
147
+ asinh,
148
+ atanh,
149
+ min,
150
+ max,
151
+ sign,
152
+ floor,
153
+ ceil,
154
+ round,
155
+ fact,
156
+ hypot,
157
+ sig,
158
+ atan2,
159
+ gamma,
160
+ bessel,
161
+ beta
162
162
  };
package/src/math/index.js CHANGED
@@ -1,32 +1,32 @@
1
- import * as __Const__ from "./const.js"
2
- import * as __Functions__ from "./functions"
3
- import * as __Signal__ from "./const.js"
4
- import * as __Random__ from "./random"
5
- //import { Derivation } from "./Numeric";
6
- import * as __Complex__ from "./complex"
7
- import * as __Matrix__ from "./matrix"
8
- import * as __Discrect__ from "./discret"
9
- import * as __Utils__ from "./utils"
10
- import * as __Calculus__ from "./calculus"
11
- const Math = {
12
- ...__Const__,
13
- ...__Functions__,
14
- ...__Complex__,
15
- ...__Matrix__,
16
- ...__Utils__,
17
- ...__Discrect__,
18
- ...__Signal__,
19
- ...__Calculus__,
20
- }
21
- export * from "./const.js"
22
- export * from "./functions"
23
- export * from "./complex"
24
- export * from "./matrix"
25
- export * from "./discret"
26
- export * from "./numeric"
27
- export * from "./random"
28
- export * from "./signal"
29
- export * from "./utils"
30
- export * from "./statistics"
31
- export default Math;
32
-
1
+ import * as __Const__ from "./const.js"
2
+ import * as __Functions__ from "./functions"
3
+ // import * as __Signal__ from "./const.js"
4
+ import * as __Random__ from "./random"
5
+ //import { Derivation } from "./Numeric";
6
+ import * as __Complex__ from "./complex"
7
+ import * as __Matrix__ from "./matrix"
8
+ import * as __Discrect__ from "./discret"
9
+ import * as __Utils__ from "./utils"
10
+ import * as __Calculus__ from "./calculus"
11
+ const Math = {
12
+ ...__Const__,
13
+ ...__Functions__,
14
+ ...__Complex__,
15
+ ...__Matrix__,
16
+ ...__Utils__,
17
+ ...__Discrect__,
18
+ // ...__Signal__,
19
+ ...__Calculus__,
20
+ }
21
+ export * from "./const.js"
22
+ export * from "./functions"
23
+ export * from "./complex"
24
+ export * from "./matrix"
25
+ export * from "./discret"
26
+ export * from "./numeric"
27
+ export * from "./random"
28
+ // export * from "./signal"
29
+ export * from "./utils"
30
+ export * from "./statistics"
31
+ export default Math;
32
+
@@ -1,90 +1,90 @@
1
- import { Matrix } from "./Matrix.js";
2
- const luDecomposition=matrix=>{
3
- if(matrix instanceof Matrix)matrix=matrix.arr;
4
- const n = matrix.length;
5
- const L = new Array(n).fill(0).map(() => new Array(n).fill(0));
6
- const U = new Array(n).fill(0).map(() => new Array(n).fill(0));
7
- for (let i = 0; i < n; i++) {
8
- // Upper Triangular
9
- for (let k = i; k < n; k++) {
10
- // Summation of L(i, j) * U(j, k)
11
- let sum = 0;
12
- for (let j = 0; j < i; j++) {
13
- sum += (L[i][j] * U[j][k]);
14
- }
15
- U[i][k] = matrix[i][k] - sum;
16
- }
17
- // Lower Triangular
18
- for (let k = i; k < n; k++) {
19
- if (i == k) {
20
- L[i][i] = 1; // Diagonal as 1
21
- } else {
22
- // Summation of L(k, j) * U(j, i)
23
- let sum = 0;
24
- for (let j = 0; j < i; j++) {
25
- sum += (L[k][j] * U[j][i]);
26
- }
27
- // Evaluate L(k, i)
28
- L[k][i] = (matrix[k][i] - sum) / U[i][i];
29
- }
30
- }
31
- }
32
- return [L, U].map(n=>new Matrix(n));
33
- }
34
- const dotProduct=(v1, v2)=>v1.reduce((sum, el, i) => sum + el * v2[i], 0);
35
- const magnitude=vector=>Math.sqrt(vector.reduce((sum, el) => sum + el * el, 0));
36
- const normalize=vector=>vector.map(el => el / magnitude(vector));
37
- const qrDecomposition=matrix=>{
38
- if(matrix instanceof Matrix)matrix=matrix.arr;
39
- const m = matrix.length;
40
- const n = matrix[0].length;
41
- const Q = [];
42
- const R = [];
43
- // Initialize R as an m x n matrix of zeroes
44
- for (let i = 0; i < m; i++) {
45
- R.push(new Array(n).fill(0));
46
- }
47
- for (let j = 0; j < n; j++) {
48
- let v = matrix.map(row => row[j]);
49
- for (let i = 0; i < j; i++) {
50
- const q = Q[i];
51
- const r_ij = dotProduct(q, matrix.map(row => row[j]));
52
- for (let k = 0; k < m; k++) {
53
- v[k] -= r_ij * q[k];
54
- }
55
- R[i][j] = r_ij;
56
- }
57
- const v_mag = magnitude(v);
58
- Q.push(normalize(v));
59
- R[j][j] = v_mag;
60
- }
61
- return [Q, R].map(n=>new Matrix(n));
62
- }
63
-
64
- const choleskyDecomposition=matrix=>{
65
- if(matrix instanceof Matrix)matrix=matrix.arr;
66
- const n = matrix.length;
67
- const L = new Array(n).fill(0).map(() => new Array(n).fill(0));
68
- for (let i = 0; i < n; i++) {
69
- for (let j = 0; j <= i; j++) {
70
- let sum = 0;
71
- for (let k = 0; k < j; k++) {
72
- sum += L[i][k] * L[j][k];
73
- }
74
-
75
- if (i === j) {
76
- L[i][j] = Math.sqrt(matrix[i][i] - sum);
77
- } else {
78
- L[i][j] = (1.0 / L[j][j] * (matrix[i][j] - sum));
79
- }
80
- }
81
- }
82
- return new Matrix(L);
83
- }
84
-
85
-
86
- export {
87
- luDecomposition,
88
- qrDecomposition,
89
- choleskyDecomposition
90
- }
1
+ import { Matrix } from "./Matrix.js";
2
+ const luDecomposition=matrix=>{
3
+ if(matrix instanceof Matrix)matrix=matrix.arr;
4
+ const n = matrix.length;
5
+ const L = new Array(n).fill(0).map(() => new Array(n).fill(0));
6
+ const U = new Array(n).fill(0).map(() => new Array(n).fill(0));
7
+ for (let i = 0; i < n; i++) {
8
+ // Upper Triangular
9
+ for (let k = i; k < n; k++) {
10
+ // Summation of L(i, j) * U(j, k)
11
+ let sum = 0;
12
+ for (let j = 0; j < i; j++) {
13
+ sum += (L[i][j] * U[j][k]);
14
+ }
15
+ U[i][k] = matrix[i][k] - sum;
16
+ }
17
+ // Lower Triangular
18
+ for (let k = i; k < n; k++) {
19
+ if (i == k) {
20
+ L[i][i] = 1; // Diagonal as 1
21
+ } else {
22
+ // Summation of L(k, j) * U(j, i)
23
+ let sum = 0;
24
+ for (let j = 0; j < i; j++) {
25
+ sum += (L[k][j] * U[j][i]);
26
+ }
27
+ // Evaluate L(k, i)
28
+ L[k][i] = (matrix[k][i] - sum) / U[i][i];
29
+ }
30
+ }
31
+ }
32
+ return [L, U].map(n=>new Matrix(n));
33
+ }
34
+ const dotProduct=(v1, v2)=>v1.reduce((sum, el, i) => sum + el * v2[i], 0);
35
+ const magnitude=vector=>Math.sqrt(vector.reduce((sum, el) => sum + el * el, 0));
36
+ const normalize=vector=>vector.map(el => el / magnitude(vector));
37
+ const qrDecomposition=matrix=>{
38
+ if(matrix instanceof Matrix)matrix=matrix.arr;
39
+ const m = matrix.length;
40
+ const n = matrix[0].length;
41
+ const Q = [];
42
+ const R = [];
43
+ // Initialize R as an m x n matrix of zeroes
44
+ for (let i = 0; i < m; i++) {
45
+ R.push(new Array(n).fill(0));
46
+ }
47
+ for (let j = 0; j < n; j++) {
48
+ let v = matrix.map(row => row[j]);
49
+ for (let i = 0; i < j; i++) {
50
+ const q = Q[i];
51
+ const r_ij = dotProduct(q, matrix.map(row => row[j]));
52
+ for (let k = 0; k < m; k++) {
53
+ v[k] -= r_ij * q[k];
54
+ }
55
+ R[i][j] = r_ij;
56
+ }
57
+ const v_mag = magnitude(v);
58
+ Q.push(normalize(v));
59
+ R[j][j] = v_mag;
60
+ }
61
+ return [Q, R].map(n=>new Matrix(n));
62
+ }
63
+
64
+ const choleskyDecomposition=matrix=>{
65
+ if(matrix instanceof Matrix)matrix=matrix.arr;
66
+ const n = matrix.length;
67
+ const L = new Array(n).fill(0).map(() => new Array(n).fill(0));
68
+ for (let i = 0; i < n; i++) {
69
+ for (let j = 0; j <= i; j++) {
70
+ let sum = 0;
71
+ for (let k = 0; k < j; k++) {
72
+ sum += L[i][k] * L[j][k];
73
+ }
74
+
75
+ if (i === j) {
76
+ L[i][j] = Math.sqrt(matrix[i][i] - sum);
77
+ } else {
78
+ L[i][j] = (1.0 / L[j][j] * (matrix[i][j] - sum));
79
+ }
80
+ }
81
+ }
82
+ return new Matrix(L);
83
+ }
84
+
85
+
86
+ export {
87
+ luDecomposition,
88
+ qrDecomposition,
89
+ choleskyDecomposition
90
+ }
@@ -1,10 +1,10 @@
1
- import { Matrix } from "./Matrix.js";
2
- class LinearSystem {
3
- static resolve(A, B) {
4
- return A.inv
5
- .dot(Matrix.fromVector(B))
6
- .arr.flat(1)
7
- .map((n) => +n.toFixed(10));
8
- }
9
- }
1
+ import { Matrix } from "./Matrix.js";
2
+ class LinearSystem {
3
+ static resolve(A, B) {
4
+ return A.inv
5
+ .dot(Matrix.fromVector(B))
6
+ .arr.flat(1)
7
+ .map((n) => +n.toFixed(10));
8
+ }
9
+ }
10
10
  export { LinearSystem }