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,8 +1,8 @@
1
- <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ros3prw | diff-grok - v1.0.10</title><meta name="description" content="Documentation for diff-grok"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">diff-grok - v1.0.10</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">ros3prw</a></li></ul><h1>Function ros3prw</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="ros3prw"><span class="tsd-kind-call-signature">ros3prw</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">odes</span><span class="tsd-signature-symbol">:</span> <a href="../types/ODEs.html" class="tsd-signature-type tsd-kind-type-alias">ODEs</a><span class="tsd-signature-symbol">,</span> <span class="tsd-kind-parameter">callback</span><span class="tsd-signature-symbol">?:</span> <a href="../classes/Callback.html" class="tsd-signature-type tsd-kind-class">Callback</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Float64Array</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ArrayBufferLike</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">[]</span><a href="#ros3prw" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Solve initial value problem using the ROS3PRw method</p>
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ros3prw | diff-grok - v1.1.0</title><meta name="description" content="Documentation for diff-grok"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">diff-grok - v1.1.0</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">ros3prw</a></li></ul><h1>Function ros3prw</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="ros3prw"><span class="tsd-kind-call-signature">ros3prw</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">odes</span><span class="tsd-signature-symbol">:</span> <a href="../types/ODEs.html" class="tsd-signature-type tsd-kind-type-alias">ODEs</a><span class="tsd-signature-symbol">,</span> <span class="tsd-kind-parameter">callback</span><span class="tsd-signature-symbol">?:</span> <a href="../classes/Callback.html" class="tsd-signature-type tsd-kind-class">Callback</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Float64Array</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ArrayBufferLike</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">[]</span><a href="#ros3prw" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Solve initial value problem using the ROS3PRw method</p>
2
2
  </div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">odes</span>: <a href="../types/ODEs.html" class="tsd-signature-type tsd-kind-type-alias">ODEs</a></span><div class="tsd-comment tsd-typography"><p>initial value problem for ordinary differential equations</p>
3
3
  </div></li><li><span><code class="tsd-tag">Optional</code><span class="tsd-kind-parameter">callback</span>: <a href="../classes/Callback.html" class="tsd-signature-type tsd-kind-class">Callback</a></span><div class="tsd-comment tsd-typography"><p>computations control callback</p>
4
4
  </div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Float64Array</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ArrayBufferLike</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">[]</span></h4><p>solution of the problem</p>
