oakscriptjs 0.8.2 → 0.9.0

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 (546) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +31 -9
  3. package/dist/cjs/array/index.d.ts +701 -0
  4. package/dist/cjs/array/index.d.ts.map +1 -0
  5. package/dist/cjs/array/index.js +392 -0
  6. package/dist/cjs/array/index.js.map +7 -0
  7. package/dist/cjs/box/index.d.ts +444 -0
  8. package/dist/cjs/box/index.d.ts.map +1 -0
  9. package/dist/cjs/box/index.js +246 -0
  10. package/dist/cjs/box/index.js.map +7 -0
  11. package/dist/cjs/callsite/index.d.ts +61 -0
  12. package/dist/cjs/callsite/index.d.ts.map +1 -0
  13. package/dist/cjs/callsite/index.js +65 -0
  14. package/dist/cjs/callsite/index.js.map +7 -0
  15. package/dist/cjs/chartpoint/index.d.ts +90 -0
  16. package/dist/cjs/chartpoint/index.d.ts.map +1 -0
  17. package/dist/cjs/chartpoint/index.js +56 -0
  18. package/dist/cjs/chartpoint/index.js.map +7 -0
  19. package/dist/cjs/color/index.d.ts +285 -0
  20. package/dist/cjs/color/index.d.ts.map +1 -0
  21. package/dist/cjs/color/index.js +143 -0
  22. package/dist/cjs/color/index.js.map +7 -0
  23. package/dist/cjs/compare/index.d.ts +26 -0
  24. package/dist/cjs/compare/index.d.ts.map +1 -0
  25. package/dist/cjs/compare/index.js +50 -0
  26. package/dist/cjs/compare/index.js.map +7 -0
  27. package/dist/cjs/drawing/registry.d.ts +42 -0
  28. package/dist/cjs/drawing/registry.d.ts.map +1 -0
  29. package/dist/cjs/drawing/registry.js +87 -0
  30. package/dist/cjs/drawing/registry.js.map +7 -0
  31. package/dist/cjs/index.d.ts +85 -0
  32. package/dist/cjs/index.d.ts.map +1 -0
  33. package/dist/cjs/index.js +184 -0
  34. package/dist/cjs/index.js.map +7 -0
  35. package/dist/cjs/indicator.d.ts +117 -0
  36. package/dist/cjs/indicator.d.ts.map +1 -0
  37. package/dist/cjs/indicator.js +74 -0
  38. package/dist/cjs/indicator.js.map +7 -0
  39. package/dist/cjs/input.d.ts +196 -0
  40. package/dist/cjs/input.d.ts.map +1 -0
  41. package/dist/cjs/input.js +197 -0
  42. package/dist/cjs/input.js.map +7 -0
  43. package/dist/cjs/label/index.d.ts +303 -0
  44. package/dist/cjs/label/index.d.ts.map +1 -0
  45. package/dist/cjs/label/index.js +190 -0
  46. package/dist/cjs/label/index.js.map +7 -0
  47. package/dist/cjs/lib/index.d.ts +8 -0
  48. package/dist/cjs/lib/index.d.ts.map +1 -0
  49. package/dist/cjs/lib/index.js +19 -0
  50. package/dist/cjs/lib/index.js.map +7 -0
  51. package/dist/{lib → cjs/lib}/zigzag/index.d.ts +4 -1
  52. package/dist/cjs/lib/zigzag/index.d.ts.map +1 -0
  53. package/dist/cjs/lib/zigzag/index.js +27 -0
  54. package/dist/cjs/lib/zigzag/index.js.map +7 -0
  55. package/dist/cjs/lib/zigzag/zigzag.d.ts +100 -0
  56. package/dist/cjs/lib/zigzag/zigzag.d.ts.map +1 -0
  57. package/dist/cjs/lib/zigzag/zigzag.js +207 -0
  58. package/dist/cjs/lib/zigzag/zigzag.js.map +7 -0
  59. package/dist/cjs/line/index.d.ts +342 -0
  60. package/dist/cjs/line/index.d.ts.map +1 -0
  61. package/dist/cjs/line/index.js +193 -0
  62. package/dist/cjs/line/index.js.map +7 -0
  63. package/dist/cjs/linefill/index.d.ts +124 -0
  64. package/dist/cjs/linefill/index.d.ts.map +1 -0
  65. package/dist/cjs/linefill/index.js +56 -0
  66. package/dist/cjs/linefill/index.js.map +7 -0
  67. package/dist/cjs/map/index.d.ts +69 -0
  68. package/dist/cjs/map/index.d.ts.map +1 -0
  69. package/dist/cjs/map/index.js +80 -0
  70. package/dist/cjs/map/index.js.map +7 -0
  71. package/dist/cjs/math/index.d.ts +560 -0
  72. package/dist/cjs/math/index.d.ts.map +1 -0
  73. package/dist/cjs/math/index.js +441 -0
  74. package/dist/cjs/math/index.js.map +7 -0
  75. package/dist/cjs/matrix/index.d.ts +1231 -0
  76. package/dist/cjs/matrix/index.d.ts.map +1 -0
  77. package/dist/cjs/matrix/index.js +1200 -0
  78. package/dist/cjs/matrix/index.js.map +7 -0
  79. package/dist/cjs/package.json +1 -0
  80. package/dist/cjs/plot.d.ts +76 -0
  81. package/dist/cjs/plot.d.ts.map +1 -0
  82. package/dist/cjs/plot.js +51 -0
  83. package/dist/cjs/plot.js.map +7 -0
  84. package/dist/cjs/polyline/index.d.ts +115 -0
  85. package/dist/cjs/polyline/index.d.ts.map +1 -0
  86. package/dist/cjs/polyline/index.js +76 -0
  87. package/dist/cjs/polyline/index.js.map +7 -0
  88. package/dist/cjs/runtime/adapters/LightweightChartsAdapter.d.ts +86 -0
  89. package/dist/cjs/runtime/adapters/LightweightChartsAdapter.d.ts.map +1 -0
  90. package/dist/cjs/runtime/adapters/LightweightChartsAdapter.js +141 -0
  91. package/dist/cjs/runtime/adapters/LightweightChartsAdapter.js.map +7 -0
  92. package/dist/cjs/runtime/adapters/SimpleInputAdapter.d.ts +59 -0
  93. package/dist/cjs/runtime/adapters/SimpleInputAdapter.d.ts.map +1 -0
  94. package/dist/cjs/runtime/adapters/SimpleInputAdapter.js +117 -0
  95. package/dist/cjs/runtime/adapters/SimpleInputAdapter.js.map +7 -0
  96. package/dist/{runtime → cjs/runtime}/index.d.ts +12 -5
  97. package/dist/cjs/runtime/index.d.ts.map +1 -0
  98. package/dist/cjs/runtime/index.js +49 -0
  99. package/dist/cjs/runtime/index.js.map +7 -0
  100. package/dist/cjs/runtime/inputs.d.ts +91 -0
  101. package/dist/cjs/runtime/inputs.d.ts.map +1 -0
  102. package/dist/cjs/runtime/inputs.js +262 -0
  103. package/dist/cjs/runtime/inputs.js.map +7 -0
  104. package/dist/cjs/runtime/runtime.d.ts +70 -0
  105. package/dist/cjs/runtime/runtime.d.ts.map +1 -0
  106. package/dist/cjs/runtime/runtime.js +148 -0
  107. package/dist/cjs/runtime/runtime.js.map +7 -0
  108. package/dist/cjs/runtime/series.d.ts +362 -0
  109. package/dist/cjs/runtime/series.d.ts.map +1 -0
  110. package/dist/cjs/runtime/series.js +560 -0
  111. package/dist/cjs/runtime/series.js.map +7 -0
  112. package/dist/cjs/runtime/types.d.ts +282 -0
  113. package/dist/cjs/runtime/types.d.ts.map +1 -0
  114. package/dist/cjs/runtime/types.js +17 -0
  115. package/dist/cjs/runtime/types.js.map +7 -0
  116. package/dist/cjs/script/index.d.ts +987 -0
  117. package/dist/cjs/script/index.d.ts.map +1 -0
  118. package/dist/cjs/script/index.js +1169 -0
  119. package/dist/cjs/script/index.js.map +7 -0
  120. package/dist/cjs/security/resample.d.ts +63 -0
  121. package/dist/cjs/security/resample.d.ts.map +1 -0
  122. package/dist/cjs/security/resample.js +84 -0
  123. package/dist/cjs/security/resample.js.map +7 -0
  124. package/dist/cjs/session/bars.d.ts +80 -0
  125. package/dist/cjs/session/bars.d.ts.map +1 -0
  126. package/dist/cjs/session/bars.js +219 -0
  127. package/dist/cjs/session/bars.js.map +7 -0
  128. package/dist/cjs/session/calendar.d.ts +70 -0
  129. package/dist/cjs/session/calendar.d.ts.map +1 -0
  130. package/dist/cjs/session/calendar.js +164 -0
  131. package/dist/cjs/session/calendar.js.map +7 -0
  132. package/dist/cjs/str/dateformat.d.ts +15 -0
  133. package/dist/cjs/str/dateformat.d.ts.map +1 -0
  134. package/dist/cjs/str/dateformat.js +149 -0
  135. package/dist/cjs/str/dateformat.js.map +7 -0
  136. package/dist/cjs/str/index.d.ts +459 -0
  137. package/dist/cjs/str/index.d.ts.map +1 -0
  138. package/dist/cjs/str/index.js +143 -0
  139. package/dist/cjs/str/index.js.map +7 -0
  140. package/dist/cjs/str/messageformat.d.ts +14 -0
  141. package/dist/cjs/str/messageformat.d.ts.map +1 -0
  142. package/dist/cjs/str/messageformat.js +114 -0
  143. package/dist/cjs/str/messageformat.js.map +7 -0
  144. package/dist/cjs/str/numberformat.d.ts +19 -0
  145. package/dist/cjs/str/numberformat.d.ts.map +1 -0
  146. package/dist/cjs/str/numberformat.js +170 -0
  147. package/dist/cjs/str/numberformat.js.map +7 -0
  148. package/dist/{strategy → cjs/strategy}/index.d.ts +50 -0
  149. package/dist/cjs/strategy/index.d.ts.map +1 -0
  150. package/dist/cjs/strategy/index.js +92 -0
  151. package/dist/cjs/strategy/index.js.map +7 -0
  152. package/dist/cjs/ta/index.d.ts +1397 -0
  153. package/dist/cjs/ta/index.d.ts.map +1 -0
  154. package/dist/cjs/ta/index.js +1715 -0
  155. package/dist/cjs/ta/index.js.map +7 -0
  156. package/dist/cjs/ta/running-sum.d.ts +30 -0
  157. package/dist/cjs/ta/running-sum.d.ts.map +1 -0
  158. package/dist/cjs/ta/running-sum.js +99 -0
  159. package/dist/cjs/ta/running-sum.js.map +7 -0
  160. package/dist/cjs/ta-series.d.ts +558 -0
  161. package/dist/cjs/ta-series.d.ts.map +1 -0
  162. package/dist/cjs/ta-series.js +606 -0
  163. package/dist/cjs/ta-series.js.map +7 -0
  164. package/dist/cjs/text/index.d.ts +14 -0
  165. package/dist/cjs/text/index.d.ts.map +1 -0
  166. package/dist/cjs/text/index.js +29 -0
  167. package/dist/cjs/text/index.js.map +7 -0
  168. package/dist/cjs/time/datestring.d.ts +23 -0
  169. package/dist/cjs/time/datestring.d.ts.map +1 -0
  170. package/dist/cjs/time/datestring.js +106 -0
  171. package/dist/cjs/time/datestring.js.map +7 -0
  172. package/dist/cjs/time/index.d.ts +89 -0
  173. package/dist/cjs/time/index.d.ts.map +1 -0
  174. package/dist/cjs/time/index.js +85 -0
  175. package/dist/cjs/time/index.js.map +7 -0
  176. package/dist/cjs/time/session.d.ts +17 -0
  177. package/dist/cjs/time/session.d.ts.map +1 -0
  178. package/dist/cjs/time/session.js +65 -0
  179. package/dist/cjs/time/session.js.map +7 -0
  180. package/dist/cjs/time/timezone.d.ts +40 -0
  181. package/dist/cjs/time/timezone.d.ts.map +1 -0
  182. package/dist/cjs/time/timezone.js +125 -0
  183. package/dist/cjs/time/timezone.js.map +7 -0
  184. package/dist/cjs/timeframe/index.d.ts +73 -0
  185. package/dist/cjs/timeframe/index.d.ts.map +1 -0
  186. package/dist/cjs/timeframe/index.js +85 -0
  187. package/dist/cjs/timeframe/index.js.map +7 -0
  188. package/dist/cjs/types/index.d.ts +343 -0
  189. package/dist/cjs/types/index.d.ts.map +1 -0
  190. package/dist/cjs/types/index.js +32 -0
  191. package/dist/cjs/types/index.js.map +7 -0
  192. package/dist/cjs/types/metadata.d.ts +300 -0
  193. package/dist/cjs/types/metadata.d.ts.map +1 -0
  194. package/dist/cjs/types/metadata.js +17 -0
  195. package/dist/cjs/types/metadata.js.map +7 -0
  196. package/dist/cjs/utils/index.d.ts +167 -0
  197. package/dist/cjs/utils/index.d.ts.map +1 -0
  198. package/dist/cjs/utils/index.js +209 -0
  199. package/dist/cjs/utils/index.js.map +7 -0
  200. package/dist/esm/array/index.d.ts +701 -0
  201. package/dist/esm/array/index.d.ts.map +1 -0
  202. package/dist/esm/array/index.js +983 -0
  203. package/dist/esm/array/index.js.map +1 -0
  204. package/dist/esm/box/index.d.ts +444 -0
  205. package/dist/esm/box/index.d.ts.map +1 -0
  206. package/dist/esm/box/index.js +602 -0
  207. package/dist/esm/box/index.js.map +1 -0
  208. package/dist/esm/callsite/index.d.ts +61 -0
  209. package/dist/esm/callsite/index.d.ts.map +1 -0
  210. package/dist/esm/callsite/index.js +97 -0
  211. package/dist/esm/callsite/index.js.map +1 -0
  212. package/dist/esm/chartpoint/index.d.ts +90 -0
  213. package/dist/esm/chartpoint/index.d.ts.map +1 -0
  214. package/dist/esm/chartpoint/index.js +113 -0
  215. package/dist/esm/chartpoint/index.js.map +1 -0
  216. package/dist/esm/color/index.d.ts +285 -0
  217. package/dist/esm/color/index.d.ts.map +1 -0
  218. package/dist/esm/color/index.js +373 -0
  219. package/dist/esm/color/index.js.map +1 -0
  220. package/dist/esm/compare/index.d.ts +26 -0
  221. package/dist/esm/compare/index.d.ts.map +1 -0
  222. package/dist/esm/compare/index.js +39 -0
  223. package/dist/esm/compare/index.js.map +1 -0
  224. package/dist/esm/drawing/registry.d.ts +42 -0
  225. package/dist/esm/drawing/registry.d.ts.map +1 -0
  226. package/dist/esm/drawing/registry.js +89 -0
  227. package/dist/esm/drawing/registry.js.map +1 -0
  228. package/dist/esm/index.d.ts +85 -0
  229. package/dist/esm/index.d.ts.map +1 -0
  230. package/dist/esm/index.js +96 -0
  231. package/dist/esm/index.js.map +1 -0
  232. package/dist/esm/indicator.d.ts +117 -0
  233. package/dist/esm/indicator.d.ts.map +1 -0
  234. package/dist/esm/indicator.js +84 -0
  235. package/dist/esm/indicator.js.map +1 -0
  236. package/dist/esm/input.d.ts +196 -0
  237. package/dist/esm/input.d.ts.map +1 -0
  238. package/dist/esm/input.js +183 -0
  239. package/dist/esm/input.js.map +1 -0
  240. package/dist/esm/label/index.d.ts +303 -0
  241. package/dist/esm/label/index.d.ts.map +1 -0
  242. package/dist/esm/label/index.js +417 -0
  243. package/dist/esm/label/index.js.map +1 -0
  244. package/dist/esm/lib/index.d.ts +8 -0
  245. package/dist/esm/lib/index.d.ts.map +1 -0
  246. package/dist/esm/lib/index.js +8 -0
  247. package/dist/esm/lib/index.js.map +1 -0
  248. package/dist/esm/lib/zigzag/index.d.ts +5 -0
  249. package/dist/esm/lib/zigzag/index.d.ts.map +1 -0
  250. package/dist/esm/lib/zigzag/index.js +5 -0
  251. package/dist/esm/lib/zigzag/index.js.map +1 -0
  252. package/dist/esm/lib/zigzag/zigzag.d.ts +100 -0
  253. package/dist/esm/lib/zigzag/zigzag.d.ts.map +1 -0
  254. package/dist/esm/lib/zigzag/zigzag.js +229 -0
  255. package/dist/esm/lib/zigzag/zigzag.js.map +1 -0
  256. package/dist/esm/line/index.d.ts +342 -0
  257. package/dist/esm/line/index.d.ts.map +1 -0
  258. package/dist/esm/line/index.js +470 -0
  259. package/dist/esm/line/index.js.map +1 -0
  260. package/dist/esm/linefill/index.d.ts +124 -0
  261. package/dist/esm/linefill/index.d.ts.map +1 -0
  262. package/dist/esm/linefill/index.js +144 -0
  263. package/dist/esm/linefill/index.js.map +1 -0
  264. package/dist/esm/map/index.d.ts +69 -0
  265. package/dist/esm/map/index.d.ts.map +1 -0
  266. package/dist/esm/map/index.js +106 -0
  267. package/dist/esm/map/index.js.map +1 -0
  268. package/dist/esm/math/index.d.ts +560 -0
  269. package/dist/esm/math/index.d.ts.map +1 -0
  270. package/dist/esm/math/index.js +495 -0
  271. package/dist/esm/math/index.js.map +1 -0
  272. package/dist/esm/matrix/index.d.ts +1231 -0
  273. package/dist/esm/matrix/index.d.ts.map +1 -0
  274. package/dist/esm/matrix/index.js +2450 -0
  275. package/dist/esm/matrix/index.js.map +1 -0
  276. package/dist/esm/plot.d.ts +76 -0
  277. package/dist/esm/plot.d.ts.map +1 -0
  278. package/dist/esm/plot.js +63 -0
  279. package/dist/esm/plot.js.map +1 -0
  280. package/dist/esm/polyline/index.d.ts +115 -0
  281. package/dist/esm/polyline/index.d.ts.map +1 -0
  282. package/dist/esm/polyline/index.js +157 -0
  283. package/dist/esm/polyline/index.js.map +1 -0
  284. package/dist/esm/runtime/adapters/LightweightChartsAdapter.d.ts +86 -0
  285. package/dist/esm/runtime/adapters/LightweightChartsAdapter.d.ts.map +1 -0
  286. package/dist/esm/runtime/adapters/LightweightChartsAdapter.js +140 -0
  287. package/dist/esm/runtime/adapters/LightweightChartsAdapter.js.map +1 -0
  288. package/dist/esm/runtime/adapters/SimpleInputAdapter.d.ts +59 -0
  289. package/dist/esm/runtime/adapters/SimpleInputAdapter.d.ts.map +1 -0
  290. package/dist/esm/runtime/adapters/SimpleInputAdapter.js +115 -0
  291. package/dist/esm/runtime/adapters/SimpleInputAdapter.js.map +1 -0
  292. package/dist/esm/runtime/index.d.ts +13 -0
  293. package/dist/esm/runtime/index.d.ts.map +1 -0
  294. package/dist/esm/runtime/index.js +14 -0
  295. package/dist/esm/runtime/index.js.map +1 -0
  296. package/dist/esm/runtime/inputs.d.ts +91 -0
  297. package/dist/esm/runtime/inputs.d.ts.map +1 -0
  298. package/dist/esm/runtime/inputs.js +334 -0
  299. package/dist/esm/runtime/inputs.js.map +1 -0
  300. package/dist/esm/runtime/runtime.d.ts +70 -0
  301. package/dist/esm/runtime/runtime.d.ts.map +1 -0
  302. package/dist/esm/runtime/runtime.js +193 -0
  303. package/dist/esm/runtime/runtime.js.map +1 -0
  304. package/dist/esm/runtime/series.d.ts +362 -0
  305. package/dist/esm/runtime/series.d.ts.map +1 -0
  306. package/dist/esm/runtime/series.js +583 -0
  307. package/dist/esm/runtime/series.js.map +1 -0
  308. package/dist/esm/runtime/types.d.ts +282 -0
  309. package/dist/esm/runtime/types.d.ts.map +1 -0
  310. package/dist/esm/runtime/types.js +7 -0
  311. package/dist/esm/runtime/types.js.map +1 -0
  312. package/dist/esm/script/index.d.ts +987 -0
  313. package/dist/esm/script/index.d.ts.map +1 -0
  314. package/dist/esm/script/index.js +1289 -0
  315. package/dist/esm/script/index.js.map +1 -0
  316. package/dist/esm/security/resample.d.ts +63 -0
  317. package/dist/esm/security/resample.d.ts.map +1 -0
  318. package/dist/esm/security/resample.js +110 -0
  319. package/dist/esm/security/resample.js.map +1 -0
  320. package/dist/esm/session/bars.d.ts +80 -0
  321. package/dist/esm/session/bars.d.ts.map +1 -0
  322. package/dist/esm/session/bars.js +232 -0
  323. package/dist/esm/session/bars.js.map +1 -0
  324. package/dist/esm/session/calendar.d.ts +70 -0
  325. package/dist/esm/session/calendar.d.ts.map +1 -0
  326. package/dist/esm/session/calendar.js +172 -0
  327. package/dist/esm/session/calendar.js.map +1 -0
  328. package/dist/esm/str/dateformat.d.ts +15 -0
  329. package/dist/esm/str/dateformat.d.ts.map +1 -0
  330. package/dist/esm/str/dateformat.js +136 -0
  331. package/dist/esm/str/dateformat.js.map +1 -0
  332. package/dist/esm/str/index.d.ts +459 -0
  333. package/dist/esm/str/index.d.ts.map +1 -0
  334. package/dist/esm/str/index.js +540 -0
  335. package/dist/esm/str/index.js.map +1 -0
  336. package/dist/esm/str/messageformat.d.ts +14 -0
  337. package/dist/esm/str/messageformat.d.ts.map +1 -0
  338. package/dist/esm/str/messageformat.js +111 -0
  339. package/dist/esm/str/messageformat.js.map +1 -0
  340. package/dist/esm/str/numberformat.d.ts +19 -0
  341. package/dist/esm/str/numberformat.d.ts.map +1 -0
  342. package/dist/esm/str/numberformat.js +189 -0
  343. package/dist/esm/str/numberformat.js.map +1 -0
  344. package/dist/esm/strategy/index.d.ts +245 -0
  345. package/dist/esm/strategy/index.d.ts.map +1 -0
  346. package/dist/esm/strategy/index.js +84 -0
  347. package/dist/esm/strategy/index.js.map +1 -0
  348. package/dist/esm/ta/index.d.ts +1397 -0
  349. package/dist/esm/ta/index.d.ts.map +1 -0
  350. package/dist/esm/ta/index.js +3227 -0
  351. package/dist/esm/ta/index.js.map +1 -0
  352. package/dist/esm/ta/running-sum.d.ts +30 -0
  353. package/dist/esm/ta/running-sum.d.ts.map +1 -0
  354. package/dist/esm/ta/running-sum.js +113 -0
  355. package/dist/esm/ta/running-sum.js.map +1 -0
  356. package/dist/esm/ta-series.d.ts +558 -0
  357. package/dist/esm/ta-series.d.ts.map +1 -0
  358. package/dist/esm/ta-series.js +910 -0
  359. package/dist/esm/ta-series.js.map +1 -0
  360. package/dist/esm/text/index.d.ts +14 -0
  361. package/dist/esm/text/index.d.ts.map +1 -0
  362. package/dist/esm/text/index.js +14 -0
  363. package/dist/esm/text/index.js.map +1 -0
  364. package/dist/esm/time/datestring.d.ts +23 -0
  365. package/dist/esm/time/datestring.d.ts.map +1 -0
  366. package/dist/esm/time/datestring.js +94 -0
  367. package/dist/esm/time/datestring.js.map +1 -0
  368. package/dist/esm/time/index.d.ts +89 -0
  369. package/dist/esm/time/index.d.ts.map +1 -0
  370. package/dist/esm/time/index.js +108 -0
  371. package/dist/esm/time/index.js.map +1 -0
  372. package/dist/esm/time/session.d.ts +17 -0
  373. package/dist/esm/time/session.d.ts.map +1 -0
  374. package/dist/esm/time/session.js +69 -0
  375. package/dist/esm/time/session.js.map +1 -0
  376. package/dist/esm/time/timezone.d.ts +40 -0
  377. package/dist/esm/time/timezone.d.ts.map +1 -0
  378. package/dist/esm/time/timezone.js +144 -0
  379. package/dist/esm/time/timezone.js.map +1 -0
  380. package/dist/esm/timeframe/index.d.ts +73 -0
  381. package/dist/esm/timeframe/index.d.ts.map +1 -0
  382. package/dist/esm/timeframe/index.js +131 -0
  383. package/dist/esm/timeframe/index.js.map +1 -0
  384. package/dist/esm/types/index.d.ts +343 -0
  385. package/dist/esm/types/index.d.ts.map +1 -0
  386. package/dist/esm/types/index.js +17 -0
  387. package/dist/esm/types/index.js.map +1 -0
  388. package/dist/esm/types/metadata.d.ts +300 -0
  389. package/dist/esm/types/metadata.d.ts.map +1 -0
  390. package/dist/esm/types/metadata.js +7 -0
  391. package/dist/esm/types/metadata.js.map +1 -0
  392. package/dist/esm/utils/index.d.ts +167 -0
  393. package/dist/esm/utils/index.d.ts.map +1 -0
  394. package/dist/esm/utils/index.js +295 -0
  395. package/dist/esm/utils/index.js.map +1 -0
  396. package/package.json +53 -23
  397. package/src/array/index.ts +1056 -0
  398. package/src/box/index.ts +680 -0
  399. package/src/callsite/index.ts +104 -0
  400. package/src/chartpoint/index.ts +126 -0
  401. package/src/color/index.ts +411 -0
  402. package/src/compare/index.ts +46 -0
  403. package/src/drawing/registry.ts +106 -0
  404. package/src/index.ts +201 -0
  405. package/src/indicator.ts +185 -0
  406. package/src/input.ts +280 -0
  407. package/src/label/index.ts +490 -0
  408. package/src/lib/index.ts +8 -0
  409. package/src/lib/zigzag/index.ts +13 -0
  410. package/src/lib/zigzag/zigzag.ts +318 -0
  411. package/src/line/index.ts +530 -0
  412. package/src/linefill/index.ts +152 -0
  413. package/src/map/index.ts +115 -0
  414. package/src/math/index.ts +1071 -0
  415. package/src/matrix/index.ts +2697 -0
  416. package/src/plot.ts +121 -0
  417. package/src/polyline/index.ts +184 -0
  418. package/src/runtime/adapters/LightweightChartsAdapter.ts +201 -0
  419. package/src/runtime/adapters/SimpleInputAdapter.ts +132 -0
  420. package/src/runtime/index.ts +52 -0
  421. package/src/runtime/inputs.ts +377 -0
  422. package/src/runtime/runtime.ts +241 -0
  423. package/src/runtime/series.ts +644 -0
  424. package/src/runtime/types.ts +292 -0
  425. package/src/script/index.ts +1865 -0
  426. package/src/security/resample.ts +119 -0
  427. package/src/session/bars.ts +262 -0
  428. package/src/session/calendar.ts +199 -0
  429. package/src/str/dateformat.ts +104 -0
  430. package/src/str/index.ts +557 -0
  431. package/src/str/messageformat.ts +109 -0
  432. package/src/str/numberformat.ts +197 -0
  433. package/src/strategy/index.ts +281 -0
  434. package/src/ta/index.ts +3580 -0
  435. package/src/ta/running-sum.ts +117 -0
  436. package/src/ta-series.ts +1036 -0
  437. package/src/text/index.ts +14 -0
  438. package/src/time/datestring.ts +96 -0
  439. package/src/time/index.ts +161 -0
  440. package/src/time/session.ts +79 -0
  441. package/src/time/timezone.ts +180 -0
  442. package/src/timeframe/index.ts +144 -0
  443. package/src/types/index.ts +398 -0
  444. package/src/types/metadata.ts +334 -0
  445. package/src/utils/index.ts +334 -0
  446. package/dist/array/index.d.ts +0 -57
  447. package/dist/array/index.d.ts.map +0 -1
  448. package/dist/box/index.d.ts +0 -37
  449. package/dist/box/index.d.ts.map +0 -1
  450. package/dist/callsite/index.d.ts +0 -7
  451. package/dist/callsite/index.d.ts.map +0 -1
  452. package/dist/chartpoint/index.d.ts +0 -8
  453. package/dist/chartpoint/index.d.ts.map +0 -1
  454. package/dist/color/index.d.ts +0 -28
  455. package/dist/color/index.d.ts.map +0 -1
  456. package/dist/compare/index.d.ts +0 -8
  457. package/dist/compare/index.d.ts.map +0 -1
  458. package/dist/drawing/registry.d.ts +0 -19
  459. package/dist/drawing/registry.d.ts.map +0 -1
  460. package/dist/index.cjs +0 -7981
  461. package/dist/index.d.ts +0 -64
  462. package/dist/index.d.ts.map +0 -1
  463. package/dist/index.mjs +0 -7964
  464. package/dist/indicator.d.ts +0 -42
  465. package/dist/indicator.d.ts.map +0 -1
  466. package/dist/input.d.ts +0 -47
  467. package/dist/input.d.ts.map +0 -1
  468. package/dist/label/index.d.ts +0 -30
  469. package/dist/label/index.d.ts.map +0 -1
  470. package/dist/lib/index.d.ts +0 -2
  471. package/dist/lib/index.d.ts.map +0 -1
  472. package/dist/lib/zigzag/index.d.ts.map +0 -1
  473. package/dist/lib/zigzag/zigzag.d.ts +0 -47
  474. package/dist/lib/zigzag/zigzag.d.ts.map +0 -1
  475. package/dist/line/index.d.ts +0 -30
  476. package/dist/line/index.d.ts.map +0 -1
  477. package/dist/linefill/index.d.ts +0 -10
  478. package/dist/linefill/index.d.ts.map +0 -1
  479. package/dist/map/index.d.ts +0 -14
  480. package/dist/map/index.d.ts.map +0 -1
  481. package/dist/math/index.d.ts +0 -53
  482. package/dist/math/index.d.ts.map +0 -1
  483. package/dist/matrix/index.d.ts +0 -52
  484. package/dist/matrix/index.d.ts.map +0 -1
  485. package/dist/plot.d.ts +0 -20
  486. package/dist/plot.d.ts.map +0 -1
  487. package/dist/polyline/index.d.ts +0 -11
  488. package/dist/polyline/index.d.ts.map +0 -1
  489. package/dist/runtime/adapters/LightweightChartsAdapter.d.ts +0 -15
  490. package/dist/runtime/adapters/LightweightChartsAdapter.d.ts.map +0 -1
  491. package/dist/runtime/adapters/SimpleInputAdapter.d.ts +0 -16
  492. package/dist/runtime/adapters/SimpleInputAdapter.d.ts.map +0 -1
  493. package/dist/runtime/index.cjs +0 -600
  494. package/dist/runtime/index.d.ts.map +0 -1
  495. package/dist/runtime/index.mjs +0 -577
  496. package/dist/runtime/inputs.d.ts +0 -13
  497. package/dist/runtime/inputs.d.ts.map +0 -1
  498. package/dist/runtime/runtime.d.ts +0 -16
  499. package/dist/runtime/runtime.d.ts.map +0 -1
  500. package/dist/runtime/series.d.ts +0 -60
  501. package/dist/runtime/series.d.ts.map +0 -1
  502. package/dist/runtime/types.d.ts +0 -126
  503. package/dist/runtime/types.d.ts.map +0 -1
  504. package/dist/script/index.cjs +0 -6377
  505. package/dist/script/index.d.ts +0 -713
  506. package/dist/script/index.d.ts.map +0 -1
  507. package/dist/script/index.mjs +0 -6360
  508. package/dist/security/resample.d.ts +0 -13
  509. package/dist/security/resample.d.ts.map +0 -1
  510. package/dist/session/bars.d.ts +0 -34
  511. package/dist/session/bars.d.ts.map +0 -1
  512. package/dist/session/calendar.d.ts +0 -31
  513. package/dist/session/calendar.d.ts.map +0 -1
  514. package/dist/str/dateformat.d.ts +0 -2
  515. package/dist/str/dateformat.d.ts.map +0 -1
  516. package/dist/str/index.d.ts +0 -24
  517. package/dist/str/index.d.ts.map +0 -1
  518. package/dist/str/messageformat.d.ts +0 -2
  519. package/dist/str/messageformat.d.ts.map +0 -1
  520. package/dist/str/numberformat.d.ts +0 -3
  521. package/dist/str/numberformat.d.ts.map +0 -1
  522. package/dist/strategy/index.d.ts.map +0 -1
  523. package/dist/ta/index.d.ts +0 -72
  524. package/dist/ta/index.d.ts.map +0 -1
  525. package/dist/ta/running-sum.d.ts +0 -3
  526. package/dist/ta/running-sum.d.ts.map +0 -1
  527. package/dist/ta-series.d.ts +0 -143
  528. package/dist/ta-series.d.ts.map +0 -1
  529. package/dist/text/index.d.ts +0 -4
  530. package/dist/text/index.d.ts.map +0 -1
  531. package/dist/time/datestring.d.ts +0 -2
  532. package/dist/time/datestring.d.ts.map +0 -1
  533. package/dist/time/index.d.ts +0 -15
  534. package/dist/time/index.d.ts.map +0 -1
  535. package/dist/time/session.d.ts +0 -2
  536. package/dist/time/session.d.ts.map +0 -1
  537. package/dist/time/timezone.d.ts +0 -13
  538. package/dist/time/timezone.d.ts.map +0 -1
  539. package/dist/timeframe/index.d.ts +0 -17
  540. package/dist/timeframe/index.d.ts.map +0 -1
  541. package/dist/types/index.d.ts +0 -181
  542. package/dist/types/index.d.ts.map +0 -1
  543. package/dist/types/metadata.d.ts +0 -132
  544. package/dist/types/metadata.d.ts.map +0 -1
  545. package/dist/utils/index.d.ts +0 -26
  546. package/dist/utils/index.d.ts.map +0 -1
