diff-grok 1.0.10 → 1.2.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 (226) hide show
  1. package/.claude/settings.local.json +11 -0
  2. package/.claude/skills/license-updater/SKILL.md +149 -0
  3. package/.claude/skills/license-updater/references/compatibility.md +68 -0
  4. package/.claude/skills/license-updater/references/templates.md +151 -0
  5. package/.claude/skills/license-updater/scripts/generate_license_files.py +467 -0
  6. package/CLAUDE.md +104 -0
  7. package/LICENSE +1 -1
  8. package/README.MD +121 -27
  9. package/THIRD_PARTY_LICENSES +135 -0
  10. package/docs/assets/hierarchy.js +1 -1
  11. package/docs/assets/navigation.js +1 -1
  12. package/docs/assets/search.js +1 -1
  13. package/docs/classes/BasicModelPipelineCreator.html +4 -4
  14. package/docs/classes/Callback.html +5 -5
  15. package/docs/classes/CyclicModelPipelineCreator.html +4 -4
  16. package/docs/classes/IterCheckerCallback.html +5 -5
  17. package/docs/classes/PipelineCreator.html +4 -4
  18. package/docs/classes/TimeCheckerCallback.html +5 -5
  19. package/docs/classes/UpdatesModelPipelineCreator.html +4 -4
  20. package/docs/functions/ab4.html +8 -0
  21. package/docs/functions/ab5.html +8 -0
  22. package/docs/functions/applyPipeline.html +2 -2
  23. package/docs/functions/getCallback.html +2 -2
  24. package/docs/functions/getIVP.html +2 -2
  25. package/docs/functions/getInputVector.html +2 -2
  26. package/docs/functions/getIvp2WebWorker.html +2 -2
  27. package/docs/functions/getJScode.html +2 -2
  28. package/docs/functions/getOutputNames.html +2 -2
  29. package/docs/functions/getPipelineCreator.html +2 -2
  30. package/docs/functions/lsoda.html +8 -0
  31. package/docs/functions/mrt.html +2 -2
  32. package/docs/functions/printE5.html +2 -2
  33. package/docs/functions/printHires.html +2 -2
  34. package/docs/functions/printOrego.html +2 -2
  35. package/docs/functions/printPollution.html +2 -2
  36. package/docs/functions/printRobertson.html +2 -2
  37. package/docs/functions/printVdpol.html +2 -2
  38. package/docs/functions/rk3.html +8 -0
  39. package/docs/functions/rk4.html +8 -0
  40. package/docs/functions/rkdp.html +8 -0
  41. package/docs/functions/ros34prw.html +2 -2
  42. package/docs/functions/ros3prw.html +2 -2
  43. package/docs/functions/solveIvp.html +2 -2
  44. package/docs/hierarchy.html +1 -1
  45. package/docs/index.html +100 -15
  46. package/docs/media/E5.png +0 -0
  47. package/docs/media/HIRES.png +0 -0
  48. package/docs/media/OREGO.png +0 -0
  49. package/docs/media/POLL-full.png +0 -0
  50. package/docs/media/ROBER.png +0 -0
  51. package/docs/media/VDP0L.png +0 -0
  52. package/docs/media/cyclic-model.js +3 -1
  53. package/docs/media/cyclic-model.js.map +1 -1
  54. package/docs/media/cyclic-model.ts +3 -1
  55. package/docs/modules.html +1 -1
  56. package/docs/types/Arg.html +7 -7
  57. package/docs/types/DifEqs.html +4 -4
  58. package/docs/types/Func.html +2 -2
  59. package/docs/types/IVP.html +20 -20
  60. package/docs/types/IVP2WebWorker.html +7 -7
  61. package/docs/types/Input.html +4 -4
  62. package/docs/types/Loop.html +4 -4
  63. package/docs/types/ODEs.html +8 -8
  64. package/docs/types/Output.html +4 -4
  65. package/docs/types/Pipeline.html +4 -4
  66. package/docs/types/SolverOptions.html +5 -5
  67. package/docs/types/Update.html +5 -5
  68. package/docs/types/Wrapper.html +5 -5
  69. package/images/E5.png +0 -0
  70. package/images/HIRES.png +0 -0
  71. package/images/OREGO.png +0 -0
  72. package/images/POLL-full.png +0 -0
  73. package/images/ROBER.png +0 -0
  74. package/images/VDP0L.png +0 -0
  75. package/index.js +1 -1
  76. package/index.js.map +1 -1
  77. package/index.ts +2 -1
  78. package/jest.config.js +1 -0
  79. package/package.json +4 -2
  80. package/src/examples/check-methods.js +15 -3
  81. package/src/examples/check-methods.js.map +1 -1
  82. package/src/examples/check-methods.ts +18 -3
  83. package/src/examples/cyclic-model.js +3 -1
  84. package/src/examples/cyclic-model.js.map +1 -1
  85. package/src/examples/cyclic-model.ts +3 -1
  86. package/src/solver-tools/ab4-method.js +332 -0
  87. package/src/solver-tools/ab4-method.js.map +1 -0
  88. package/src/solver-tools/ab4-method.ts +395 -0
  89. package/src/solver-tools/ab5-method.js +334 -0
  90. package/src/solver-tools/ab5-method.js.map +1 -0
  91. package/src/solver-tools/ab5-method.ts +397 -0
  92. package/src/solver-tools/cvode/common.js +487 -0
  93. package/src/solver-tools/cvode/common.js.map +1 -0
  94. package/src/solver-tools/cvode/common.ts +549 -0
  95. package/src/solver-tools/cvode/cvode.js +1062 -0
  96. package/src/solver-tools/cvode/cvode.js.map +1 -0
  97. package/src/solver-tools/cvode/cvode.ts +1226 -0
  98. package/src/solver-tools/cvode/cvode_adams.js +124 -0
  99. package/src/solver-tools/cvode/cvode_adams.js.map +1 -0
  100. package/src/solver-tools/cvode/cvode_adams.ts +142 -0
  101. package/src/solver-tools/cvode/cvode_bdf.js +153 -0
  102. package/src/solver-tools/cvode/cvode_bdf.js.map +1 -0
  103. package/src/solver-tools/cvode/cvode_bdf.ts +164 -0
  104. package/src/solver-tools/cvode/cvode_class.js +158 -0
  105. package/src/solver-tools/cvode/cvode_class.js.map +1 -0
  106. package/src/solver-tools/cvode/cvode_class.ts +271 -0
  107. package/src/solver-tools/cvode/cvode_hin.js +119 -0
  108. package/src/solver-tools/cvode/cvode_hin.js.map +1 -0
  109. package/src/solver-tools/cvode/cvode_hin.ts +150 -0
  110. package/src/solver-tools/cvode/cvode_io.js +203 -0
  111. package/src/solver-tools/cvode/cvode_io.js.map +1 -0
  112. package/src/solver-tools/cvode/cvode_io.ts +258 -0
  113. package/src/solver-tools/cvode/cvode_ls.js +210 -0
  114. package/src/solver-tools/cvode/cvode_ls.js.map +1 -0
  115. package/src/solver-tools/cvode/cvode_ls.ts +249 -0
  116. package/src/solver-tools/cvode/cvode_nls.js +220 -0
  117. package/src/solver-tools/cvode/cvode_nls.js.map +1 -0
  118. package/src/solver-tools/cvode/cvode_nls.ts +259 -0
  119. package/src/solver-tools/cvode/cvode_root.js +415 -0
  120. package/src/solver-tools/cvode/cvode_root.js.map +1 -0
  121. package/src/solver-tools/cvode/cvode_root.ts +503 -0
  122. package/src/solver-tools/cvode/dense_linalg.js +131 -0
  123. package/src/solver-tools/cvode/dense_linalg.js.map +1 -0
  124. package/src/solver-tools/cvode/dense_linalg.ts +144 -0
  125. package/src/solver-tools/cvode/index.js +26 -0
  126. package/src/solver-tools/cvode/index.js.map +1 -0
  127. package/src/solver-tools/cvode/index.ts +64 -0
  128. package/src/solver-tools/cvode-method.js +114 -0
  129. package/src/solver-tools/cvode-method.js.map +1 -0
  130. package/src/solver-tools/cvode-method.ts +129 -0
  131. package/src/solver-tools/index.js +7 -0
  132. package/src/solver-tools/index.js.map +1 -1
  133. package/src/solver-tools/index.ts +7 -0
  134. package/src/solver-tools/lsoda/blas.js +257 -0
  135. package/src/solver-tools/lsoda/blas.js.map +1 -0
  136. package/src/solver-tools/lsoda/blas.ts +279 -0
  137. package/src/solver-tools/lsoda/cfode.js +84 -0
  138. package/src/solver-tools/lsoda/cfode.js.map +1 -0
  139. package/src/solver-tools/lsoda/cfode.ts +95 -0
  140. package/src/solver-tools/lsoda/common.js +94 -0
  141. package/src/solver-tools/lsoda/common.js.map +1 -0
  142. package/src/solver-tools/lsoda/common.ts +135 -0
  143. package/src/solver-tools/lsoda/corfailure.js +36 -0
  144. package/src/solver-tools/lsoda/corfailure.js.map +1 -0
  145. package/src/solver-tools/lsoda/corfailure.ts +42 -0
  146. package/src/solver-tools/lsoda/correction.js +112 -0
  147. package/src/solver-tools/lsoda/correction.js.map +1 -0
  148. package/src/solver-tools/lsoda/correction.ts +131 -0
  149. package/src/solver-tools/lsoda/dense.js +121 -0
  150. package/src/solver-tools/lsoda/dense.js.map +1 -0
  151. package/src/solver-tools/lsoda/dense.ts +141 -0
  152. package/src/solver-tools/lsoda/index.js +15 -0
  153. package/src/solver-tools/lsoda/index.js.map +1 -0
  154. package/src/solver-tools/lsoda/index.ts +17 -0
  155. package/src/solver-tools/lsoda/intdy.js +54 -0
  156. package/src/solver-tools/lsoda/intdy.js.map +1 -0
  157. package/src/solver-tools/lsoda/intdy.ts +62 -0
  158. package/src/solver-tools/lsoda/lsoda.js +578 -0
  159. package/src/solver-tools/lsoda/lsoda.js.map +1 -0
  160. package/src/solver-tools/lsoda/lsoda.ts +644 -0
  161. package/src/solver-tools/lsoda/methodswitch.js +108 -0
  162. package/src/solver-tools/lsoda/methodswitch.js.map +1 -0
  163. package/src/solver-tools/lsoda/methodswitch.ts +119 -0
  164. package/src/solver-tools/lsoda/orderswitch.js +97 -0
  165. package/src/solver-tools/lsoda/orderswitch.js.map +1 -0
  166. package/src/solver-tools/lsoda/orderswitch.ts +107 -0
  167. package/src/solver-tools/lsoda/prja.js +54 -0
  168. package/src/solver-tools/lsoda/prja.js.map +1 -0
  169. package/src/solver-tools/lsoda/prja.ts +61 -0
  170. package/src/solver-tools/lsoda/scaleh.js +41 -0
  171. package/src/solver-tools/lsoda/scaleh.js.map +1 -0
  172. package/src/solver-tools/lsoda/scaleh.ts +45 -0
  173. package/src/solver-tools/lsoda/solsy.js +25 -0
  174. package/src/solver-tools/lsoda/solsy.js.map +1 -0
  175. package/src/solver-tools/lsoda/solsy.ts +30 -0
  176. package/src/solver-tools/lsoda/stoda.js +270 -0
  177. package/src/solver-tools/lsoda/stoda.js.map +1 -0
  178. package/src/solver-tools/lsoda/stoda.ts +298 -0
  179. package/src/solver-tools/lsoda-method.js +134 -0
  180. package/src/solver-tools/lsoda-method.js.map +1 -0
  181. package/src/solver-tools/lsoda-method.ts +154 -0
  182. package/src/solver-tools/mrt-method.js +81 -18
  183. package/src/solver-tools/mrt-method.js.map +1 -1
  184. package/src/solver-tools/mrt-method.ts +111 -21
  185. package/src/solver-tools/rk3-method.js +210 -0
  186. package/src/solver-tools/rk3-method.js.map +1 -0
  187. package/src/solver-tools/rk3-method.ts +257 -0
  188. package/src/solver-tools/rk4-method.js +236 -0
  189. package/src/solver-tools/rk4-method.js.map +1 -0
  190. package/src/solver-tools/rk4-method.ts +286 -0
  191. package/src/solver-tools/rkdp-method.js +247 -0
  192. package/src/solver-tools/rkdp-method.js.map +1 -0
  193. package/src/solver-tools/rkdp-method.ts +300 -0
  194. package/src/solver-tools/ros34prw-method.js +1 -1
  195. package/src/solver-tools/ros34prw-method.js.map +1 -1
  196. package/src/solver-tools/ros34prw-method.ts +1 -1
  197. package/src/solver-tools/ros3prw-method.js +1 -1
  198. package/src/solver-tools/ros3prw-method.js.map +1 -1
  199. package/src/solver-tools/ros3prw-method.ts +1 -1
  200. package/src/solver-tools/solver-defs.js +7 -0
  201. package/src/solver-tools/solver-defs.js.map +1 -1
  202. package/src/solver-tools/solver-defs.ts +7 -0
  203. package/src/tests/correctness.test.js +6 -4
  204. package/src/tests/correctness.test.js.map +1 -1
  205. package/src/tests/correctness.test.ts +6 -4
  206. package/src/tests/cvode-lib-correctness.test.js +404 -0
  207. package/src/tests/cvode-lib-correctness.test.js.map +1 -0
  208. package/src/tests/cvode-lib-correctness.test.ts +505 -0
  209. package/src/tests/cvode-lib-performance.test.js +103 -0
  210. package/src/tests/cvode-lib-performance.test.js.map +1 -0
  211. package/src/tests/cvode-lib-performance.test.ts +128 -0
  212. package/src/tests/lsoda-lib-correctness.test.js +223 -0
  213. package/src/tests/lsoda-lib-correctness.test.js.map +1 -0
  214. package/src/tests/lsoda-lib-correctness.test.ts +283 -0
  215. package/src/tests/lsoda-lib-performance.test.js +95 -0
  216. package/src/tests/lsoda-lib-performance.test.js.map +1 -0
  217. package/src/tests/lsoda-lib-performance.test.ts +126 -0
  218. package/src/tests/performance.test.js +12 -8
  219. package/src/tests/performance.test.js.map +1 -1
  220. package/src/tests/performance.test.ts +12 -8
  221. package/src/tests/test-defs.js +20 -1
  222. package/src/tests/test-defs.js.map +1 -1
  223. package/src/tests/test-defs.ts +22 -1
  224. package/src/worker-tools/solving.js +15 -1
  225. package/src/worker-tools/solving.js.map +1 -1
  226. package/src/worker-tools/solving.ts +23 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ros3prw-method.js","sourceRoot":"","sources":["ros3prw-method.ts"],"names":[],"mappings":"AAAA;;;qDAGqD;AAErD,OAAO,EAAO,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EACpE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAC,MAAM,eAAe,CAAC;AAE/E,OAAO,EAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAE7D,kDAAkD;AAClD,MAAM,KAAK,GAAG,mBAAmB,CAAC;AAElC,MAAM,QAAQ,GAAG,CAAC,kBAAkB,CAAC;AACrC,MAAM,eAAe,GAAG,QAAQ,GAAG,KAAK,CAAC;AACzC,MAAM,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;AAEjC,MAAM,QAAQ,GAAG,CAAC,mBAAmB,CAAC;AACtC,MAAM,eAAe,GAAG,QAAQ,GAAG,KAAK,CAAC;AACzC,MAAM,QAAQ,GAAG,CAAC,mBAAmB,CAAC;AACtC,MAAM,eAAe,GAAG,QAAQ,GAAG,KAAK,CAAC;AACzC,MAAM,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC;AAE5C,MAAM,QAAQ,GAAG,kBAAkB,CAAC;AACpC,MAAM,OAAO,GAAG,QAAQ,CAAC;AACzB,MAAM,QAAQ,GAAG,GAAG,CAAC;AACrB,MAAM,QAAQ,GAAG,mBAAmB,CAAC;AACrC,MAAM,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEpC,MAAM,GAAG,GAAG,mBAAmB,CAAC;AAChC,MAAM,GAAG,GAAG,CAAC,mBAAmB,CAAC;AACjC,MAAM,GAAG,GAAG,iBAAiB,CAAC;AAE9B,MAAM,OAAO,GAAG,mBAAmB,CAAC;AACpC,MAAM,OAAO,GAAG,mBAAmB,CAAC;AACpC,MAAM,OAAO,GAAG,iBAAiB,CAAC;AAElC,MAAM,GAAG,GAAG,GAAG,GAAG,OAAO,CAAC;AAC1B,MAAM,GAAG,GAAG,GAAG,GAAG,OAAO,CAAC;AAC1B,MAAM,GAAG,GAAG,GAAG,GAAG,OAAO,CAAC;AAG1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0CE;AACF,MAAM,UAAU,OAAO,CAAC,IAAU,EAAE,QAAmB;IACrD,wCAAwC;IACxC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;IAEpB,sBAAsB;IACtB,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;IAC1B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;IAC3B,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;IACtB,MAAM,UAAU,GAAG,CAAC,CAAC;IACrB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IAEjC,wCAAwC;IACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAE/C,+BAA+B;IAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAChC,MAAM,UAAU,GAAG,GAAG,GAAG,GAAG,CAAC;IAE7B,kCAAkC;IAClC,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC;IAExC,gCAAgC;IAChC,MAAM,KAAK,GAAG,KAAK,CAAe,GAAG,CAAC,CAAC;IAEvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC;QAC1B,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC;IAExC,iBAAiB;IACjB,IAAI,aAAa,GAAG,EAAE,GAAG,UAAU,CAAC;IACpC,IAAI,CAAC,GAAG,EAAE,CAAC;IACX,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,IAAI,IAAI,GAAG,IAAI,CAAC;IAChB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,KAAK,GAAG,GAAG,CAAC;IAEhB,8BAA8B;IAE9B,sBAAsB;IACtB,MAAM,CAAC,GAAG,IAAI,YAAY,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;IAEtC,0BAA0B;IAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC;QAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC;YAC1B,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC;IAEnC,MAAM,CAAC,GAAG,IAAI,YAAY,CAAC,UAAU,CAAC,CAAC;IAEvC,MAAM,EAAE,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,EAAE,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,EAAE,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,EAAE,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC;IAEjC,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC;IAEpC,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC;IAEnC,MAAM,CAAC,GAAG,IAAI,YAAY,CAAC,UAAU,CAAC,CAAC;IACvC,MAAM,CAAC,GAAG,IAAI,YAAY,CAAC,UAAU,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,GAAG,GAAG,CAAC,CAAC;IAExB,8BAA8B;IAC9B,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC;QAC1B,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAErB,0EAA0E;IAC1E,OAAO,IAAI,EAAE,CAAC;QACZ,qBAAqB;QACrB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QAEd,sCAAsC;QACtC,IAAI,QAAQ;YACV,QAAQ,CAAC,gBAAgB,EAAE,CAAC;QAE9B,uBAAuB;QACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC;YAC1B,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QAElD,kBAAkB;QAClB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC;YACf,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACX,IAAI,GAAG,KAAK,CAAC;QACf,CAAC;QAED,8CAA8C;QAC9C,8DAA8D;QAC9D,OAAO,IAAI,EAAE,CAAC;YACZ,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC;YAErB,iCAAiC;YAEjC,+BAA+B;YAC/B,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YACxC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YAE5C,0BAA0B;YAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,EAAE,CAAC;gBACjC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAEhC,IAAI,OAAO;gBACT,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;YAEzB,6BAA6B;YAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC;gBAC1B,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAEb,4BAA4B;YAC5B,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YAEd,oCAAoC;YACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC;gBAC1B,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YAEpC,IAAI,OAAO;gBACT,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;;gBAEpC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YAEzB,yDAAyD;YACzD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC;gBAC1B,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YAExC,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAE/B,iCAAiC;YACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC;gBAC1B,IAAI,CAAC,CAAC,CAAC,GAAG,eAAe,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YAEpC,qDAAqD;YACrD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC;gBAC1B,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YAEhD,IAAI,OAAO;gBACT,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;;gBAEpC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YAEzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC;gBAC1B,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;YAEnB,6EAA6E;YAC7E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC;gBAC1B,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAE7D,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAE/B,yDAAyD;YACzD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC;gBAC1B,IAAI,CAAC,CAAC,CAAC,GAAG,eAAe,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,eAAe,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YAE9D,oDAAoD;YACpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC;gBAC1B,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YAEhD,IAAI,OAAO;gBACT,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;;gBAEpC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YAEzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC;gBAC1B,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;YAEnB,gEAAgE;YAChE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC;gBAC1B,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAElE,+CAA+C;YAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC;gBAC1B,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAE1D,mBAAmB;YACnB,MAAM,GAAG,CAAC,CAAC;YACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC;gBAC1B,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,MAAM,IAAI,SAAS,CAAC;YAEpB,gCAAgC;YAChC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;gBACf,KAAK,GAAG,MAAM,GAAG,CAAC,GAAG,SAAA,MAAM,EAAE,MAAM,CAAA,CAAC;gBACpC,CAAC,GAAG,GAAG,CAAC,KAAK,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC;gBAChC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;gBACb,IAAI,IAAI,IAAI,CAAC;oBACX,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;YAC7C,CAAC;iBAAM,CAAC;gBACN,IAAI,MAAM,GAAG,SAAS;oBACpB,KAAK,GAAG,MAAM,GAAG,CAAC,GAAG,SAAA,MAAM,EAAE,MAAM,CAAA,CAAC;;oBAEpC,KAAK,GAAG,SAAS,GAAG,CAAC,CAAC;gBACxB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAEV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC;oBAC1B,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBAElB,MAAM;YACR,CAAC;QACH,CAAC,CAAC,eAAe;QAEjB,oEAAoE;QACpE,OAAO,aAAa,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;YAChD,MAAM,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC;YAE3B,IAAI,CAAC,KAAK,CAAC,GAAG,aAAa,CAAC;YAE5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC;gBAC1B,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAErD,aAAa,IAAI,UAAU,CAAC;YAC5B,EAAE,KAAK,CAAC;QACV,CAAC;QAED,CAAC,GAAG,KAAK,CAAC;QACV,KAAK,GAAG,CAAC,CAAC;QAEV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC;YAC1B,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC,CAAC,eAAe;IAEjB,iCAAiC;IACjC,IAAI,QAAQ;QACV,QAAQ,CAAC,uBAAuB,EAAE,CAAC;IAErC,8BAA8B;IAC9B,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IAExB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC;QAC1B,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhC,oBAAoB;IACpB,MAAM,QAAQ,GAAG,KAAK,CAAe,GAAG,CAAC,CAAC;IAE1C,uBAAuB;IACvB,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAEnB,YAAY;IACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC;QAC1B,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAE7B,OAAO,QAAQ,CAAC;IAChB,8BAA8B;AAChC,CAAC,CAAC,UAAU"}