5
5
  <div class="tsd-comment tsd-typography"><div class="tsd-tag-example"><h4 class="tsd-anchor-link" id="example">Example<a href="#example" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h4><pre><code class="ts"><span class="hl-3">// Example. Solve the following initial value problem using the ROS3PRw method:</span><br/><span class="hl-3">// dx/dt = x + y - t</span><br/><span class="hl-3">// dy/dt = x * y + t</span><br/><span class="hl-3">// x(0) = 1</span><br/><span class="hl-3">// y(0) = -1</span><br/><span class="hl-3">// on [0, 2] with the step 0.01.</span><br/><span class="hl-4">import</span><span class="hl-1"> { </span><span class="hl-5">ODEs</span><span class="hl-1">, </span><span class="hl-5">ros3prw</span><span class="hl-1"> } </span><span class="hl-4">from</span><span class="hl-1"> </span><span class="hl-2">&#39;diff-grok&#39;</span><span class="hl-1">;</span><br/><br/><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">task</span><span class="hl-1">: </span><span class="hl-8">ODEs</span><span class="hl-1"> = {</span><br/><span class="hl-1"> </span><span class="hl-5">name:</span><span class="hl-1"> </span><span class="hl-2">&#39;Example&#39;</span><span class="hl-1">, </span><span class="hl-3">// name of your model</span><br/><span class="hl-1"> </span><span class="hl-5">arg:</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-5">name:</span><span class="hl-1"> </span><span class="hl-2">&#39;t&#39;</span><span class="hl-1">, </span><span class="hl-3">// name of the argument</span><br/><span class="hl-1"> </span><span class="hl-5">start:</span><span class="hl-1"> </span><span class="hl-9">0</span><span class="hl-1">, </span><span class="hl-3">// initial value of the argument</span><br/><span class="hl-1"> </span><span class="hl-5">finish:</span><span class="hl-1"> </span><span class="hl-9">2</span><span class="hl-1">, </span><span class="hl-3">// final value of the argument</span><br/><span class="hl-1"> </span><span class="hl-5">step:</span><span class="hl-1"> </span><span class="hl-9">0.01</span><span class="hl-1">, </span><span class="hl-3">// solution grid step</span><br/><span class="hl-1"> },</span><br/><span class="hl-1"> </span><span class="hl-5">initial:</span><span class="hl-1"> [</span><span class="hl-9">1</span><span class="hl-1">, -</span><span class="hl-9">1</span><span class="hl-1">], </span><span class="hl-3">// initial values</span><br/><span class="hl-1"> </span><span class="hl-0">func</span><span class="hl-5">:</span><span class="hl-1"> (</span><span class="hl-5">t</span><span class="hl-1">: </span><span class="hl-8">number</span><span class="hl-1">, </span><span class="hl-5">y</span><span class="hl-1">: </span><span class="hl-8">Float64Array</span><span class="hl-1">, </span><span class="hl-5">output</span><span class="hl-1">: </span><span class="hl-8">Float64Array</span><span class="hl-1">) </span><span class="hl-6">=&gt;</span><span class="hl-1"> { </span><span class="hl-3">// right-hand side of the system</span><br/><span class="hl-1"> </span><span class="hl-5">output</span><span class="hl-1">[</span><span class="hl-9">0</span><span class="hl-1">] = </span><span class="hl-5">y</span><span class="hl-1">[</span><span class="hl-9">0</span><span class="hl-1">] + </span><span class="hl-5">y</span><span class="hl-1">[</span><span class="hl-9">1</span><span class="hl-1">] - </span><span class="hl-5">t</span><span class="hl-1">; </span><span class="hl-3">// 1-st equation</span><br/><span class="hl-1"> </span><span class="hl-5">output</span><span class="hl-1">[</span><span class="hl-9">1</span><span class="hl-1">] = </span><span class="hl-5">y</span><span class="hl-1">[</span><span class="hl-9">0</span><span class="hl-1">] * </span><span class="hl-5">y</span><span class="hl-1">[</span><span class="hl-9">1</span><span class="hl-1">] + </span><span class="hl-5">t</span><span class="hl-1">; </span><span class="hl-3">// 2-nd equation</span><br/><span class="hl-1"> },</span><br/><span class="hl-1"> </span><span class="hl-5">tolerance:</span><span class="hl-1"> </span><span class="hl-9">1e-7</span><span class="hl-1">, </span><span class="hl-3">// tolerance</span><br/><span class="hl-1"> </span><span class="hl-5">solutionColNames:</span><span class="hl-1"> [</span><span class="hl-2">&#39;x&#39;</span><span class="hl-1">, </span><span class="hl-2">&#39;y&#39;</span><span class="hl-1">], </span><span class="hl-3">// names of solution functions</span><br/><span class="hl-1">};</span><br/><br/><span class="hl-4">try</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-3">// Solve the problem using the ROS3PRw method</span><br/><span class="hl-1"> </span><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">solution</span><span class="hl-1"> = </span><span class="hl-0">ros3prw</span><span class="hl-1">(</span><span class="hl-5">task</span><span class="hl-1">);</span><br/><br/><span class="hl-1"> </span><span class="hl-3">// Print a table with the results</span><br/><span class="hl-1"> </span><span class="hl-5">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-5">task</span><span class="hl-1">.</span><span class="hl-5">arg</span><span class="hl-1">.</span><span class="hl-5">name</span><span class="hl-1">, </span><span class="hl-5">task</span><span class="hl-1">.</span><span class="hl-5">solutionColNames</span><span class="hl-1">[</span><span class="hl-9">0</span><span class="hl-1">], </span><span class="hl-5">task</span><span class="hl-1">.</span><span class="hl-5">solutionColNames</span><span class="hl-1">[</span><span class="hl-9">1</span><span class="hl-1">]);</span><br/><span class="hl-1"> </span><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">length</span><span class="hl-1"> = </span><span class="hl-5">solution</span><span class="hl-1">[</span><span class="hl-9">0</span><span class="hl-1">].</span><span class="hl-5">length</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-4">for</span><span class="hl-1"> (</span><span class="hl-6">let</span><span class="hl-1"> </span><span class="hl-5">i</span><span class="hl-1"> = </span><span class="hl-9">0</span><span class="hl-1">; </span><span class="hl-5">i</span><span class="hl-1"> &lt; </span><span class="hl-5">length</span><span class="hl-1">; ++</span><span class="hl-5">i</span><span class="hl-1">)</span><br/><span class="hl-1"> </span><span class="hl-5">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-5">solution</span><span class="hl-1">[</span><span class="hl-9">0</span><span class="hl-1">][</span><span class="hl-5">i</span><span class="hl-1">], </span><span class="hl-5">solution</span><span class="hl-1">[</span><span class="hl-9">1</span><span class="hl-1">][</span><span class="hl-5">i</span><span class="hl-1">], </span><span class="hl-5">solution</span><span class="hl-1">[</span><span class="hl-9">2</span><span class="hl-1">][</span><span class="hl-5">i</span><span class="hl-1">]);</span><br/><span class="hl-1">} </span><span class="hl-4">catch</span><span class="hl-1"> (</span><span class="hl-5">err</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-5">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">&#39;Solver failed: &#39;</span><span class="hl-1">, </span><span class="hl-5">err</span><span class="hl-1"> </span><span class="hl-6">instanceof</span><span class="hl-1"> </span><span class="hl-8">Error</span><span class="hl-1"> ? </span><span class="hl-5">err</span><span class="hl-1">.</span><span class="hl-5">message</span><span class="hl-1"> : </span><span class="hl-2">&#39;Unknown problem!&#39;</span><span class="hl-1">);</span><br/><span class="hl-1">}</span>
6
6
  </code><button type="button">Copy</button></pre>
7
7
 