@@ -0,0 +1,1200 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var matrix_exports = {};
20
+ __export(matrix_exports, {
21
+ add_col: () => add_col,
22
+ add_row: () => add_row,
23
+ avg: () => avg,
24
+ col: () => col,
25
+ columns: () => columns,
26
+ concat: () => concat,
27
+ copy: () => copy,
28
+ det: () => det,
29
+ diff: () => diff,
30
+ eigenvalues: () => eigenvalues,
31
+ eigenvectors: () => eigenvectors,
32
+ elements_count: () => elements_count,
33
+ fill: () => fill,
34
+ get: () => get,
35
+ inv: () => inv,
36
+ is_antidiagonal: () => is_antidiagonal,
37
+ is_antisymmetric: () => is_antisymmetric,
38
+ is_binary: () => is_binary,
39
+ is_diagonal: () => is_diagonal,
40
+ is_identity: () => is_identity,
41
+ is_square: () => is_square,
42
+ is_stochastic: () => is_stochastic,
43
+ is_symmetric: () => is_symmetric,
44
+ is_triangular: () => is_triangular,
45
+ is_zero: () => is_zero,
46
+ kron: () => kron,
47
+ max: () => max,
48
+ median: () => median,
49
+ min: () => min,
50
+ mode: () => mode,
51
+ mult: () => mult,
52
+ new_matrix: () => new_matrix,
53
+ newtype: () => newtype,
54
+ pinv: () => pinv,
55
+ pow: () => pow,
56
+ rank: () => rank,
57
+ remove_col: () => remove_col,
58
+ remove_row: () => remove_row,
59
+ reshape: () => reshape,
60
+ reverse: () => reverse,
61
+ row: () => row,
62
+ rows: () => rows,
63
+ set: () => set,
64
+ sort: () => sort,
65
+ submatrix: () => submatrix,
66
+ sum: () => sum,
67
+ swap_columns: () => swap_columns,
68
+ swap_rows: () => swap_rows,
69
+ trace: () => trace,
70
+ transpose: () => transpose
71
+ });
72
+ module.exports = __toCommonJS(matrix_exports);
73
+ function new_matrix(rows2, columns2, initial_value) {
74
+ const data = [];
75
+ for (let i = 0; i < rows2; i++) {
76
+ const row2 = [];
77
+ for (let j = 0; j < columns2; j++) {
78
+ row2.push(initial_value);
79
+ }
80
+ data.push(row2);
81
+ }
82
+ return { rows: rows2, columns: columns2, data };
83
+ }
84
+ function get(id, row2, column) {
85
+ if (row2 < 0 || row2 >= id.rows || column < 0 || column >= id.columns) {
86
+ throw new Error(`Matrix index out of bounds: [${row2}, ${column}] for matrix of size [${id.rows}, ${id.columns}]`);
87
+ }
88
+ return id.data[row2][column];
89
+ }
90
+ function set(id, row2, column, value) {
91
+ if (row2 < 0 || row2 >= id.rows || column < 0 || column >= id.columns) {
92
+ throw new Error(`Matrix index out of bounds: [${row2}, ${column}] for matrix of size [${id.rows}, ${id.columns}]`);
93
+ }
94
+ id.data[row2][column] = value;
95
+ }
96
+ function rows(id) {
97
+ return id.rows;
98
+ }
99
+ function columns(id) {
100
+ return id.columns;
101
+ }
102
+ function elements_count(id) {
103
+ return id.rows * id.columns;
104
+ }
105
+ function row(id, row_index) {
106
+ if (row_index < 0 || row_index >= id.rows) {
107
+ throw new Error(`Row index out of bounds: ${row_index} for matrix with ${id.rows} rows`);
108
+ }
109
+ return [...id.data[row_index]];
110
+ }
111
+ function col(id, column_index) {
112
+ if (column_index < 0 || column_index >= id.columns) {
113
+ throw new Error(`Column index out of bounds: ${column_index} for matrix with ${id.columns} columns`);
114
+ }
115
+ return id.data.map((r) => r[column_index]);
116
+ }
117
+ function copy(id) {
118
+ const newData = id.data.map((r) => [...r]);
119
+ return {
120
+ rows: id.rows,
121
+ columns: id.columns,
122
+ data: newData
123
+ };
124
+ }
125
+ function fill(id, value, from_row = 0, to_row, from_column = 0, to_column) {
126
+ const endRow = to_row ?? id.rows;
127
+ const endCol = to_column ?? id.columns;
128
+ for (let i = from_row; i < endRow; i++) {
129
+ for (let j = from_column; j < endCol; j++) {
130
+ id.data[i][j] = value;
131
+ }
132
+ }
133
+ }
134
+ function is_square(id) {
135
+ return id.rows === id.columns;
136
+ }
137
+ function is_zero(id) {
138
+ for (let i = 0; i < id.rows; i++) {
139
+ for (let j = 0; j < id.columns; j++) {
140
+ if (id.data[i][j] !== 0) {
141
+ return false;
142
+ }
143
+ }
144
+ }
145
+ return true;
146
+ }
147
+ function is_binary(id) {
148
+ for (let i = 0; i < id.rows; i++) {
149
+ for (let j = 0; j < id.columns; j++) {
150
+ const val = id.data[i][j];
151
+ if (val !== 0 && val !== 1) {
152
+ return false;
153
+ }
154
+ }
155
+ }
156
+ return true;
157
+ }
158
+ function add_row(id, row2, array_id) {
159
+ const insertIndex = row2 ?? id.rows;
160
+ if (insertIndex < 0 || insertIndex > id.rows) {
161
+ throw new Error(`Row index out of bounds: ${insertIndex} for matrix with ${id.rows} rows`);
162
+ }
163
+ let newRow;
164
+ if (array_id !== void 0) {
165
+ if (id.columns > 0 && array_id.length !== id.columns) {
166
+ throw new Error(`Array size ${array_id.length} does not match matrix columns ${id.columns}`);
167
+ }
168
+ newRow = [...array_id];
169
+ if (id.rows === 0 && id.columns === 0) {
170
+ id.columns = array_id.length;
171
+ }
172
+ } else {
173
+ newRow = new Array(id.columns).fill(void 0);
174
+ }
175
+ id.data.splice(insertIndex, 0, newRow);
176
+ id.rows++;
177
+ }
178
+ function add_col(id, column, array_id) {
179
+ const insertIndex = column ?? id.columns;
180
+ if (insertIndex < 0 || insertIndex > id.columns) {
181
+ throw new Error(`Column index out of bounds: ${insertIndex} for matrix with ${id.columns} columns`);
182
+ }
183
+ if (array_id !== void 0) {
184
+ if (id.rows > 0 && array_id.length !== id.rows) {
185
+ throw new Error(`Array size ${array_id.length} does not match matrix rows ${id.rows}`);
186
+ }
187
+ if (id.rows === 0 && id.columns === 0) {
188
+ id.rows = array_id.length;
189
+ for (let i = 0; i < array_id.length; i++) {
190
+ id.data.push([]);
191
+ }
192
+ }
193
+ for (let i = 0; i < id.rows; i++) {
194
+ id.data[i].splice(insertIndex, 0, array_id[i]);
195
+ }
196
+ } else {
197
+ for (let i = 0; i < id.rows; i++) {
198
+ id.data[i].splice(insertIndex, 0, void 0);
199
+ }
200
+ }
201
+ id.columns++;
202
+ }
203
+ function remove_row(id, row2) {
204
+ const removeIndex = row2 ?? id.rows - 1;
205
+ if (removeIndex < 0 || removeIndex >= id.rows) {
206
+ throw new Error(`Row index out of bounds: ${removeIndex} for matrix with ${id.rows} rows`);
207
+ }
208
+ const removedRow = id.data.splice(removeIndex, 1)[0];
209
+ id.rows--;
210
+ return removedRow;
211
+ }
212
+ function remove_col(id, column) {
213
+ const removeIndex = column ?? id.columns - 1;
214
+ if (removeIndex < 0 || removeIndex >= id.columns) {
215
+ throw new Error(`Column index out of bounds: ${removeIndex} for matrix with ${id.columns} columns`);
216
+ }
217
+ const removedCol = [];
218
+ for (let i = 0; i < id.rows; i++) {
219
+ removedCol.push(id.data[i].splice(removeIndex, 1)[0]);
220
+ }
221
+ id.columns--;
222
+ return removedCol;
223
+ }
224
+ function swap_rows(id, row1, row2) {
225
+ if (row1 < 0 || row1 >= id.rows) {
226
+ throw new Error(`Row1 index out of bounds: ${row1} for matrix with ${id.rows} rows`);
227
+ }
228
+ if (row2 < 0 || row2 >= id.rows) {
229
+ throw new Error(`Row2 index out of bounds: ${row2} for matrix with ${id.rows} rows`);
230
+ }
231
+ const temp = id.data[row1];
232
+ id.data[row1] = id.data[row2];
233
+ id.data[row2] = temp;
234
+ }
235
+ function swap_columns(id, column1, column2) {
236
+ if (column1 < 0 || column1 >= id.columns) {
237
+ throw new Error(`Column1 index out of bounds: ${column1} for matrix with ${id.columns} columns`);
238
+ }
239
+ if (column2 < 0 || column2 >= id.columns) {
240
+ throw new Error(`Column2 index out of bounds: ${column2} for matrix with ${id.columns} columns`);
241
+ }
242
+ for (let i = 0; i < id.rows; i++) {
243
+ const temp = id.data[i][column1];
244
+ id.data[i][column1] = id.data[i][column2];
245
+ id.data[i][column2] = temp;
246
+ }
247
+ }
248
+ function transpose(id) {
249
+ const newData = [];
250
+ for (let j = 0; j < id.columns; j++) {
251
+ const newRow = [];
252
+ for (let i = 0; i < id.rows; i++) {
253
+ newRow.push(id.data[i][j]);
254
+ }
255
+ newData.push(newRow);
256
+ }
257
+ return {
258
+ rows: id.columns,
259
+ columns: id.rows,
260
+ data: newData
261
+ };
262
+ }
263
+ function concat(id1, id2) {
264
+ if (id1.columns !== id2.columns) {
265
+ throw new Error(`Column count mismatch: ${id1.columns} vs ${id2.columns}`);
266
+ }
267
+ for (let i = 0; i < id2.rows; i++) {
268
+ id1.data.push([...id2.data[i]]);
269
+ }
270
+ id1.rows += id2.rows;
271
+ return id1;
272
+ }
273
+ function submatrix(id, from_row = 0, to_row, from_column = 0, to_column) {
274
+ const endRow = to_row ?? id.rows;
275
+ const endCol = to_column ?? id.columns;
276
+ if (from_row < 0 || from_row > id.rows) {
277
+ throw new Error(`from_row index out of bounds: ${from_row}`);
278
+ }
279
+ if (endRow < 0 || endRow > id.rows) {
280
+ throw new Error(`to_row index out of bounds: ${endRow}`);
281
+ }
282
+ if (from_column < 0 || from_column > id.columns) {
283
+ throw new Error(`from_column index out of bounds: ${from_column}`);
284
+ }
285
+ if (endCol < 0 || endCol > id.columns) {
286
+ throw new Error(`to_column index out of bounds: ${endCol}`);
287
+ }
288
+ const newRows = endRow - from_row;
289
+ const newCols = endCol - from_column;
290
+ const newData = [];
291
+ for (let i = from_row; i < endRow; i++) {
292
+ const newRow = [];
293
+ for (let j = from_column; j < endCol; j++) {
294
+ newRow.push(id.data[i][j]);
295
+ }
296
+ newData.push(newRow);
297
+ }
298
+ return {
299
+ rows: newRows,
300
+ columns: newCols,
301
+ data: newData
302
+ };
303
+ }
304
+ function reshape(id, rows2, columns2) {
305
+ const totalElements = id.rows * id.columns;
306
+ const newTotalElements = rows2 * columns2;
307
+ if (totalElements !== newTotalElements) {
308
+ throw new Error(`Cannot reshape ${id.rows}x${id.columns} (${totalElements} elements) to ${rows2}x${columns2} (${newTotalElements} elements)`);
309
+ }
310
+ const flat = [];
311
+ for (let i = 0; i < id.rows; i++) {
312
+ for (let j = 0; j < id.columns; j++) {
313
+ flat.push(id.data[i][j]);
314
+ }
315
+ }
316
+ const newData = [];
317
+ let index = 0;
318
+ for (let i = 0; i < rows2; i++) {
319
+ const newRow = [];
320
+ for (let j = 0; j < columns2; j++) {
321
+ newRow.push(flat[index++]);
322
+ }
323
+ newData.push(newRow);
324
+ }
325
+ id.rows = rows2;
326
+ id.columns = columns2;
327
+ id.data = newData;
328
+ }
329
+ function reverse(id) {
330
+ id.data.reverse();
331
+ for (let i = 0; i < id.rows; i++) {
332
+ id.data[i].reverse();
333
+ }
334
+ }
335
+ function sort(id, column = 0, order = "ascending") {
336
+ if (column < 0 || column >= id.columns) {
337
+ throw new Error(`Column index out of bounds: ${column} for matrix with ${id.columns} columns`);
338
+ }
339
+ id.data.sort((a, b) => {
340
+ const valA = a[column];
341
+ const valB = b[column];
342
+ if (typeof valA === "number" && typeof valB === "number") {
343
+ return order === "ascending" ? valA - valB : valB - valA;
344
+ }
345
+ if (order === "ascending") {
346
+ return valA < valB ? -1 : valA > valB ? 1 : 0;
347
+ } else {
348
+ return valB < valA ? -1 : valB > valA ? 1 : 0;
349
+ }
350
+ });
351
+ }
352
+ function sum(id1, id2) {
353
+ const newData = [];
354
+ if (typeof id2 === "number") {
355
+ for (let i = 0; i < id1.rows; i++) {
356
+ const newRow = [];
357
+ for (let j = 0; j < id1.columns; j++) {
358
+ newRow.push(id1.data[i][j] + id2);
359
+ }
360
+ newData.push(newRow);
361
+ }
362
+ return {
363
+ rows: id1.rows,
364
+ columns: id1.columns,
365
+ data: newData
366
+ };
367
+ } else {
368
+ if (id1.rows !== id2.rows || id1.columns !== id2.columns) {
369
+ throw new Error(`Matrix dimensions must match: ${id1.rows}x${id1.columns} vs ${id2.rows}x${id2.columns}`);
370
+ }
371
+ for (let i = 0; i < id1.rows; i++) {
372
+ const newRow = [];
373
+ for (let j = 0; j < id1.columns; j++) {
374
+ newRow.push(id1.data[i][j] + id2.data[i][j]);
375
+ }
376
+ newData.push(newRow);
377
+ }
378
+ return {
379
+ rows: id1.rows,
380
+ columns: id1.columns,
381
+ data: newData
382
+ };
383
+ }
384
+ }
385
+ function diff(id1, id2) {
386
+ const newData = [];
387
+ if (typeof id2 === "number") {
388
+ for (let i = 0; i < id1.rows; i++) {
389
+ const newRow = [];
390
+ for (let j = 0; j < id1.columns; j++) {
391
+ newRow.push(id1.data[i][j] - id2);
392
+ }
393
+ newData.push(newRow);
394
+ }
395
+ return {
396
+ rows: id1.rows,
397
+ columns: id1.columns,
398
+ data: newData
399
+ };
400
+ } else {
401
+ if (id1.rows !== id2.rows || id1.columns !== id2.columns) {
402
+ throw new Error(`Matrix dimensions must match: ${id1.rows}x${id1.columns} vs ${id2.rows}x${id2.columns}`);
403
+ }
404
+ for (let i = 0; i < id1.rows; i++) {
405
+ const newRow = [];
406
+ for (let j = 0; j < id1.columns; j++) {
407
+ newRow.push(id1.data[i][j] - id2.data[i][j]);
408
+ }
409
+ newData.push(newRow);
410
+ }
411
+ return {
412
+ rows: id1.rows,
413
+ columns: id1.columns,
414
+ data: newData
415
+ };
416
+ }
417
+ }
418
+ function avg(id) {
419
+ if (id.rows === 0 || id.columns === 0) {
420
+ return NaN;
421
+ }
422
+ let total = 0;
423
+ let count = 0;
424
+ for (let i = 0; i < id.rows; i++) {
425
+ for (let j = 0; j < id.columns; j++) {
426
+ const val = id.data[i][j];
427
+ if (val !== null && val !== void 0 && !isNaN(val)) {
428
+ total += val;
429
+ count++;
430
+ }
431
+ }
432
+ }
433
+ return count === 0 ? NaN : total / count;
434
+ }
435
+ function min(id) {
436
+ if (id.rows === 0 || id.columns === 0) {
437
+ return NaN;
438
+ }
439
+ let minVal = Infinity;
440
+ for (let i = 0; i < id.rows; i++) {
441
+ for (let j = 0; j < id.columns; j++) {
442
+ const val = id.data[i][j];
443
+ if (val !== null && val !== void 0 && !isNaN(val) && val < minVal) {
444
+ minVal = val;
445
+ }
446
+ }
447
+ }
448
+ return minVal === Infinity ? NaN : minVal;
449
+ }
450
+ function max(id) {
451
+ if (id.rows === 0 || id.columns === 0) {
452
+ return NaN;
453
+ }
454
+ let maxVal = -Infinity;
455
+ for (let i = 0; i < id.rows; i++) {
456
+ for (let j = 0; j < id.columns; j++) {
457
+ const val = id.data[i][j];
458
+ if (val !== null && val !== void 0 && !isNaN(val) && val > maxVal) {
459
+ maxVal = val;
460
+ }
461
+ }
462
+ }
463
+ return maxVal === -Infinity ? NaN : maxVal;
464
+ }
465
+ function median(id) {
466
+ if (id.rows === 0 || id.columns === 0) {
467
+ return NaN;
468
+ }
469
+ const values = [];
470
+ for (let i = 0; i < id.rows; i++) {
471
+ for (let j = 0; j < id.columns; j++) {
472
+ const val = id.data[i][j];
473
+ if (val !== null && val !== void 0 && !isNaN(val)) {
474
+ values.push(val);
475
+ }
476
+ }
477
+ }
478
+ if (values.length === 0) {
479
+ return NaN;
480
+ }
481
+ values.sort((a, b) => a - b);
482
+ const mid = Math.floor(values.length / 2);
483
+ if (values.length % 2 === 0) {
484
+ return (values[mid - 1] + values[mid]) / 2;
485
+ } else {
486
+ return values[mid];
487
+ }
488
+ }
489
+ function mode(id) {
490
+ if (id.rows === 0 || id.columns === 0) {
491
+ return NaN;
492
+ }
493
+ const frequency = /* @__PURE__ */ new Map();
494
+ let maxFreq = 0;
495
+ let modeValue = NaN;
496
+ for (let i = 0; i < id.rows; i++) {
497
+ for (let j = 0; j < id.columns; j++) {
498
+ const val = id.data[i][j];
499
+ if (val !== null && val !== void 0 && !isNaN(val)) {
500
+ const freq = (frequency.get(val) || 0) + 1;
501
+ frequency.set(val, freq);
502
+ if (freq > maxFreq || freq === maxFreq && val < modeValue) {
503
+ maxFreq = freq;
504
+ modeValue = val;
505
+ }
506
+ }
507
+ }
508
+ }
509
+ return modeValue;
510
+ }
511
+ function trace(id) {
512
+ if (!is_square(id)) {
513
+ throw new Error(`Matrix must be square for trace calculation: ${id.rows}x${id.columns}`);
514
+ }
515
+ if (id.rows === 0) {
516
+ return 0;
517
+ }
518
+ let sum2 = 0;
519
+ for (let i = 0; i < id.rows; i++) {
520
+ const val = id.data[i][i];
521
+ if (val !== null && val !== void 0 && !isNaN(val)) {
522
+ sum2 += val;
523
+ }
524
+ }
525
+ return sum2;
526
+ }
527
+ function is_diagonal(id) {
528
+ if (!is_square(id)) {
529
+ return false;
530
+ }
531
+ for (let i = 0; i < id.rows; i++) {
532
+ for (let j = 0; j < id.columns; j++) {
533
+ if (i !== j && id.data[i][j] !== 0) {
534
+ return false;
535
+ }
536
+ }
537
+ }
538
+ return true;
539
+ }
540
+ function is_identity(id) {
541
+ if (!is_square(id)) {
542
+ return false;
543
+ }
544
+ for (let i = 0; i < id.rows; i++) {
545
+ for (let j = 0; j < id.columns; j++) {
546
+ const val = id.data[i][j];
547
+ if (i === j) {
548
+ if (val !== 1) {
549
+ return false;
550
+ }
551
+ } else {
552
+ if (val !== 0) {
553
+ return false;
554
+ }
555
+ }
556
+ }
557
+ }
558
+ return true;
559
+ }
560
+ function is_symmetric(id) {
561
+ if (!is_square(id)) {
562
+ return false;
563
+ }
564
+ for (let i = 0; i < id.rows; i++) {
565
+ for (let j = i + 1; j < id.columns; j++) {
566
+ if (id.data[i][j] !== id.data[j][i]) {
567
+ return false;
568
+ }
569
+ }
570
+ }
571
+ return true;
572
+ }
573
+ function is_antisymmetric(id) {
574
+ if (!is_square(id)) {
575
+ return false;
576
+ }
577
+ for (let i = 0; i < id.rows; i++) {
578
+ if (id.data[i][i] !== 0) {
579
+ return false;
580
+ }
581
+ for (let j = i + 1; j < id.columns; j++) {
582
+ const upperVal = id.data[i][j];
583
+ const lowerVal = id.data[j][i];
584
+ if (upperVal !== -lowerVal) {
585
+ return false;
586
+ }
587
+ }
588
+ }
589
+ return true;
590
+ }
591
+ function is_triangular(id) {
592
+ if (!is_square(id)) {
593
+ return false;
594
+ }
595
+ let isUpper = true;
596
+ for (let i = 1; i < id.rows && isUpper; i++) {
597
+ for (let j = 0; j < i && isUpper; j++) {
598
+ if (id.data[i][j] !== 0) {
599
+ isUpper = false;
600
+ }
601
+ }
602
+ }
603
+ if (isUpper) {
604
+ return true;
605
+ }
606
+ let isLower = true;
607
+ for (let i = 0; i < id.rows - 1 && isLower; i++) {
608
+ for (let j = i + 1; j < id.columns && isLower; j++) {
609
+ if (id.data[i][j] !== 0) {
610
+ isLower = false;
611
+ }
612
+ }
613
+ }
614
+ return isLower;
615
+ }
616
+ function is_antidiagonal(id) {
617
+ if (!is_square(id)) {
618
+ return false;
619
+ }
620
+ const n = id.rows;
621
+ for (let i = 0; i < n; i++) {
622
+ for (let j = 0; j < n; j++) {
623
+ const isAntiDiag = i + j === n - 1;
624
+ if (!isAntiDiag && id.data[i][j] !== 0) {
625
+ return false;
626
+ }
627
+ }
628
+ }
629
+ return true;
630
+ }
631
+ function is_stochastic(id) {
632
+ if (id.rows === 0 || id.columns === 0) {
633
+ return false;
634
+ }
635
+ const tolerance = 1e-10;
636
+ for (let i = 0; i < id.rows; i++) {
637
+ let rowSum = 0;
638
+ for (let j = 0; j < id.columns; j++) {
639
+ const val = id.data[i][j];
640
+ if (val < 0) {
641
+ return false;
642
+ }
643
+ rowSum += val;
644
+ }
645
+ if (Math.abs(rowSum - 1) > tolerance) {
646
+ return false;
647
+ }
648
+ }
649
+ return true;
650
+ }
651
+ const EPSILON = 1e-10;
652
+ function createIdentity(n) {
653
+ const m = new_matrix(n, n, 0);
654
+ for (let i = 0; i < n; i++) {
655
+ m.data[i][i] = 1;
656
+ }
657
+ return m;
658
+ }
659
+ function mult(id1, id2) {
660
+ if (typeof id2 === "number") {
661
+ const newData2 = [];
662
+ for (let i = 0; i < id1.rows; i++) {
663
+ const newRow = [];
664
+ for (let j = 0; j < id1.columns; j++) {
665
+ newRow.push(id1.data[i][j] * id2);
666
+ }
667
+ newData2.push(newRow);
668
+ }
669
+ return {
670
+ rows: id1.rows,
671
+ columns: id1.columns,
672
+ data: newData2
673
+ };
674
+ }
675
+ if (Array.isArray(id2) && !("rows" in id2)) {
676
+ const vec = id2;
677
+ if (vec.length !== id1.columns) {
678
+ throw new Error(`Vector length ${vec.length} must equal matrix columns ${id1.columns}`);
679
+ }
680
+ const result = [];
681
+ for (let i = 0; i < id1.rows; i++) {
682
+ let sum2 = 0;
683
+ for (let j = 0; j < id1.columns; j++) {
684
+ sum2 += id1.data[i][j] * vec[j];
685
+ }
686
+ result.push(sum2);
687
+ }
688
+ return result;
689
+ }
690
+ const m2 = id2;
691
+ if (id1.columns !== m2.rows) {
692
+ throw new Error(`Matrix multiplication dimension mismatch: ${id1.rows}x${id1.columns} \xD7 ${m2.rows}x${m2.columns}. First matrix columns (${id1.columns}) must equal second matrix rows (${m2.rows})`);
693
+ }
694
+ const newRows = id1.rows;
695
+ const newCols = m2.columns;
696
+ const newData = [];
697
+ for (let i = 0; i < newRows; i++) {
698
+ const newRow = [];
699
+ for (let j = 0; j < newCols; j++) {
700
+ let sum2 = 0;
701
+ for (let k = 0; k < id1.columns; k++) {
702
+ sum2 += id1.data[i][k] * m2.data[k][j];
703
+ }
704
+ newRow.push(sum2);
705
+ }
706
+ newData.push(newRow);
707
+ }
708
+ return {
709
+ rows: newRows,
710
+ columns: newCols,
711
+ data: newData
712
+ };
713
+ }
714
+ function pow(id, power) {
715
+ if (!is_square(id)) {
716
+ throw new Error(`Matrix must be square for power calculation: ${id.rows}x${id.columns}`);
717
+ }
718
+ const n = id.rows;
719
+ if (power === 0) {
720
+ return createIdentity(n);
721
+ }
722
+ let base;
723
+ let p = power;
724
+ if (power < 0) {
725
+ const inverse = inv(id);
726
+ if (inverse === null) {
727
+ throw new Error("Cannot compute negative power of singular matrix");
728
+ }
729
+ base = inverse;
730
+ p = -power;
731
+ } else {
732
+ base = copy(id);
733
+ }
734
+ let result = createIdentity(n);
735
+ while (p > 0) {
736
+ if (p % 2 === 1) {
737
+ result = mult(result, base);
738
+ }
739
+ base = mult(base, base);
740
+ p = Math.floor(p / 2);
741
+ }
742
+ return result;
743
+ }
744
+ function det(id) {
745
+ if (!is_square(id)) {
746
+ throw new Error(`Matrix must be square for determinant calculation: ${id.rows}x${id.columns}`);
747
+ }
748
+ const n = id.rows;
749
+ if (n === 0) {
750
+ return 1;
751
+ }
752
+ if (n === 1) {
753
+ return id.data[0][0];
754
+ }
755
+ if (n === 2) {
756
+ return id.data[0][0] * id.data[1][1] - id.data[0][1] * id.data[1][0];
757
+ }
758
+ const a = id.data.map((row2) => [...row2]);
759
+ let determinant = 1;
760
+ let swapCount = 0;
761
+ for (let col2 = 0; col2 < n; col2++) {
762
+ let maxRow = col2;
763
+ let maxVal = Math.abs(a[col2][col2]);
764
+ for (let row2 = col2 + 1; row2 < n; row2++) {
765
+ const absVal = Math.abs(a[row2][col2]);
766
+ if (absVal > maxVal) {
767
+ maxVal = absVal;
768
+ maxRow = row2;
769
+ }
770
+ }
771
+ if (maxRow !== col2) {
772
+ const temp = a[col2];
773
+ a[col2] = a[maxRow];
774
+ a[maxRow] = temp;
775
+ swapCount++;
776
+ }
777
+ const pivot = a[col2][col2];
778
+ if (Math.abs(pivot) < EPSILON) {
779
+ return 0;
780
+ }
781
+ determinant *= pivot;
782
+ for (let row2 = col2 + 1; row2 < n; row2++) {
783
+ const factor = a[row2][col2] / pivot;
784
+ for (let j = col2; j < n; j++) {
785
+ a[row2][j] = a[row2][j] - factor * a[col2][j];
786
+ }
787
+ }
788
+ }
789
+ if (swapCount % 2 === 1) {
790
+ determinant = -determinant;
791
+ }
792
+ return determinant;
793
+ }
794
+ function inv(id) {
795
+ if (!is_square(id)) {
796
+ throw new Error(`Matrix must be square for inverse calculation: ${id.rows}x${id.columns}`);
797
+ }
798
+ const n = id.rows;
799
+ if (n === 0) {
800
+ return new_matrix(0, 0, 0);
801
+ }
802
+ const aug = [];
803
+ for (let i = 0; i < n; i++) {
804
+ const row2 = [];
805
+ for (let j = 0; j < n; j++) {
806
+ row2.push(id.data[i][j]);
807
+ }
808
+ for (let j = 0; j < n; j++) {
809
+ row2.push(i === j ? 1 : 0);
810
+ }
811
+ aug.push(row2);
812
+ }
813
+ for (let col2 = 0; col2 < n; col2++) {
814
+ let maxRow = col2;
815
+ let maxVal = Math.abs(aug[col2][col2]);
816
+ for (let row2 = col2 + 1; row2 < n; row2++) {
817
+ const absVal = Math.abs(aug[row2][col2]);
818
+ if (absVal > maxVal) {
819
+ maxVal = absVal;
820
+ maxRow = row2;
821
+ }
822
+ }
823
+ if (maxRow !== col2) {
824
+ const temp = aug[col2];
825
+ aug[col2] = aug[maxRow];
826
+ aug[maxRow] = temp;
827
+ }
828
+ const pivot = aug[col2][col2];
829
+ if (Math.abs(pivot) < EPSILON) {
830
+ return null;
831
+ }
832
+ for (let j = 0; j < 2 * n; j++) {
833
+ aug[col2][j] = aug[col2][j] / pivot;
834
+ }
835
+ for (let row2 = 0; row2 < n; row2++) {
836
+ if (row2 !== col2) {
837
+ const factor = aug[row2][col2];
838
+ for (let j = 0; j < 2 * n; j++) {
839
+ aug[row2][j] = aug[row2][j] - factor * aug[col2][j];
840
+ }
841
+ }
842
+ }
843
+ }
844
+ const inverse = [];
845
+ for (let i = 0; i < n; i++) {
846
+ const row2 = [];
847
+ for (let j = 0; j < n; j++) {
848
+ row2.push(aug[i][n + j]);
849
+ }
850
+ inverse.push(row2);
851
+ }
852
+ return {
853
+ rows: n,
854
+ columns: n,
855
+ data: inverse
856
+ };
857
+ }
858
+ function pinv(id) {
859
+ const m = id.rows;
860
+ const n = id.columns;
861
+ if (m === 0 || n === 0) {
862
+ return new_matrix(n, m, 0);
863
+ }
864
+ if (m === n) {
865
+ const inverse = inv(id);
866
+ if (inverse !== null) {
867
+ return inverse;
868
+ }
869
+ }
870
+ const At = transpose(id);
871
+ if (m >= n) {
872
+ const AtA2 = mult(At, id);
873
+ const AtA_inv2 = inv(AtA2);
874
+ if (AtA_inv2 !== null) {
875
+ return mult(AtA_inv2, At);
876
+ }
877
+ }
878
+ const AAt = mult(id, At);
879
+ const AAt_inv = inv(AAt);
880
+ if (AAt_inv !== null) {
881
+ return mult(At, AAt_inv);
882
+ }
883
+ const lambda = 1e-10;
884
+ const AtA = mult(At, id);
885
+ for (let i = 0; i < AtA.rows; i++) {
886
+ AtA.data[i][i] = AtA.data[i][i] + lambda;
887
+ }
888
+ const AtA_inv = inv(AtA);
889
+ if (AtA_inv !== null) {
890
+ return mult(AtA_inv, At);
891
+ }
892
+ return new_matrix(n, m, 0);
893
+ }
894
+ function rank(id) {
895
+ if (id.rows === 0 || id.columns === 0) {
896
+ return 0;
897
+ }
898
+ const a = id.data.map((row2) => [...row2]);
899
+ const m = id.rows;
900
+ const n = id.columns;
901
+ let r = 0;
902
+ for (let col2 = 0; col2 < n && r < m; col2++) {
903
+ let maxRow = r;
904
+ let maxVal = Math.abs(a[r][col2]);
905
+ for (let row2 = r + 1; row2 < m; row2++) {
906
+ const absVal = Math.abs(a[row2][col2]);
907
+ if (absVal > maxVal) {
908
+ maxVal = absVal;
909
+ maxRow = row2;
910
+ }
911
+ }
912
+ if (maxVal < EPSILON) {
913
+ continue;
914
+ }
915
+ if (maxRow !== r) {
916
+ const temp = a[r];
917
+ a[r] = a[maxRow];
918
+ a[maxRow] = temp;
919
+ }
920
+ const pivot = a[r][col2];
921
+ for (let row2 = r + 1; row2 < m; row2++) {
922
+ const factor = a[row2][col2] / pivot;
923
+ for (let j = col2; j < n; j++) {
924
+ a[row2][j] = a[row2][j] - factor * a[r][j];
925
+ }
926
+ }
927
+ r++;
928
+ }
929
+ return r;
930
+ }
931
+ function eigenvalues(id) {
932
+ if (!is_square(id)) {
933
+ throw new Error(`Matrix must be square for eigenvalue calculation: ${id.rows}x${id.columns}`);
934
+ }
935
+ const n = id.rows;
936
+ if (n === 0) {
937
+ return [];
938
+ }
939
+ if (n === 1) {
940
+ return [id.data[0][0]];
941
+ }
942
+ if (n === 2) {
943
+ const a = id.data[0][0];
944
+ const b = id.data[0][1];
945
+ const c = id.data[1][0];
946
+ const d = id.data[1][1];
947
+ const trace2 = a + d;
948
+ const determinant = a * d - b * c;
949
+ const discriminant = trace2 * trace2 - 4 * determinant;
950
+ if (discriminant >= 0) {
951
+ const sqrtDisc = Math.sqrt(discriminant);
952
+ return [(trace2 + sqrtDisc) / 2, (trace2 - sqrtDisc) / 2];
953
+ } else {
954
+ return [trace2 / 2, trace2 / 2];
955
+ }
956
+ }
957
+ const h = toHessenberg(id);
958
+ const result = qrAlgorithm(h, 100);
959
+ return result;
960
+ }
961
+ function toHessenberg(m) {
962
+ const n = m.rows;
963
+ const h = m.data.map((row2) => [...row2]);
964
+ for (let k = 0; k < n - 2; k++) {
965
+ let maxVal = 0;
966
+ for (let i = k + 1; i < n; i++) {
967
+ maxVal = Math.max(maxVal, Math.abs(h[i][k]));
968
+ }
969
+ if (maxVal < EPSILON) continue;
970
+ let sigma = 0;
971
+ for (let i = k + 1; i < n; i++) {
972
+ sigma += h[i][k] * h[i][k];
973
+ }
974
+ sigma = Math.sqrt(sigma);
975
+ if (h[k + 1][k] < 0) sigma = -sigma;
976
+ const u = new Array(n).fill(0);
977
+ u[k + 1] = h[k + 1][k] + sigma;
978
+ for (let i = k + 2; i < n; i++) {
979
+ u[i] = h[i][k];
980
+ }
981
+ let uTu = 0;
982
+ for (let i = k + 1; i < n; i++) {
983
+ uTu += u[i] * u[i];
984
+ }
985
+ if (uTu < EPSILON) continue;
986
+ for (let j = k; j < n; j++) {
987
+ let dot = 0;
988
+ for (let i = k + 1; i < n; i++) {
989
+ dot += u[i] * h[i][j];
990
+ }
991
+ const factor = 2 * dot / uTu;
992
+ for (let i = k + 1; i < n; i++) {
993
+ h[i][j] = h[i][j] - factor * u[i];
994
+ }
995
+ }
996
+ for (let i = 0; i < n; i++) {
997
+ let dot = 0;
998
+ for (let j = k + 1; j < n; j++) {
999
+ dot += h[i][j] * u[j];
1000
+ }
1001
+ const factor = 2 * dot / uTu;
1002
+ for (let j = k + 1; j < n; j++) {
1003
+ h[i][j] = h[i][j] - factor * u[j];
1004
+ }
1005
+ }
1006
+ }
1007
+ return { rows: n, columns: n, data: h };
1008
+ }
1009
+ function qrAlgorithm(h, maxIter) {
1010
+ const n = h.rows;
1011
+ const a = h.data.map((row2) => [...row2]);
1012
+ const eigenvals = [];
1013
+ let remaining = n;
1014
+ for (let iter = 0; iter < maxIter && remaining > 1; iter++) {
1015
+ let converged = false;
1016
+ for (let i = remaining - 1; i >= 1; i--) {
1017
+ if (Math.abs(a[i][i - 1]) < EPSILON * (Math.abs(a[i - 1][i - 1]) + Math.abs(a[i][i]))) {
1018
+ a[i][i - 1] = 0;
1019
+ if (i === remaining - 1) {
1020
+ eigenvals.push(a[remaining - 1][remaining - 1]);
1021
+ remaining--;
1022
+ converged = true;
1023
+ break;
1024
+ }
1025
+ }
1026
+ }
1027
+ if (converged) continue;
1028
+ if (remaining <= 1) break;
1029
+ const d = (a[remaining - 2][remaining - 2] - a[remaining - 1][remaining - 1]) / 2;
1030
+ const sign = d >= 0 ? 1 : -1;
1031
+ const mu = a[remaining - 1][remaining - 1] - sign * a[remaining - 1][remaining - 2] * a[remaining - 1][remaining - 2] / (Math.abs(d) + Math.sqrt(d * d + a[remaining - 1][remaining - 2] * a[remaining - 1][remaining - 2]));
1032
+ let x = a[0][0] - mu;
1033
+ let z = a[1][0];
1034
+ for (let k = 0; k < remaining - 1; k++) {
1035
+ let r = Math.sqrt(x * x + z * z);
1036
+ if (r < EPSILON) {
1037
+ r = EPSILON;
1038
+ }
1039
+ const c = x / r;
1040
+ const s = z / r;
1041
+ for (let j = Math.max(0, k - 1); j < remaining; j++) {
1042
+ const temp = c * a[k][j] + s * a[k + 1][j];
1043
+ a[k + 1][j] = -s * a[k][j] + c * a[k + 1][j];
1044
+ a[k][j] = temp;
1045
+ }
1046
+ for (let i = 0; i < Math.min(k + 3, remaining); i++) {
1047
+ const temp = c * a[i][k] + s * a[i][k + 1];
1048
+ a[i][k + 1] = -s * a[i][k] + c * a[i][k + 1];
1049
+ a[i][k] = temp;
1050
+ }
1051
+ if (k < remaining - 2) {
1052
+ x = a[k + 1][k];
1053
+ z = a[k + 2][k];
1054
+ }
1055
+ }
1056
+ }
1057
+ for (let i = 0; i < remaining; i++) {
1058
+ eigenvals.push(a[i][i]);
1059
+ }
1060
+ eigenvals.sort((a2, b) => Math.abs(b) - Math.abs(a2));
1061
+ return eigenvals;
1062
+ }
1063
+ function eigenvectors(id) {
1064
+ if (!is_square(id)) {
1065
+ throw new Error(`Matrix must be square for eigenvector calculation: ${id.rows}x${id.columns}`);
1066
+ }
1067
+ const n = id.rows;
1068
+ if (n === 0) {
1069
+ return new_matrix(0, 0, 0);
1070
+ }
1071
+ const evals = eigenvalues(id);
1072
+ const vectors = [];
1073
+ for (let i = 0; i < n; i++) {
1074
+ const lambda = evals[i];
1075
+ const vec = inverseIteration(id, lambda);
1076
+ vectors.push(vec);
1077
+ }
1078
+ const result = [];
1079
+ for (let i = 0; i < n; i++) {
1080
+ const row2 = [];
1081
+ for (let j = 0; j < n; j++) {
1082
+ row2.push(vectors[j][i]);
1083
+ }
1084
+ result.push(row2);
1085
+ }
1086
+ return {
1087
+ rows: n,
1088
+ columns: n,
1089
+ data: result
1090
+ };
1091
+ }
1092
+ function inverseIteration(m, lambda) {
1093
+ const n = m.rows;
1094
+ const shifted = m.data.map(
1095
+ (row2, i) => row2.map((val, j) => i === j ? val - lambda : val)
1096
+ );
1097
+ for (let i = 0; i < n; i++) {
1098
+ if (Math.abs(shifted[i][i]) < EPSILON) {
1099
+ shifted[i][i] = EPSILON;
1100
+ }
1101
+ }
1102
+ let v = new Array(n).fill(1);
1103
+ for (let iter = 0; iter < 50; iter++) {
1104
+ const w = solveLinearSystem(shifted, v);
1105
+ let norm = 0;
1106
+ for (let i = 0; i < n; i++) {
1107
+ norm += w[i] * w[i];
1108
+ }
1109
+ norm = Math.sqrt(norm);
1110
+ if (norm < EPSILON) {
1111
+ return v;
1112
+ }
1113
+ const newV = [];
1114
+ for (let i = 0; i < n; i++) {
1115
+ newV.push(w[i] / norm);
1116
+ }
1117
+ let diff2 = 0;
1118
+ for (let i = 0; i < n; i++) {
1119
+ diff2 += Math.abs(Math.abs(newV[i]) - Math.abs(v[i]));
1120
+ }
1121
+ v = newV;
1122
+ if (diff2 < EPSILON) {
1123
+ break;
1124
+ }
1125
+ }
1126
+ return v;
1127
+ }
1128
+ function solveLinearSystem(a, b) {
1129
+ const n = a.length;
1130
+ const aug = a.map((row2, i) => [...row2, b[i]]);
1131
+ for (let col2 = 0; col2 < n; col2++) {
1132
+ let maxRow = col2;
1133
+ let maxVal = Math.abs(aug[col2][col2]);
1134
+ for (let row2 = col2 + 1; row2 < n; row2++) {
1135
+ const absVal = Math.abs(aug[row2][col2]);
1136
+ if (absVal > maxVal) {
1137
+ maxVal = absVal;
1138
+ maxRow = row2;
1139
+ }
1140
+ }
1141
+ if (maxRow !== col2) {
1142
+ const temp = aug[col2];
1143
+ aug[col2] = aug[maxRow];
1144
+ aug[maxRow] = temp;
1145
+ }
1146
+ const pivot = aug[col2][col2];
1147
+ if (Math.abs(pivot) < EPSILON) {
1148
+ continue;
1149
+ }
1150
+ for (let row2 = col2 + 1; row2 < n; row2++) {
1151
+ const factor = aug[row2][col2] / pivot;
1152
+ for (let j = col2; j <= n; j++) {
1153
+ aug[row2][j] = aug[row2][j] - factor * aug[col2][j];
1154
+ }
1155
+ }
1156
+ }
1157
+ const x = new Array(n).fill(0);
1158
+ for (let i = n - 1; i >= 0; i--) {
1159
+ let sum2 = aug[i][n];
1160
+ for (let j = i + 1; j < n; j++) {
1161
+ sum2 -= aug[i][j] * x[j];
1162
+ }
1163
+ const diag = aug[i][i];
1164
+ x[i] = Math.abs(diag) < EPSILON ? 0 : sum2 / diag;
1165
+ }
1166
+ return x;
1167
+ }
1168
+ function kron(id1, id2) {
1169
+ const m1 = id1.rows;
1170
+ const n1 = id1.columns;
1171
+ const m2 = id2.rows;
1172
+ const n2 = id2.columns;
1173
+ const resultRows = m1 * m2;
1174
+ const resultCols = n1 * n2;
1175
+ const data = [];
1176
+ for (let i = 0; i < resultRows; i++) {
1177
+ data.push(new Array(resultCols).fill(0));
1178
+ }
1179
+ for (let i1 = 0; i1 < m1; i1++) {
1180
+ for (let j1 = 0; j1 < n1; j1++) {
1181
+ const a = id1.data[i1][j1];
1182
+ for (let i2 = 0; i2 < m2; i2++) {
1183
+ for (let j2 = 0; j2 < n2; j2++) {
1184
+ const row2 = i1 * m2 + i2;
1185
+ const col2 = j1 * n2 + j2;
1186
+ data[row2][col2] = a * id2.data[i2][j2];
1187
+ }
1188
+ }
1189
+ }
1190
+ }
1191
+ return {
1192
+ rows: resultRows,
1193
+ columns: resultCols,
1194
+ data
1195
+ };
1196
+ }
1197
+ function newtype(rows2 = 0, columns2 = 0, initial_value) {
1198
+ return new_matrix(rows2, columns2, initial_value);
1199
+ }
1200
+ //# sourceMappingURL=index.js.map