1
+ {"version":3,"file":"ros3prw-method.js","sourceRoot":"","sources":["ros3prw-method.ts"],"names":[],"mappings":"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"}
@@ -328,7 +328,7 @@ export function ros3prw(odes: ODEs, callback?: Callback): Float64Array[] {
328
328
  yArrs[i][rowCount - 1] = y[i];
329
329
 
330
330
  // 4. prepare output
331
- const solution = Array<Float64Array>(dim);
331
+ const solution = Array<Float64Array>(dim + 1);
332
332
 
333
333
  // independent variable
334
334
  solution[0] = tArr;
@@ -43,6 +43,13 @@ export var ERROR_MSG;
43
43
  ERROR_MSG["MRT_FAILS"] = "The modified Rosenbrock triple method fails";
44
44
  ERROR_MSG["ROS3PRW_FAILS"] = "The ROS3PRw method fails";
45
45
  ERROR_MSG["ROS34PRW_FAILS"] = "The ROS34PRw method fails";
46
+ ERROR_MSG["RK4_FAILS"] = "The Runge-Kutta-Fehlberg 4(5) method fails";
47
+ ERROR_MSG["AB5_FAILS"] = "The Adams-Bashforth-Moulton 5 method fails";
48
+ ERROR_MSG["AB4_FAILS"] = "The Adams-Bashforth-Moulton 4 method fails";
49
+ ERROR_MSG["RKDP_FAILS"] = "The Dormand-Prince 5(4) method fails";
50
+ ERROR_MSG["RK3_FAILS"] = "The Bogacki-Shampine 3(2) method fails";
51
+ ERROR_MSG["LSODA_FAILS"] = "The LSODA method fails";
52
+ ERROR_MSG["CVODE_FAILS"] = "The CVODE method fails";
46
53
  })(ERROR_MSG || (ERROR_MSG = {}));