8
- </div></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/datagrok-ai/DiffGrok/blob/3c67f17fb9b88f69647e701ac86a3b861345124e/src/solver-tools/ros3prw-method.ts#L86">src/solver-tools/ros3prw-method.ts:86</a></li></ul></aside></div></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">diff-grok - v1.0.10</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
8
+ </div></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/datagrok-ai/diff-grok/blob/652d427344795ab429f0120033309f18670d3034/src/solver-tools/ros3prw-method.ts#L86">src/solver-tools/ros3prw-method.ts:86</a></li></ul></aside></div></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">diff-grok - v1.1.0</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
@@ -1,5 +1,5 @@
1
- <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>solveIvp | diff-grok - v1.0.10</title><meta name="description" content="Documentation for diff-grok"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">diff-grok - v1.0.10</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">solveIvp</a></li></ul><h1>Function solveIvp</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="solveivp"><span class="tsd-kind-call-signature">solveIvp</span><span class="tsd-signature-symbol">(</span><br/>    <span class="tsd-kind-parameter">ivp</span><span class="tsd-signature-symbol">:</span> <a href="../types/IVP2WebWorker.html" class="tsd-signature-type tsd-kind-type-alias">IVP2WebWorker</a><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-kind-parameter">inputs</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Float64Array</span><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Float64Array</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ArrayBufferLike</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">[]</span><a href="#solveivp" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Return solution of IVP with a specified inputs</p>
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>solveIvp | diff-grok - v1.1.0</title><meta name="description" content="Documentation for diff-grok"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">diff-grok - v1.1.0</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">solveIvp</a></li></ul><h1>Function solveIvp</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="solveivp"><span class="tsd-kind-call-signature">solveIvp</span><span class="tsd-signature-symbol">(</span><br/>    <span class="tsd-kind-parameter">ivp</span><span class="tsd-signature-symbol">:</span> <a href="../types/IVP2WebWorker.html" class="tsd-signature-type tsd-kind-type-alias">IVP2WebWorker</a><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-kind-parameter">inputs</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Float64Array</span><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Float64Array</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ArrayBufferLike</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">[]</span><a href="#solveivp" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Return solution of IVP with a specified inputs</p>
2
2
  </div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">ivp</span>: <a href="../types/IVP2WebWorker.html" class="tsd-signature-type tsd-kind-type-alias">IVP2WebWorker</a></span><div class="tsd-comment tsd-typography"><p>initial value problem to be solved</p>
3
3
  </div></li><li><span><span class="tsd-kind-parameter">inputs</span>: <span class="tsd-signature-type">Float64Array</span></span><div class="tsd-comment tsd-typography"><p>vector of input values</p>
4
4
  </div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Float64Array</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ArrayBufferLike</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">[]</span></h4><p>solution of the given initial value problem</p>
5
- <aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/datagrok-ai/DiffGrok/blob/3c67f17fb9b88f69647e701ac86a3b861345124e/src/worker-tools/solving.ts#L39">src/worker-tools/solving.ts:39</a></li></ul></aside></div></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">diff-grok - v1.0.10</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
5
+ <aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/datagrok-ai/diff-grok/blob/652d427344795ab429f0120033309f18670d3034/src/worker-tools/solving.ts#L58">src/worker-tools/solving.ts:58</a></li></ul></aside></div></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">diff-grok - v1.1.0</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html class="default" lang="en" data-base="./"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>diff-grok - v1.0.10</title><meta name="description" content="Documentation for diff-grok"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css"/><link rel="stylesheet" href="assets/highlight.css"/><script defer src="assets/main.js"></script><script async src="assets/icons.js" id="tsd-icons-script"></script><script async src="assets/search.js" id="tsd-search-script"></script><script async src="assets/navigation.js" id="tsd-nav-script"></script><script async src="assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="index.html" class="title">diff-grok - v1.0.10</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><h1>diff-grok - v1.0.10</h1></div><h2>Hierarchy Summary</h2><ul class="tsd-full-hierarchy"><li data-refl="66" id="Callback"><a href="classes/Callback.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>Callback</a><ul><li data-refl="73" id="IterCheckerCallback"><a href="classes/IterCheckerCallback.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>IterCheckerCallback</a></li><li data-refl="83" id="TimeCheckerCallback"><a href="classes/TimeCheckerCallback.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>TimeCheckerCallback</a></li></ul></li></ul><ul class="tsd-full-hierarchy"><li data-refl="297" id="PipelineCreator"><a href="classes/PipelineCreator.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>PipelineCreator</a><ul><li data-refl="306" id="BasicModelPipelineCreator"><a href="classes/BasicModelPipelineCreator.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>BasicModelPipelineCreator</a></li><li data-refl="322" id="CyclicModelPipelineCreator"><a href="classes/CyclicModelPipelineCreator.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>CyclicModelPipelineCreator</a></li><li data-refl="333" id="UpdatesModelPipelineCreator"><a href="classes/UpdatesModelPipelineCreator.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>UpdatesModelPipelineCreator</a></li></ul></li></ul></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="modules.html">diff-grok - v1.0.10</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="./"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>diff-grok - v1.1.0</title><meta name="description" content="Documentation for diff-grok"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css"/><link rel="stylesheet" href="assets/highlight.css"/><script defer src="assets/main.js"></script><script async src="assets/icons.js" id="tsd-icons-script"></script><script async src="assets/search.js" id="tsd-search-script"></script><script async src="assets/navigation.js" id="tsd-nav-script"></script><script async src="assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="index.html" class="title">diff-grok - v1.1.0</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><h1>diff-grok - v1.1.0</h1></div><h2>Hierarchy Summary</h2><ul class="tsd-full-hierarchy"><li data-refl="90" id="Callback"><a href="classes/Callback.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>Callback</a><ul><li data-refl="97" id="IterCheckerCallback"><a href="classes/IterCheckerCallback.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>IterCheckerCallback</a></li><li data-refl="107" id="TimeCheckerCallback"><a href="classes/TimeCheckerCallback.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>TimeCheckerCallback</a></li></ul></li></ul><ul class="tsd-full-hierarchy"><li data-refl="321" id="PipelineCreator"><a href="classes/PipelineCreator.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>PipelineCreator</a><ul><li data-refl="330" id="BasicModelPipelineCreator"><a href="classes/BasicModelPipelineCreator.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>BasicModelPipelineCreator</a></li><li data-refl="346" id="CyclicModelPipelineCreator"><a href="classes/CyclicModelPipelineCreator.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>CyclicModelPipelineCreator</a></li><li data-refl="357" id="UpdatesModelPipelineCreator"><a href="classes/UpdatesModelPipelineCreator.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>UpdatesModelPipelineCreator</a></li></ul></li></ul></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="modules.html">diff-grok - v1.1.0</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
package/docs/index.html CHANGED
@@ -1,14 +1,41 @@
1
- <!DOCTYPE html><html class="default" lang="en" data-base="./"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>diff-grok - v1.0.10</title><meta name="description" content="Documentation for diff-grok"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css"/><link rel="stylesheet" href="assets/highlight.css"/><script defer src="assets/main.js"></script><script async src="assets/icons.js" id="tsd-icons-script"></script><script async src="assets/search.js" id="tsd-search-script"></script><script async src="assets/navigation.js" id="tsd-nav-script"></script><script async src="assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="index.html" class="title">diff-grok - v1.0.10</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><h1>diff-grok - v1.0.10</h1></div><div class="tsd-panel tsd-typography"><h1 id="diff-grok" class="tsd-anchor-link">Diff Grok<a href="#diff-grok" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h1><p>A lightweight TypeScript library for solving initial value problem (<a href="https://en.wikipedia.org/wiki/Initial_value_problem">IVP</a>) for ordinary differential equations (<a href="https://en.wikipedia.org/wiki/Ordinary_differential_equation">ODEs</a>) using numerical methods. This library focuses on solving <a href="https://en.wikipedia.org/wiki/Stiff_equation">stiff equations</a>.</p>
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="./"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>diff-grok - v1.1.0</title><meta name="description" content="Documentation for diff-grok"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css"/><link rel="stylesheet" href="assets/highlight.css"/><script defer src="assets/main.js"></script><script async src="assets/icons.js" id="tsd-icons-script"></script><script async src="assets/search.js" id="tsd-search-script"></script><script async src="assets/navigation.js" id="tsd-nav-script"></script><script async src="assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="index.html" class="title">diff-grok - v1.1.0</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><h1>diff-grok - v1.1.0</h1></div><div class="tsd-panel tsd-typography"><h1 id="diff-grok" class="tsd-anchor-link">Diff Grok<a href="#diff-grok" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h1><p><a href="https://doi.org/10.5281/zenodo.17974378"><img src="https://zenodo.org/badge/635090135.svg" alt="DOI"></a>
2
+ <a href="https://datagrok-ai.github.io/diff-grok/"><img src="https://img.shields.io/badge/docs-stable-blue.svg" alt="Docs-stable"></a>
3
+ <a href="https://github.com/datagrok-ai/diff-grok/blob/main/LICENSE"><img src="https://img.shields.io/badge/License-MIT-success.svg" alt="License: MIT"></a>
4
+ <a href="https://github.com/datagrok-ai/diff-grok/actions/workflows/libraries.yaml"><img src="https://github.com/datagrok-ai/diff-grok/actions/workflows/libraries.yaml/badge.svg" alt="Build Status"></a>
5
+ <a href="https://github.com/datagrok-ai/diff-grok/actions/workflows/test.yaml"><img src="https://github.com/datagrok-ai/diff-grok/actions/workflows/test.yaml/badge.svg" alt="Run tests"></a></p>
6
+ <p>A lightweight TypeScript library for solving initial value problem (<a href="https://en.wikipedia.org/wiki/Initial_value_problem">IVP</a>) for ordinary differential equations (<a href="https://en.wikipedia.org/wiki/Ordinary_differential_equation">ODEs</a>) using numerical methods. The primary solver is <a href="https://doi.org/10.1137/0904010">LSODA</a> — a variable-order method that automatically detects stiffness and switches between Adams (non-stiff) and BDF (stiff) formulations.</p>
2
7
  <h2 id="features" class="tsd-anchor-link">Features<a href="#features" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><ul>
3
8
  <li>Solving both <a href="https://en.wikipedia.org/wiki/Stiff_equation">stiff</a> and non-stiff equations</li>
4
9
  <li>Fast computations</li>
5
- <li>A set of Rosenbrock–Wanner-type methods:
10
+ <li>Automatic stiffness-detecting method:
11
+ <ul>
12
+ <li><a href="https://doi.org/10.1137/0904010">LSODA</a> - variable-order Nordsieck-based solver with automatic switching between Adams (non-stiff) and BDF (stiff) methods (<a href="https://doi.org/10.1137/0904010">Petzold, 1983</a>; <a href="https://computing.llnl.gov/sites/default/files/ODEPACK_pub1_u88007.pdf">Hindmarsh, 1983</a>). Ported to TypeScript from the C library <a href="https://github.com/sdwfrost/liblsoda">liblsoda</a></li>
13
+ </ul>
14
+ </li>
15
+ <li>Implicit methods (for stiff ODEs) - Rosenbrock–Wanner type:
6
16
  <ul>
7
17
  <li>The modified Rosenbrock triple (<a href="https://doi.org/10.1137/S1064827594276424">MRT</a>)</li>
8
18
  <li>The <a href="https://doi.org/10.1016/j.cam.2015.03.010">ROS3PRw</a> method</li>
9
19
  <li>The <a href="https://doi.org/10.1016/j.cam.2015.03.010">ROS34PRw</a> method</li>
10
20
  </ul>
11
21
  </li>
22
+ <li>Explicit methods (for non-stiff ODEs):
23
+ <ul>
24
+ <li>Runge-Kutta type:
25
+ <ul>
26
+ <li>The Bogacki-Shampine 3(2) method (<a href="https://en.wikipedia.org/wiki/Bogacki%E2%80%93Shampine_method">RK3</a>)</li>
27
+ <li>The Runge-Kutta-Fehlberg method (<a href="https://en.wikipedia.org/wiki/Runge%E2%80%93Kutta%E2%80%93Fehlberg_method">RK4</a>)</li>
28
+ <li>The Dormand-Prince 5(4) method (<a href="https://en.wikipedia.org/wiki/Dormand%E2%80%93Prince_method">RKDP</a>)</li>
29
+ </ul>
30
+ </li>
31
+ <li>Adams-Bashforth type:
32
+ <ul>
33
+ <li>The predictor-corrector method of order 4 (<a href="https://en.wikipedia.org/wiki/Linear_multistep_method">AB4</a>)</li>
34
+ <li>The predictor-corrector method of order 5 (<a href="https://en.wikipedia.org/wiki/Linear_multistep_method">AB5</a>)</li>
35
+ </ul>
36
+ </li>
37
+ </ul>
38
+ </li>
12
39
  <li>Scripting:
13
40
  <ul>
14
41
  <li>declarative specification of models</li>
@@ -33,11 +60,27 @@ $$y(t_{0}) = y_0$$</p>
33
60
  <ol>
34
61
  <li>
35
62
  <p>Import <code>ODEs</code> and a desired numerical method:</p>
63
+ <p>Automatic method:</p>
64
+ <ul>
65
+ <li><code>lsoda</code> - <a href="https://doi.org/10.1137/0904010">LSODA</a> variable-order solver with automatic switching between Adams (non-stiff) and BDF (stiff)</li>
66
+ </ul>
67
+ <p>Implicit methods (for stiff ODEs):</p>
36
68
  <ul>
37
69
  <li><code>mrt</code> - the <a href="https://doi.org/10.1137/S1064827594276424">MRT</a> method</li>
38
70
  <li><code>ros3prw</code>- the <a href="https://doi.org/10.1016/j.cam.2015.03.010">ROS3PRw</a> method</li>
39
71
  <li><code>ros34prw</code> - the <a href="https://doi.org/10.1016/j.cam.2015.03.010">ROS34PRw</a> method</li>
40
72
  </ul>
73
+ <p>Explicit methods (for non-stiff ODEs) — Runge-Kutta type:</p>
74
+ <ul>
75
+ <li><code>rk3</code> - the Bogacki-Shampine 3(2) method</li>
76
+ <li><code>rk4</code> - the Runge-Kutta-Fehlberg 4(5) method</li>
77
+ <li><code>rkdp</code> - the Dormand-Prince 5(4) method</li>
78
+ </ul>
79
+ <p>Explicit methods (for non-stiff ODEs) — Adams-Bashforth type:</p>
80
+ <ul>
81
+ <li><code>ab4</code> - the predictor-corrector method of order 4</li>
82
+ <li><code>ab5</code> - the predictor-corrector method of order 5</li>
83
+ </ul>
41
84
  </li>
42
85
  <li>
43
86
  <p>Specify <code>ODEs</code> object that defines a problem:</p>
@@ -85,8 +128,8 @@ $$y(t_{0}) = y_0$$</p>
85
128
  x(0) = 1 \
86
129
  y(0) = -1
87
130
  \end{cases}$$</p>
88
- <p>To solve it on the segment $[0, 2]$ with the step $0.01$ using the <a href="https://doi.org/10.1137/S1064827594276424">MRT</a> method with the tolerance $10^{-7}$, we start with imports:</p>
89
- <pre><code class="typescript"><span class="hl-4">import</span><span class="hl-1"> {</span><span class="hl-5">ODEs</span><span class="hl-1">, </span><span class="hl-5">mrt</span><span class="hl-1">} </span><span class="hl-4">from</span><span class="hl-1"> </span><span class="hl-2">&#39;diff-grok&#39;</span><span class="hl-1">;</span>
131
+ <p>To solve it on the segment $[0, 2]$ with the step $0.01$ using <a href="https://doi.org/10.1137/0904010">LSODA</a> with the tolerance $10^{-7}$, we start with imports:</p>
132
+ <pre><code class="typescript"><span class="hl-4">import</span><span class="hl-1"> {</span><span class="hl-5">ODEs</span><span class="hl-1">, </span><span class="hl-5">lsoda</span><span class="hl-1">} </span><span class="hl-4">from</span><span class="hl-1"> </span><span class="hl-2">&#39;diff-grok&#39;</span><span class="hl-1">;</span>
90
133
  </code><button type="button">Copy</button></pre>
91
134
 
92
135
  <p>Next, we create</p>
@@ -94,7 +137,7 @@ y(0) = -1
94
137
  </code><button type="button">Copy</button></pre>
95
138
 
96
139
  <p>Finally, we call the specified numerical method to solve <code>task</code>:</p>
97
- <pre><code class="typescript"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">solution</span><span class="hl-1"> = </span><span class="hl-0">mrt</span><span class="hl-1">(</span><span class="hl-5">task</span><span class="hl-1">);</span>
140
+ <pre><code class="typescript"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">solution</span><span class="hl-1"> = </span><span class="hl-0">lsoda</span><span class="hl-1">(</span><span class="hl-5">task</span><span class="hl-1">);</span>
98
141
  </code><button type="button">Copy</button></pre>
99
142
 
100
143
  <p>Currently, <code>solution</code> contains:</p>
@@ -149,7 +192,7 @@ y(0) = -1
149
192
  </ul>
150
193
  </li>
151
194
  </ul>
152
- <p>The MRT, ROS3PRw and ROS34PRw methods demonstrate the following time performance (AMD Ryzen 5 5600H 3.30 GHz CPU):</p>
195
+ <p>The LSODA, MRT, ROS3PRw and ROS34PRw methods demonstrate the following time performance (AMD Ryzen 5 5600H 3.30 GHz CPU):</p>
153
196
  <table>
154
197
  <thead>
155
198
  <tr>
@@ -157,6 +200,7 @@ y(0) = -1
157
200
  <th>Segment</th>
158
201
  <th>Points</th>
159
202
  <th>Tolerance</th>
203
+ <th>LSODA, ms</th>
160
204
  <th>MRT, ms</th>
161
205
  <th>ROS3PRw, ms</th>
162
206
  <th>ROS34PRw, ms</th>
@@ -168,7 +212,8 @@ y(0) = -1
168
212
  <td>[0, 10E+11]</td>
169
213
  <td>40K</td>
170
214
  <td>1E-7</td>
171
- <td>103</td>
215
+ <td>67</td>
216
+ <td>175</td>
172
217
  <td>446</td>
173
218
  <td>285</td>
174
219
  </tr>
@@ -177,7 +222,8 @@ y(0) = -1
177
222
  <td>[0, 321.8122]</td>
178
223
  <td>32K</td>
179
224
  <td>1E-10</td>
180
- <td>222</td>
225
+ <td>125</td>
226
+ <td>122</td>
181
227
  <td>362</td>
182
228
  <td>215</td>
183
229
  </tr>
@@ -186,7 +232,8 @@ y(0) = -1
186
232
  <td>[0, 2000]</td>
187
233
  <td>20K</td>
188
234
  <td>1E-12</td>
189
- <td>963</td>
235
+ <td>268</td>
236
+ <td>492</td>
190
237
  <td>1576</td>
191
238
  <td>760</td>
192
239
  </tr>
@@ -195,7 +242,8 @@ y(0) = -1
195
242
  <td>[0, 360]</td>
196
243
  <td>36K</td>
197
244
  <td>1E-8</td>
198
- <td>381</td>
245
+ <td>76</td>
246
+ <td>205</td>
199
247
  <td>483</td>
200
248
  <td>199</td>
201
249
  </tr>
@@ -204,7 +252,8 @@ y(0) = -1
204
252
  <td>[0, 10E+13]</td>
205
253
  <td>40K</td>
206
254
  <td>1E-6</td>
207
- <td>14</td>
255
+ <td>7</td>
256
+ <td>6</td>
208
257
  <td>17</td>
209
258
  <td>8</td>
210
259
  </tr>
@@ -213,7 +262,8 @@ y(0) = -1
213
262
  <td>[0, 60]</td>
214
263
  <td>30K</td>
215
264
  <td>1E-6</td>
216
- <td>36</td>
265
+ <td>12</td>
266
+ <td>18</td>
217
267
  <td>50</td>
218
268
  <td>23</td>
219
269
  </tr>
@@ -224,6 +274,7 @@ y(0) = -1
224
274
  <thead>
225
275
  <tr>
226
276
  <th>Problem</th>
277
+ <th>LSODA</th>
227
278
  <th>MRT</th>
228
279
  <th>ROS3PRw</th>
229
280
  <th>ROS34PRw</th>
@@ -233,11 +284,13 @@ y(0) = -1
233
284
  <tr>
234
285
  <td><a href="https://archimede.uniba.it/~testset/report/rober.pdf">Rober</a></td>
235
286
  <td>1.87e-8</td>
287
+ <td>1.87e-8</td>
236
288
  <td>1.88e-8</td>
237
289
  <td>1.88e-8</td>
238
290
  </tr>
239
291
  <tr>
240
292
  <td><a href="https://archimede.uniba.it/~testset/report/hires.pdf">HIRES</a></td>
293
+ <td>1.51e-11</td>
241
294
  <td>4.80e-11</td>
242
295
  <td>1.05e-14</td>
243
296
  <td>2.87e-14</td>
@@ -247,21 +300,25 @@ y(0) = -1
247
300
  <td>5.12e-4</td>
248
301
  <td>5.12e-4</td>
249
302
  <td>5.12e-4</td>
303
+ <td>5.12e-4</td>
250
304
  </tr>
251
305
  <tr>
252
306
  <td><a href="https://archimede.uniba.it/~testset/report/orego.pdf">OREGO</a></td>
307
+ <td>3.84e-6</td>
253
308
  <td>3.05e-5</td>
254
309
  <td>3.45e-7</td>
255
310
  <td>2.31e-6</td>
256
311
  </tr>
257
312
  <tr>
258
313
  <td><a href="https://archimede.uniba.it/~testset/report/e5.pdf">E5</a></td>
314
+ <td>3.02e-19</td>
259
315
  <td>1.12e-19</td>
260
316
  <td>1.33e-19</td>
261
317
  <td>3.40e-17</td>
262
318
  </tr>
263
319
  <tr>
264
320
  <td><a href="https://archimede.uniba.it/~testset/report/pollu.pdf">Pollution</a></td>
321
+ <td>1.23e-10</td>
265
322
  <td>4.06e-10</td>
266
323
  <td>9.16e-12</td>
267
324
  <td>1.58e-10</td>
@@ -270,9 +327,26 @@ y(0) = -1
270
327
  </table>
271
328
  <p>Run <a href="media/check-methods.ts">check-methods.ts</a> to reproduce these results (see <a href="#examples">here</a> how to run scripts standalone).</p>
272
329
  <p>The following charts compare the Diff Grok and Radau solutions for the <strong>van der Pol</strong> system:</p>
273
- <p><img src="media/VDPOL.png" alt="Pollution"></p>
330
+ <p><img src="media/VDPOL.png" alt="VDPOL"></p>
274
331
  <p>The following graphs present a comparison of the Diff Grok and Radau solutions for the <strong>Pollution</strong> model, highlighting a portion of the functions:</p>
275
332
  <p><img src="media/POLL.png" alt="Pollution"></p>
333
+ <details>
334
+ <summary><strong>Gallery</strong></summary>
335
+ <p><strong>VDPOL</strong></p>
336
+ <p><img src="media/VDP0L.png" alt="VDPOL"></p>
337
+ <p><strong>HIRES</strong></p>
338
+ <p><img src="media/HIRES.png" alt="HIRES"></p>
339
+ <p><strong>E5</strong></p>
340
+ <p><img src="media/E5.png" alt="E5"></p>
341
+ <p><strong>POLL</strong></p>
342
+ <p><img src="media/POLL-full.png" alt="POLL"></p>
343
+ <p><strong>OREGO</strong></p>
344
+ <p><img src="media/OREGO.png" alt="OREGO"></p>
345
+ <p><strong>Rober</strong></p>
346
+ <p><img src="media/ROBER.png" alt="ROBER"></p>
347
+ </details>
348
+ <details>
349
+ <summary><strong>Run benchmarks</strong></summary>
276
350
  <p>Run benchmark models and find the reference solutions via the following links to the <a href="https://public.datagrok.ai">Datagrok</a> platform:</p>
277
351
  <table>
278
352
  <thead>
@@ -316,6 +390,7 @@ y(0) = -1
316
390
  </tbody>
317
391
  </table>
318
392
  <p>In the file <a href="media/print-benchmark.ts">print-benchmark.ts</a>, you can find standalone functions that print the solutions of these problems to the console, as well as Python scripts for computing the solutions using SciPy.</p>
393
+ </details>
319
394
  <h2 id="scripting" class="tsd-anchor-link">Scripting<a href="#scripting" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><p>The library provides tools for declarative specifying models defined by IVPs. This feature enables a development of &quot;no-code&quot; modeling tools seamlessly integrated with the <a href="https://datagrok.ai">Datagrok</a> platform.</p>
320
395
  <h3 id="model-components-and-syntax" class="tsd-anchor-link">Model components and syntax<a href="#model-components-and-syntax" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><p>Each <strong>model</strong> has a simple declarative syntax.</p>
321
396
  <h4 id="core-blocks" class="tsd-anchor-link">Core blocks<a href="#core-blocks" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h4><p>These blocks define the basic mathematical model and are required for any model:</p>
@@ -621,7 +696,7 @@ down complex calculations and simplify your equations.</p>
621
696
  <tbody>
622
697
  <tr>
623
698
  <td><a href="media/basic-use.ts">basic-use.ts</a></td>
624
- <td>Minimal &quot;Hello World&quot; example. Illustrates the use of the <a href="https://doi.org/10.1137/S1064827594276424">MRT</a> method.</td>
699
+ <td>Minimal &quot;Hello World&quot; example. Illustrates the use of the <a href="https://doi.org/10.1137/0904010">LSODA</a> method.</td>
625
700
  </tr>
626
701
  <tr>
627
702
  <td><a href="media/check-methods.ts">check-methods.ts</a></td>
@@ -649,6 +724,8 @@ down complex calculations and simplify your equations.</p>
649
724
  </tr>
650
725
  </tbody>
651
726
  </table>
727
+ <details>
728
+ <summary><strong>Run examples</strong></summary>
652
729
  <p>To run examples standalone:</p>
653
730
  <ol>
654
731
  <li>Install TypeScript locally. If your project does not already include TypeScript:</li>
@@ -678,6 +755,14 @@ down complex calculations and simplify your equations.</p>
678
755
  <pre><code class="bash"><span class="hl-0">node</span><span class="hl-1"> </span><span class="hl-2">src/examples/basic-use.js</span>
679
756
  </code><button type="button">Copy</button></pre>
680
757
 
758
+ </details>
759
+ <h2 id="references" class="tsd-anchor-link">References<a href="#references" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><ul>
760
+ <li>L. Petzold, &quot;Automatic Selection of Methods for Solving Stiff and Nonstiff Systems of Ordinary Differential Equations,&quot; <em>SIAM J. Sci. Stat. Comput.</em>, 4(1), 136–148, 1983. <a href="https://doi.org/10.1137/0904010">doi:10.1137/0904010</a></li>
761
+ <li>A. C. Hindmarsh, &quot;ODEPACK, A Systematized Collection of ODE Solvers,&quot; <em>Scientific Computing</em>, R. S. Stepleman et al. (eds.), North-Holland, Amsterdam, pp. 55–64, 1983. <a href="https://computing.llnl.gov/sites/default/files/ODEPACK_pub1_u88007.pdf">link</a></li>
762
+ <li>The LSODA solver is ported to TypeScript from the C library <a href="https://github.com/sdwfrost/liblsoda">liblsoda</a></li>
763
+ <li>T. Rang and L. Angermann, &quot;New Rosenbrock W-Methods of Order 3 for Partial Differential Algebraic Equations of Index 1,&quot; <em>BIT Numer. Math.</em>, 45, 761–787, 2005. <a href="https://doi.org/10.1016/j.cam.2015.03.010">doi:10.1007/s10543-005-0035-y</a></li>
764
+ <li>E. Hairer and G. Wanner, <em>Solving Ordinary Differential Equations II: Stiff and Differential-Algebraic Problems</em>, Springer, 1996. <a href="https://doi.org/10.1137/S1064827594276424">doi:10.1137/S1064827594276424</a></li>
765
+ </ul>
681
766
  <h2 id="contributing" class="tsd-anchor-link">Contributing<a href="#contributing" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><p>We welcome contributions of all kinds - bug reports, feature requests, documentation updates, and pull requests.</p>
682
767
  <p>Before contributing, please read our <a href="media/CONTRIBUTING.md">Contributing Guidelines</a>.</p>
683
- </div></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#diff-grok"><span>Diff <wbr/>Grok</span></a><ul><li><a href="#features"><span>Features</span></a></li><li><a href="#installation"><span>Installation</span></a></li><li><a href="#solving"><span>Solving</span></a></li><li><ul><li><a href="#general"><span>General</span></a></li><li><a href="#example"><span>Example</span></a></li></ul></li><li><a href="#performance"><span>Performance</span></a></li><li><a href="#scripting"><span>Scripting</span></a></li><li><ul><li><a href="#model-components-and-syntax"><span>Model components and syntax</span></a></li><li><ul><li><a href="#core-blocks"><span>Core blocks</span></a></li><li><a href="#comments"><span>Comments</span></a></li><li><a href="#model-parameters"><span>Model parameters</span></a></li><li><a href="#auxiliary-calculations"><span>Auxiliary calculations</span></a></li></ul></li><li><a href="#js-code-generation"><span>JS-<wbr/>code generation</span></a></li><li><a href="#pipelines"><span>Pipelines</span></a></li></ul></li><li><a href="#integration-with-datagrok"><span>Integration with <wbr/>Datagrok</span></a></li><li><a href="#environment-requirements"><span>Environment <wbr/>Requirements</span></a></li><li><ul><li><a href="#development-build"><span>Development &amp; <wbr/>Build</span></a></li><li><a href="#runtime-environments"><span>Runtime <wbr/>Environments</span></a></li><li><ul><li><a href="#server-side-nodejs"><span>Server-<wbr/>Side (<wbr/>Node.js)</span></a></li><li><a href="#operating-systems"><span>Operating <wbr/>Systems</span></a></li><li><a href="#browser-support"><span>Browser <wbr/>Support</span></a></li></ul></li><li><a href="#bundler-configuration"><span>Bundler <wbr/>Configuration</span></a></li><li><a href="#polyfills"><span>Polyfills</span></a></li></ul></li><li><a href="#examples"><span>Examples</span></a></li><li><a href="#contributing"><span>Contributing</span></a></li></ul></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="modules.html">diff-grok - v1.0.10</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
768
+ </div></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#diff-grok"><span>Diff <wbr/>Grok</span></a><ul><li><a href="#features"><span>Features</span></a></li><li><a href="#installation"><span>Installation</span></a></li><li><a href="#solving"><span>Solving</span></a></li><li><ul><li><a href="#general"><span>General</span></a></li><li><a href="#example"><span>Example</span></a></li></ul></li><li><a href="#performance"><span>Performance</span></a></li><li><a href="#scripting"><span>Scripting</span></a></li><li><ul><li><a href="#model-components-and-syntax"><span>Model components and syntax</span></a></li><li><ul><li><a href="#core-blocks"><span>Core blocks</span></a></li><li><a href="#comments"><span>Comments</span></a></li><li><a href="#model-parameters"><span>Model parameters</span></a></li><li><a href="#auxiliary-calculations"><span>Auxiliary calculations</span></a></li></ul></li><li><a href="#js-code-generation"><span>JS-<wbr/>code generation</span></a></li><li><a href="#pipelines"><span>Pipelines</span></a></li></ul></li><li><a href="#integration-with-datagrok"><span>Integration with <wbr/>Datagrok</span></a></li><li><a href="#environment-requirements"><span>Environment <wbr/>Requirements</span></a></li><li><ul><li><a href="#development-build"><span>Development &amp; <wbr/>Build</span></a></li><li><a href="#runtime-environments"><span>Runtime <wbr/>Environments</span></a></li><li><ul><li><a href="#server-side-nodejs"><span>Server-<wbr/>Side (<wbr/>Node.js)</span></a></li><li><a href="#operating-systems"><span>Operating <wbr/>Systems</span></a></li><li><a href="#browser-support"><span>Browser <wbr/>Support</span></a></li></ul></li><li><a href="#bundler-configuration"><span>Bundler <wbr/>Configuration</span></a></li><li><a href="#polyfills"><span>Polyfills</span></a></li></ul></li><li><a href="#examples"><span>Examples</span></a></li><li><a href="#references"><span>References</span></a></li><li><a href="#contributing"><span>Contributing</span></a></li></ul></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="modules.html">diff-grok - v1.1.0</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -45,7 +45,9 @@ const model = `#name: PK-PD
45
45
  Kin = 0.2 {caption: Kin; category: Parameters; min: 0.1; max: 0.5} [The first-order production constant]
46
46
  Kout = 0.2 {caption: Kout; category: Parameters; min: 0.1; max: 0.5} [The first-order dissipation rate constant]
47
47
 
48
- #tolerance: 1e-9`;
48
+ #tolerance: 1e-9
49
+
50
+ #meta.solver: {method: 'rkdp'; maxTimeMs: 5000}`;
49
51
  /** 2. Generate IVP-objects: for the main thread & for computations in webworkers */
50
52
  const ivp = DGL.getIVP(model);
51
53
  const ivpWW = DGL.getIvp2WebWorker(ivp);
@@ -1 +1 @@
1
- {"version":3,"file":"cyclic-model.js","sourceRoot":"","sources":["cyclic-model.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B;;;;EAIE;AAEF,OAAO,KAAK,GAAG,MAAM,aAAa,CAAC;AAEnC,6BAA6B;AAC7B,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAuCG,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,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"}
1
+ {"version":3,"file":"cyclic-model.js","sourceRoot":"","sources":["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"}
@@ -47,7 +47,9 @@ const model = `#name: PK-PD
47
47
  Kin = 0.2 {caption: Kin; category: Parameters; min: 0.1; max: 0.5} [The first-order production constant]
48
48
  Kout = 0.2 {caption: Kout; category: Parameters; min: 0.1; max: 0.5} [The first-order dissipation rate constant]
49
49
 
50
- #tolerance: 1e-9`;
50
+ #tolerance: 1e-9
51
+
52
+ #meta.solver: {method: 'rkdp'; maxTimeMs: 5000}`;
51
53
 
52
54
  /** 2. Generate IVP-objects: for the main thread & for computations in webworkers */
53
55
  const ivp = DGL.getIVP(model);