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,38 +1,38 @@
1
- import { mapfun } from "../../utils/index.js";
2
- const _beta=(x, y)=>{
3
- const lowerLimit = 0;
4
- const upperLimit = 1;
5
- const intervals = 1000;
6
- let result = 0;
7
-
8
- const f = (t) => Math.pow(t, x - 1) * Math.pow(1 - t, y - 1);
9
- const h = (upperLimit - lowerLimit) / intervals;
10
-
11
- result += 0.5 * (f(lowerLimit) + f(upperLimit));
12
-
13
- for (let i = 1; i < intervals; i++) {
14
- const xi = lowerLimit + i * h;
15
- result += f(xi);
16
- }
17
-
18
- return result * h;
19
- }
20
- const beta=(x,y)=>{
21
- if(typeof x === "number"){
22
- if(typeof x === "number")return _beta(x,y);
23
- else console.warn("Not supported yet")
24
- }
25
- else if(x instanceof Array){
26
- if(typeof y === "number") return mapfun(a=>_beta(a,y),...x);
27
- else if(y instanceof Array){
28
- const Z=[];
29
- for(let i=0;i<x.length;i++){
30
- Z.push(mapfun(a=>_beta(x[i],a),...y))
31
- }
32
- return Z;
33
- }
34
- }
35
- }
36
- export{
37
- beta
1
+ import { mapfun } from "../../utils/index.js";
2
+ const _beta=(x, y)=>{
3
+ const lowerLimit = 0;
4
+ const upperLimit = 1;
5
+ const intervals = 1000;
6
+ let result = 0;
7
+
8
+ const f = (t) => Math.pow(t, x - 1) * Math.pow(1 - t, y - 1);
9
+ const h = (upperLimit - lowerLimit) / intervals;
10
+
11
+ result += 0.5 * (f(lowerLimit) + f(upperLimit));
12
+
13
+ for (let i = 1; i < intervals; i++) {
14
+ const xi = lowerLimit + i * h;
15
+ result += f(xi);
16
+ }
17
+
18
+ return result * h;
19
+ }
20
+ const beta=(x,y)=>{
21
+ if(typeof x === "number"){
22
+ if(typeof x === "number")return _beta(x,y);
23
+ else console.warn("Not supported yet")
24
+ }
25
+ else if(x instanceof Array){
26
+ if(typeof y === "number") return mapfun(a=>_beta(a,y),...x);
27
+ else if(y instanceof Array){
28
+ const Z=[];
29
+ for(let i=0;i<x.length;i++){
30
+ Z.push(mapfun(a=>_beta(x[i],a),...y))
31
+ }
32
+ return Z;
33
+ }
34
+ }
35
+ }
36
+ export{
37
+ beta
38
38
  }
@@ -1,30 +1,30 @@
1
- import { mapfun } from "../../utils/mapfun.js";
2
- const _gamma=x=>{
3
- // Coefficients for the Lanczos approximation
4
- const g = 7;
5
- const p = [
6
- 0.99999999999980993,
7
- 676.5203681218851,
8
- -1259.1392167224028,
9
- 771.32342877765313,
10
- -176.61502916214059,
11
- 12.507343278686905,
12
- -0.13857109526572012,
13
- 9.9843695780195716e-6,
14
- 1.5056327351493116e-7
15
- ];
16
- if (x < 0.5) {
17
- return +(Math.PI / (Math.sin(Math.PI * x) * _gamma(1 - x))).toFixed(10);
18
- }
19
- x -= 1;
20
- let a = p[0];
21
- for (let i = 1; i < g + 2; i++) {
22
- a += p[i] / (x + i);
23
- }
24
- const t = x + g + 0.5;
25
- return +(Math.sqrt(2 * Math.PI) * Math.pow(t, (x + 0.5)) * Math.exp(-t) * a).toFixed(10);
26
- }
27
- const gamma=(...x)=>mapfun(_gamma,...x);
28
- export{
29
- gamma
1
+ import { mapfun } from "../../utils/mapfun.js";
2
+ const _gamma=x=>{
3
+ // Coefficients for the Lanczos approximation
4
+ const g = 7;
5
+ const p = [
6
+ 0.99999999999980993,
7
+ 676.5203681218851,
8
+ -1259.1392167224028,
9
+ 771.32342877765313,
10
+ -176.61502916214059,
11
+ 12.507343278686905,
12
+ -0.13857109526572012,
13
+ 9.9843695780195716e-6,
14
+ 1.5056327351493116e-7
15
+ ];
16
+ if (x < 0.5) {
17
+ return +(Math.PI / (Math.sin(Math.PI * x) * _gamma(1 - x))).toFixed(10);
18
+ }
19
+ x -= 1;
20
+ let a = p[0];
21
+ for (let i = 1; i < g + 2; i++) {
22
+ a += p[i] / (x + i);
23
+ }
24
+ const t = x + g + 0.5;
25
+ return +(Math.sqrt(2 * Math.PI) * Math.pow(t, (x + 0.5)) * Math.exp(-t) * a).toFixed(10);
26
+ }
27
+ const gamma=(...x)=>mapfun(_gamma,...x);
28
+ export{
29
+ gamma
30
30
  }
@@ -1,4 +1,4 @@
1
- export * from "./gamma.js";
2
- export * from "./bessel.js";
3
- export * from "./beta.js";
4
-
1
+ export * from "./gamma.js";
2
+ export * from "./bessel.js";
3
+ export * from "./beta.js";
4
+
@@ -1,203 +1,203 @@
1
- import ZikoMath from "../absract.js";
2
- import{
3
- cos,
4
- sin,
5
- tan,
6
- pow,
7
- floor,
8
- hypot,
9
- cosh,
10
- sinh,
11
- sqrtn,
12
- atan2,
13
- sqrt,
14
- ln
15
- }from "../functions/index.js"
16
- import { Matrix } from "../matrix/index.js";
17
- import {sum,prod,deg2rad} from "../utils/index.js";
18
- class Complex extends ZikoMath{
19
- constructor(a = 0, b = 0) {
20
- super()
21
- if(a instanceof Complex){
22
- this.a=a.a;
23
- this.b=a.b;
24
- }
25
- else if(typeof(a)==="object"){
26
- if(("a" in b && "b" in a)){
27
- this.a=a.a;
28
- this.b=a.b;
29
- }
30
- else if(("a" in b && "z" in a)){
31
- this.a=a.a;
32
- this.b=sqrt((a.z**2)-(a.a**2));
33
- }
34
- else if(("a" in b && "phi" in a)){
35
- this.a=a.a;
36
- this.b=a.a*tan(a.phi);
37
- }
38
- else if(("b" in b && "z" in a)){
39
- this.b=a.b;
40
- this.a=sqrt((a.z**2)-(a.b**2));
41
- }
42
- else if(("b" in b && "phi" in a)){
43
- this.b=b;
44
- this.a=a.b/tan(a.phi);
45
- }
46
- else if(("z" in b && "phi" in a)){
47
- this.a=a.z*cos(a.phi);
48
- this.a=a.z*sin(a.phi);
49
- }
50
- }
51
- else if(typeof(a)==="number"&&typeof(b)==="number"){
52
- this.a = +a.toFixed(32);
53
- this.b = +b.toFixed(32);
54
- }
55
- }
56
- toString(){
57
- let str = "";
58
- if (this.a !== 0)
59
- this.b >= 0
60
- ? (str = `${this.a}+${this.b}*i`)
61
- : (str = `${this.a}-${Math.abs(this.b)}*i`);
62
- else
63
- this.b >= 0
64
- ? (str = `${this.b}*i`)
65
- : (str = `-${Math.abs(this.b)}*i`);
66
- return str;
67
- }
68
-
69
- get clone() {
70
- return new Complex(this.a, this.b);
71
- }
72
- get z(){
73
- return hypot(this.a,this.b);
74
- }
75
- get phi(){
76
- return atan2(this.b , this.a);
77
- }
78
- static Zero() {
79
- return new Complex(0, 0);
80
- }
81
- get conj() {
82
- return new Complex(this.a, -this.b);
83
- }
84
- get inv() {
85
- return new Complex(this.a / (pow(this.a, 2) + pow(this.b, 2)), -this.b / (pow(this.a, 2) + pow(this.b, 2)));
86
- }
87
- add(...z) {
88
- for (let i = 0; i < z.length; i++) {
89
- if (typeof z[i] === "number") z[i] = new Complex(z[i], 0);
90
- }
91
- let re = z.map((n) => n.a);
92
- let im = z.map((n) => n.b);
93
- this.a+=+sum(...re).toFixed(15);
94
- this.b+=+sum(...im).toFixed(15);
95
- return this;
96
- }
97
- sub(...z) {
98
- for (let i = 0; i < z.length; i++) {
99
- if (typeof z[i] === "number") z[i] = new Complex(z[i], 0);
100
- }
101
- let re = z.map((n) => n.a);
102
- let im = z.map((n) => n.b);
103
- this.a-=+sum(...re).toFixed(15);
104
- this.b-=+sum(...im).toFixed(15);
105
- return this;
106
- }
107
- mul(...z){
108
- for (let i = 0; i < z.length; i++) {
109
- if (typeof z[i] === "number") z[i] = new Complex(z[i], 0);
110
- }
111
- let Z=+prod(this.z,...z.map(n=>n.z)).toFixed(15);
112
- let phi=+sum(this.phi,...z.map(n=>n.phi)).toFixed(15);
113
- this.a=+(Z*cos(phi).toFixed(15)).toFixed(14);
114
- this.b=+(Z*sin(phi).toFixed(15)).toFixed(14);
115
- return this;
116
- }
117
- div(...z) {
118
- for (let i = 0; i < z.length; i++) {
119
- if (typeof z[i] === "number") z[i] = new Complex(z[i], 0);
120
- }
121
- let Z=+(this.z/prod(...z.map(n=>n.z))).toFixed(15);
122
- let phi=+(this.phi-sum(...z.map(n=>n.phi))).toFixed(15);
123
- this.a=+(Z*cos(phi).toFixed(15)).toFixed(15);
124
- this.b=+(Z*sin(phi).toFixed(15)).toFixed(15);
125
- return this;
126
- }
127
- pow(n) {
128
- if (floor(n) === n && n > 0) {
129
- let z=+(this.z**n).toFixed(15);
130
- let phi=+(this.phi*n).toFixed(15);
131
- this.a=+(z*cos(phi).toFixed(15)).toFixed(15);
132
- this.b=+(z*sin(phi).toFixed(15)).toFixed(15);
133
- }
134
- return this;
135
- }
136
- static fromExpo(z, phi) {
137
- return new Complex(
138
- +(z * cos(phi)).toFixed(13),
139
- +(z * sin(phi)).toFixed(13)
140
- );
141
- }
142
- get expo() {
143
- return [this.z, this.phi];
144
- }
145
- static add(c,...z) {
146
- return c.clone.add(...z);
147
- }
148
- static sub(c,...z) {
149
- return c.clone.sub(...z);
150
- }
151
- static mul(c,...z) {
152
- return c.clone.mul(...z);
153
- }
154
- static div(c,...z) {
155
- return c.clone.div(...z);
156
- }
157
- static pow(z,n){
158
- return z.clone.pow(n);
159
- }
160
- static xpowZ(x){
161
- return complex((x**this.a)*cos(this.b*ln(x)),(x**this.a)*sin(this.b*ln(x)));
162
- }
163
- sqrtn(n=2){
164
- return complex(sqrtn(this.z,n)*cos(this.phi/n),sqrtn(this.z,n)*sin(this.phi/n));
165
- }
166
- get sqrt(){
167
- return this.sqrtn(2);
168
- }
169
- get log(){
170
- return complex(this.z,this.phi);
171
- }
172
- get cos(){
173
- return complex(cos(this.a)*cosh(this.b),sin(this.a)*sinh(this.b))
174
- }
175
- get sin(){
176
- return complex(sin(this.a)*cosh(this.b),cos(this.a)*sinh(this.b))
177
- }
178
- get tan(){
179
- const de=cos(this.a*2)+cosh(this.b*2);
180
- return complex(sin(2*this.a)/de,sinh(2*this.b)/de);
181
- }
182
- printInConsole() {
183
- let string = this.a + " + " + this.b + " * i";
184
- console.log(string);
185
- return string;
186
- }
187
- print() {
188
- //return text(this.a + " + i * " + this.b);
189
- }
190
- UI() {
191
- return "<span>" + this.a + " + i * " + this.b + "</span>";
192
- }
193
- }
194
- const complex=(a,b)=>{
195
- if((a instanceof Array||ArrayBuffer.isView(a)) && (b instanceof Array||ArrayBuffer.isView(a)))return a.map((n,i)=>complex(a[i],b[i]));
196
- if(a instanceof Matrix && b instanceof Matrix){
197
- if((a.shape[0]!==b.shape[0])||(a.shape[1]!==b.shape[1]))return Error(0)
198
- const arr=a.arr.map((n,i)=>complex(a.arr[i],b.arr[i]))
199
- return new Matrix(a.rows,a.cols,...arr)
200
- }
201
- return new Complex(a,b)
202
- }
1
+ import ZikoMath from "../absract.js";
2
+ import{
3
+ cos,
4
+ sin,
5
+ tan,
6
+ pow,
7
+ floor,
8
+ hypot,
9
+ cosh,
10
+ sinh,
11
+ sqrtn,
12
+ atan2,
13
+ sqrt,
14
+ ln
15
+ }from "../functions/index.js"
16
+ import { Matrix } from "../matrix/index.js";
17
+ import {sum,prod,deg2rad} from "../utils/index.js";
18
+ class Complex extends ZikoMath{
19
+ constructor(a = 0, b = 0) {
20
+ super()
21
+ if(a instanceof Complex){
22
+ this.a=a.a;
23
+ this.b=a.b;
24
+ }
25
+ else if(typeof(a)==="object"){
26
+ if(("a" in b && "b" in a)){
27
+ this.a=a.a;
28
+ this.b=a.b;
29
+ }
30
+ else if(("a" in b && "z" in a)){
31
+ this.a=a.a;
32
+ this.b=sqrt((a.z**2)-(a.a**2));
33
+ }
34
+ else if(("a" in b && "phi" in a)){
35
+ this.a=a.a;
36
+ this.b=a.a*tan(a.phi);
37
+ }
38
+ else if(("b" in b && "z" in a)){
39
+ this.b=a.b;
40
+ this.a=sqrt((a.z**2)-(a.b**2));
41
+ }
42
+ else if(("b" in b && "phi" in a)){
43
+ this.b=b;
44
+ this.a=a.b/tan(a.phi);
45
+ }
46
+ else if(("z" in b && "phi" in a)){
47
+ this.a=a.z*cos(a.phi);
48
+ this.a=a.z*sin(a.phi);
49
+ }
50
+ }
51
+ else if(typeof(a)==="number"&&typeof(b)==="number"){
52
+ this.a = +a.toFixed(32);
53
+ this.b = +b.toFixed(32);
54
+ }
55
+ }
56
+ toString(){
57
+ let str = "";
58
+ if (this.a !== 0)
59
+ this.b >= 0
60
+ ? (str = `${this.a}+${this.b}*i`)
61
+ : (str = `${this.a}-${Math.abs(this.b)}*i`);
62
+ else
63
+ this.b >= 0
64
+ ? (str = `${this.b}*i`)
65
+ : (str = `-${Math.abs(this.b)}*i`);
66
+ return str;
67
+ }
68
+
69
+ get clone() {
70
+ return new Complex(this.a, this.b);
71
+ }
72
+ get z(){
73
+ return hypot(this.a,this.b);
74
+ }
75
+ get phi(){
76
+ return atan2(this.b , this.a);
77
+ }
78
+ static Zero() {
79
+ return new Complex(0, 0);
80
+ }
81
+ get conj() {
82
+ return new Complex(this.a, -this.b);
83
+ }
84
+ get inv() {
85
+ return new Complex(this.a / (pow(this.a, 2) + pow(this.b, 2)), -this.b / (pow(this.a, 2) + pow(this.b, 2)));
86
+ }
87
+ add(...z) {
88
+ for (let i = 0; i < z.length; i++) {
89
+ if (typeof z[i] === "number") z[i] = new Complex(z[i], 0);
90
+ }
91
+ let re = z.map((n) => n.a);
92
+ let im = z.map((n) => n.b);
93
+ this.a+=+sum(...re).toFixed(15);
94
+ this.b+=+sum(...im).toFixed(15);
95
+ return this;
96
+ }
97
+ sub(...z) {
98
+ for (let i = 0; i < z.length; i++) {
99
+ if (typeof z[i] === "number") z[i] = new Complex(z[i], 0);
100
+ }
101
+ let re = z.map((n) => n.a);
102
+ let im = z.map((n) => n.b);
103
+ this.a-=+sum(...re).toFixed(15);
104
+ this.b-=+sum(...im).toFixed(15);
105
+ return this;
106
+ }
107
+ mul(...z){
108
+ for (let i = 0; i < z.length; i++) {
109
+ if (typeof z[i] === "number") z[i] = new Complex(z[i], 0);
110
+ }
111
+ let Z=+prod(this.z,...z.map(n=>n.z)).toFixed(15);
112
+ let phi=+sum(this.phi,...z.map(n=>n.phi)).toFixed(15);
113
+ this.a=+(Z*cos(phi).toFixed(15)).toFixed(14);
114
+ this.b=+(Z*sin(phi).toFixed(15)).toFixed(14);
115
+ return this;
116
+ }
117
+ div(...z) {
118
+ for (let i = 0; i < z.length; i++) {
119
+ if (typeof z[i] === "number") z[i] = new Complex(z[i], 0);
120
+ }
121
+ let Z=+(this.z/prod(...z.map(n=>n.z))).toFixed(15);
122
+ let phi=+(this.phi-sum(...z.map(n=>n.phi))).toFixed(15);
123
+ this.a=+(Z*cos(phi).toFixed(15)).toFixed(15);
124
+ this.b=+(Z*sin(phi).toFixed(15)).toFixed(15);
125
+ return this;
126
+ }
127
+ pow(n) {
128
+ if (floor(n) === n && n > 0) {
129
+ let z=+(this.z**n).toFixed(15);
130
+ let phi=+(this.phi*n).toFixed(15);
131
+ this.a=+(z*cos(phi).toFixed(15)).toFixed(15);
132
+ this.b=+(z*sin(phi).toFixed(15)).toFixed(15);
133
+ }
134
+ return this;
135
+ }
136
+ static fromExpo(z, phi) {
137
+ return new Complex(
138
+ +(z * cos(phi)).toFixed(13),
139
+ +(z * sin(phi)).toFixed(13)
140
+ );
141
+ }
142
+ get expo() {
143
+ return [this.z, this.phi];
144
+ }
145
+ static add(c,...z) {
146
+ return c.clone.add(...z);
147
+ }
148
+ static sub(c,...z) {
149
+ return c.clone.sub(...z);
150
+ }
151
+ static mul(c,...z) {
152
+ return c.clone.mul(...z);
153
+ }
154
+ static div(c,...z) {
155
+ return c.clone.div(...z);
156
+ }
157
+ static pow(z,n){
158
+ return z.clone.pow(n);
159
+ }
160
+ static xpowZ(x){
161
+ return complex((x**this.a)*cos(this.b*ln(x)),(x**this.a)*sin(this.b*ln(x)));
162
+ }
163
+ sqrtn(n=2){
164
+ return complex(sqrtn(this.z,n)*cos(this.phi/n),sqrtn(this.z,n)*sin(this.phi/n));
165
+ }
166
+ get sqrt(){
167
+ return this.sqrtn(2);
168
+ }
169
+ get log(){
170
+ return complex(this.z,this.phi);
171
+ }
172
+ get cos(){
173
+ return complex(cos(this.a)*cosh(this.b),sin(this.a)*sinh(this.b))
174
+ }
175
+ get sin(){
176
+ return complex(sin(this.a)*cosh(this.b),cos(this.a)*sinh(this.b))
177
+ }
178
+ get tan(){
179
+ const de=cos(this.a*2)+cosh(this.b*2);
180
+ return complex(sin(2*this.a)/de,sinh(2*this.b)/de);
181
+ }
182
+ printInConsole() {
183
+ let string = this.a + " + " + this.b + " * i";
184
+ console.log(string);
185
+ return string;
186
+ }
187
+ print() {
188
+ //return text(this.a + " + i * " + this.b);
189
+ }
190
+ UI() {
191
+ return "<span>" + this.a + " + i * " + this.b + "</span>";
192
+ }
193
+ }
194
+ const complex=(a,b)=>{
195
+ if((a instanceof Array||ArrayBuffer.isView(a)) && (b instanceof Array||ArrayBuffer.isView(a)))return a.map((n,i)=>complex(a[i],b[i]));
196
+ if(a instanceof Matrix && b instanceof Matrix){
197
+ if((a.shape[0]!==b.shape[0])||(a.shape[1]!==b.shape[1]))return Error(0)
198
+ const arr=a.arr.map((n,i)=>complex(a.arr[i],b.arr[i]))
199
+ return new Matrix(a.rows,a.cols,...arr)
200
+ }
201
+ return new Complex(a,b)
202
+ }
203
203
  export{complex,Complex}
package/src/math/const.js CHANGED
@@ -1,3 +1,3 @@
1
- const { PI, E } = Math;
2
- const EPSILON=Number.EPSILON
1
+ const { PI, E } = Math;
2
+ const EPSILON=Number.EPSILON
3
3
  export{PI,E,EPSILON}
@@ -1,34 +1,34 @@
1
- class Combinaison {
2
- static withDiscount(comboOptions, comboLength) {
3
- if (comboLength === 1) {
4
- return comboOptions.map((comboOption) => [comboOption]);
5
- }
6
- const combos = [];
7
- comboOptions.forEach((currentOption, optionIndex) => {
8
- const smallerCombos = this.withDiscount(comboOptions.slice(optionIndex), comboLength - 1);
9
- smallerCombos.forEach((smallerCombo) => {
10
- combos.push([currentOption].concat(smallerCombo));
11
- });
12
- });
13
- return combos;
14
- }
15
- static withoutDiscount(comboOptions, comboLength) {
16
- if (comboLength === 1) {
17
- return comboOptions.map((comboOption) => [comboOption]);
18
- }
19
- const combos = [];
20
- comboOptions.forEach((currentOption, optionIndex) => {
21
- const smallerCombos = this.withoutDiscount(comboOptions.slice(optionIndex + 1), comboLength - 1);
22
- smallerCombos.forEach((smallerCombo) => {
23
- combos.push([currentOption].concat(smallerCombo));
24
- });
25
- });
26
-
27
- return combos;
28
- }
29
- }
30
- const combinaison=(comboOptions, comboLength, discount=false)=>Combinaison[discount?"withDiscount":"withoutDiscount"](comboOptions, comboLength)
31
- export{
32
- Combinaison,
33
- combinaison
1
+ class Combinaison {
2
+ static withDiscount(comboOptions, comboLength) {
3
+ if (comboLength === 1) {
4
+ return comboOptions.map((comboOption) => [comboOption]);
5
+ }
6
+ const combos = [];
7
+ comboOptions.forEach((currentOption, optionIndex) => {
8
+ const smallerCombos = this.withDiscount(comboOptions.slice(optionIndex), comboLength - 1);
9
+ smallerCombos.forEach((smallerCombo) => {
10
+ combos.push([currentOption].concat(smallerCombo));
11
+ });
12
+ });
13
+ return combos;
14
+ }
15
+ static withoutDiscount(comboOptions, comboLength) {
16
+ if (comboLength === 1) {
17
+ return comboOptions.map((comboOption) => [comboOption]);
18
+ }
19
+ const combos = [];
20
+ comboOptions.forEach((currentOption, optionIndex) => {
21
+ const smallerCombos = this.withoutDiscount(comboOptions.slice(optionIndex + 1), comboLength - 1);
22
+ smallerCombos.forEach((smallerCombo) => {
23
+ combos.push([currentOption].concat(smallerCombo));
24
+ });
25
+ });
26
+
27
+ return combos;
28
+ }
29
+ }
30
+ const combinaison=(comboOptions, comboLength, discount=false)=>Combinaison[discount?"withDiscount":"withoutDiscount"](comboOptions, comboLength)
31
+ export{
32
+ Combinaison,
33
+ combinaison
34
34
  }