47
54
  ;
48
55
  /** Callback action
@@ -1 +1 @@
1
- {"version":3,"file":"solver-defs.js","sourceRoot":"","sources":["solver-defs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"solver-defs.js","sourceRoot":"","sources":["solver-defs.ts"],"names":[],"mappings":"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"}
@@ -153,6 +153,13 @@ export enum ERROR_MSG {
153
153
  MRT_FAILS = 'The modified Rosenbrock triple method fails',
154
154
  ROS3PRW_FAILS = 'The ROS3PRw method fails',
155
155
  ROS34PRW_FAILS = 'The ROS34PRw method fails',
156
+ RK4_FAILS = 'The Runge-Kutta-Fehlberg 4(5) method fails',
157
+ AB5_FAILS = 'The Adams-Bashforth-Moulton 5 method fails',
158
+ AB4_FAILS = 'The Adams-Bashforth-Moulton 4 method fails',
159
+ RKDP_FAILS = 'The Dormand-Prince 5(4) method fails',
160
+ RK3_FAILS = 'The Bogacki-Shampine 3(2) method fails',
161
+ LSODA_FAILS = 'The LSODA method fails',
162
+ CVODE_FAILS = 'The CVODE method fails',
156
163
  };
157
164
 
158
165
  /** Callback action
@@ -3,10 +3,12 @@ import { corrProbs } from '../../index';
3
3
  import { getError } from './test-utils';
4
4
  import { methods, MAX_MAD } from './test-defs';
5
5
  methods.forEach((method, name) => {
6
- corrProbs.forEach((problem) => {
7
- test(`Correctness: method - ${name}, problem - ${problem.odes.name}`, () => {
8
- const error = getError(method, problem);
9
- expect(error).toBeLessThan(MAX_MAD);
6
+ describe(`${name}`, () => {
7
+ corrProbs.forEach((problem) => {
8
+ test(`${problem.odes.name}`, () => {
9
+ const error = getError(method, problem);
10
+ expect(error).toBeLessThan(MAX_MAD);
11
+ });
10
12
  });
11
13
  });
12
14
  });
@@ -1 +1 @@
1
- {"version":3,"file":"correctness.test.js","sourceRoot":"","sources":["correctness.test.ts"],"names":[],"mappings":"AAAA,oBAAoB;AAEpB,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AACtC,OAAO,EAAC,QAAQ,EAAC,MAAM,cAAc,CAAC;AACtC,OAAO,EAAC,OAAO,EAAE,OAAO,EAAC,MAAM,aAAa,CAAC;AAE7C,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;IAC/B,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC5B,IAAI,CAAC,yBAAyB,IAAI,eAAe,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE;YACzE,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACxC,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"correctness.test.js","sourceRoot":"","sources":["correctness.test.ts"],"names":[],"mappings":"AAAA,oBAAoB;AAEpB,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AACtC,OAAO,EAAC,QAAQ,EAAC,MAAM,cAAc,CAAC;AACtC,OAAO,EAAC,OAAO,EAAE,OAAO,EAAC,MAAM,aAAa,CAAC;AAE7C,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;IAC/B,QAAQ,CAAC,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE;QACvB,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC5B,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE;gBAChC,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBACxC,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -5,10 +5,12 @@ import {getError} from './test-utils';
5
5
  import {methods, MAX_MAD} from './test-defs';
6
6
 
7
7
  methods.forEach((method, name) => {
8
- corrProbs.forEach((problem) => {
9
- test(`Correctness: method - ${name}, problem - ${problem.odes.name}`, () => {
10
- const error = getError(method, problem);
11
- expect(error).toBeLessThan(MAX_MAD);
8
+ describe(`${name}`, () => {
9
+ corrProbs.forEach((problem) => {
10
+ test(`${problem.odes.name}`, () => {
11
+ const error = getError(method, problem);
12
+ expect(error).toBeLessThan(MAX_MAD);
13
+ });
12
14
  });
13
15
  });
14
16
  });
@@ -0,0 +1,404 @@
1
+ import { Cvode, cvodeCreate, cvodeInit, cvode, cvodeSStolerances, cvodeSVtolerances, cvodeSetLinearSolver, CV_BDF, CV_NORMAL, CV_SUCCESS, CV_ROOT_RETURN, CV_TOO_MUCH_WORK, } from '../solver-tools/cvode';
2
+ import { corrProbs } from '../examples/corr-probs';
3
+ // ─── Robertson chemical kinetics (original test) ────────────────────────────
4
+ function robertsonRhs(t, y, ydot) {
5
+ ydot[0] = 1.0e4 * y[1] * y[2] - 0.04 * y[0];
6
+ ydot[2] = 3.0e7 * y[1] * y[1];
7
+ ydot[1] = -(ydot[0] + ydot[2]);
8
+ }
9
+ /** Low-level RHS for Robertson (returns int). */
10
+ function robertsonRhsLowLevel(t, y, ydot, _userData) {
11
+ robertsonRhs(t, y, ydot);
12
+ return 0;
13
+ }
14
+ const robertsonExpected = [
15
+ { t: 4.0000e-01, y: [9.851712e-01, 3.386380e-05, 1.479493e-02] },
16
+ { t: 4.0000e+00, y: [9.055333e-01, 2.240655e-05, 9.444430e-02] },
17
+ { t: 4.0000e+01, y: [7.158403e-01, 9.186334e-06, 2.841505e-01] },
18
+ { t: 4.0000e+02, y: [4.505250e-01, 3.222964e-06, 5.494717e-01] },
19
+ { t: 4.0000e+03, y: [1.831976e-01, 8.941773e-07, 8.168015e-01] },
20
+ { t: 4.0000e+04, y: [3.898729e-02, 1.621940e-07, 9.610125e-01] },
21
+ { t: 4.0000e+05, y: [4.936362e-03, 1.984221e-08, 9.950636e-01] },
22
+ { t: 4.0000e+06, y: [5.161833e-04, 2.065787e-09, 9.994838e-01] },
23
+ { t: 4.0000e+07, y: [5.179804e-05, 2.072027e-10, 9.999482e-01] },
24
+ { t: 4.0000e+08, y: [5.283675e-06, 2.113481e-11, 9.999947e-01] },
25
+ { t: 4.0000e+09, y: [4.658667e-07, 1.863468e-12, 9.999995e-01] },
26
+ { t: 4.0000e+10, y: [1.431100e-08, 5.724404e-14, 1.000000e+00] },
27
+ ];
28
+ // Robertson solver tolerances for CVODE.
29
+ const ROBERTSON_SOLVER_RTOL = 1e-8;
30
+ const ROBERTSON_SOLVER_ATOL = new Float64Array([1e-10, 1e-14, 1e-10]);
31
+ // Number of Robertson output points to check with strict relative tolerance.
32
+ // At very late times (t>=4e8) the solution components become extremely small
33
+ // (y1~1e-5, y2~1e-10) and accumulated integration error over many orders of
34
+ // magnitude of time makes pure relative error checks impractical. We check
35
+ // the first 9 points (up to t=4e7) with strict tolerance and use qualitative
36
+ // checks for the remaining points.
37
+ const ROBERTSON_STRICT_POINTS = 9;
38
+ const ROBERTSON_CHECK_TOL = 5e-3;
39
+ // ─── Helpers ─────────────────────────────────────────────────────────────────
40
+ function relError(computed, reference) {
41
+ if (reference === 0)
42
+ return Math.abs(computed);
43
+ return Math.abs((computed - reference) / reference);
44
+ }
45
+ /**
46
+ * Solves an ODE with the Cvode class and checks against exact solution at the final time.
47
+ * Uses combined absolute + relative tolerance: |computed - exact| < checkTol * |exact| + checkAbsTol.
48
+ */
49
+ function solveAndCheck(ode, exactSolution, lmm, checkTol = 1e-3, checkAbsTol = 1e-6) {
50
+ const neq = ode.initial.length;
51
+ const tol = ode.tolerance;
52
+ const solver = new Cvode(ode.func, neq, ode.arg.start, Float64Array.from(ode.initial), {
53
+ lmm,
54
+ rtol: tol,
55
+ atol: tol,
56
+ });
57
+ let t = ode.arg.start;
58
+ const step = ode.arg.step;
59
+ const finish = ode.arg.finish;
60
+ let result;
61
+ let tout = t + step;
62
+ while (tout <= finish + step / 2) {
63
+ result = solver.solve(tout);
64
+ expect(result.flag).toBe(CV_SUCCESS);
65
+ t = result.t;
66
+ tout += step;
67
+ }
68
+ // Check final solution against exact
69
+ const exact = exactSolution(t);
70
+ const y = result.y;
71
+ for (let j = 0; j < neq; j++) {
72
+ const absErr = Math.abs(y[j] - exact[j]);
73
+ const allowed = checkTol * Math.abs(exact[j]) + checkAbsTol;
74
+ expect(absErr).toBeLessThan(allowed);
75
+ }
76
+ }
77
+ /**
78
+ * Dense output helper: solve an ODE to evenly spaced output points, then use getDky
79
+ * to verify the interpolation matches the exact solution.
80
+ */
81
+ function denseExactCheck(ode, exactSolution, lmm, checkTol = 1e-3, checkAbsTol = 1e-6) {
82
+ const neq = ode.initial.length;
83
+ const tol = ode.tolerance;
84
+ const solver = new Cvode(ode.func, neq, ode.arg.start, Float64Array.from(ode.initial), {
85
+ lmm,
86
+ rtol: tol,
87
+ atol: tol,
88
+ });
89
+ const start = ode.arg.start;
90
+ const finish = ode.arg.finish;
91
+ const nOutputPts = 100;
92
+ let nChecked = 0;
93
+ for (let i = 1; i <= nOutputPts; i++) {
94
+ const tout = start + (finish - start) * i / nOutputPts;
95
+ const result = solver.solve(tout);
96
+ expect(result.flag).toBe(CV_SUCCESS);
97
+ // getDky at the output time should match the solve result
98
+ const dky = solver.getDky(result.t, 0);
99
+ const exact = exactSolution(result.t);
100
+ for (let j = 0; j < neq; j++) {
101
+ // Dense output should match the direct solve result
102
+ expect(Math.abs(dky[j] - result.y[j])).toBeLessThan(1e-12);
103
+ // Dense output should match the exact solution
104
+ const absErr = Math.abs(dky[j] - exact[j]);
105
+ const allowed = checkTol * Math.abs(exact[j]) + checkAbsTol;
106
+ expect(absErr).toBeLessThan(allowed);
107
+ }
108
+ nChecked++;
109
+ }
110
+ // Ensure we actually checked points
111
+ expect(nChecked).toBe(nOutputPts);
112
+ }
113
+ // ─── Tests ───────────────────────────────────────────────────────────────────
114
+ const nonStiffProbs = corrProbs.filter((p) => p.odes.name.startsWith('non-stiff'));
115
+ const stiffProbs = corrProbs.filter((p) => p.odes.name.startsWith('stiff'));
116
+ describe('CVODE LIB', () => {
117
+ it('should solve Robertson chemical kinetics with Cvode class', () => {
118
+ const neq = 3;
119
+ const solver = new Cvode(robertsonRhs, neq, 0.0, Float64Array.from([1.0, 0.0, 0.0]), {
120
+ lmm: 'bdf',
121
+ rtol: ROBERTSON_SOLVER_RTOL,
122
+ atol: ROBERTSON_SOLVER_ATOL,
123
+ });
124
+ let tout = 0.4;
125
+ for (let iout = 0; iout < 12; iout++) {
126
+ const result = solver.solve(tout);
127
+ expect(result.flag).toBe(CV_SUCCESS);
128
+ const exp = robertsonExpected[iout];
129
+ if (iout < ROBERTSON_STRICT_POINTS) {
130
+ for (let j = 0; j < 3; j++) {
131
+ const err = relError(result.y[j], exp.y[j]);
132
+ expect(err).toBeLessThanOrEqual(ROBERTSON_CHECK_TOL);
133
+ }
134
+ }
135
+ else {
136
+ const sum = result.y[0] + result.y[1] + result.y[2];
137
+ expect(Math.abs(sum - 1.0)).toBeLessThan(1e-4);
138
+ expect(result.y[2]).toBeGreaterThan(0.999);
139
+ }
140
+ tout *= 10.0;
141
+ }
142
+ });
143
+ it('should solve Robertson chemical kinetics with the low-level API', () => {
144
+ const neq = 3;
145
+ const y0 = Float64Array.from([1.0, 0.0, 0.0]);
146
+ const mem = cvodeCreate(CV_BDF);
147
+ cvodeInit(mem, robertsonRhsLowLevel, 0.0, y0);
148
+ cvodeSVtolerances(mem, ROBERTSON_SOLVER_RTOL, ROBERTSON_SOLVER_ATOL);
149
+ cvodeSetLinearSolver(mem);
150
+ const yout = new Float64Array(neq);
151
+ let tout = 0.4;
152
+ for (let iout = 0; iout < 12; iout++) {
153
+ const { flag, t } = cvode(mem, tout, yout, CV_NORMAL);
154
+ expect(flag).toBe(CV_SUCCESS);
155
+ const exp = robertsonExpected[iout];
156
+ if (iout < ROBERTSON_STRICT_POINTS) {
157
+ for (let j = 0; j < 3; j++) {
158
+ const err = relError(yout[j], exp.y[j]);
159
+ expect(err).toBeLessThanOrEqual(ROBERTSON_CHECK_TOL);
160
+ }
161
+ }
162
+ else {
163
+ const sum = yout[0] + yout[1] + yout[2];
164
+ expect(Math.abs(sum - 1.0)).toBeLessThan(1e-4);
165
+ expect(yout[2]).toBeGreaterThan(0.999);
166
+ }
167
+ tout *= 10.0;
168
+ }
169
+ });
170
+ describe('non-stiff problems (Adams)', () => {
171
+ nonStiffProbs.forEach(({ odes, exact }) => {
172
+ it(`should solve ${odes.name} problem`, () => {
173
+ solveAndCheck(odes, exact, 'adams');
174
+ });
175
+ });
176
+ });
177
+ describe('stiff problems (BDF)', () => {
178
+ stiffProbs.forEach(({ odes, exact }) => {
179
+ it(`should solve ${odes.name} problem`, () => {
180
+ solveAndCheck(odes, exact, 'bdf');
181
+ });
182
+ });
183
+ });
184
+ // ─── Rootfinding ─────────────────────────────────────────────────────────
185
+ describe('rootfinding', () => {
186
+ it('should detect roots in Robertson system', () => {
187
+ const neq = 3;
188
+ // Root functions: g1 = y1 - 1e-4, g2 = y3 - 0.01
189
+ const rootFn = (t, y, gout) => {
190
+ gout[0] = y[0] - 1e-4;
191
+ gout[1] = y[2] - 0.01;
192
+ };
193
+ const solver = new Cvode(robertsonRhs, neq, 0.0, Float64Array.from([1.0, 0.0, 0.0]), {
194
+ lmm: 'bdf',
195
+ rtol: ROBERTSON_SOLVER_RTOL,
196
+ atol: ROBERTSON_SOLVER_ATOL,
197
+ rootFn,
198
+ nRootFns: 2,
199
+ });
200
+ const rootTimes = [];
201
+ const rootIndices = [];
202
+ // Advance through the problem, collecting root returns
203
+ let tout = 0.4;
204
+ const tEnd = 4e10;
205
+ while (tout <= tEnd) {
206
+ const result = solver.solve(tout);
207
+ if (result.flag === CV_ROOT_RETURN) {
208
+ rootTimes.push(result.t);
209
+ rootIndices.push(result.rootsFound);
210
+ // Continue from the root time; do not advance tout yet
211
+ continue;
212
+ }
213
+ expect(result.flag).toBe(CV_SUCCESS);
214
+ tout *= 10.0;
215
+ }
216
+ // Expect at least 2 roots: y3 reaches 0.01 first, then y1 drops to 1e-4
217
+ expect(rootTimes.length).toBeGreaterThanOrEqual(2);
218
+ // First root: y3 = 0.01, near t ~ 2.6391e-1
219
+ const tRoot1 = rootTimes[0];
220
+ expect(relError(tRoot1, 2.6391e-1)).toBeLessThan(2e-2);
221
+ // rootsFound should indicate root function index 1 (g2)
222
+ expect(rootIndices[0][1]).not.toBe(0);
223
+ // Second root: y1 = 1e-4, near t ~ 2.0790e+7
224
+ const tRoot2 = rootTimes[1];
225
+ expect(relError(tRoot2, 2.0790e7)).toBeLessThan(2e-2);
226
+ // rootsFound should indicate root function index 0 (g1)
227
+ expect(rootIndices[1][0]).not.toBe(0);
228
+ });
229
+ });
230
+ // ─── Dense output tests ─────────────────────────────────────────────────
231
+ describe('dense output (getDky)', () => {
232
+ it('consistency: getDky at output points should match solve results (Robertson)', () => {
233
+ const neq = 3;
234
+ const solver = new Cvode(robertsonRhs, neq, 0.0, Float64Array.from([1.0, 0.0, 0.0]), {
235
+ lmm: 'bdf',
236
+ rtol: ROBERTSON_SOLVER_RTOL,
237
+ atol: ROBERTSON_SOLVER_ATOL,
238
+ });
239
+ let tout = 0.4;
240
+ for (let iout = 0; iout < 12; iout++) {
241
+ const result = solver.solve(tout);
242
+ expect(result.flag).toBe(CV_SUCCESS);
243
+ // getDky at the output time should match the solve result
244
+ const dky = solver.getDky(result.t, 0);
245
+ for (let j = 0; j < neq; j++)
246
+ expect(Math.abs(dky[j] - result.y[j])).toBeLessThan(1e-12);
247
+ tout *= 10.0;
248
+ }
249
+ });
250
+ it('monotonicity: getDky at successive output points should produce finite values', () => {
251
+ const neq = 3;
252
+ const solver = new Cvode(robertsonRhs, neq, 0.0, Float64Array.from([1.0, 0.0, 0.0]), {
253
+ lmm: 'bdf',
254
+ rtol: ROBERTSON_SOLVER_RTOL,
255
+ atol: ROBERTSON_SOLVER_ATOL,
256
+ });
257
+ // Solve to 1000 uniformly spaced points across [0.01, 1.0]
258
+ const n = 1000;
259
+ const tMin = 0.01;
260
+ const tMax = 1.0;
261
+ let prevT = 0.0;
262
+ for (let i = 0; i < n; i++) {
263
+ const tout = tMin + (tMax - tMin) * i / (n - 1);
264
+ const result = solver.solve(tout);
265
+ expect(result.flag).toBe(CV_SUCCESS);
266
+ // Time should advance monotonically
267
+ expect(result.t).toBeGreaterThan(prevT);
268
+ prevT = result.t;
269
+ // getDky at the output point should return finite values
270
+ const dky = solver.getDky(result.t, 0);
271
+ for (let j = 0; j < neq; j++)
272
+ expect(Number.isFinite(dky[j])).toBe(true);
273
+ }
274
+ });
275
+ it('boundary: getDky at endpoints of the current step interval', () => {
276
+ const neq = 3;
277
+ const solver = new Cvode(robertsonRhs, neq, 0.0, Float64Array.from([1.0, 0.0, 0.0]), {
278
+ lmm: 'bdf',
279
+ rtol: ROBERTSON_SOLVER_RTOL,
280
+ atol: ROBERTSON_SOLVER_ATOL,
281
+ });
282
+ // Advance to a point to establish state
283
+ const result = solver.solve(0.4);
284
+ expect(result.flag).toBe(CV_SUCCESS);
285
+ // getDky at the last output time should succeed
286
+ const dkyEnd = solver.getDky(result.t, 0);
287
+ for (let j = 0; j < neq; j++)
288
+ expect(Number.isFinite(dkyEnd[j])).toBe(true);
289
+ // Query derivative (k=1) - first derivative at output time
290
+ const dkyDeriv = solver.getDky(result.t, 1);
291
+ for (let j = 0; j < neq; j++)
292
+ expect(Number.isFinite(dkyDeriv[j])).toBe(true);
293
+ });
294
+ corrProbs.forEach(({ odes, exact }) => {
295
+ const lmm = odes.name.startsWith('stiff') ? 'bdf' : 'adams';
296
+ it(`dense output on ${odes.name} problem should match exact solution`, () => {
297
+ denseExactCheck(odes, exact, lmm);
298
+ });
299
+ });
300
+ });
301
+ // ─── Error handling ─────────────────────────────────────────────────────
302
+ describe('error handling', () => {
303
+ it('should return error for negative tolerances (low-level API)', () => {
304
+ const mem = cvodeCreate(CV_BDF);
305
+ cvodeInit(mem, robertsonRhsLowLevel, 0.0, Float64Array.from([1.0, 0.0, 0.0]));
306
+ const flag = cvodeSStolerances(mem, -1e-4, 1e-6);
307
+ expect(flag).toBeLessThan(0);
308
+ });
309
+ it('should return CV_TOO_MUCH_WORK with maxSteps: 1', () => {
310
+ const neq = 3;
311
+ const solver = new Cvode(robertsonRhs, neq, 0.0, Float64Array.from([1.0, 0.0, 0.0]), {
312
+ lmm: 'bdf',
313
+ rtol: ROBERTSON_SOLVER_RTOL,
314
+ atol: ROBERTSON_SOLVER_ATOL,
315
+ maxSteps: 1,
316
+ });
317
+ const result = solver.solve(4e10);
318
+ expect(result.flag).toBe(CV_TOO_MUCH_WORK);
319
+ });
320
+ it('should return error flag when RHS function fails', () => {
321
+ const failingRhs = (_t, _y, ydot) => {
322
+ ydot[0] = NaN;
323
+ };
324
+ const solver = new Cvode(failingRhs, 1, 0.0, Float64Array.from([1.0]), {
325
+ lmm: 'bdf',
326
+ rtol: 1e-4,
327
+ atol: 1e-6,
328
+ });
329
+ const result = solver.solve(1.0);
330
+ expect(result.flag).toBeLessThan(0);
331
+ });
332
+ });
333
+ // ─── Cvode class features ──────────────────────────────────────────────
334
+ describe('Cvode class features', () => {
335
+ it('getStats should return valid integrator statistics', () => {
336
+ const neq = 3;
337
+ const solver = new Cvode(robertsonRhs, neq, 0.0, Float64Array.from([1.0, 0.0, 0.0]), {
338
+ lmm: 'bdf',
339
+ rtol: ROBERTSON_SOLVER_RTOL,
340
+ atol: ROBERTSON_SOLVER_ATOL,
341
+ });
342
+ // Solve to first output point
343
+ solver.solve(0.4);
344
+ const stats = solver.getStats();
345
+ expect(stats.nSteps).toBeGreaterThan(0);
346
+ expect(stats.nRhsEvals).toBeGreaterThan(0);
347
+ expect(stats.nLinSolvSetups).toBeGreaterThanOrEqual(0);
348
+ expect(stats.nErrTestFails).toBeGreaterThanOrEqual(0);
349
+ expect(stats.nNonlinSolvIters).toBeGreaterThan(0);
350
+ expect(stats.nNonlinSolvConvFails).toBeGreaterThanOrEqual(0);
351
+ expect(stats.nJacEvals).toBeGreaterThanOrEqual(0);
352
+ expect(stats.lastOrder).toBeGreaterThanOrEqual(1);
353
+ expect(stats.lastStep).toBeGreaterThan(0);
354
+ expect(stats.currentTime).toBeGreaterThan(0);
355
+ });
356
+ it('reInit should allow solving with new initial conditions', () => {
357
+ const neq = 3;
358
+ const solver = new Cvode(robertsonRhs, neq, 0.0, Float64Array.from([1.0, 0.0, 0.0]), {
359
+ lmm: 'bdf',
360
+ rtol: ROBERTSON_SOLVER_RTOL,
361
+ atol: ROBERTSON_SOLVER_ATOL,
362
+ });
363
+ // Solve to first output point
364
+ const result1 = solver.solve(0.4);
365
+ expect(result1.flag).toBe(CV_SUCCESS);
366
+ const y1 = new Float64Array(result1.y);
367
+ // Re-initialize with the same initial conditions and solve again
368
+ solver.reInit(0.0, Float64Array.from([1.0, 0.0, 0.0]));
369
+ const result2 = solver.solve(0.4);
370
+ expect(result2.flag).toBe(CV_SUCCESS);
371
+ // Results should match closely
372
+ for (let j = 0; j < neq; j++) {
373
+ const err = relError(result2.y[j], y1[j]);
374
+ expect(err).toBeLessThanOrEqual(1e-6);
375
+ }
376
+ });
377
+ it('reInit with different initial conditions should produce different results', () => {
378
+ const neq = 1;
379
+ const simpleRhs = (_t, y, ydot) => {
380
+ ydot[0] = -y[0]; // y' = -y, solution: y(t) = y0 * exp(-t)
381
+ };
382
+ const solver = new Cvode(simpleRhs, neq, 0.0, Float64Array.from([1.0]), {
383
+ lmm: 'adams',
384
+ rtol: 1e-10,
385
+ atol: 1e-12,
386
+ });
387
+ // Solve with y0 = 1
388
+ const result1 = solver.solve(1.0);
389
+ expect(result1.flag).toBe(CV_SUCCESS);
390
+ const y1 = result1.y[0]; // should be ~ exp(-1) ~ 0.3679
391
+ // Re-initialize with y0 = 2
392
+ solver.reInit(0.0, Float64Array.from([2.0]));
393
+ const result2 = solver.solve(1.0);
394
+ expect(result2.flag).toBe(CV_SUCCESS);
395
+ const y2 = result2.y[0]; // should be ~ 2*exp(-1) ~ 0.7358
396
+ // y2 should be approximately 2 * y1
397
+ expect(relError(y2, 2 * y1)).toBeLessThan(1e-6);
398
+ // Check against exact solutions
399
+ expect(relError(y1, Math.exp(-1))).toBeLessThan(1e-6);
400
+ expect(relError(y2, 2 * Math.exp(-1))).toBeLessThan(1e-6);
401
+ });
402
+ });
403
+ });
404
+ //# sourceMappingURL=cvode-lib-correctness.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cvode-lib-correctness.test.js","sourceRoot":"","sources":["cvode-lib-correctness.test.ts"],"names":[],"mappings":"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"}