diff-grok 1.1.0 → 1.3.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 (487) hide show
  1. package/LICENSE +1 -1
  2. package/README.MD +80 -31
  3. package/dist/index.d.ts +6 -0
  4. package/{index.js → dist/index.js} +2 -1
  5. package/dist/index.js.map +1 -0
  6. package/dist/src/examples/basic-use.d.ts +10 -0
  7. package/dist/src/examples/basic-use.js.map +1 -0
  8. package/dist/src/examples/check-methods.d.ts +1 -0
  9. package/{src → dist/src}/examples/check-methods.js +15 -3
  10. package/dist/src/examples/check-methods.js.map +1 -0
  11. package/dist/src/examples/corr-probs.d.ts +15 -0
  12. package/{src → dist/src}/examples/corr-probs.js +2 -2
  13. package/dist/src/examples/corr-probs.js.map +1 -0
  14. package/dist/src/examples/cyclic-model.d.ts +6 -0
  15. package/dist/src/examples/cyclic-model.js.map +1 -0
  16. package/dist/src/examples/e5.d.ts +15 -0
  17. package/dist/src/examples/e5.js.map +1 -0
  18. package/dist/src/examples/hires.d.ts +15 -0
  19. package/dist/src/examples/hires.js.map +1 -0
  20. package/dist/src/examples/index.d.ts +22 -0
  21. package/dist/src/examples/index.js.map +1 -0
  22. package/dist/src/examples/model-updates.d.ts +6 -0
  23. package/dist/src/examples/model-updates.js.map +1 -0
  24. package/dist/src/examples/orego.d.ts +15 -0
  25. package/dist/src/examples/orego.js.map +1 -0
  26. package/dist/src/examples/pipeline-use.d.ts +6 -0
  27. package/dist/src/examples/pipeline-use.js.map +1 -0
  28. package/dist/src/examples/pollution.d.ts +15 -0
  29. package/dist/src/examples/pollution.js.map +1 -0
  30. package/{src/examples/print-benchmark.ts → dist/src/examples/print-benchmark.d.ts} +8 -58
  31. package/dist/src/examples/print-benchmark.js.map +1 -0
  32. package/dist/src/examples/robertson.d.ts +15 -0
  33. package/{src → dist/src}/examples/robertson.js +2 -2
  34. package/dist/src/examples/robertson.js.map +1 -0
  35. package/dist/src/examples/scripting.d.ts +1 -0
  36. package/dist/src/examples/scripting.js.map +1 -0
  37. package/dist/src/examples/vdpol.d.ts +15 -0
  38. package/dist/src/examples/vdpol.js.map +1 -0
  39. package/dist/src/latex-export/examples/advanced-to-latex.d.ts +2 -0
  40. package/dist/src/latex-export/examples/advanced-to-latex.js +41 -0
  41. package/dist/src/latex-export/examples/advanced-to-latex.js.map +1 -0
  42. package/dist/src/latex-export/examples/basic-to-latex.d.ts +2 -0
  43. package/dist/src/latex-export/examples/basic-to-latex.js +17 -0
  44. package/dist/src/latex-export/examples/basic-to-latex.js.map +1 -0
  45. package/dist/src/latex-export/examples/bioreactor-to-latex-selective.d.ts +2 -0
  46. package/dist/src/latex-export/examples/bioreactor-to-latex-selective.js +145 -0
  47. package/dist/src/latex-export/examples/bioreactor-to-latex-selective.js.map +1 -0
  48. package/dist/src/latex-export/examples/chem-react-to-latex-no-cdot.d.ts +2 -0
  49. package/dist/src/latex-export/examples/chem-react-to-latex-no-cdot.js +41 -0
  50. package/dist/src/latex-export/examples/chem-react-to-latex-no-cdot.js.map +1 -0
  51. package/dist/src/latex-export/examples/energy-n-control-to-markdown.d.ts +2 -0
  52. package/dist/src/latex-export/examples/energy-n-control-to-markdown.js +58 -0
  53. package/dist/src/latex-export/examples/energy-n-control-to-markdown.js.map +1 -0
  54. package/dist/src/latex-export/examples/extended-to-markdown.d.ts +2 -0
  55. package/dist/src/latex-export/examples/extended-to-markdown.js +37 -0
  56. package/dist/src/latex-export/examples/extended-to-markdown.js.map +1 -0
  57. package/dist/src/latex-export/examples/fermentation-to-latex.d.ts +2 -0
  58. package/dist/src/latex-export/examples/fermentation-to-latex.js +32 -0
  59. package/dist/src/latex-export/examples/fermentation-to-latex.js.map +1 -0
  60. package/dist/src/latex-export/examples/ga-production-to-markdown.d.ts +2 -0
  61. package/dist/src/latex-export/examples/ga-production-to-markdown.js +58 -0
  62. package/dist/src/latex-export/examples/ga-production-to-markdown.js.map +1 -0
  63. package/dist/src/latex-export/examples/nimotuzumab-to-latex.d.ts +2 -0
  64. package/dist/src/latex-export/examples/nimotuzumab-to-latex.js +53 -0
  65. package/dist/src/latex-export/examples/nimotuzumab-to-latex.js.map +1 -0
  66. package/dist/src/latex-export/examples/pk-pd-to-markdown-minimal.d.ts +2 -0
  67. package/dist/src/latex-export/examples/pk-pd-to-markdown-minimal.js +50 -0
  68. package/dist/src/latex-export/examples/pk-pd-to-markdown-minimal.js.map +1 -0
  69. package/dist/src/latex-export/examples/pk-to-markdown.d.ts +2 -0
  70. package/dist/src/latex-export/examples/pk-to-markdown.js +35 -0
  71. package/dist/src/latex-export/examples/pk-to-markdown.js.map +1 -0
  72. package/dist/src/latex-export/examples/pollution-to-latex.d.ts +2 -0
  73. package/dist/src/latex-export/examples/pollution-to-latex.js +141 -0
  74. package/dist/src/latex-export/examples/pollution-to-latex.js.map +1 -0
  75. package/dist/src/latex-export/examples/robertson-to-latex-no-meta.d.ts +2 -0
  76. package/dist/src/latex-export/examples/robertson-to-latex-no-meta.js +25 -0
  77. package/dist/src/latex-export/examples/robertson-to-latex-no-meta.js.map +1 -0
  78. package/dist/src/latex-export/generator/bracket-manager.d.ts +19 -0
  79. package/dist/src/latex-export/generator/bracket-manager.js +58 -0
  80. package/dist/src/latex-export/generator/bracket-manager.js.map +1 -0
  81. package/dist/src/latex-export/generator/document-builder.d.ts +13 -0
  82. package/dist/src/latex-export/generator/document-builder.js +433 -0
  83. package/dist/src/latex-export/generator/document-builder.js.map +1 -0
  84. package/dist/src/latex-export/generator/latex-generator.d.ts +23 -0
  85. package/dist/src/latex-export/generator/latex-generator.js +176 -0
  86. package/dist/src/latex-export/generator/latex-generator.js.map +1 -0
  87. package/dist/src/latex-export/index.d.ts +8 -0
  88. package/dist/src/latex-export/index.js +25 -0
  89. package/dist/src/latex-export/index.js.map +1 -0
  90. package/dist/src/latex-export/output/md-formatter.d.ts +16 -0
  91. package/dist/src/latex-export/output/md-formatter.js +27 -0
  92. package/dist/src/latex-export/output/md-formatter.js.map +1 -0
  93. package/dist/src/latex-export/output/tex-formatter.d.ts +5 -0
  94. package/dist/src/latex-export/output/tex-formatter.js +20 -0
  95. package/dist/src/latex-export/output/tex-formatter.js.map +1 -0
  96. package/dist/src/latex-export/parser/ast-parser.d.ts +7 -0
  97. package/dist/src/latex-export/parser/ast-parser.js +153 -0
  98. package/dist/src/latex-export/parser/ast-parser.js.map +1 -0
  99. package/dist/src/latex-export/parser/ivp-parser.d.ts +6 -0
  100. package/dist/src/latex-export/parser/ivp-parser.js +219 -0
  101. package/dist/src/latex-export/parser/ivp-parser.js.map +1 -0
  102. package/dist/src/latex-export/parser/line-joiner.d.ts +25 -0
  103. package/dist/src/latex-export/parser/line-joiner.js +80 -0
  104. package/dist/src/latex-export/parser/line-joiner.js.map +1 -0
  105. package/dist/src/latex-export/parser/tokenizer.d.ts +7 -0
  106. package/dist/src/latex-export/parser/tokenizer.js +143 -0
  107. package/dist/src/latex-export/parser/tokenizer.js.map +1 -0
  108. package/dist/src/latex-export/transformer/functions.d.ts +12 -0
  109. package/dist/src/latex-export/transformer/functions.js +47 -0
  110. package/dist/src/latex-export/transformer/functions.js.map +1 -0
  111. package/dist/src/latex-export/transformer/identifier.d.ts +23 -0
  112. package/dist/src/latex-export/transformer/identifier.js +194 -0
  113. package/dist/src/latex-export/transformer/identifier.js.map +1 -0
  114. package/dist/src/latex-export/transformer/operators.d.ts +9 -0
  115. package/dist/src/latex-export/transformer/operators.js +41 -0
  116. package/dist/src/latex-export/transformer/operators.js.map +1 -0
  117. package/dist/src/latex-export/types.d.ts +122 -0
  118. package/dist/src/latex-export/types.js +10 -0
  119. package/dist/src/latex-export/types.js.map +1 -0
  120. package/{src/pipeline/basic-pipeline-creator.ts → dist/src/pipeline/basic-pipeline-creator.d.ts} +11 -28
  121. package/dist/src/pipeline/basic-pipeline-creator.js.map +1 -0
  122. package/dist/src/pipeline/constants.d.ts +14 -0
  123. package/dist/src/pipeline/constants.js.map +1 -0
  124. package/dist/src/pipeline/index.d.ts +7 -0
  125. package/dist/src/pipeline/index.js.map +1 -0
  126. package/dist/src/pipeline/input.d.ts +3 -0
  127. package/dist/src/pipeline/input.js.map +1 -0
  128. package/dist/src/pipeline/loops-pipeline-creator.d.ts +124 -0
  129. package/dist/src/pipeline/loops-pipeline-creator.js.map +1 -0
  130. package/dist/src/pipeline/output.d.ts +10 -0
  131. package/{src → dist/src}/pipeline/output.js +1 -1
  132. package/dist/src/pipeline/output.js.map +1 -0
  133. package/dist/src/pipeline/pipeline-creator.d.ts +12 -0
  134. package/{src → dist/src}/pipeline/pipeline-creator.js +2 -0
  135. package/dist/src/pipeline/pipeline-creator.js.map +1 -0
  136. package/{src/pipeline/pipeline.ts → dist/src/pipeline/pipeline.d.ts} +10 -97
  137. package/dist/src/pipeline/pipeline.js.map +1 -0
  138. package/{src/pipeline/updates-pipeline-creator.ts → dist/src/pipeline/updates-pipeline-creator.d.ts} +15 -131
  139. package/dist/src/pipeline/updates-pipeline-creator.js.map +1 -0
  140. package/dist/src/scripting-tools/constants.d.ts +59 -0
  141. package/dist/src/scripting-tools/constants.js.map +1 -0
  142. package/dist/src/scripting-tools/index.d.ts +3 -0
  143. package/dist/src/scripting-tools/index.js.map +1 -0
  144. package/dist/src/scripting-tools/model-error.d.ts +10 -0
  145. package/{src → dist/src}/scripting-tools/model-error.js +2 -1
  146. package/dist/src/scripting-tools/model-error.js.map +1 -0
  147. package/dist/src/scripting-tools/scripting-tools.d.ts +277 -0
  148. package/{src → dist/src}/scripting-tools/scripting-tools.js +2 -4
  149. package/dist/src/scripting-tools/scripting-tools.js.map +1 -0
  150. package/dist/src/solver-tools/ab4-method.d.ts +46 -0
  151. package/{src → dist/src}/solver-tools/ab4-method.js +3 -3
  152. package/dist/src/solver-tools/ab4-method.js.map +1 -0
  153. package/dist/src/solver-tools/ab5-method.d.ts +46 -0
  154. package/{src → dist/src}/solver-tools/ab5-method.js +3 -3
  155. package/dist/src/solver-tools/ab5-method.js.map +1 -0
  156. package/dist/src/solver-tools/callbacks/callback-base.d.ts +8 -0
  157. package/dist/src/solver-tools/callbacks/callback-base.js.map +1 -0
  158. package/dist/src/solver-tools/callbacks/callback-tools.d.ts +6 -0
  159. package/dist/src/solver-tools/callbacks/callback-tools.js.map +1 -0
  160. package/dist/src/solver-tools/callbacks/iter-checker-callback.d.ts +12 -0
  161. package/{src → dist/src}/solver-tools/callbacks/iter-checker-callback.js +2 -0
  162. package/dist/src/solver-tools/callbacks/iter-checker-callback.js.map +1 -0
  163. package/dist/src/solver-tools/callbacks/time-checker-callback.d.ts +12 -0
  164. package/{src → dist/src}/solver-tools/callbacks/time-checker-callback.js +2 -2
  165. package/dist/src/solver-tools/callbacks/time-checker-callback.js.map +1 -0
  166. package/dist/src/solver-tools/cvode/common.d.ts +395 -0
  167. package/dist/src/solver-tools/cvode/common.js +483 -0
  168. package/dist/src/solver-tools/cvode/common.js.map +1 -0
  169. package/dist/src/solver-tools/cvode/cvode.d.ts +23 -0
  170. package/dist/src/solver-tools/cvode/cvode.js +1062 -0
  171. package/dist/src/solver-tools/cvode/cvode.js.map +1 -0
  172. package/dist/src/solver-tools/cvode/cvode_adams.d.ts +22 -0
  173. package/dist/src/solver-tools/cvode/cvode_adams.js +124 -0
  174. package/dist/src/solver-tools/cvode/cvode_adams.js.map +1 -0
  175. package/dist/src/solver-tools/cvode/cvode_bdf.d.ts +37 -0
  176. package/dist/src/solver-tools/cvode/cvode_bdf.js +153 -0
  177. package/dist/src/solver-tools/cvode/cvode_bdf.js.map +1 -0
  178. package/dist/src/solver-tools/cvode/cvode_class.d.ts +116 -0
  179. package/dist/src/solver-tools/cvode/cvode_class.js +163 -0
  180. package/dist/src/solver-tools/cvode/cvode_class.js.map +1 -0
  181. package/dist/src/solver-tools/cvode/cvode_hin.d.ts +24 -0
  182. package/dist/src/solver-tools/cvode/cvode_hin.js +119 -0
  183. package/dist/src/solver-tools/cvode/cvode_hin.js.map +1 -0
  184. package/dist/src/solver-tools/cvode/cvode_io.d.ts +98 -0
  185. package/dist/src/solver-tools/cvode/cvode_io.js +202 -0
  186. package/dist/src/solver-tools/cvode/cvode_io.js.map +1 -0
  187. package/dist/src/solver-tools/cvode/cvode_ls.d.ts +23 -0
  188. package/dist/src/solver-tools/cvode/cvode_ls.js +210 -0
  189. package/dist/src/solver-tools/cvode/cvode_ls.js.map +1 -0
  190. package/dist/src/solver-tools/cvode/cvode_nls.d.ts +25 -0
  191. package/dist/src/solver-tools/cvode/cvode_nls.js +220 -0
  192. package/dist/src/solver-tools/cvode/cvode_nls.js.map +1 -0
  193. package/dist/src/solver-tools/cvode/cvode_root.d.ts +64 -0
  194. package/dist/src/solver-tools/cvode/cvode_root.js +415 -0
  195. package/dist/src/solver-tools/cvode/cvode_root.js.map +1 -0
  196. package/dist/src/solver-tools/cvode/dense_linalg.d.ts +50 -0
  197. package/dist/src/solver-tools/cvode/dense_linalg.js +131 -0
  198. package/dist/src/solver-tools/cvode/dense_linalg.js.map +1 -0
  199. package/dist/src/solver-tools/cvode/index.d.ts +24 -0
  200. package/dist/src/solver-tools/cvode/index.js +26 -0
  201. package/dist/src/solver-tools/cvode/index.js.map +1 -0
  202. package/dist/src/solver-tools/cvode-method.d.ts +47 -0
  203. package/dist/src/solver-tools/cvode-method.js +114 -0
  204. package/dist/src/solver-tools/cvode-method.js.map +1 -0
  205. package/dist/src/solver-tools/index.d.ts +16 -0
  206. package/{src → dist/src}/solver-tools/index.js +1 -0
  207. package/dist/src/solver-tools/index.js.map +1 -0
  208. package/dist/src/solver-tools/lin-alg-tools.d.ts +6 -0
  209. package/dist/src/solver-tools/lin-alg-tools.js.map +1 -0
  210. package/dist/src/solver-tools/lsoda/blas.d.ts +59 -0
  211. package/{src → dist/src}/solver-tools/lsoda/blas.js +11 -0
  212. package/dist/src/solver-tools/lsoda/blas.js.map +1 -0
  213. package/dist/src/solver-tools/lsoda/cfode.d.ts +18 -0
  214. package/{src → dist/src}/solver-tools/lsoda/cfode.js +11 -0
  215. package/dist/src/solver-tools/lsoda/cfode.js.map +1 -0
  216. package/dist/src/solver-tools/lsoda/common.d.ts +85 -0
  217. package/dist/src/solver-tools/lsoda/common.js +96 -0
  218. package/dist/src/solver-tools/lsoda/common.js.map +1 -0
  219. package/dist/src/solver-tools/lsoda/corfailure.d.ts +18 -0
  220. package/{src → dist/src}/solver-tools/lsoda/corfailure.js +11 -0
  221. package/dist/src/solver-tools/lsoda/corfailure.js.map +1 -0
  222. package/dist/src/solver-tools/lsoda/correction.d.ts +23 -0
  223. package/{src → dist/src}/solver-tools/lsoda/correction.js +11 -0
  224. package/dist/src/solver-tools/lsoda/correction.js.map +1 -0
  225. package/dist/src/solver-tools/lsoda/dense.d.ts +47 -0
  226. package/{src → dist/src}/solver-tools/lsoda/dense.js +13 -0
  227. package/dist/src/solver-tools/lsoda/dense.js.map +1 -0
  228. package/dist/src/solver-tools/lsoda/index.d.ts +16 -0
  229. package/dist/src/solver-tools/lsoda/index.js +15 -0
  230. package/dist/src/solver-tools/lsoda/index.js.map +1 -0
  231. package/dist/src/solver-tools/lsoda/intdy.d.ts +19 -0
  232. package/{src → dist/src}/solver-tools/lsoda/intdy.js +11 -0
  233. package/dist/src/solver-tools/lsoda/intdy.js.map +1 -0
  234. package/dist/src/solver-tools/lsoda/lsoda.d.ts +66 -0
  235. package/{src → dist/src}/solver-tools/lsoda/lsoda.js +24 -5
  236. package/dist/src/solver-tools/lsoda/lsoda.js.map +1 -0
  237. package/dist/src/solver-tools/lsoda/methodswitch.d.ts +21 -0
  238. package/{src → dist/src}/solver-tools/lsoda/methodswitch.js +11 -0
  239. package/dist/src/solver-tools/lsoda/methodswitch.js.map +1 -0
  240. package/dist/src/solver-tools/lsoda/orderswitch.d.ts +21 -0
  241. package/{src → dist/src}/solver-tools/lsoda/orderswitch.js +11 -0
  242. package/dist/src/solver-tools/lsoda/orderswitch.js.map +1 -0
  243. package/dist/src/solver-tools/lsoda/prja.d.ts +18 -0
  244. package/{src → dist/src}/solver-tools/lsoda/prja.js +11 -0
  245. package/dist/src/solver-tools/lsoda/prja.js.map +1 -0
  246. package/dist/src/solver-tools/lsoda/scaleh.d.ts +16 -0
  247. package/{src → dist/src}/solver-tools/lsoda/scaleh.js +11 -0
  248. package/dist/src/solver-tools/lsoda/scaleh.js.map +1 -0
  249. package/dist/src/solver-tools/lsoda/solsy.d.ts +17 -0
  250. package/dist/src/solver-tools/lsoda/solsy.js +25 -0
  251. package/dist/src/solver-tools/lsoda/solsy.js.map +1 -0
  252. package/dist/src/solver-tools/lsoda/stoda.d.ts +19 -0
  253. package/{src → dist/src}/solver-tools/lsoda/stoda.js +11 -0
  254. package/dist/src/solver-tools/lsoda/stoda.js.map +1 -0
  255. package/dist/src/solver-tools/lsoda-method.d.ts +46 -0
  256. package/{src → dist/src}/solver-tools/lsoda-method.js +23 -9
  257. package/dist/src/solver-tools/lsoda-method.js.map +1 -0
  258. package/dist/src/solver-tools/mrt-method.d.ts +47 -0
  259. package/{src → dist/src}/solver-tools/mrt-method.js +2 -2
  260. package/dist/src/solver-tools/mrt-method.js.map +1 -0
  261. package/dist/src/solver-tools/rk3-method.d.ts +46 -0
  262. package/{src → dist/src}/solver-tools/rk3-method.js +2 -2
  263. package/dist/src/solver-tools/rk3-method.js.map +1 -0
  264. package/dist/src/solver-tools/rk4-method.d.ts +46 -0
  265. package/{src → dist/src}/solver-tools/rk4-method.js +2 -2
  266. package/dist/src/solver-tools/rk4-method.js.map +1 -0
  267. package/dist/src/solver-tools/rkdp-method.d.ts +46 -0
  268. package/{src → dist/src}/solver-tools/rkdp-method.js +2 -2
  269. package/dist/src/solver-tools/rkdp-method.js.map +1 -0
  270. package/dist/src/solver-tools/ros34prw-method.d.ts +46 -0
  271. package/{src → dist/src}/solver-tools/ros34prw-method.js +2 -2
  272. package/dist/src/solver-tools/ros34prw-method.js.map +1 -0
  273. package/dist/src/solver-tools/ros3prw-method.d.ts +46 -0
  274. package/{src → dist/src}/solver-tools/ros3prw-method.js +2 -2
  275. package/dist/src/solver-tools/ros3prw-method.js.map +1 -0
  276. package/{src/solver-tools/solver-defs.ts → dist/src/solver-tools/solver-defs.d.ts} +45 -84
  277. package/{src → dist/src}/solver-tools/solver-defs.js +1 -0
  278. package/dist/src/solver-tools/solver-defs.js.map +1 -0
  279. package/dist/src/worker-tools/index.d.ts +2 -0
  280. package/dist/src/worker-tools/index.js.map +1 -0
  281. package/{src/worker-tools/scripting.ts → dist/src/worker-tools/scripting.d.ts} +9 -91
  282. package/dist/src/worker-tools/scripting.js.map +1 -0
  283. package/dist/src/worker-tools/solving.d.ts +7 -0
  284. package/{src → dist/src}/worker-tools/solving.js +3 -1
  285. package/dist/src/worker-tools/solving.js.map +1 -0
  286. package/package.json +13 -12
  287. package/.claude/settings.local.json +0 -11
  288. package/.eslintrc.json +0 -45
  289. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -29
  290. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
  291. package/.github/PULL_REQUEST_TEMPLATE.md +0 -22
  292. package/.github/scripts/bump-js-api-version.sh +0 -106
  293. package/.github/scripts/check-output.sh +0 -20
  294. package/.github/scripts/iac-cfn-deploy.sh +0 -90
  295. package/.github/scripts/slack_api_request.sh +0 -65
  296. package/.github/scripts/test_package.sh +0 -270
  297. package/.github/workflows/deploy-docs.yml +0 -15
  298. package/.github/workflows/libraries.yaml +0 -305
  299. package/.github/workflows/test.yaml +0 -19
  300. package/CLAUDE.md +0 -98
  301. package/CONTRIBUTING.md +0 -74
  302. package/eslintrc.json +0 -45
  303. package/images/E5.png +0 -0
  304. package/images/HIRES.png +0 -0
  305. package/images/OREGO.png +0 -0
  306. package/images/POLL-full.png +0 -0
  307. package/images/POLL.png +0 -0
  308. package/images/ROBER.png +0 -0
  309. package/images/VDP0L.png +0 -0
  310. package/images/VDPOL.png +0 -0
  311. package/images/acid-prod.gif +0 -0
  312. package/index.js.map +0 -1
  313. package/index.ts +0 -17
  314. package/jest.config.js +0 -13
  315. package/src/examples/basic-use.js.map +0 -1
  316. package/src/examples/basic-use.ts +0 -44
  317. package/src/examples/bioreactor.js +0 -125
  318. package/src/examples/bioreactor.js.map +0 -1
  319. package/src/examples/bioreactor.ts +0 -132
  320. package/src/examples/check-methods.js.map +0 -1
  321. package/src/examples/check-methods.ts +0 -81
  322. package/src/examples/corr-probs.js.map +0 -1
  323. package/src/examples/corr-probs.ts +0 -155
  324. package/src/examples/cyclic-model.js.map +0 -1
  325. package/src/examples/cyclic-model.ts +0 -112
  326. package/src/examples/e5.js.map +0 -1
  327. package/src/examples/e5.ts +0 -36
  328. package/src/examples/hires.js.map +0 -1
  329. package/src/examples/hires.ts +0 -40
  330. package/src/examples/index.js.map +0 -1
  331. package/src/examples/index.ts +0 -34
  332. package/src/examples/model-updates.js.map +0 -1
  333. package/src/examples/model-updates.ts +0 -122
  334. package/src/examples/orego.js.map +0 -1
  335. package/src/examples/orego.ts +0 -25
  336. package/src/examples/pipeline-use.js.map +0 -1
  337. package/src/examples/pipeline-use.ts +0 -98
  338. package/src/examples/pollution.js.map +0 -1
  339. package/src/examples/pollution.ts +0 -133
  340. package/src/examples/print-benchmark.js.map +0 -1
  341. package/src/examples/robertson.js.map +0 -1
  342. package/src/examples/robertson.ts +0 -19
  343. package/src/examples/scripting.js.map +0 -1
  344. package/src/examples/scripting.ts +0 -35
  345. package/src/examples/vdpol.js.map +0 -1
  346. package/src/examples/vdpol.ts +0 -17
  347. package/src/pipeline/basic-pipeline-creator.js.map +0 -1
  348. package/src/pipeline/constants.js.map +0 -1
  349. package/src/pipeline/constants.ts +0 -21
  350. package/src/pipeline/index.js.map +0 -1
  351. package/src/pipeline/index.ts +0 -7
  352. package/src/pipeline/input.js.map +0 -1
  353. package/src/pipeline/input.ts +0 -55
  354. package/src/pipeline/loops-pipeline-creator.js.map +0 -1
  355. package/src/pipeline/loops-pipeline-creator.ts +0 -252
  356. package/src/pipeline/output.js.map +0 -1
  357. package/src/pipeline/output.ts +0 -201
  358. package/src/pipeline/pipeline-creator.js.map +0 -1
  359. package/src/pipeline/pipeline-creator.ts +0 -20
  360. package/src/pipeline/pipeline.js.map +0 -1
  361. package/src/pipeline/updates-pipeline-creator.js.map +0 -1
  362. package/src/scripting-tools/constants.js.map +0 -1
  363. package/src/scripting-tools/constants.ts +0 -69
  364. package/src/scripting-tools/index.js.map +0 -1
  365. package/src/scripting-tools/index.ts +0 -8
  366. package/src/scripting-tools/model-error.js.map +0 -1
  367. package/src/scripting-tools/model-error.ts +0 -21
  368. package/src/scripting-tools/scripting-tools.js.map +0 -1
  369. package/src/scripting-tools/scripting-tools.ts +0 -1582
  370. package/src/solver-tools/ab4-method.js.map +0 -1
  371. package/src/solver-tools/ab4-method.ts +0 -395
  372. package/src/solver-tools/ab5-method.js.map +0 -1
  373. package/src/solver-tools/ab5-method.ts +0 -397
  374. package/src/solver-tools/callbacks/callback-base.js.map +0 -1
  375. package/src/solver-tools/callbacks/callback-base.ts +0 -12
  376. package/src/solver-tools/callbacks/callback-tools.js.map +0 -1
  377. package/src/solver-tools/callbacks/callback-tools.ts +0 -22
  378. package/src/solver-tools/callbacks/iter-checker-callback.js.map +0 -1
  379. package/src/solver-tools/callbacks/iter-checker-callback.ts +0 -25
  380. package/src/solver-tools/callbacks/time-checker-callback.js.map +0 -1
  381. package/src/solver-tools/callbacks/time-checker-callback.ts +0 -23
  382. package/src/solver-tools/index.js.map +0 -1
  383. package/src/solver-tools/index.ts +0 -15
  384. package/src/solver-tools/lin-alg-tools.js.map +0 -1
  385. package/src/solver-tools/lin-alg-tools.ts +0 -75
  386. package/src/solver-tools/lsoda/blas.js.map +0 -1
  387. package/src/solver-tools/lsoda/blas.ts +0 -267
  388. package/src/solver-tools/lsoda/cfode.js.map +0 -1
  389. package/src/solver-tools/lsoda/cfode.ts +0 -83
  390. package/src/solver-tools/lsoda/common.js +0 -94
  391. package/src/solver-tools/lsoda/common.js.map +0 -1
  392. package/src/solver-tools/lsoda/common.ts +0 -135
  393. package/src/solver-tools/lsoda/corfailure.js.map +0 -1
  394. package/src/solver-tools/lsoda/corfailure.ts +0 -30
  395. package/src/solver-tools/lsoda/correction.js.map +0 -1
  396. package/src/solver-tools/lsoda/correction.ts +0 -119
  397. package/src/solver-tools/lsoda/dense.js.map +0 -1
  398. package/src/solver-tools/lsoda/dense.ts +0 -129
  399. package/src/solver-tools/lsoda/index.js +0 -4
  400. package/src/solver-tools/lsoda/index.js.map +0 -1
  401. package/src/solver-tools/lsoda/index.ts +0 -5
  402. package/src/solver-tools/lsoda/intdy.js.map +0 -1
  403. package/src/solver-tools/lsoda/intdy.ts +0 -50
  404. package/src/solver-tools/lsoda/lsoda.js.map +0 -1
  405. package/src/solver-tools/lsoda/lsoda.ts +0 -632
  406. package/src/solver-tools/lsoda/methodswitch.js.map +0 -1
  407. package/src/solver-tools/lsoda/methodswitch.ts +0 -107
  408. package/src/solver-tools/lsoda/orderswitch.js.map +0 -1
  409. package/src/solver-tools/lsoda/orderswitch.ts +0 -95
  410. package/src/solver-tools/lsoda/prja.js.map +0 -1
  411. package/src/solver-tools/lsoda/prja.ts +0 -49
  412. package/src/solver-tools/lsoda/scaleh.js.map +0 -1
  413. package/src/solver-tools/lsoda/scaleh.ts +0 -33
  414. package/src/solver-tools/lsoda/solsy.js +0 -14
  415. package/src/solver-tools/lsoda/solsy.js.map +0 -1
  416. package/src/solver-tools/lsoda/solsy.ts +0 -18
  417. package/src/solver-tools/lsoda/stoda.js.map +0 -1
  418. package/src/solver-tools/lsoda/stoda.ts +0 -286
  419. package/src/solver-tools/lsoda-method.js.map +0 -1
  420. package/src/solver-tools/lsoda-method.ts +0 -136
  421. package/src/solver-tools/mrt-method.js.map +0 -1
  422. package/src/solver-tools/mrt-method.ts +0 -398
  423. package/src/solver-tools/rk3-method.js.map +0 -1
  424. package/src/solver-tools/rk3-method.ts +0 -257
  425. package/src/solver-tools/rk4-method.js.map +0 -1
  426. package/src/solver-tools/rk4-method.ts +0 -286
  427. package/src/solver-tools/rkdp-method.js.map +0 -1
  428. package/src/solver-tools/rkdp-method.ts +0 -300
  429. package/src/solver-tools/ros34prw-method.js.map +0 -1
  430. package/src/solver-tools/ros34prw-method.ts +0 -373
  431. package/src/solver-tools/ros3prw-method.js.map +0 -1
  432. package/src/solver-tools/ros3prw-method.ts +0 -342
  433. package/src/solver-tools/solver-defs.js.map +0 -1
  434. package/src/tests/correctness.test.js +0 -15
  435. package/src/tests/correctness.test.js.map +0 -1
  436. package/src/tests/correctness.test.ts +0 -16
  437. package/src/tests/lsoda-lib-correctness.test.js +0 -223
  438. package/src/tests/lsoda-lib-correctness.test.js.map +0 -1
  439. package/src/tests/lsoda-lib-correctness.test.ts +0 -283
  440. package/src/tests/lsoda-lib-performance.test.js +0 -95
  441. package/src/tests/lsoda-lib-performance.test.js.map +0 -1
  442. package/src/tests/lsoda-lib-performance.test.ts +0 -126
  443. package/src/tests/performance.test.js +0 -16
  444. package/src/tests/performance.test.js.map +0 -1
  445. package/src/tests/performance.test.ts +0 -17
  446. package/src/tests/pipeline.test.js +0 -10
  447. package/src/tests/pipeline.test.js.map +0 -1
  448. package/src/tests/pipeline.test.ts +0 -11
  449. package/src/tests/test-defs.js +0 -207
  450. package/src/tests/test-defs.js.map +0 -1
  451. package/src/tests/test-defs.ts +0 -225
  452. package/src/tests/test-utils.js +0 -28
  453. package/src/tests/test-utils.js.map +0 -1
  454. package/src/tests/test-utils.ts +0 -37
  455. package/src/worker-tools/index.js.map +0 -1
  456. package/src/worker-tools/index.ts +0 -2
  457. package/src/worker-tools/scripting.js.map +0 -1
  458. package/src/worker-tools/solving.js.map +0 -1
  459. package/src/worker-tools/solving.ts +0 -83
  460. package/tsconfig.json +0 -71
  461. package/typedoc.json +0 -8
  462. /package/{src → dist/src}/examples/basic-use.js +0 -0
  463. /package/{src → dist/src}/examples/cyclic-model.js +0 -0
  464. /package/{src → dist/src}/examples/e5.js +0 -0
  465. /package/{src → dist/src}/examples/hires.js +0 -0
  466. /package/{src → dist/src}/examples/index.js +0 -0
  467. /package/{src → dist/src}/examples/model-updates.js +0 -0
  468. /package/{src → dist/src}/examples/orego.js +0 -0
  469. /package/{src → dist/src}/examples/pipeline-use.js +0 -0
  470. /package/{src → dist/src}/examples/pollution.js +0 -0
  471. /package/{src → dist/src}/examples/print-benchmark.js +0 -0
  472. /package/{src → dist/src}/examples/scripting.js +0 -0
  473. /package/{src → dist/src}/examples/vdpol.js +0 -0
  474. /package/{src → dist/src}/pipeline/basic-pipeline-creator.js +0 -0
  475. /package/{src → dist/src}/pipeline/constants.js +0 -0
  476. /package/{src → dist/src}/pipeline/index.js +0 -0
  477. /package/{src → dist/src}/pipeline/input.js +0 -0
  478. /package/{src → dist/src}/pipeline/loops-pipeline-creator.js +0 -0
  479. /package/{src → dist/src}/pipeline/pipeline.js +0 -0
  480. /package/{src → dist/src}/pipeline/updates-pipeline-creator.js +0 -0
  481. /package/{src → dist/src}/scripting-tools/constants.js +0 -0
  482. /package/{src → dist/src}/scripting-tools/index.js +0 -0
  483. /package/{src → dist/src}/solver-tools/callbacks/callback-base.js +0 -0
  484. /package/{src → dist/src}/solver-tools/callbacks/callback-tools.js +0 -0
  485. /package/{src → dist/src}/solver-tools/lin-alg-tools.js +0 -0
  486. /package/{src → dist/src}/worker-tools/index.js +0 -0
  487. /package/{src → dist/src}/worker-tools/scripting.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cvode.js","sourceRoot":"","sources":["../../../../src/solver-tools/cvode/cvode.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * TypeScript port of SUNDIALS CVODE v7.5.0 (https://github.com/LLNL/sundials)
3
+ *
4
+ * Copyright (c) 2025, Lawrence Livermore National Security, University of
5
+ * Maryland Baltimore County, and the SUNDIALS contributors.
6
+ * Copyright (c) 2013-2025, Lawrence Livermore National Security and
7
+ * Southern Methodist University.
8
+ * Copyright (c) 2002-2013, Lawrence Livermore National Security.
9
+ * Copyright (c) 2026 Datagrok.
10
+ *
11
+ * Licensed under the BSD-3-Clause License. See THIRD_PARTY_LICENSES
12
+ * for the full license text and provenance chain of the original code.
13
+ */
14
+ import { CvodeMem } from './common';
15
+ /**
16
+ * cvSetAdams - Compute Adams method coefficients l[] and tq[]
17
+ */
18
+ export declare function cvSetAdams(mem: CvodeMem): void;
19
+ /**
20
+ * cvAdjustAdams - Adjust history array for Adams order change
21
+ */
22
+ export declare function cvAdjustAdams(mem: CvodeMem, deltaq: number): void;
@@ -0,0 +1,124 @@
1
+ /**
2
+ * TypeScript port of SUNDIALS CVODE v7.5.0 (https://github.com/LLNL/sundials)
3
+ *
4
+ * Copyright (c) 2025, Lawrence Livermore National Security, University of
5
+ * Maryland Baltimore County, and the SUNDIALS contributors.
6
+ * Copyright (c) 2013-2025, Lawrence Livermore National Security and
7
+ * Southern Methodist University.
8
+ * Copyright (c) 2002-2013, Lawrence Livermore National Security.
9
+ * Copyright (c) 2026 Datagrok.
10
+ *
11
+ * Licensed under the BSD-3-Clause License. See THIRD_PARTY_LICENSES
12
+ * for the full license text and provenance chain of the original code.
13
+ */
14
+ import { L_MAX } from './common';
15
+ /**
16
+ * cvAltSum - Alternating sum: sum_{i=0}^{iend} (-1)^i * a[i] / (i + k)
17
+ */
18
+ function cvAltSum(iend, a, k) {
19
+ if (iend < 0)
20
+ return 0.0;
21
+ let sum = 0.0;
22
+ let sign = 1;
23
+ for (let i = 0; i <= iend; i++) {
24
+ sum += sign * (a[i] / (i + k));
25
+ sign = -sign;
26
+ }
27
+ return sum;
28
+ }
29
+ /**
30
+ * cvAdamsStart - Generate product polynomial coefficients for Adams method
31
+ * Returns hsum.
32
+ */
33
+ function cvAdamsStart(mem, m) {
34
+ let hsum = mem.cv_h;
35
+ m[0] = 1.0;
36
+ for (let i = 1; i <= mem.cv_q; i++)
37
+ m[i] = 0.0;
38
+ for (let j = 1; j < mem.cv_q; j++) {
39
+ if (j === mem.cv_q - 1 && mem.cv_qwait === 1) {
40
+ const sum = cvAltSum(mem.cv_q - 2, m, 2);
41
+ mem.cv_tq[1] = mem.cv_q * sum / m[mem.cv_q - 2];
42
+ }
43
+ const xi_inv = mem.cv_h / hsum;
44
+ for (let i = j; i >= 1; i--)
45
+ m[i] += m[i - 1] * xi_inv;
46
+ hsum += mem.cv_tau[j];
47
+ }
48
+ return hsum;
49
+ }
50
+ /**
51
+ * cvAdamsFinish - Complete Adams l and tq computation
52
+ */
53
+ function cvAdamsFinish(mem, m, M, hsum) {
54
+ const M0_inv = 1.0 / M[0];
55
+ mem.cv_l[0] = 1.0;
56
+ for (let i = 1; i <= mem.cv_q; i++)
57
+ mem.cv_l[i] = M0_inv * (m[i - 1] / i);
58
+ const xi = hsum / mem.cv_h;
59
+ const xi_inv = 1.0 / xi;
60
+ mem.cv_tq[2] = M[1] * M0_inv / xi;
61
+ mem.cv_tq[5] = xi / mem.cv_l[mem.cv_q];
62
+ if (mem.cv_qwait === 1) {
63
+ for (let i = mem.cv_q; i >= 1; i--)
64
+ m[i] += m[i - 1] * xi_inv;
65
+ M[2] = cvAltSum(mem.cv_q, m, 2);
66
+ mem.cv_tq[3] = M[2] * M0_inv / mem.cv_L;
67
+ }
68
+ mem.cv_tq[4] = mem.cv_nlscoef / mem.cv_tq[2];
69
+ }
70
+ /**
71
+ * cvSetAdams - Compute Adams method coefficients l[] and tq[]
72
+ */
73
+ export function cvSetAdams(mem) {
74
+ const m = new Float64Array(L_MAX);
75
+ const M = new Float64Array(3);
76
+ if (mem.cv_q === 1) {
77
+ mem.cv_l[0] = 1.0;
78
+ mem.cv_l[1] = 1.0;
79
+ mem.cv_tq[1] = 1.0;
80
+ mem.cv_tq[5] = 1.0;
81
+ mem.cv_tq[2] = 0.5;
82
+ mem.cv_tq[3] = 1.0 / 12.0;
83
+ mem.cv_tq[4] = mem.cv_nlscoef / mem.cv_tq[2];
84
+ return;
85
+ }
86
+ const hsum = cvAdamsStart(mem, m);
87
+ M[0] = cvAltSum(mem.cv_q - 1, m, 1);
88
+ M[1] = cvAltSum(mem.cv_q - 1, m, 2);
89
+ cvAdamsFinish(mem, m, M, hsum);
90
+ }
91
+ /**
92
+ * cvAdjustAdams - Adjust history array for Adams order change
93
+ */
94
+ export function cvAdjustAdams(mem, deltaq) {
95
+ const N = mem.cv_N;
96
+ if (deltaq === 1) {
97
+ // On order increase, set new column of zn to zero
98
+ mem.cv_zn[mem.cv_L].fill(0.0, 0, N);
99
+ return;
100
+ }
101
+ // Order decrease: adjust zn[j] by multiples of zn[q]
102
+ for (let i = 0; i <= mem.cv_qmax; i++)
103
+ mem.cv_l[i] = 0.0;
104
+ mem.cv_l[1] = 1.0;
105
+ let hsum = 0.0;
106
+ for (let j = 1; j <= mem.cv_q - 2; j++) {
107
+ hsum += mem.cv_tau[j];
108
+ const xi = hsum / mem.cv_hscale;
109
+ for (let i = j + 1; i >= 1; i--)
110
+ mem.cv_l[i] = mem.cv_l[i] * xi + mem.cv_l[i - 1];
111
+ }
112
+ for (let j = 1; j <= mem.cv_q - 2; j++)
113
+ mem.cv_l[j + 1] = mem.cv_q * (mem.cv_l[j] / (j + 1));
114
+ if (mem.cv_q > 2) {
115
+ const znq = mem.cv_zn[mem.cv_q];
116
+ for (let j = 2; j < mem.cv_q; j++) {
117
+ const c = -mem.cv_l[j];
118
+ const znj = mem.cv_zn[j];
119
+ for (let i = 0; i < N; i++)
120
+ znj[i] += c * znq[i];
121
+ }
122
+ }
123
+ }
124
+ //# sourceMappingURL=cvode_adams.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cvode_adams.js","sourceRoot":"","sources":["../../../../src/solver-tools/cvode/cvode_adams.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * TypeScript port of SUNDIALS CVODE v7.5.0 (https://github.com/LLNL/sundials)
3
+ *
4
+ * Copyright (c) 2025, Lawrence Livermore National Security, University of
5
+ * Maryland Baltimore County, and the SUNDIALS contributors.
6
+ * Copyright (c) 2013-2025, Lawrence Livermore National Security and
7
+ * Southern Methodist University.
8
+ * Copyright (c) 2002-2013, Lawrence Livermore National Security.
9
+ * Copyright (c) 2026 Datagrok.
10
+ *
11
+ * Licensed under the BSD-3-Clause License. See THIRD_PARTY_LICENSES
12
+ * for the full license text and provenance chain of the original code.
13
+ */
14
+ import { CvodeMem } from './common';
15
+ /**
16
+ * cvSetBDF - Compute BDF method coefficients l[] and tq[]
17
+ *
18
+ * The polynomial l(x) = l_0 + l_1*x + ... + l_q*x^q is given by:
19
+ * Lambda(x) = (1 + x/xi*_q) * product_{i=1}^{q-1} (1 + x/xi_i)
20
+ * where xi_i = (t_n - t_{n-i}) / h
21
+ *
22
+ * The tq array holds test quantities for error and convergence tests:
23
+ * tq[1] = coefficient for error at order q-1
24
+ * tq[2] = coefficient for error at order q
25
+ * tq[3] = coefficient for error at order q+1
26
+ * tq[4] = convergence test coefficient
27
+ * tq[5] = derivative for order q+2 vector
28
+ */
29
+ export declare function cvSetBDF(mem: CvodeMem): void;
30
+ /**
31
+ * cvIncreaseBDF - Adjust history array for BDF order increase
32
+ */
33
+ export declare function cvIncreaseBDF(mem: CvodeMem): void;
34
+ /**
35
+ * cvDecreaseBDF - Adjust history array for BDF order decrease
36
+ */
37
+ export declare function cvDecreaseBDF(mem: CvodeMem): void;
@@ -0,0 +1,153 @@
1
+ /**
2
+ * TypeScript port of SUNDIALS CVODE v7.5.0 (https://github.com/LLNL/sundials)
3
+ *
4
+ * Copyright (c) 2025, Lawrence Livermore National Security, University of
5
+ * Maryland Baltimore County, and the SUNDIALS contributors.
6
+ * Copyright (c) 2013-2025, Lawrence Livermore National Security and
7
+ * Southern Methodist University.
8
+ * Copyright (c) 2002-2013, Lawrence Livermore National Security.
9
+ * Copyright (c) 2026 Datagrok.
10
+ *
11
+ * Licensed under the BSD-3-Clause License. See THIRD_PARTY_LICENSES
12
+ * for the full license text and provenance chain of the original code.
13
+ */
14
+ /**
15
+ * cvSetBDF - Compute BDF method coefficients l[] and tq[]
16
+ *
17
+ * The polynomial l(x) = l_0 + l_1*x + ... + l_q*x^q is given by:
18
+ * Lambda(x) = (1 + x/xi*_q) * product_{i=1}^{q-1} (1 + x/xi_i)
19
+ * where xi_i = (t_n - t_{n-i}) / h
20
+ *
21
+ * The tq array holds test quantities for error and convergence tests:
22
+ * tq[1] = coefficient for error at order q-1
23
+ * tq[2] = coefficient for error at order q
24
+ * tq[3] = coefficient for error at order q+1
25
+ * tq[4] = convergence test coefficient
26
+ * tq[5] = derivative for order q+2 vector
27
+ */
28
+ export function cvSetBDF(mem) {
29
+ let alpha0;
30
+ let alpha0_hat;
31
+ let xi_inv;
32
+ let xistar_inv;
33
+ let hsum;
34
+ mem.cv_l[0] = 1.0;
35
+ mem.cv_l[1] = 1.0;
36
+ xi_inv = 1.0;
37
+ xistar_inv = 1.0;
38
+ for (let i = 2; i <= mem.cv_q; i++)
39
+ mem.cv_l[i] = 0.0;
40
+ alpha0 = -1.0;
41
+ alpha0_hat = -1.0;
42
+ hsum = mem.cv_h;
43
+ if (mem.cv_q > 1) {
44
+ for (let j = 2; j < mem.cv_q; j++) {
45
+ hsum += mem.cv_tau[j - 1];
46
+ xi_inv = mem.cv_h / hsum;
47
+ alpha0 -= 1.0 / j;
48
+ for (let i = j; i >= 1; i--)
49
+ mem.cv_l[i] += mem.cv_l[i - 1] * xi_inv;
50
+ }
51
+ // j = q
52
+ alpha0 -= 1.0 / mem.cv_q;
53
+ xistar_inv = -mem.cv_l[1] - alpha0;
54
+ hsum += mem.cv_tau[mem.cv_q - 1];
55
+ xi_inv = mem.cv_h / hsum;
56
+ alpha0_hat = -mem.cv_l[1] - xi_inv;
57
+ for (let i = mem.cv_q; i >= 1; i--)
58
+ mem.cv_l[i] += mem.cv_l[i - 1] * xistar_inv;
59
+ }
60
+ cvSetTqBDF(mem, hsum, alpha0, alpha0_hat, xi_inv, xistar_inv);
61
+ }
62
+ /**
63
+ * cvSetTqBDF - Set test quantity array for BDF method
64
+ */
65
+ function cvSetTqBDF(mem, hsum, alpha0, alpha0_hat, xi_inv, xistar_inv) {
66
+ const A1 = 1.0 - alpha0_hat + alpha0;
67
+ const A2 = 1.0 + mem.cv_q * A1;
68
+ mem.cv_tq[2] = Math.abs(A1 / (alpha0 * A2));
69
+ mem.cv_tq[5] = Math.abs(A2 * xistar_inv / (mem.cv_l[mem.cv_q] * xi_inv));
70
+ if (mem.cv_qwait === 1) {
71
+ if (mem.cv_q > 1) {
72
+ const C = xistar_inv / mem.cv_l[mem.cv_q];
73
+ const A3 = alpha0 + 1.0 / mem.cv_q;
74
+ const A4 = alpha0_hat + xi_inv;
75
+ const Cpinv = (1.0 - A4 + A3) / A3;
76
+ mem.cv_tq[1] = Math.abs(C * Cpinv);
77
+ }
78
+ else
79
+ mem.cv_tq[1] = 1.0;
80
+ hsum += mem.cv_tau[mem.cv_q];
81
+ const xi_inv2 = mem.cv_h / hsum;
82
+ const A5 = alpha0 - 1.0 / (mem.cv_q + 1);
83
+ const A6 = alpha0_hat - xi_inv2;
84
+ const Cppinv = (1.0 - A6 + A5) / A2;
85
+ mem.cv_tq[3] = Math.abs(Cppinv / (xi_inv2 * (mem.cv_q + 2) * A5));
86
+ }
87
+ mem.cv_tq[4] = mem.cv_nlscoef / mem.cv_tq[2];
88
+ }
89
+ /**
90
+ * cvIncreaseBDF - Adjust history array for BDF order increase
91
+ */
92
+ export function cvIncreaseBDF(mem) {
93
+ const N = mem.cv_N;
94
+ for (let i = 0; i <= mem.cv_qmax; i++)
95
+ mem.cv_l[i] = 0.0;
96
+ mem.cv_l[2] = 1.0;
97
+ let alpha1 = 1.0;
98
+ let prod = 1.0;
99
+ let xiold = 1.0;
100
+ let alpha0 = -1.0;
101
+ let hsum = mem.cv_hscale;
102
+ if (mem.cv_q > 1) {
103
+ for (let j = 1; j < mem.cv_q; j++) {
104
+ hsum += mem.cv_tau[j + 1];
105
+ const xi = hsum / mem.cv_hscale;
106
+ prod *= xi;
107
+ alpha0 -= 1.0 / (j + 1);
108
+ alpha1 += 1.0 / xi;
109
+ for (let i = j + 2; i >= 2; i--)
110
+ mem.cv_l[i] = mem.cv_l[i] * xiold + mem.cv_l[i - 1];
111
+ xiold = xi;
112
+ }
113
+ }
114
+ const A1 = (-alpha0 - alpha1) / prod;
115
+ const znL = mem.cv_zn[mem.cv_L];
116
+ const znSaved = mem.cv_zn[mem.cv_indx_acor];
117
+ for (let i = 0; i < N; i++)
118
+ znL[i] = A1 * znSaved[i];
119
+ if (mem.cv_q > 1) {
120
+ for (let j = 2; j <= mem.cv_q; j++) {
121
+ const c = mem.cv_l[j];
122
+ const znj = mem.cv_zn[j];
123
+ for (let i = 0; i < N; i++)
124
+ znj[i] += c * znL[i];
125
+ }
126
+ }
127
+ }
128
+ /**
129
+ * cvDecreaseBDF - Adjust history array for BDF order decrease
130
+ */
131
+ export function cvDecreaseBDF(mem) {
132
+ const N = mem.cv_N;
133
+ for (let i = 0; i <= mem.cv_qmax; i++)
134
+ mem.cv_l[i] = 0.0;
135
+ mem.cv_l[2] = 1.0;
136
+ let hsum = 0.0;
137
+ for (let j = 1; j <= mem.cv_q - 2; j++) {
138
+ hsum += mem.cv_tau[j];
139
+ const xi = hsum / mem.cv_hscale;
140
+ for (let i = j + 2; i >= 2; i--)
141
+ mem.cv_l[i] = mem.cv_l[i] * xi + mem.cv_l[i - 1];
142
+ }
143
+ if (mem.cv_q > 2) {
144
+ const znq = mem.cv_zn[mem.cv_q];
145
+ for (let j = 2; j < mem.cv_q; j++) {
146
+ const c = -mem.cv_l[j];
147
+ const znj = mem.cv_zn[j];
148
+ for (let i = 0; i < N; i++)
149
+ znj[i] += c * znq[i];
150
+ }
151
+ }
152
+ }
153
+ //# sourceMappingURL=cvode_bdf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cvode_bdf.js","sourceRoot":"","sources":["../../../../src/solver-tools/cvode/cvode_bdf.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * TypeScript port of SUNDIALS CVODE v7.5.0 (https://github.com/LLNL/sundials)
3
+ *
4
+ * Copyright (c) 2025, Lawrence Livermore National Security, University of
5
+ * Maryland Baltimore County, and the SUNDIALS contributors.
6
+ * Copyright (c) 2013-2025, Lawrence Livermore National Security and
7
+ * Southern Methodist University.
8
+ * Copyright (c) 2002-2013, Lawrence Livermore National Security.
9
+ * Copyright (c) 2026 Datagrok.
10
+ *
11
+ * Licensed under the BSD-3-Clause License. See THIRD_PARTY_LICENSES
12
+ * for the full license text and provenance chain of the original code.
13
+ */
14
+ import { CvodeStats } from './cvode_io';
15
+ /**
16
+ * User ODE function: y' = f(t, y).
17
+ * Arrays are 0-based. Return value is void; wrapping to int is done internally.
18
+ */
19
+ export type OdeFunction = (t: number, y: Float64Array, ydot: Float64Array) => void;
20
+ /**
21
+ * Options for the Cvode solver.
22
+ */
23
+ export interface CvodeOptions {
24
+ /** Linear multistep method: 'adams' (non-stiff) or 'bdf' (stiff). Default: 'bdf'. */
25
+ lmm?: 'adams' | 'bdf';
26
+ /** Relative tolerance. Default: 1e-4. */
27
+ rtol?: number;
28
+ /** Absolute tolerance: scalar or per-component array. Default: 1e-6. */
29
+ atol?: number | Float64Array;
30
+ /** Maximum number of internal steps per cvode() call. */
31
+ maxSteps?: number;
32
+ /** Maximum method order. */
33
+ maxOrder?: number;
34
+ /** Maximum step size (0 = no limit). */
35
+ maxStep?: number;
36
+ /** Minimum step size. */
37
+ minStep?: number;
38
+ /** Initial step size (0 = auto-select). */
39
+ initStep?: number;
40
+ /** Stop time: integration will not proceed past this value. */
41
+ stopTime?: number;
42
+ /** Root function: g(t, y, gout). */
43
+ rootFn?: (t: number, y: Float64Array, gout: Float64Array) => void;
44
+ /** Number of root functions (required when rootFn is provided). */
45
+ nRootFns?: number;
46
+ /** User-supplied Jacobian function: J = df/dy. */
47
+ jacFn?: (t: number, y: Float64Array, fy: Float64Array, J: Float64Array[]) => void;
48
+ /** Arbitrary user data (passed as context, not forwarded to callbacks). */
49
+ userData?: any;
50
+ }
51
+ /**
52
+ * Result returned by solve() and step().
53
+ */
54
+ export interface CvodeSolveResult {
55
+ /** Time reached by the solver. */
56
+ t: number;
57
+ /** Solution vector at time t (0-based, copy). */
58
+ y: Float64Array;
59
+ /** Solver flag (CV_SUCCESS=0, CV_ROOT_RETURN=2, CV_TSTOP_RETURN=1, negative=error). */
60
+ flag: number;
61
+ /** Root indices found when flag === CV_ROOT_RETURN. */
62
+ rootsFound?: Int32Array;
63
+ }
64
+ /**
65
+ * High-level CVODE solver class with a 0-based public interface.
66
+ *
67
+ * Usage:
68
+ * const solver = new Cvode(f, neq, t0, y0, { lmm: 'bdf', rtol: 1e-6, atol: 1e-9 });
69
+ * const result = solver.solve(tout);
70
+ */
71
+ export declare class Cvode {
72
+ private mem;
73
+ private neq;
74
+ /** Output vector reused across calls (0-based, neq elements). */
75
+ private yout;
76
+ /** Wrapped RHS stored to allow re-initialization. */
77
+ private wrappedF;
78
+ constructor(f: OdeFunction, neq: number, t0: number, y0: Float64Array, options?: CvodeOptions);
79
+ /**
80
+ * Integrate from the current time to tout using CV_NORMAL mode
81
+ * (integrator advances to tout and interpolates).
82
+ *
83
+ * @param tout - target output time
84
+ * @returns CvodeSolveResult with { t, y, flag, rootsFound? }
85
+ */
86
+ solve(tout: number): CvodeSolveResult;
87
+ /**
88
+ * Take a single internal step using CV_ONE_STEP mode.
89
+ * The solver advances by one internal step of whatever size it chooses.
90
+ *
91
+ * @returns CvodeSolveResult with { t, y, flag, rootsFound? }
92
+ */
93
+ step(): CvodeSolveResult;
94
+ /**
95
+ * Dense output: compute the k-th derivative of the interpolating polynomial
96
+ * at time t using the current Nordsieck history array.
97
+ *
98
+ * @param t - interpolation time (must be within the last step interval)
99
+ * @param k - derivative order (0 = solution, 1 = first derivative, ...)
100
+ * @returns copy of the interpolated vector (length neq)
101
+ */
102
+ getDky(t: number, k: number): Float64Array;
103
+ /**
104
+ * Return current integrator statistics.
105
+ */
106
+ getStats(): CvodeStats;
107
+ /**
108
+ * Re-initialize the solver for a new initial-value problem with the same
109
+ * ODE function and options. Resets internal state and counters.
110
+ *
111
+ * @param t0 - new initial time
112
+ * @param y0 - new initial conditions (length neq)
113
+ */
114
+ reInit(t0: number, y0: Float64Array): void;
115
+ private _buildResult;
116
+ }