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
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2025 Datagrok
3
+ Copyright (c) 2026 Datagrok
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.MD CHANGED
@@ -1,12 +1,12 @@
1
1
  # Diff Grok
2
2
 
3
- [![DOI](https://zenodo.org/badge/635090135.svg)](https://doi.org/10.5281/zenodo.17974378)
3
+ [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.19219694.svg)](https://doi.org/10.5281/zenodo.19219694)
4
4
  [![Docs-stable](https://img.shields.io/badge/docs-stable-blue.svg)](https://datagrok-ai.github.io/diff-grok/)
5
5
  [![License: MIT](https://img.shields.io/badge/License-MIT-success.svg)](https://github.com/datagrok-ai/diff-grok/blob/main/LICENSE)
6
6
  [![Build Status](https://github.com/datagrok-ai/diff-grok/actions/workflows/libraries.yaml/badge.svg)](https://github.com/datagrok-ai/diff-grok/actions/workflows/libraries.yaml)
7
7
  [![Run tests](https://github.com/datagrok-ai/diff-grok/actions/workflows/test.yaml/badge.svg)](https://github.com/datagrok-ai/diff-grok/actions/workflows/test.yaml)
8
8
 
9
- A lightweight TypeScript library for solving initial value problem ([IVP](https://en.wikipedia.org/wiki/Initial_value_problem)) for ordinary differential equations ([ODEs](https://en.wikipedia.org/wiki/Ordinary_differential_equation)) using numerical methods. The primary solver is [LSODA](https://doi.org/10.1137/0904010) — a variable-order method that automatically detects stiffness and switches between Adams (non-stiff) and BDF (stiff) formulations.
9
+ A lightweight TypeScript library for solving initial value problem ([IVP](https://en.wikipedia.org/wiki/Initial_value_problem)) for ordinary differential equations ([ODEs](https://en.wikipedia.org/wiki/Ordinary_differential_equation)) using numerical methods. The primary solvers are [LSODA](https://doi.org/10.1137/0904010) — a variable-order method that automatically detects stiffness and switches between Adams (non-stiff) and BDF (stiff) formulations — and [CVODE](https://sundials.readthedocs.io/en/latest/cvode/index.html) — a variable-order, variable-step solver from the SUNDIALS suite supporting both Adams and BDF methods.
10
10
 
11
11
  ## Features
12
12
 
@@ -14,6 +14,8 @@ A lightweight TypeScript library for solving initial value problem ([IVP](https:
14
14
  * Fast computations
15
15
  * Automatic stiffness-detecting method:
16
16
  * [LSODA](https://doi.org/10.1137/0904010) - variable-order Nordsieck-based solver with automatic switching between Adams (non-stiff) and BDF (stiff) methods ([Petzold, 1983](https://doi.org/10.1137/0904010); [Hindmarsh, 1983](https://computing.llnl.gov/sites/default/files/ODEPACK_pub1_u88007.pdf)). Ported to TypeScript from the C library [liblsoda](https://github.com/sdwfrost/liblsoda)
17
+ * Variable-order multistep method:
18
+ * [CVODE](https://sundials.readthedocs.io/en/latest/cvode/index.html) - variable-order, variable-step solver from the [SUNDIALS](https://github.com/LLNL/sundials) suite with BDF (stiff) and Adams (non-stiff) modes ([Hindmarsh et al., 2005](https://doi.org/10.1145/1089014.1089020); [Cohen & Hindmarsh, 1996](https://doi.org/10.1063/1.4822377)). Ported to TypeScript from SUNDIALS CVODE v7.5.0
17
19
  * Implicit methods (for stiff ODEs) - Rosenbrock–Wanner type:
18
20
  * The modified Rosenbrock triple ([MRT](https://doi.org/10.1137/S1064827594276424))
19
21
  * The [ROS3PRw](https://doi.org/10.1016/j.cam.2015.03.010) method
@@ -23,9 +25,7 @@ A lightweight TypeScript library for solving initial value problem ([IVP](https:
23
25
  * The Bogacki-Shampine 3(2) method ([RK3](https://en.wikipedia.org/wiki/Bogacki%E2%80%93Shampine_method))
24
26
  * The Runge-Kutta-Fehlberg method ([RK4](https://en.wikipedia.org/wiki/Runge%E2%80%93Kutta%E2%80%93Fehlberg_method))
25
27
  * The Dormand-Prince 5(4) method ([RKDP](https://en.wikipedia.org/wiki/Dormand%E2%80%93Prince_method))
26
- * Adams-Bashforth type:
27
- * The predictor-corrector method of order 4 ([AB4](https://en.wikipedia.org/wiki/Linear_multistep_method))
28
- * The predictor-corrector method of order 5 ([AB5](https://en.wikipedia.org/wiki/Linear_multistep_method))
28
+ * Adams multistep predictor–correctors: orders 4 ([AB4](https://en.wikipedia.org/wiki/Linear_multistep_method)) and 5 ([AB5](https://en.wikipedia.org/wiki/Linear_multistep_method))
29
29
  * Scripting:
30
30
  * declarative specification of models
31
31
  * auto-generated JavaScript code
@@ -45,20 +45,20 @@ Minimal "Hello World" example:
45
45
  ```typescript
46
46
  // example.ts
47
47
 
48
- import {ODEs, mrt} from 'diff-grok';
48
+ import {ODEs, cvode} from 'diff-grok';
49
49
 
50
50
  const task: ODEs = {
51
51
  name: 'Example',
52
52
  arg: {name: 't', start: 0, finish: 1, step: 0.1},
53
- initial: [1, -1],
53
+ initial: [1],
54
54
  func: (t: number, y: Float64Array, output: Float64Array) => {
55
- out[0] = y[0] - t;
55
+ output[0] = y[0] - t;
56
56
  },
57
57
  tolerance: 1e-7,
58
58
  solutionColNames: ['y(t)'],
59
59
  };
60
60
 
61
- const solution = mrt(task);
61
+ const solution = cvode(task);
62
62
 
63
63
  console.log('t:', solution[0]);
64
64
  console.log('y(t):', solution[1]);
@@ -80,6 +80,9 @@ on the segment $[t_0, t_1]$ with the step $h$:
80
80
  Automatic method:
81
81
  * `lsoda` - [LSODA](https://doi.org/10.1137/0904010) variable-order solver with automatic switching between Adams (non-stiff) and BDF (stiff)
82
82
 
83
+ Variable-order multistep method:
84
+ * `cvode` - [CVODE](https://sundials.readthedocs.io/en/latest/cvode/index.html) variable-order BDF solver from the SUNDIALS suite
85
+
83
86
  Implicit methods (for stiff ODEs):
84
87
  * `mrt` - the [MRT](https://doi.org/10.1137/S1064827594276424) method
85
88
  * `ros3prw`- the [ROS3PRw](https://doi.org/10.1016/j.cam.2015.03.010) method
@@ -90,7 +93,7 @@ on the segment $[t_0, t_1]$ with the step $h$:
90
93
  * `rk4` - the Runge-Kutta-Fehlberg 4(5) method
91
94
  * `rkdp` - the Dormand-Prince 5(4) method
92
95
 
93
- Explicit methods (for non-stiff ODEs) — Adams-Bashforth type:
96
+ Explicit methods (for non-stiff ODEs) — Adams type:
94
97
  * `ab4` - the predictor-corrector method of order 4
95
98
  * `ab5` - the predictor-corrector method of order 5
96
99
 
@@ -196,27 +199,29 @@ The following [classic problems](https://archimede.uniba.it/~testset/testsetivps
196
199
  * describes a chemical reaction part of the air pollution model designed at The Dutch National Institute of Public Health and Environmental Protection
197
200
  * [pollution.ts](./src/examples/pollution.ts)
198
201
 
199
- The LSODA, MRT, ROS3PRw and ROS34PRw methods demonstrate the following time performance (AMD Ryzen 5 5600H 3.30 GHz CPU):
202
+ The LSODA, CVODE, MRT, ROS3PRw and ROS34PRw methods demonstrate the following time performance (AMD Ryzen 5 5600H 3.30 GHz CPU):
203
+
204
+ |Problem|Segment|Points|Tolerance|LSODA, ms|CVODE, ms|MRT, ms|ROS3PRw, ms|ROS34PRw, ms|
205
+ |-|-|-|-|-|-|-|-|-|
206
+ |[Rober](https://archimede.uniba.it/~testset/report/rober.pdf)|[0, 10E+11]|40K|1E-7|67|85|175|446|285|
207
+ |[HIRES](https://archimede.uniba.it/~testset/report/hires.pdf)|[0, 321.8122]|32K|1E-10|125|142|122|362|215|
208
+ |[VDPOL](https://archimede.uniba.it/~testset/report/vdpol.pdf)|[0, 2000]|20K|1E-12|268|352|492|1576|760|
209
+ |[OREGO](https://archimede.uniba.it/~testset/report/orego.pdf)|[0, 360]|36K|1E-8|76|98|205|483|199|
210
+ |[E5](https://archimede.uniba.it/~testset/report/e5.pdf)|[0, 10E+13]|40K|1E-6|7|*|6|17|8|
211
+ |[Pollution](https://archimede.uniba.it/~testset/report/pollu.pdf)|[0, 60]|30K|1E-6|12|15|18|50|23|
200
212
 
201
- |Problem|Segment|Points|Tolerance|LSODA, ms|MRT, ms|ROS3PRw, ms|ROS34PRw, ms|
202
- |-|-|-|-|-|-|-|-|
203
- |[Rober](https://archimede.uniba.it/~testset/report/rober.pdf)|[0, 10E+11]|40K|1E-7|67|175|446|285|
204
- |[HIRES](https://archimede.uniba.it/~testset/report/hires.pdf)|[0, 321.8122]|32K|1E-10|125|122|362|215|
205
- |[VDPOL](https://archimede.uniba.it/~testset/report/vdpol.pdf)|[0, 2000]|20K|1E-12|268|492|1576|760|
206
- |[OREGO](https://archimede.uniba.it/~testset/report/orego.pdf)|[0, 360]|36K|1E-8|76|205|483|199|
207
- |[E5](https://archimede.uniba.it/~testset/report/e5.pdf)|[0, 10E+13]|40K|1E-6|7|6|17|8|
208
- |[Pollution](https://archimede.uniba.it/~testset/report/pollu.pdf)|[0, 60]|30K|1E-6|12|18|50|23|
213
+ \* E5 is skipped for CVODE: the extremely stiff rate constants (spanning 20 orders of magnitude) cause convergence failures with the dense direct linear solver.
209
214
 
210
215
  Maximum absolute deviations (MADs) from the reference solutions obtained using SciPy (Radau) are summarized in the table below:
211
216
 
212
- |Problem|LSODA|MRT|ROS3PRw|ROS34PRw|
213
- |-|-|-|-|-|
214
- |[Rober](https://archimede.uniba.it/~testset/report/rober.pdf)|1.87e-8|1.87e-8|1.88e-8|1.88e-8|
215
- |[HIRES](https://archimede.uniba.it/~testset/report/hires.pdf)|1.51e-11|4.80e-11|1.05e-14|2.87e-14|
216
- |[VDPOL](https://archimede.uniba.it/~testset/report/vdpol.pdf)|5.12e-4|5.12e-4|5.12e-4|5.12e-4|
217
- |[OREGO](https://archimede.uniba.it/~testset/report/orego.pdf)|3.84e-6|3.05e-5|3.45e-7|2.31e-6|
218
- |[E5](https://archimede.uniba.it/~testset/report/e5.pdf)|3.02e-19|1.12e-19| 1.33e-19|3.40e-17|
219
- |[Pollution](https://archimede.uniba.it/~testset/report/pollu.pdf)|1.23e-10|4.06e-10|9.16e-12|1.58e-10|
217
+ |Problem|LSODA|CVODE|MRT|ROS3PRw|ROS34PRw|
218
+ |-|-|-|-|-|-|
219
+ |[Rober](https://archimede.uniba.it/~testset/report/rober.pdf)|1.87e-8|1.87e-8|1.87e-8|1.88e-8|1.88e-8|
220
+ |[HIRES](https://archimede.uniba.it/~testset/report/hires.pdf)|1.51e-11|2.10e-11|4.80e-11|1.05e-14|2.87e-14|
221
+ |[VDPOL](https://archimede.uniba.it/~testset/report/vdpol.pdf)|5.12e-4|5.12e-4|5.12e-4|5.12e-4|5.12e-4|
222
+ |[OREGO](https://archimede.uniba.it/~testset/report/orego.pdf)|3.84e-6|5.20e-6|3.05e-5|3.45e-7|2.31e-6|
223
+ |[E5](https://archimede.uniba.it/~testset/report/e5.pdf)|3.02e-19|*|1.12e-19| 1.33e-19|3.40e-17|
224
+ |[Pollution](https://archimede.uniba.it/~testset/report/pollu.pdf)|1.23e-10|2.15e-10|4.06e-10|9.16e-12|1.58e-10|
220
225
 
221
226
  Run [check-methods.ts](./src/examples/check-methods.ts) to reproduce these results (see [here](#examples) how to run scripts standalone).
222
227
 
@@ -516,6 +521,38 @@ Learn more
516
521
  * [Parameters optimization](https://datagrok.ai/help/compute/function-analysis#parameter-optimization)
517
522
  * [Sensitivity analysis](https://datagrok.ai/help/compute/function-analysis#sensitivity-analysis)
518
523
 
524
+ ## LaTeX export
525
+
526
+ The [latex-export](src/latex-export/) module converts IVP model files into publication-ready **LaTeX** and **Markdown** with LaTeX math:
527
+
528
+ ```typescript
529
+ import {convertIvpToLatex} from 'diff-grok';
530
+
531
+ const ivp = `#name: Robertson
532
+ #equations:
533
+ dA/dt = -0.04 * A + 1e4 * B * C
534
+ dB/dt = 0.04 * A - 1e4 * B * C - 3e7 * B**2
535
+ dC/dt = 3e7 * B**2
536
+
537
+ #inits:
538
+ A = 1 {units: mol/L}
539
+ B = 0 {units: mol/L}
540
+ C = 0 {units: mol/L}
541
+
542
+ #argument: t
543
+ start = 0
544
+ finish = 40
545
+ step = 0.01`;
546
+
547
+ // LaTeX output (default)
548
+ const latex = convertIvpToLatex(ivp);
549
+
550
+ // Markdown output
551
+ const markdown = convertIvpToLatex(ivp, {format: 'markdown'});
552
+ ```
553
+
554
+ See the full documentation in [src/latex-export/README.md](src/latex-export/README.md).
555
+
519
556
  ## Environment Requirements
520
557
 
521
558
  ### Development & Build
@@ -539,8 +576,9 @@ Learn more
539
576
 
540
577
  #### Browser Support
541
578
 
542
- The library runs in all modern browsers with ES2015+ support. Key requirements:
579
+ The library runs in all modern browsers with ES2022+ support (matching `tsconfig.json`: `target: "es2022"`, `module: "es2022"`, `lib: ["ES2022", "dom"]`). Key requirements:
543
580
 
581
+ * **ES2022 JavaScript support**
544
582
  * **ES Modules** (native `import`/`export`)
545
583
  * **Typed Arrays** (`Float64Array`, `Uint8Array`)
546
584
  * **WebWorkers** (for pipeline computations)
@@ -556,7 +594,7 @@ The library runs in all modern browsers with ES2015+ support. Key requirements:
556
594
  | **Legacy Browsers** | - | ❌ No | IE 11, pre-Chromium Edge, old Android browsers |
557
595
 
558
596
  **Browser Feature Requirements:**
559
- * ES2015 (ES6) JavaScript support
597
+ * ES2022 JavaScript support
560
598
  * Native ES modules (`<script type="module">`)
561
599
  * `Float64Array` and other typed arrays
562
600
  * `WebWorker` API (for parallel computations)
@@ -565,7 +603,7 @@ The library runs in all modern browsers with ES2015+ support. Key requirements:
565
603
 
566
604
  **Notes:**
567
605
  * For older browsers, consider using a transpiler (Babel) and bundler (Webpack/Rollup)
568
- * TypeScript compilation target should be ES2015 or higher
606
+ * TypeScript compilation target should be ES2022 or higher (or transpile down for older browsers)
569
607
  * WebWorker support is required for pipeline computations; without it, computations run on the main thread
570
608
 
571
609
  ### Bundler Configuration
@@ -585,7 +623,7 @@ Diff Grok contains a set of examples located in the folder [src/examples](./src/
585
623
 
586
624
  |File|Features|
587
625
  |-|-|
588
- |[basic-use.ts](./src/examples/basic-use.ts)|Minimal "Hello World" example. Illustrates the use of the [LSODA](https://doi.org/10.1137/0904010) method.|
626
+ |[basic-use.ts](./src/examples/basic-use.ts)|Minimal "Hello World" example. Illustrates the use of the [MRT](https://doi.org/10.1137/S1064827594276424) method.|
589
627
  |[check-methods.ts](./src/examples/check-methods.ts)| Checks the [performance](#performance) of numerical methods.|
590
628
  |[corr-probs.ts](./src/examples/corr-probs.ts)|Solves a set of problems with exact solutions and evaluate the deviation.|
591
629
  |[cyclic-model.ts](./src/examples/cyclic-model.ts)| Considers pharmacokinetic-pharmacodynamic (PK-PD) simulation and shows how to apply pipelines and cyclic models.|
@@ -640,6 +678,9 @@ node src/examples/basic-use.js
640
678
  * L. Petzold, "Automatic Selection of Methods for Solving Stiff and Nonstiff Systems of Ordinary Differential Equations," *SIAM J. Sci. Stat. Comput.*, 4(1), 136–148, 1983. [doi:10.1137/0904010](https://doi.org/10.1137/0904010)
641
679
  * A. C. Hindmarsh, "ODEPACK, A Systematized Collection of ODE Solvers," *Scientific Computing*, R. S. Stepleman et al. (eds.), North-Holland, Amsterdam, pp. 55–64, 1983. [link](https://computing.llnl.gov/sites/default/files/ODEPACK_pub1_u88007.pdf)
642
680
  * The LSODA solver is ported to TypeScript from the C library [liblsoda](https://github.com/sdwfrost/liblsoda)
681
+ * A. C. Hindmarsh et al., "SUNDIALS: Suite of Nonlinear and Differential/Algebraic Equation Solvers," *ACM Trans. Math. Softw.*, 31(3), 363–396, 2005. [doi:10.1145/1089014.1089020](https://doi.org/10.1145/1089014.1089020)
682
+ * S. D. Cohen and A. C. Hindmarsh, "CVODE, a Stiff/Nonstiff ODE Solver in C," *Computers in Physics*, 10(2), 138–143, 1996. [doi:10.1063/1.4822377](https://doi.org/10.1063/1.4822377)
683
+ * The CVODE solver is ported to TypeScript from [SUNDIALS CVODE v7.5.0](https://github.com/LLNL/sundials)
643
684
  * T. Rang and L. Angermann, "New Rosenbrock W-Methods of Order 3 for Partial Differential Algebraic Equations of Index 1," *BIT Numer. Math.*, 45, 761–787, 2005. [doi:10.1007/s10543-005-0035-y](https://doi.org/10.1016/j.cam.2015.03.010)
644
685
  * E. Hairer and G. Wanner, *Solving Ordinary Differential Equations II: Stiff and Differential-Algebraic Problems*, Springer, 1996. [doi:10.1137/S1064827594276424](https://doi.org/10.1137/S1064827594276424)
645
686
 
@@ -648,3 +689,11 @@ node src/examples/basic-use.js
648
689
  We welcome contributions of all kinds - bug reports, feature requests, documentation updates, and pull requests.
649
690
 
650
691
  Before contributing, please read our [Contributing Guidelines](./CONTRIBUTING.md).
692
+
693
+ ## License
694
+
695
+ This project is licensed under the [MIT License](./LICENSE).
696
+
697
+ The LSODA solver is a TypeScript port of [liblsoda](https://github.com/sdwfrost/liblsoda).
698
+ The CVODE solver is a TypeScript port of [SUNDIALS CVODE](https://github.com/LLNL/sundials).
699
+ See [THIRD_PARTY_LICENSES](./THIRD_PARTY_LICENSES) for details on third-party code provenance.
@@ -0,0 +1,6 @@
1
+ export { Func, ODEs, mrt, ros3prw, ros34prw, rk4, ab5, ab4, rkdp, rk3, lsoda, cvode, CallbackAction, DEFAULT_OPTIONS, SolverOptions, getCallback, SolverMethod, Callback, IterCheckerCallback, TimeCheckerCallback } from './src/solver-tools';
2
+ export { perfProbs, corrProbs, CorrProblem, refPoints, printRobertson, printHires, printOrego, printE5, printVdpol, printPollution } from './src/examples';
3
+ export { DF_NAME, CONTROL_EXPR, MAX_LINE_CHART, getIVP, getScriptLines, getScriptParams, getJScode, IVP, DifEqs, Input, SCRIPTING, BRACE_OPEN, BRACE_CLOSE, BRACKET_OPEN, BRACKET_CLOSE, ANNOT_SEPAR, CONTROL_SEP, STAGE_COL_NAME, ARG_INPUT_KEYS, DEFAULT_SOLVER_SETTINGS, ModelError, getFunc4worker, Loop, Update, Output, Arg } from './src/scripting-tools';
4
+ export { IVP2WebWorker, getIvp2WebWorker, solveIvp } from './src/worker-tools';
5
+ export { Pipeline, Wrapper, applyPipeline, getOutputCode, getOutputNames, PipelineCreator, BasicModelPipelineCreator, getInputVector, getPipelineCreator, CyclicModelPipelineCreator, UpdatesModelPipelineCreator } from './src/pipeline';
6
+ export { convertIvpToLatex, ConvertOptions, ParsedModel, ASTNode, Token } from './src/latex-export';
@@ -1,6 +1,7 @@
1
- export { mrt, ros3prw, ros34prw, rk4, ab5, ab4, rkdp, rk3, lsoda, CallbackAction, DEFAULT_OPTIONS, getCallback, Callback, IterCheckerCallback, TimeCheckerCallback } from './src/solver-tools';
1
+ export { mrt, ros3prw, ros34prw, rk4, ab5, ab4, rkdp, rk3, lsoda, cvode, CallbackAction, DEFAULT_OPTIONS, getCallback, Callback, IterCheckerCallback, TimeCheckerCallback } from './src/solver-tools';
2
2
  export { perfProbs, corrProbs, refPoints, printRobertson, printHires, printOrego, printE5, printVdpol, printPollution } from './src/examples';
3
3
  export { DF_NAME, CONTROL_EXPR, MAX_LINE_CHART, getIVP, getScriptLines, getScriptParams, getJScode, SCRIPTING, BRACE_OPEN, BRACE_CLOSE, BRACKET_OPEN, BRACKET_CLOSE, ANNOT_SEPAR, CONTROL_SEP, STAGE_COL_NAME, ARG_INPUT_KEYS, DEFAULT_SOLVER_SETTINGS, ModelError, getFunc4worker } from './src/scripting-tools';
4
4
  export { getIvp2WebWorker, solveIvp } from './src/worker-tools';
5
5
  export { applyPipeline, getOutputCode, getOutputNames, PipelineCreator, BasicModelPipelineCreator, getInputVector, getPipelineCreator, CyclicModelPipelineCreator, UpdatesModelPipelineCreator } from './src/pipeline';
6
+ export { convertIvpToLatex } from './src/latex-export';
6
7
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAChF,cAAc,EAAE,eAAe,EAC/B,WAAW,EAAgB,QAAQ,EAAE,mBAAmB,EAAE,mBAAmB,EAAC,MAAM,oBAAoB,CAAC;AAE3G,OAAO,EAAC,SAAS,EAAE,SAAS,EAAe,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,EAC1F,OAAO,EAAE,UAAU,EAAE,cAAc,EAAC,MAAM,gBAAgB,CAAC;AAE7D,OAAO,EAAC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,SAAS,EAC3E,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAChG,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,uBAAuB,EAAE,UAAU,EAChF,cAAc,EAA4B,MAAM,uBAAuB,CAAC;AAE1E,OAAO,EAAgB,gBAAgB,EAAE,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AAE7E,OAAO,EAAoB,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EACtF,yBAAyB,EAAE,cAAc,EAAE,kBAAkB,EAAE,0BAA0B,EACzF,2BAA2B,EAAC,MAAM,gBAAgB,CAAC;AAErD,OAAO,EAAC,iBAAiB,EAA8C,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,10 @@
1
+ /** Example. Solve the following initial value problem
2
+
3
+ dx / dt = x + y - t
4
+ dy / dt = x * y + t
5
+ x(0) = 1
6
+ y(0) = -1
7
+
8
+ on [0, 2] with the step 0.01.
9
+ */
10
+ export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"basic-use.js","sourceRoot":"","sources":["../../../src/examples/basic-use.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAO,GAAG,EAAC,MAAM,aAAa,CAAC;AAEtC,sBAAsB;AACtB,MAAM,IAAI,GAAS;IACjB,IAAI,EAAE,SAAS,EAAE,qBAAqB;IACtC,GAAG,EAAE;QACH,IAAI,EAAE,GAAG,EAAE,uBAAuB;QAClC,KAAK,EAAE,CAAC,EAAE,gCAAgC;QAC1C,MAAM,EAAE,CAAC,EAAE,8BAA8B;QACzC,IAAI,EAAE,IAAI,EAAE,qBAAqB;KAClC;IACD,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,iBAAiB;IACnC,IAAI,EAAE,CAAC,CAAS,EAAE,CAAe,EAAE,MAAoB,EAAE,EAAE;QACzD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,gBAAgB;QAC7C,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,gBAAgB;IAC/C,CAAC;IACD,SAAS,EAAE,IAAI,EAAE,YAAY;IAC7B,gBAAgB,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,8BAA8B;CAC7D,CAAC;AAEF,IAAI,CAAC;IACH,oBAAoB;IACpB,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;IAE3B,iBAAiB;IACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7F,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAElC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9E,CAAC;AAAC,OAAO,GAAG,EAAE,CAAC;IACb,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;AAC1F,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -1,5 +1,5 @@
1
1
  // A script for checking performance
2
- import { corrProbs, mrt, ros3prw, ros34prw, perfProbs, refPoints } from '../../index';
2
+ import { corrProbs, mrt, ros3prw, ros34prw, rk4, ab5, ab4, rkdp, rk3, lsoda, cvode, perfProbs, refPoints } from '../../index';
3
3
  /** Return numerical solution error: maximum absolute deviation between approximate & exact solutions */
4
4
  function getError(method, corProb) {
5
5
  let error = 0;
@@ -27,16 +27,28 @@ function getDeviationFromReferencePoint(solution, refPoint) {
27
27
  }
28
28
  return absolute;
29
29
  } // getDeviationFromReferencePoint
30
- const methods = new Map([
30
+ const implicitMethods = new Map([
31
31
  ['MRT', mrt],
32
32
  ['ROS3PRw', ros3prw],
33
33
  ['ROS34PRw', ros34prw],
34
+ ['LSODA', lsoda],
35
+ ['CVODE', cvode],
36
+ ]);
37
+ const methods = new Map([
38
+ ...implicitMethods,
39
+ ['RK4', rk4],
40
+ ['AB5', ab5],
41
+ ['AB4', ab4],
42
+ ['RKDP', rkdp],
43
+ ['RK3', rk3],
34
44
  ]);
35
45
  console.log('Performance\n');
36
- methods.forEach((method, name) => {
46
+ implicitMethods.forEach((method, name) => {
37
47
  console.log(' ', name);
38
48
  console.log(' PROBLEM TIME,MS ERR*');
39
49
  perfProbs.forEach((odes, idx) => {
50
+ if (name === 'CVODE' && odes.name === 'E5')
51
+ return;
40
52
  const start = Date.now();
41
53
  const solution = method(odes);
42
54
  const absErr = getDeviationFromReferencePoint(solution.slice(1), refPoints[idx]).toExponential(2);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-methods.js","sourceRoot":"","sources":["../../../src/examples/check-methods.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { ODEs } from '../../index';
2
+ /** Correctness problem
3
+ * @internal
4
+ */
5
+ export type CorrProblem = {
6
+ odes: ODEs;
7
+ exact: (t: number) => Float64Array;
8
+ };
9
+ /** Problems for testing correctness
10
+ * @internal
11
+ */
12
+ export declare const corrProbs: {
13
+ odes: ODEs;
14
+ exact: (t: number) => Float64Array<ArrayBuffer>;
15
+ }[];
@@ -43,7 +43,7 @@ const nonStiff3D = {
43
43
  func: (t, y, output) => {
44
44
  output[0] = 5 * y[0] + 2 * y[1] + Math.sin(t);
45
45
  output[1] = -4 * y[0] - y[1] + Math.exp(2 * t);
46
- output[2] = 5 * Math.pow(t, 4) - 3 * Math.pow(t, 2) + 2 * t;
46
+ output[2] = 5 * t ** 4 - 3 * t ** 2 + 2 * t;
47
47
  },
48
48
  tolerance: 0.00000001,
49
49
  solutionColNames: ['x', 'y', 'z'],
@@ -58,7 +58,7 @@ const exactNonStiff3D = (t) => {
58
58
  return new Float64Array([
59
59
  e1 + e3 + 0.1 * (3 * c - s) - 2 * e2,
60
60
  -2 * e1 - e3 - 0.2 * (2 * s + 4 * c) + 3 * e2,
61
- Math.pow(t, 5) - Math.pow(t, 3) + Math.pow(t, 2),
61
+ t ** 5 - t ** 3 + t ** 2,
62
62
  ]);
63
63
  };
64
64
  /** Stiff 1D test problem: equation (see [1], p. 767) */
@@ -0,0 +1 @@
1
+ {"version":3,"file":"corr-probs.js","sourceRoot":"","sources":["../../../src/examples/corr-probs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /** This example shows how to apply pipelines and cyclic models.
2
+ This approach can be used for in-webworkers analysis of models.
3
+
4
+ Here, we consider pharmacokinetic-pharmacodynamic (PK-PD) simulation: two-compartment model.
5
+ */
6
+ export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cyclic-model.js","sourceRoot":"","sources":["../../../src/examples/cyclic-model.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B;;;;EAIE;AAEF,OAAO,KAAK,GAAG,MAAM,aAAa,CAAC;AAEnC,6BAA6B;AAC7B,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gDAyCkC,CAAC;AAEjD,oFAAoF;AACpF,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9B,MAAM,KAAK,GAAG,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;AAExC,8BAA8B;AAC9B,IAAI,CAAC;IACH,gCAAgC;IAChC,MAAM,WAAW,GAAG,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC;IAEnC,wBAAwB;IACxB,MAAM,MAAM,GAAG;QACb,MAAM,EAAE,EAAE;QACV,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,EAAE;QACP,EAAE,EAAE,CAAC;QACL,KAAK,EAAE,CAAC;QACR,KAAK,EAAE,CAAC;QACR,IAAI,EAAE,CAAC;QACP,GAAG,EAAE,GAAG;QACR,IAAI,EAAE,KAAK;QACX,EAAE,EAAE,IAAI;QACR,EAAE,EAAE,GAAG;QACP,EAAE,EAAE,IAAI;QACR,CAAC,EAAE,KAAK;QACR,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,KAAK;QACV,IAAI,EAAE,KAAK;KACZ,CAAC;IACF,MAAM,WAAW,GAAG,GAAG,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEpD,yBAAyB;IACzB,MAAM,OAAO,GAAG,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAElD,8CAA8C;IAC9C,MAAM,QAAQ,GAAG,GAAG,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IAEjE,qBAAqB;IAErB,sBAAsB;IACtB,IAAI,IAAI,GAAG,WAAW,CAAC;IACvB,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,IAAI,GAAG,aAAa,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAElB,6BAA6B;IAC7B,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;QAChC,IAAI,GAAG,EAAE,CAAC;QAEV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,EAAE,CAAC;YAC9B,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;QAE9C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAAC,OAAO,GAAG,EAAE,CAAC;IACb,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;AAC9F,CAAC"}
@@ -0,0 +1,15 @@
1
+ /** The E5 model (chemical pyrolysis: https://archimede.uniba.it/~testset/report/e5.pdf) */
2
+ export declare const e5: {
3
+ name: string;
4
+ arg: {
5
+ name: string;
6
+ start: number;
7
+ finish: number;
8
+ step: number;
9
+ };
10
+ initial: number[];
11
+ func: (t: number, y: Float64Array, output: Float64Array) => void;
12
+ tolerance: number;
13
+ solutionColNames: string[];
14
+ };
15
+ export declare const e5ReferencePoint: Float64Array<ArrayBuffer>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"e5.js","sourceRoot":"","sources":["../../../src/examples/e5.ts"],"names":[],"mappings":"AAAC,0CAA0C;AAC1C,IAAK,EAKH;AALF,WAAK,EAAE;IACJ,8BAAa,CAAA;IACb,gCAAW,CAAA;IACX,8BAAU,CAAA;IACV,0BAAW,CAAA;AACb,CAAC,EALG,EAAE,KAAF,EAAE,QAKL;AAAA,CAAC;AAEJ,2FAA2F;AAC3F,MAAM,CAAC,MAAM,EAAE,GAAG;IAChB,IAAI,EAAE,IAAI;IACV,GAAG,EAAE,EAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAC;IACrD,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC3B,IAAI,EAAE,CAAC,CAAS,EAAE,CAAe,EAAE,MAAoB,EAAE,EAAE;QACzD,0BAA0B;QAC1B,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAEhB,iBAAiB;QACjB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;QAC1C,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;QACzC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;QACxE,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;IAC3C,CAAC;IACD,SAAS,EAAE,IAAI;IACf,gBAAgB,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;CAC3C,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,YAAY,CAAC;IAC/C,uBAAuB;IACvB,sBAAsB;IACtB,sBAAsB;IACtB,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,15 @@
1
+ /** High Irradiance Responses of photomorphogenesis (see https://archimede.uniba.it/~testset/problems/hires.php) */
2
+ export declare const hires: {
3
+ name: string;
4
+ arg: {
5
+ name: string;
6
+ start: number;
7
+ finish: number;
8
+ step: number;
9
+ };
10
+ initial: number[];
11
+ func: (t: number, y: Float64Array, output: Float64Array) => void;
12
+ tolerance: number;
13
+ solutionColNames: string[];
14
+ };
15
+ export declare const hiresReferencePoint: Float64Array<ArrayBuffer>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hires.js","sourceRoot":"","sources":["../../../src/examples/hires.ts"],"names":[],"mappings":"AAAA,mHAAmH;AACnH,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,IAAI,EAAE,OAAO;IACb,GAAG,EAAE,EAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAC;IACxD,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACtC,IAAI,EAAE,CAAC,CAAS,EAAE,CAAe,EAAE,MAAoB,EAAE,EAAE;QACzD,0BAA0B;QAC1B,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAEhB,iBAAiB;QACjB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,GAAG,MAAM,CAAC;QACxD,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,CAAC;QAClC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,GAAG,KAAK,GAAG,EAAE,CAAC;QACjD,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,CAAC;QAC9C,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,CAAC;QAChD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,CAAC;QAC3E,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,CAAC;QACtC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,CAAC;IACzC,CAAC;IACD,SAAS,EAAE,KAAK;IAChB,gBAAgB,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;CACnE,CAAC,CAAC,QAAQ;AAEX,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,YAAY,CAAC;IAClD,qBAAqB;IACrB,qBAAqB;IACrB,qBAAqB;IACrB,qBAAqB;IACrB,qBAAqB;IACrB,qBAAqB;IACrB,qBAAqB;IACrB,qBAAqB;CACtB,CAAC,CAAC"}
@@ -0,0 +1,22 @@
1
+ /** Problems for performance check
2
+ * @internal
3
+ */
4
+ export declare const perfProbs: {
5
+ name: string;
6
+ arg: {
7
+ name: string;
8
+ start: number;
9
+ finish: number;
10
+ step: number;
11
+ };
12
+ initial: number[];
13
+ func: (t: number, y: Float64Array, output: Float64Array) => void;
14
+ tolerance: number;
15
+ solutionColNames: string[];
16
+ }[];
17
+ /** Reference points for the performance problems
18
+ * @internal
19
+ */
20
+ export declare const refPoints: Float64Array<ArrayBuffer>[];
21
+ export { corrProbs, CorrProblem } from './corr-probs';
22
+ export { printRobertson, printHires, printOrego, printE5, printVdpol, printPollution } from './print-benchmark';
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/examples/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,uBAAuB,EAAC,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAC,KAAK,EAAE,mBAAmB,EAAC,MAAM,SAAS,CAAC;AACnD,OAAO,EAAC,KAAK,EAAE,mBAAmB,EAAC,MAAM,SAAS,CAAC;AACnD,OAAO,EAAC,KAAK,EAAE,mBAAmB,EAAC,MAAM,SAAS,CAAC;AACnD,OAAO,EAAC,EAAE,EAAE,gBAAgB,EAAC,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAC,SAAS,EAAE,uBAAuB,EAAC,MAAM,aAAa,CAAC;AAE/D;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,SAAS;IACT,KAAK;IACL,KAAK;IACL,KAAK;IACL,EAAE;IACF,SAAS;CACV,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,uBAAuB;IACvB,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,gBAAgB;IAChB,uBAAuB;CACxB,CAAC;AAEF,OAAO,EAAC,SAAS,EAAc,MAAM,cAAc,CAAC;AAEpD,OAAO,EAAC,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAC,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,6 @@
1
+ /** This example shows how to apply pipelines and models with updates.
2
+ This approach can be used for in-webworkers analysis of models.
3
+
4
+ Here, we consider gluconic acid (GA) production by Aspergillus niger modeling.
5
+ */
6
+ export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-updates.js","sourceRoot":"","sources":["../../../src/examples/model-updates.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B;;;;EAIE;AAEF,OAAO,KAAK,GAAG,MAAM,aAAa,CAAC;AAEnC,6BAA6B;AAC7B,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiDG,CAAC;AAElB,oFAAoF;AACpF,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9B,MAAM,KAAK,GAAG,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;AAExC,8BAA8B;AAC9B,IAAI,CAAC;IACH,gCAAgC;IAChC,MAAM,WAAW,GAAG,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC;IAEnC,wBAAwB;IACxB,MAAM,MAAM,GAAG;QACb,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,EAAE;QACP,EAAE,EAAE,CAAC;QACL,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,GAAG;QACN,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,OAAO,EAAE,GAAG;QACZ,GAAG,EAAE,KAAK;QACV,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,KAAK;QACb,KAAK,EAAE,KAAK;QACZ,GAAG,EAAE,OAAO;QACZ,EAAE,EAAE,OAAO;QACX,EAAE,EAAE,OAAO;QACX,GAAG,EAAE,MAAM;QACX,GAAG,EAAE,EAAE;KACR,CAAC;IACF,MAAM,WAAW,GAAG,GAAG,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEpD,yBAAyB;IACzB,MAAM,OAAO,GAAG,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAElD,8CAA8C;IAC9C,MAAM,QAAQ,GAAG,GAAG,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IAEjE,qBAAqB;IAErB,sBAAsB;IACtB,IAAI,IAAI,GAAG,OAAO,CAAC;IACnB,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,IAAI,GAAG,WAAW,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAElB,6BAA6B;IAC7B,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;QAChC,IAAI,GAAG,EAAE,CAAC;QAEV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,EAAE,CAAC;YAC9B,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;QAE9C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAAC,OAAO,GAAG,EAAE,CAAC;IACb,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;AAC9F,CAAC"}
@@ -0,0 +1,15 @@
1
+ /** The OREGO model (see https://archimede.uniba.it/~testset/report/orego.pdf) */
2
+ export declare const orego: {
3
+ name: string;
4
+ arg: {
5
+ name: string;
6
+ start: number;
7
+ finish: number;
8
+ step: number;
9
+ };
10
+ initial: number[];
11
+ func: (t: number, y: Float64Array, output: Float64Array) => void;
12
+ tolerance: number;
13
+ solutionColNames: string[];
14
+ };
15
+ export declare const oregoReferencePoint: Float64Array<ArrayBuffer>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orego.js","sourceRoot":"","sources":["../../../src/examples/orego.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,IAAI,EAAE,OAAO;IACb,GAAG,EAAE,EAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAC;IACnD,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAClB,IAAI,EAAE,CAAC,CAAS,EAAE,CAAe,EAAE,MAAoB,EAAE,EAAE;QACzD,0BAA0B;QAC1B,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAEhB,iBAAiB;QACjB,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,WAAW,GAAG,EAAE,GAAG,EAAE,CAAE,CAAC;QACjE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QAC7C,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAChC,CAAC;IACD,SAAS,EAAE,IAAI;IACf,gBAAgB,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;CACrC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,YAAY,CAAC;IAClD,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;CAClB,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ /** This example shows how to apply pipelines and models with customized outputs.
2
+ This approach can be used for in-webworkers analysis of models.
3
+
4
+ Here, we consider modeling queues: https://en.wikipedia.org/wiki/M/M/c_queue
5
+ */
6
+ export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline-use.js","sourceRoot":"","sources":["../../../src/examples/pipeline-use.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B;;;;EAIE;AAEF,OAAO,KAAK,GAAG,MAAM,aAAa,CAAC;AAEnC,iDAAiD;AACjD,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uGAkCyF,CAAC;AAExG,oFAAoF;AACpF,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9B,MAAM,KAAK,GAAG,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;AAExC,8BAA8B;AAC9B,IAAI,CAAC;IACH,gCAAgC;IAChC,MAAM,WAAW,GAAG,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC;IAEnC,wBAAwB;IACxB,MAAM,MAAM,GAAG;QACb,GAAG,EAAE,CAAC,EAAE,6BAA6B;QACrC,GAAG,EAAE,EAAE,EAAE,2BAA2B;QACpC,EAAE,EAAE,CAAC,EAAE,0BAA0B;QACjC,EAAE,EAAE,CAAC,EAAE,oDAAoD;QAC3D,EAAE,EAAE,CAAC,EAAE,mDAAmD;QAC1D,EAAE,EAAE,CAAC,EAAE,qDAAqD;QAC5D,EAAE,EAAE,CAAC,EAAE,uDAAuD;QAC9D,OAAO,EAAE,EAAE,EAAE,oBAAoB;QACjC,OAAO,EAAE,GAAG,EAAE,oBAAoB;KACnC,CAAC;IACF,MAAM,WAAW,GAAG,GAAG,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEpD,yBAAyB;IACzB,MAAM,OAAO,GAAG,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAElD,8CAA8C;IAC9C,MAAM,QAAQ,GAAG,GAAG,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IAEjE,qBAAqB;IAErB,sBAAsB;IACtB,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,IAAI,GAAG,QAAQ,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAElB,6BAA6B;IAC7B,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;QAChC,IAAI,GAAG,EAAE,CAAC;QAEV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,EAAE,CAAC;YAC9B,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;QAE9C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAAC,OAAO,GAAG,EAAE,CAAC;IACb,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;AAC9F,CAAC"}
@@ -0,0 +1,15 @@
1
+ /** The chemical reaction part of the air pollution model (https://archimede.uniba.it/~testset/report/pollu.pdf) */
2
+ export declare const pollution: {
3
+ name: string;
4
+ arg: {
5
+ name: string;
6
+ start: number;
7
+ finish: number;
8
+ step: number;
9
+ };
10
+ initial: number[];
11
+ func: (t: number, y: Float64Array, output: Float64Array) => void;
12
+ tolerance: number;
13
+ solutionColNames: string[];
14
+ };
15
+ export declare const pollutionReferencePoint: Float64Array<ArrayBuffer>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pollution.js","sourceRoot":"","sources":["../../../src/examples/pollution.ts"],"names":[],"mappings":"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"}