diff-grok 1.2.0 → 1.3.1
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.
- package/README.MD +56 -8
- package/dist/index.d.ts +6 -0
- package/{index.js → dist/index.js} +1 -0
- package/dist/index.js.map +1 -0
- package/dist/src/examples/basic-use.d.ts +10 -0
- package/dist/src/examples/basic-use.js.map +1 -0
- package/dist/src/examples/check-methods.d.ts +1 -0
- package/dist/src/examples/check-methods.js.map +1 -0
- package/dist/src/examples/corr-probs.d.ts +15 -0
- package/{src → dist/src}/examples/corr-probs.js +2 -2
- package/dist/src/examples/corr-probs.js.map +1 -0
- package/dist/src/examples/cyclic-model.d.ts +6 -0
- package/dist/src/examples/cyclic-model.js.map +1 -0
- package/dist/src/examples/e5.d.ts +15 -0
- package/dist/src/examples/e5.js.map +1 -0
- package/dist/src/examples/hires.d.ts +15 -0
- package/dist/src/examples/hires.js.map +1 -0
- package/dist/src/examples/index.d.ts +22 -0
- package/dist/src/examples/index.js.map +1 -0
- package/dist/src/examples/model-updates.d.ts +6 -0
- package/dist/src/examples/model-updates.js.map +1 -0
- package/dist/src/examples/orego.d.ts +15 -0
- package/dist/src/examples/orego.js.map +1 -0
- package/dist/src/examples/pipeline-use.d.ts +6 -0
- package/dist/src/examples/pipeline-use.js.map +1 -0
- package/dist/src/examples/pollution.d.ts +15 -0
- package/dist/src/examples/pollution.js.map +1 -0
- package/{src/examples/print-benchmark.ts → dist/src/examples/print-benchmark.d.ts} +8 -58
- package/dist/src/examples/print-benchmark.js.map +1 -0
- package/dist/src/examples/robertson.d.ts +15 -0
- package/{docs/media → dist/src/examples}/robertson.js +2 -2
- package/dist/src/examples/robertson.js.map +1 -0
- package/dist/src/examples/scripting.d.ts +1 -0
- package/dist/src/examples/scripting.js.map +1 -0
- package/dist/src/examples/vdpol.d.ts +15 -0
- package/dist/src/examples/vdpol.js.map +1 -0
- package/dist/src/latex-export/examples/advanced-to-latex.d.ts +2 -0
- package/dist/src/latex-export/examples/advanced-to-latex.js +41 -0
- package/dist/src/latex-export/examples/advanced-to-latex.js.map +1 -0
- package/dist/src/latex-export/examples/basic-to-latex.d.ts +2 -0
- package/dist/src/latex-export/examples/basic-to-latex.js +17 -0
- package/dist/src/latex-export/examples/basic-to-latex.js.map +1 -0
- package/dist/src/latex-export/examples/bioreactor-to-latex-selective.d.ts +2 -0
- package/dist/src/latex-export/examples/bioreactor-to-latex-selective.js +145 -0
- package/dist/src/latex-export/examples/bioreactor-to-latex-selective.js.map +1 -0
- package/dist/src/latex-export/examples/chem-react-to-latex-no-cdot.d.ts +2 -0
- package/dist/src/latex-export/examples/chem-react-to-latex-no-cdot.js +41 -0
- package/dist/src/latex-export/examples/chem-react-to-latex-no-cdot.js.map +1 -0
- package/dist/src/latex-export/examples/energy-n-control-to-markdown.d.ts +2 -0
- package/dist/src/latex-export/examples/energy-n-control-to-markdown.js +58 -0
- package/dist/src/latex-export/examples/energy-n-control-to-markdown.js.map +1 -0
- package/dist/src/latex-export/examples/extended-to-markdown.d.ts +2 -0
- package/dist/src/latex-export/examples/extended-to-markdown.js +37 -0
- package/dist/src/latex-export/examples/extended-to-markdown.js.map +1 -0
- package/dist/src/latex-export/examples/fermentation-to-latex.d.ts +2 -0
- package/dist/src/latex-export/examples/fermentation-to-latex.js +32 -0
- package/dist/src/latex-export/examples/fermentation-to-latex.js.map +1 -0
- package/dist/src/latex-export/examples/ga-production-to-markdown.d.ts +2 -0
- package/dist/src/latex-export/examples/ga-production-to-markdown.js +58 -0
- package/dist/src/latex-export/examples/ga-production-to-markdown.js.map +1 -0
- package/dist/src/latex-export/examples/nimotuzumab-to-latex.d.ts +2 -0
- package/dist/src/latex-export/examples/nimotuzumab-to-latex.js +53 -0
- package/dist/src/latex-export/examples/nimotuzumab-to-latex.js.map +1 -0
- package/dist/src/latex-export/examples/pk-pd-to-markdown-minimal.d.ts +2 -0
- package/dist/src/latex-export/examples/pk-pd-to-markdown-minimal.js +50 -0
- package/dist/src/latex-export/examples/pk-pd-to-markdown-minimal.js.map +1 -0
- package/dist/src/latex-export/examples/pk-to-markdown.d.ts +2 -0
- package/dist/src/latex-export/examples/pk-to-markdown.js +35 -0
- package/dist/src/latex-export/examples/pk-to-markdown.js.map +1 -0
- package/dist/src/latex-export/examples/pollution-to-latex.d.ts +2 -0
- package/dist/src/latex-export/examples/pollution-to-latex.js +141 -0
- package/dist/src/latex-export/examples/pollution-to-latex.js.map +1 -0
- package/dist/src/latex-export/examples/robertson-to-latex-no-meta.d.ts +2 -0
- package/dist/src/latex-export/examples/robertson-to-latex-no-meta.js +25 -0
- package/dist/src/latex-export/examples/robertson-to-latex-no-meta.js.map +1 -0
- package/dist/src/latex-export/generator/bracket-manager.d.ts +19 -0
- package/dist/src/latex-export/generator/bracket-manager.js +58 -0
- package/dist/src/latex-export/generator/bracket-manager.js.map +1 -0
- package/dist/src/latex-export/generator/document-builder.d.ts +13 -0
- package/dist/src/latex-export/generator/document-builder.js +433 -0
- package/dist/src/latex-export/generator/document-builder.js.map +1 -0
- package/dist/src/latex-export/generator/latex-generator.d.ts +26 -0
- package/dist/src/latex-export/generator/latex-generator.js +180 -0
- package/dist/src/latex-export/generator/latex-generator.js.map +1 -0
- package/dist/src/latex-export/index.d.ts +8 -0
- package/dist/src/latex-export/index.js +25 -0
- package/dist/src/latex-export/index.js.map +1 -0
- package/dist/src/latex-export/output/md-formatter.d.ts +16 -0
- package/dist/src/latex-export/output/md-formatter.js +27 -0
- package/dist/src/latex-export/output/md-formatter.js.map +1 -0
- package/dist/src/latex-export/output/tex-formatter.d.ts +5 -0
- package/dist/src/latex-export/output/tex-formatter.js +20 -0
- package/dist/src/latex-export/output/tex-formatter.js.map +1 -0
- package/dist/src/latex-export/parser/ast-parser.d.ts +7 -0
- package/dist/src/latex-export/parser/ast-parser.js +153 -0
- package/dist/src/latex-export/parser/ast-parser.js.map +1 -0
- package/dist/src/latex-export/parser/ivp-parser.d.ts +6 -0
- package/dist/src/latex-export/parser/ivp-parser.js +219 -0
- package/dist/src/latex-export/parser/ivp-parser.js.map +1 -0
- package/dist/src/latex-export/parser/line-joiner.d.ts +25 -0
- package/dist/src/latex-export/parser/line-joiner.js +80 -0
- package/dist/src/latex-export/parser/line-joiner.js.map +1 -0
- package/dist/src/latex-export/parser/tokenizer.d.ts +7 -0
- package/dist/src/latex-export/parser/tokenizer.js +143 -0
- package/dist/src/latex-export/parser/tokenizer.js.map +1 -0
- package/dist/src/latex-export/transformer/functions.d.ts +12 -0
- package/dist/src/latex-export/transformer/functions.js +47 -0
- package/dist/src/latex-export/transformer/functions.js.map +1 -0
- package/dist/src/latex-export/transformer/identifier.d.ts +23 -0
- package/dist/src/latex-export/transformer/identifier.js +194 -0
- package/dist/src/latex-export/transformer/identifier.js.map +1 -0
- package/dist/src/latex-export/transformer/operators.d.ts +9 -0
- package/dist/src/latex-export/transformer/operators.js +41 -0
- package/dist/src/latex-export/transformer/operators.js.map +1 -0
- package/dist/src/latex-export/types.d.ts +122 -0
- package/dist/src/latex-export/types.js +10 -0
- package/dist/src/latex-export/types.js.map +1 -0
- package/{src/pipeline/basic-pipeline-creator.ts → dist/src/pipeline/basic-pipeline-creator.d.ts} +11 -28
- package/dist/src/pipeline/basic-pipeline-creator.js.map +1 -0
- package/dist/src/pipeline/constants.d.ts +14 -0
- package/dist/src/pipeline/constants.js.map +1 -0
- package/dist/src/pipeline/index.d.ts +7 -0
- package/dist/src/pipeline/index.js.map +1 -0
- package/dist/src/pipeline/input.d.ts +3 -0
- package/dist/src/pipeline/input.js.map +1 -0
- package/dist/src/pipeline/loops-pipeline-creator.d.ts +124 -0
- package/dist/src/pipeline/loops-pipeline-creator.js.map +1 -0
- package/dist/src/pipeline/output.d.ts +10 -0
- package/{src → dist/src}/pipeline/output.js +1 -1
- package/dist/src/pipeline/output.js.map +1 -0
- package/dist/src/pipeline/pipeline-creator.d.ts +12 -0
- package/{src → dist/src}/pipeline/pipeline-creator.js +2 -0
- package/dist/src/pipeline/pipeline-creator.js.map +1 -0
- package/{src/pipeline/pipeline.ts → dist/src/pipeline/pipeline.d.ts} +10 -97
- package/dist/src/pipeline/pipeline.js.map +1 -0
- package/{src/pipeline/updates-pipeline-creator.ts → dist/src/pipeline/updates-pipeline-creator.d.ts} +15 -131
- package/dist/src/pipeline/updates-pipeline-creator.js.map +1 -0
- package/dist/src/scripting-tools/constants.d.ts +59 -0
- package/dist/src/scripting-tools/constants.js.map +1 -0
- package/dist/src/scripting-tools/index.d.ts +3 -0
- package/dist/src/scripting-tools/index.js.map +1 -0
- package/dist/src/scripting-tools/model-error.d.ts +10 -0
- package/{src → dist/src}/scripting-tools/model-error.js +2 -1
- package/dist/src/scripting-tools/model-error.js.map +1 -0
- package/dist/src/scripting-tools/scripting-tools.d.ts +277 -0
- package/{src → dist/src}/scripting-tools/scripting-tools.js +2 -4
- package/dist/src/scripting-tools/scripting-tools.js.map +1 -0
- package/dist/src/solver-tools/ab4-method.d.ts +46 -0
- package/{src → dist/src}/solver-tools/ab4-method.js +3 -3
- package/dist/src/solver-tools/ab4-method.js.map +1 -0
- package/dist/src/solver-tools/ab5-method.d.ts +46 -0
- package/{src → dist/src}/solver-tools/ab5-method.js +3 -3
- package/dist/src/solver-tools/ab5-method.js.map +1 -0
- package/dist/src/solver-tools/callbacks/callback-base.d.ts +8 -0
- package/dist/src/solver-tools/callbacks/callback-base.js.map +1 -0
- package/dist/src/solver-tools/callbacks/callback-tools.d.ts +6 -0
- package/dist/src/solver-tools/callbacks/callback-tools.js.map +1 -0
- package/dist/src/solver-tools/callbacks/iter-checker-callback.d.ts +12 -0
- package/{src → dist/src}/solver-tools/callbacks/iter-checker-callback.js +2 -0
- package/dist/src/solver-tools/callbacks/iter-checker-callback.js.map +1 -0
- package/dist/src/solver-tools/callbacks/time-checker-callback.d.ts +12 -0
- package/{src → dist/src}/solver-tools/callbacks/time-checker-callback.js +2 -2
- package/dist/src/solver-tools/callbacks/time-checker-callback.js.map +1 -0
- package/dist/src/solver-tools/cvode/common.d.ts +395 -0
- package/dist/src/solver-tools/cvode/common.js +483 -0
- package/dist/src/solver-tools/cvode/common.js.map +1 -0
- package/dist/src/solver-tools/cvode/cvode.d.ts +23 -0
- package/dist/src/solver-tools/cvode/cvode.js.map +1 -0
- package/dist/src/solver-tools/cvode/cvode_adams.d.ts +22 -0
- package/dist/src/solver-tools/cvode/cvode_adams.js.map +1 -0
- package/dist/src/solver-tools/cvode/cvode_bdf.d.ts +37 -0
- package/dist/src/solver-tools/cvode/cvode_bdf.js.map +1 -0
- package/dist/src/solver-tools/cvode/cvode_class.d.ts +116 -0
- package/{src → dist/src}/solver-tools/cvode/cvode_class.js +9 -4
- package/dist/src/solver-tools/cvode/cvode_class.js.map +1 -0
- package/dist/src/solver-tools/cvode/cvode_hin.d.ts +24 -0
- package/dist/src/solver-tools/cvode/cvode_hin.js.map +1 -0
- package/dist/src/solver-tools/cvode/cvode_io.d.ts +98 -0
- package/{src → dist/src}/solver-tools/cvode/cvode_io.js +1 -2
- package/dist/src/solver-tools/cvode/cvode_io.js.map +1 -0
- package/dist/src/solver-tools/cvode/cvode_ls.d.ts +23 -0
- package/dist/src/solver-tools/cvode/cvode_ls.js.map +1 -0
- package/dist/src/solver-tools/cvode/cvode_nls.d.ts +25 -0
- package/dist/src/solver-tools/cvode/cvode_nls.js.map +1 -0
- package/dist/src/solver-tools/cvode/cvode_root.d.ts +64 -0
- package/dist/src/solver-tools/cvode/cvode_root.js.map +1 -0
- package/dist/src/solver-tools/cvode/dense_linalg.d.ts +50 -0
- package/dist/src/solver-tools/cvode/dense_linalg.js.map +1 -0
- package/dist/src/solver-tools/cvode/index.d.ts +24 -0
- package/dist/src/solver-tools/cvode/index.js.map +1 -0
- package/dist/src/solver-tools/cvode-method.d.ts +47 -0
- package/dist/src/solver-tools/cvode-method.js.map +1 -0
- package/dist/src/solver-tools/index.d.ts +16 -0
- package/dist/src/solver-tools/index.js.map +1 -0
- package/dist/src/solver-tools/lin-alg-tools.d.ts +6 -0
- package/dist/src/solver-tools/lin-alg-tools.js.map +1 -0
- package/dist/src/solver-tools/lsoda/blas.d.ts +59 -0
- package/dist/src/solver-tools/lsoda/blas.js.map +1 -0
- package/{src/solver-tools/lsoda/index.ts → dist/src/solver-tools/lsoda/cfode.d.ts} +7 -6
- package/dist/src/solver-tools/lsoda/cfode.js.map +1 -0
- package/dist/src/solver-tools/lsoda/common.d.ts +85 -0
- package/dist/src/solver-tools/lsoda/common.js +96 -0
- package/dist/src/solver-tools/lsoda/common.js.map +1 -0
- package/{src/solver-tools/lsoda/corfailure.ts → dist/src/solver-tools/lsoda/corfailure.d.ts} +2 -26
- package/dist/src/solver-tools/lsoda/corfailure.js.map +1 -0
- package/dist/src/solver-tools/lsoda/correction.d.ts +23 -0
- package/dist/src/solver-tools/lsoda/correction.js.map +1 -0
- package/dist/src/solver-tools/lsoda/dense.d.ts +47 -0
- package/{src → dist/src}/solver-tools/lsoda/dense.js +2 -0
- package/dist/src/solver-tools/lsoda/dense.js.map +1 -0
- package/dist/src/solver-tools/lsoda/index.d.ts +16 -0
- package/dist/src/solver-tools/lsoda/index.js.map +1 -0
- package/dist/src/solver-tools/lsoda/intdy.d.ts +19 -0
- package/dist/src/solver-tools/lsoda/intdy.js.map +1 -0
- package/dist/src/solver-tools/lsoda/lsoda.d.ts +66 -0
- package/{src → dist/src}/solver-tools/lsoda/lsoda.js +13 -5
- package/dist/src/solver-tools/lsoda/lsoda.js.map +1 -0
- package/dist/src/solver-tools/lsoda/methodswitch.d.ts +21 -0
- package/dist/src/solver-tools/lsoda/methodswitch.js.map +1 -0
- package/dist/src/solver-tools/lsoda/orderswitch.d.ts +21 -0
- package/dist/src/solver-tools/lsoda/orderswitch.js.map +1 -0
- package/dist/src/solver-tools/lsoda/prja.d.ts +18 -0
- package/dist/src/solver-tools/lsoda/prja.js.map +1 -0
- package/dist/src/solver-tools/lsoda/scaleh.d.ts +16 -0
- package/dist/src/solver-tools/lsoda/scaleh.js.map +1 -0
- package/{src/solver-tools/lsoda/solsy.ts → dist/src/solver-tools/lsoda/solsy.d.ts} +2 -15
- package/dist/src/solver-tools/lsoda/solsy.js.map +1 -0
- package/dist/src/solver-tools/lsoda/stoda.d.ts +19 -0
- package/dist/src/solver-tools/lsoda/stoda.js.map +1 -0
- package/dist/src/solver-tools/lsoda-method.d.ts +46 -0
- package/dist/src/solver-tools/lsoda-method.js.map +1 -0
- package/dist/src/solver-tools/mrt-method.d.ts +47 -0
- package/{src → dist/src}/solver-tools/mrt-method.js +2 -2
- package/dist/src/solver-tools/mrt-method.js.map +1 -0
- package/dist/src/solver-tools/rk3-method.d.ts +46 -0
- package/{src → dist/src}/solver-tools/rk3-method.js +2 -2
- package/dist/src/solver-tools/rk3-method.js.map +1 -0
- package/dist/src/solver-tools/rk4-method.d.ts +46 -0
- package/{src → dist/src}/solver-tools/rk4-method.js +2 -2
- package/dist/src/solver-tools/rk4-method.js.map +1 -0
- package/dist/src/solver-tools/rkdp-method.d.ts +46 -0
- package/{src → dist/src}/solver-tools/rkdp-method.js +2 -2
- package/dist/src/solver-tools/rkdp-method.js.map +1 -0
- package/dist/src/solver-tools/ros34prw-method.d.ts +46 -0
- package/{src → dist/src}/solver-tools/ros34prw-method.js +2 -2
- package/dist/src/solver-tools/ros34prw-method.js.map +1 -0
- package/dist/src/solver-tools/ros3prw-method.d.ts +46 -0
- package/{src → dist/src}/solver-tools/ros3prw-method.js +2 -2
- package/dist/src/solver-tools/ros3prw-method.js.map +1 -0
- package/{src/solver-tools/solver-defs.ts → dist/src/solver-tools/solver-defs.d.ts} +45 -85
- package/dist/src/solver-tools/solver-defs.js.map +1 -0
- package/dist/src/worker-tools/index.d.ts +2 -0
- package/dist/src/worker-tools/index.js.map +1 -0
- package/{src/worker-tools/scripting.ts → dist/src/worker-tools/scripting.d.ts} +9 -91
- package/dist/src/worker-tools/scripting.js.map +1 -0
- package/dist/src/worker-tools/solving.d.ts +7 -0
- package/dist/src/worker-tools/solving.js.map +1 -0
- package/package.json +10 -11
- package/.claude/settings.local.json +0 -11
- package/.claude/skills/license-updater/SKILL.md +0 -149
- package/.claude/skills/license-updater/references/compatibility.md +0 -68
- package/.claude/skills/license-updater/references/templates.md +0 -151
- package/.claude/skills/license-updater/scripts/generate_license_files.py +0 -467
- package/.eslintrc.json +0 -45
- package/.github/ISSUE_TEMPLATE/bug_report.md +0 -29
- package/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
- package/.github/PULL_REQUEST_TEMPLATE.md +0 -22
- package/.github/scripts/bump-js-api-version.sh +0 -106
- package/.github/scripts/check-output.sh +0 -20
- package/.github/scripts/iac-cfn-deploy.sh +0 -90
- package/.github/scripts/slack_api_request.sh +0 -65
- package/.github/scripts/test_package.sh +0 -270
- package/.github/workflows/deploy-docs.yml +0 -15
- package/.github/workflows/libraries.yaml +0 -305
- package/.github/workflows/test.yaml +0 -19
- package/CLAUDE.md +0 -104
- package/CONTRIBUTING.md +0 -74
- package/THIRD_PARTY_LICENSES +0 -135
- package/docs/.nojekyll +0 -1
- package/docs/assets/hierarchy.js +0 -1
- package/docs/assets/highlight.css +0 -99
- package/docs/assets/icons.js +0 -18
- package/docs/assets/icons.svg +0 -1
- package/docs/assets/main.js +0 -60
- package/docs/assets/navigation.js +0 -1
- package/docs/assets/search.js +0 -1
- package/docs/assets/style.css +0 -1633
- package/docs/classes/BasicModelPipelineCreator.html +0 -10
- package/docs/classes/Callback.html +0 -7
- package/docs/classes/CyclicModelPipelineCreator.html +0 -10
- package/docs/classes/IterCheckerCallback.html +0 -8
- package/docs/classes/PipelineCreator.html +0 -6
- package/docs/classes/TimeCheckerCallback.html +0 -8
- package/docs/classes/UpdatesModelPipelineCreator.html +0 -10
- package/docs/functions/ab4.html +0 -8
- package/docs/functions/ab5.html +0 -8
- package/docs/functions/applyPipeline.html +0 -9
- package/docs/functions/getCallback.html +0 -3
- package/docs/functions/getIVP.html +0 -6
- package/docs/functions/getInputVector.html +0 -2
- package/docs/functions/getIvp2WebWorker.html +0 -6
- package/docs/functions/getJScode.html +0 -6
- package/docs/functions/getOutputNames.html +0 -4
- package/docs/functions/getPipelineCreator.html +0 -7
- package/docs/functions/lsoda.html +0 -8
- package/docs/functions/mrt.html +0 -11
- package/docs/functions/printE5.html +0 -76
- package/docs/functions/printHires.html +0 -76
- package/docs/functions/printOrego.html +0 -66
- package/docs/functions/printPollution.html +0 -163
- package/docs/functions/printRobertson.html +0 -60
- package/docs/functions/printVdpol.html +0 -66
- package/docs/functions/rk3.html +0 -8
- package/docs/functions/rk4.html +0 -8
- package/docs/functions/rkdp.html +0 -8
- package/docs/functions/ros34prw.html +0 -8
- package/docs/functions/ros3prw.html +0 -8
- package/docs/functions/solveIvp.html +0 -5
- package/docs/hierarchy.html +0 -1
- package/docs/index.html +0 -768
- package/docs/media/CONTRIBUTING.md +0 -74
- package/docs/media/E5.png +0 -0
- package/docs/media/HIRES.png +0 -0
- package/docs/media/OREGO.png +0 -0
- package/docs/media/POLL-full.png +0 -0
- package/docs/media/POLL.png +0 -0
- package/docs/media/ROBER.png +0 -0
- package/docs/media/VDP0L.png +0 -0
- package/docs/media/VDPOL.png +0 -0
- package/docs/media/acid-prod.gif +0 -0
- package/docs/media/basic-use.js.map +0 -1
- package/docs/media/basic-use.ts +0 -44
- package/docs/media/check-methods.js +0 -59
- package/docs/media/check-methods.js.map +0 -1
- package/docs/media/check-methods.ts +0 -81
- package/docs/media/corr-probs.js +0 -132
- package/docs/media/corr-probs.js.map +0 -1
- package/docs/media/corr-probs.ts +0 -155
- package/docs/media/cyclic-model.js.map +0 -1
- package/docs/media/cyclic-model.ts +0 -112
- package/docs/media/e5.js.map +0 -1
- package/docs/media/e5.ts +0 -36
- package/docs/media/hires.js.map +0 -1
- package/docs/media/hires.ts +0 -40
- package/docs/media/model-updates.js.map +0 -1
- package/docs/media/model-updates.ts +0 -122
- package/docs/media/orego.js.map +0 -1
- package/docs/media/orego.ts +0 -25
- package/docs/media/pipeline-use.js.map +0 -1
- package/docs/media/pipeline-use.ts +0 -98
- package/docs/media/pollution.js.map +0 -1
- package/docs/media/pollution.ts +0 -133
- package/docs/media/print-benchmark.js.map +0 -1
- package/docs/media/print-benchmark.ts +0 -594
- package/docs/media/robertson.js.map +0 -1
- package/docs/media/robertson.ts +0 -19
- package/docs/media/scripting.js.map +0 -1
- package/docs/media/scripting.ts +0 -35
- package/docs/media/vdpol.js.map +0 -1
- package/docs/media/vdpol.ts +0 -17
- package/docs/modules.html +0 -1
- package/docs/types/Arg.html +0 -12
- package/docs/types/DifEqs.html +0 -8
- package/docs/types/Func.html +0 -7
- package/docs/types/IVP.html +0 -40
- package/docs/types/IVP2WebWorker.html +0 -12
- package/docs/types/Input.html +0 -8
- package/docs/types/Loop.html +0 -7
- package/docs/types/ODEs.html +0 -31
- package/docs/types/Output.html +0 -6
- package/docs/types/Pipeline.html +0 -6
- package/docs/types/SolverOptions.html +0 -8
- package/docs/types/Update.html +0 -9
- package/docs/types/Wrapper.html +0 -8
- package/eslintrc.json +0 -45
- package/images/E5.png +0 -0
- package/images/HIRES.png +0 -0
- package/images/OREGO.png +0 -0
- package/images/POLL-full.png +0 -0
- package/images/POLL.png +0 -0
- package/images/ROBER.png +0 -0
- package/images/VDP0L.png +0 -0
- package/images/VDPOL.png +0 -0
- package/images/acid-prod.gif +0 -0
- package/index.js.map +0 -1
- package/index.ts +0 -17
- package/jest.config.js +0 -13
- package/src/examples/basic-use.js +0 -40
- package/src/examples/basic-use.js.map +0 -1
- package/src/examples/basic-use.ts +0 -44
- package/src/examples/check-methods.js.map +0 -1
- package/src/examples/check-methods.ts +0 -96
- package/src/examples/corr-probs.js.map +0 -1
- package/src/examples/corr-probs.ts +0 -155
- package/src/examples/cyclic-model.js +0 -102
- package/src/examples/cyclic-model.js.map +0 -1
- package/src/examples/cyclic-model.ts +0 -112
- package/src/examples/e5.js +0 -36
- package/src/examples/e5.js.map +0 -1
- package/src/examples/e5.ts +0 -36
- package/src/examples/hires.js +0 -39
- package/src/examples/hires.js.map +0 -1
- package/src/examples/hires.ts +0 -40
- package/src/examples/index.js.map +0 -1
- package/src/examples/index.ts +0 -34
- package/src/examples/model-updates.js +0 -112
- package/src/examples/model-updates.js.map +0 -1
- package/src/examples/model-updates.ts +0 -122
- package/src/examples/orego.js +0 -24
- package/src/examples/orego.js.map +0 -1
- package/src/examples/orego.ts +0 -25
- package/src/examples/pipeline-use.js +0 -87
- package/src/examples/pipeline-use.js.map +0 -1
- package/src/examples/pipeline-use.ts +0 -98
- package/src/examples/pollution.js +0 -132
- package/src/examples/pollution.js.map +0 -1
- package/src/examples/pollution.ts +0 -133
- package/src/examples/print-benchmark.js +0 -581
- package/src/examples/print-benchmark.js.map +0 -1
- package/src/examples/robertson.js +0 -19
- package/src/examples/robertson.js.map +0 -1
- package/src/examples/robertson.ts +0 -19
- package/src/examples/scripting.js +0 -30
- package/src/examples/scripting.js.map +0 -1
- package/src/examples/scripting.ts +0 -35
- package/src/examples/vdpol.js +0 -17
- package/src/examples/vdpol.js.map +0 -1
- package/src/examples/vdpol.ts +0 -17
- package/src/pipeline/basic-pipeline-creator.js.map +0 -1
- package/src/pipeline/constants.js.map +0 -1
- package/src/pipeline/constants.ts +0 -21
- package/src/pipeline/index.js.map +0 -1
- package/src/pipeline/index.ts +0 -7
- package/src/pipeline/input.js.map +0 -1
- package/src/pipeline/input.ts +0 -55
- package/src/pipeline/loops-pipeline-creator.js.map +0 -1
- package/src/pipeline/loops-pipeline-creator.ts +0 -252
- package/src/pipeline/output.js.map +0 -1
- package/src/pipeline/output.ts +0 -201
- package/src/pipeline/pipeline-creator.js.map +0 -1
- package/src/pipeline/pipeline-creator.ts +0 -20
- package/src/pipeline/pipeline.js.map +0 -1
- package/src/pipeline/updates-pipeline-creator.js.map +0 -1
- package/src/scripting-tools/constants.js.map +0 -1
- package/src/scripting-tools/constants.ts +0 -69
- package/src/scripting-tools/index.js.map +0 -1
- package/src/scripting-tools/index.ts +0 -8
- package/src/scripting-tools/model-error.js.map +0 -1
- package/src/scripting-tools/model-error.ts +0 -21
- package/src/scripting-tools/scripting-tools.js.map +0 -1
- package/src/scripting-tools/scripting-tools.ts +0 -1582
- package/src/solver-tools/ab4-method.js.map +0 -1
- package/src/solver-tools/ab4-method.ts +0 -395
- package/src/solver-tools/ab5-method.js.map +0 -1
- package/src/solver-tools/ab5-method.ts +0 -397
- package/src/solver-tools/callbacks/callback-base.js.map +0 -1
- package/src/solver-tools/callbacks/callback-base.ts +0 -12
- package/src/solver-tools/callbacks/callback-tools.js.map +0 -1
- package/src/solver-tools/callbacks/callback-tools.ts +0 -22
- package/src/solver-tools/callbacks/iter-checker-callback.js.map +0 -1
- package/src/solver-tools/callbacks/iter-checker-callback.ts +0 -25
- package/src/solver-tools/callbacks/time-checker-callback.js.map +0 -1
- package/src/solver-tools/callbacks/time-checker-callback.ts +0 -23
- package/src/solver-tools/cvode/common.js +0 -487
- package/src/solver-tools/cvode/common.js.map +0 -1
- package/src/solver-tools/cvode/common.ts +0 -549
- package/src/solver-tools/cvode/cvode.js.map +0 -1
- package/src/solver-tools/cvode/cvode.ts +0 -1226
- package/src/solver-tools/cvode/cvode_adams.js.map +0 -1
- package/src/solver-tools/cvode/cvode_adams.ts +0 -142
- package/src/solver-tools/cvode/cvode_bdf.js.map +0 -1
- package/src/solver-tools/cvode/cvode_bdf.ts +0 -164
- package/src/solver-tools/cvode/cvode_class.js.map +0 -1
- package/src/solver-tools/cvode/cvode_class.ts +0 -271
- package/src/solver-tools/cvode/cvode_hin.js.map +0 -1
- package/src/solver-tools/cvode/cvode_hin.ts +0 -150
- package/src/solver-tools/cvode/cvode_io.js.map +0 -1
- package/src/solver-tools/cvode/cvode_io.ts +0 -258
- package/src/solver-tools/cvode/cvode_ls.js.map +0 -1
- package/src/solver-tools/cvode/cvode_ls.ts +0 -249
- package/src/solver-tools/cvode/cvode_nls.js.map +0 -1
- package/src/solver-tools/cvode/cvode_nls.ts +0 -259
- package/src/solver-tools/cvode/cvode_root.js.map +0 -1
- package/src/solver-tools/cvode/cvode_root.ts +0 -503
- package/src/solver-tools/cvode/dense_linalg.js.map +0 -1
- package/src/solver-tools/cvode/dense_linalg.ts +0 -144
- package/src/solver-tools/cvode/index.js.map +0 -1
- package/src/solver-tools/cvode/index.ts +0 -64
- package/src/solver-tools/cvode-method.js.map +0 -1
- package/src/solver-tools/cvode-method.ts +0 -129
- package/src/solver-tools/index.js.map +0 -1
- package/src/solver-tools/index.ts +0 -16
- package/src/solver-tools/lin-alg-tools.js.map +0 -1
- package/src/solver-tools/lin-alg-tools.ts +0 -75
- package/src/solver-tools/lsoda/blas.js.map +0 -1
- package/src/solver-tools/lsoda/blas.ts +0 -279
- package/src/solver-tools/lsoda/cfode.js.map +0 -1
- package/src/solver-tools/lsoda/cfode.ts +0 -95
- package/src/solver-tools/lsoda/common.js +0 -94
- package/src/solver-tools/lsoda/common.js.map +0 -1
- package/src/solver-tools/lsoda/common.ts +0 -135
- package/src/solver-tools/lsoda/corfailure.js.map +0 -1
- package/src/solver-tools/lsoda/correction.js.map +0 -1
- package/src/solver-tools/lsoda/correction.ts +0 -131
- package/src/solver-tools/lsoda/dense.js.map +0 -1
- package/src/solver-tools/lsoda/dense.ts +0 -141
- package/src/solver-tools/lsoda/index.js.map +0 -1
- package/src/solver-tools/lsoda/intdy.js.map +0 -1
- package/src/solver-tools/lsoda/intdy.ts +0 -62
- package/src/solver-tools/lsoda/lsoda.js.map +0 -1
- package/src/solver-tools/lsoda/lsoda.ts +0 -644
- package/src/solver-tools/lsoda/methodswitch.js.map +0 -1
- package/src/solver-tools/lsoda/methodswitch.ts +0 -119
- package/src/solver-tools/lsoda/orderswitch.js.map +0 -1
- package/src/solver-tools/lsoda/orderswitch.ts +0 -107
- package/src/solver-tools/lsoda/prja.js.map +0 -1
- package/src/solver-tools/lsoda/prja.ts +0 -61
- package/src/solver-tools/lsoda/scaleh.js.map +0 -1
- package/src/solver-tools/lsoda/scaleh.ts +0 -45
- package/src/solver-tools/lsoda/solsy.js.map +0 -1
- package/src/solver-tools/lsoda/stoda.js.map +0 -1
- package/src/solver-tools/lsoda/stoda.ts +0 -298
- package/src/solver-tools/lsoda-method.js.map +0 -1
- package/src/solver-tools/lsoda-method.ts +0 -154
- package/src/solver-tools/mrt-method.js.map +0 -1
- package/src/solver-tools/mrt-method.ts +0 -398
- package/src/solver-tools/rk3-method.js.map +0 -1
- package/src/solver-tools/rk3-method.ts +0 -257
- package/src/solver-tools/rk4-method.js.map +0 -1
- package/src/solver-tools/rk4-method.ts +0 -286
- package/src/solver-tools/rkdp-method.js.map +0 -1
- package/src/solver-tools/rkdp-method.ts +0 -300
- package/src/solver-tools/ros34prw-method.js.map +0 -1
- package/src/solver-tools/ros34prw-method.ts +0 -373
- package/src/solver-tools/ros3prw-method.js.map +0 -1
- package/src/solver-tools/ros3prw-method.ts +0 -342
- package/src/solver-tools/solver-defs.js.map +0 -1
- package/src/tests/correctness.test.js +0 -15
- package/src/tests/correctness.test.js.map +0 -1
- package/src/tests/correctness.test.ts +0 -16
- package/src/tests/cvode-lib-correctness.test.js +0 -404
- package/src/tests/cvode-lib-correctness.test.js.map +0 -1
- package/src/tests/cvode-lib-correctness.test.ts +0 -505
- package/src/tests/cvode-lib-performance.test.js +0 -103
- package/src/tests/cvode-lib-performance.test.js.map +0 -1
- package/src/tests/cvode-lib-performance.test.ts +0 -128
- package/src/tests/lsoda-lib-correctness.test.js +0 -223
- package/src/tests/lsoda-lib-correctness.test.js.map +0 -1
- package/src/tests/lsoda-lib-correctness.test.ts +0 -283
- package/src/tests/lsoda-lib-performance.test.js +0 -95
- package/src/tests/lsoda-lib-performance.test.js.map +0 -1
- package/src/tests/lsoda-lib-performance.test.ts +0 -126
- package/src/tests/performance.test.js +0 -18
- package/src/tests/performance.test.js.map +0 -1
- package/src/tests/performance.test.ts +0 -19
- package/src/tests/pipeline.test.js +0 -10
- package/src/tests/pipeline.test.js.map +0 -1
- package/src/tests/pipeline.test.ts +0 -11
- package/src/tests/test-defs.js +0 -213
- package/src/tests/test-defs.js.map +0 -1
- package/src/tests/test-defs.ts +0 -232
- package/src/tests/test-utils.js +0 -28
- package/src/tests/test-utils.js.map +0 -1
- package/src/tests/test-utils.ts +0 -37
- package/src/worker-tools/index.js.map +0 -1
- package/src/worker-tools/index.ts +0 -2
- package/src/worker-tools/scripting.js.map +0 -1
- package/src/worker-tools/solving.js.map +0 -1
- package/src/worker-tools/solving.ts +0 -86
- package/tsconfig.json +0 -71
- package/typedoc.json +0 -8
- /package/{docs/media → dist/src/examples}/basic-use.js +0 -0
- /package/{src → dist/src}/examples/check-methods.js +0 -0
- /package/{docs/media → dist/src/examples}/cyclic-model.js +0 -0
- /package/{docs/media → dist/src/examples}/e5.js +0 -0
- /package/{docs/media → dist/src/examples}/hires.js +0 -0
- /package/{src → dist/src}/examples/index.js +0 -0
- /package/{docs/media → dist/src/examples}/model-updates.js +0 -0
- /package/{docs/media → dist/src/examples}/orego.js +0 -0
- /package/{docs/media → dist/src/examples}/pipeline-use.js +0 -0
- /package/{docs/media → dist/src/examples}/pollution.js +0 -0
- /package/{docs/media → dist/src/examples}/print-benchmark.js +0 -0
- /package/{docs/media → dist/src/examples}/scripting.js +0 -0
- /package/{docs/media → dist/src/examples}/vdpol.js +0 -0
- /package/{src → dist/src}/pipeline/basic-pipeline-creator.js +0 -0
- /package/{src → dist/src}/pipeline/constants.js +0 -0
- /package/{src → dist/src}/pipeline/index.js +0 -0
- /package/{src → dist/src}/pipeline/input.js +0 -0
- /package/{src → dist/src}/pipeline/loops-pipeline-creator.js +0 -0
- /package/{src → dist/src}/pipeline/pipeline.js +0 -0
- /package/{src → dist/src}/pipeline/updates-pipeline-creator.js +0 -0
- /package/{src → dist/src}/scripting-tools/constants.js +0 -0
- /package/{src → dist/src}/scripting-tools/index.js +0 -0
- /package/{src → dist/src}/solver-tools/callbacks/callback-base.js +0 -0
- /package/{src → dist/src}/solver-tools/callbacks/callback-tools.js +0 -0
- /package/{src → dist/src}/solver-tools/cvode/cvode.js +0 -0
- /package/{src → dist/src}/solver-tools/cvode/cvode_adams.js +0 -0
- /package/{src → dist/src}/solver-tools/cvode/cvode_bdf.js +0 -0
- /package/{src → dist/src}/solver-tools/cvode/cvode_hin.js +0 -0
- /package/{src → dist/src}/solver-tools/cvode/cvode_ls.js +0 -0
- /package/{src → dist/src}/solver-tools/cvode/cvode_nls.js +0 -0
- /package/{src → dist/src}/solver-tools/cvode/cvode_root.js +0 -0
- /package/{src → dist/src}/solver-tools/cvode/dense_linalg.js +0 -0
- /package/{src → dist/src}/solver-tools/cvode/index.js +0 -0
- /package/{src → dist/src}/solver-tools/cvode-method.js +0 -0
- /package/{src → dist/src}/solver-tools/index.js +0 -0
- /package/{src → dist/src}/solver-tools/lin-alg-tools.js +0 -0
- /package/{src → dist/src}/solver-tools/lsoda/blas.js +0 -0
- /package/{src → dist/src}/solver-tools/lsoda/cfode.js +0 -0
- /package/{src → dist/src}/solver-tools/lsoda/corfailure.js +0 -0
- /package/{src → dist/src}/solver-tools/lsoda/correction.js +0 -0
- /package/{src → dist/src}/solver-tools/lsoda/index.js +0 -0
- /package/{src → dist/src}/solver-tools/lsoda/intdy.js +0 -0
- /package/{src → dist/src}/solver-tools/lsoda/methodswitch.js +0 -0
- /package/{src → dist/src}/solver-tools/lsoda/orderswitch.js +0 -0
- /package/{src → dist/src}/solver-tools/lsoda/prja.js +0 -0
- /package/{src → dist/src}/solver-tools/lsoda/scaleh.js +0 -0
- /package/{src → dist/src}/solver-tools/lsoda/solsy.js +0 -0
- /package/{src → dist/src}/solver-tools/lsoda/stoda.js +0 -0
- /package/{src → dist/src}/solver-tools/lsoda-method.js +0 -0
- /package/{src → dist/src}/solver-tools/solver-defs.js +0 -0
- /package/{src → dist/src}/worker-tools/index.js +0 -0
- /package/{src → dist/src}/worker-tools/scripting.js +0 -0
- /package/{src → dist/src}/worker-tools/solving.js +0 -0
|
@@ -1,9 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import {IVP, MATH_CONSTS, POW_IDX, MATH_FUNCS} from '../scripting-tools/scripting-tools';
|
|
5
|
-
import {SolverOptions} from '../solver-tools/solver-defs';
|
|
6
|
-
|
|
1
|
+
import { IVP } from '../scripting-tools/scripting-tools';
|
|
2
|
+
import { SolverOptions } from '../solver-tools/solver-defs';
|
|
7
3
|
/**
|
|
8
4
|
* Represents a fully parsed simulation prepared for execution in Web Workers.
|
|
9
5
|
*
|
|
@@ -14,69 +10,12 @@ import {SolverOptions} from '../solver-tools/solver-defs';
|
|
|
14
10
|
* @property tolerance - Tolerance for the numerical solver.
|
|
15
11
|
*/
|
|
16
12
|
export type IVP2WebWorker = {
|
|
17
|
-
tolerance: number
|
|
18
|
-
solverOpts: Partial<SolverOptions
|
|
19
|
-
funcMainBody: string
|
|
20
|
-
paramNames: string[]
|
|
21
|
-
deqsCount: number
|
|
13
|
+
tolerance: number;
|
|
14
|
+
solverOpts: Partial<SolverOptions>;
|
|
15
|
+
funcMainBody: string;
|
|
16
|
+
paramNames: string[];
|
|
17
|
+
deqsCount: number;
|
|
22
18
|
};
|
|
23
|
-
|
|
24
|
-
const DEFAULT_METHOD = 'ros34prw';
|
|
25
|
-
const DEFAULT_MAX_TIME_MS = 50000;
|
|
26
|
-
|
|
27
|
-
/** Return solver options */
|
|
28
|
-
function getSolverOpts(opts: string): Partial<SolverOptions> {
|
|
29
|
-
try {
|
|
30
|
-
const json = JSON.parse(opts
|
|
31
|
-
.replaceAll(`'`, `"`)
|
|
32
|
-
.replace('method', '"method"')
|
|
33
|
-
.replace('maxTimeMs', '"maxTimeMs"')
|
|
34
|
-
.replace('maxIterations', '"maxIterations"')
|
|
35
|
-
.replace(';', ','),
|
|
36
|
-
);
|
|
37
|
-
|
|
38
|
-
return json;
|
|
39
|
-
} catch (e) {
|
|
40
|
-
return {
|
|
41
|
-
method: DEFAULT_METHOD,
|
|
42
|
-
maxTimeMs: DEFAULT_MAX_TIME_MS,
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
/** Return main body of a right-hand side function of IVP */
|
|
48
|
-
function getFuncMainBody(ivp: IVP): string {
|
|
49
|
-
const lines: string[] = [];
|
|
50
|
-
|
|
51
|
-
// Used math funcs
|
|
52
|
-
ivp.usedMathFuncs.forEach((idx) => {
|
|
53
|
-
if (idx !== POW_IDX)
|
|
54
|
-
lines.push(`const ${MATH_FUNCS[idx]} = (x) => Math.${MATH_FUNCS[idx]}(x);`);
|
|
55
|
-
else
|
|
56
|
-
lines.push(`const pow = (x, y) => Math.pow(x, y);`);
|
|
57
|
-
});
|
|
58
|
-
|
|
59
|
-
// Used math consts
|
|
60
|
-
ivp.usedMathConsts.forEach((idx) => lines.push(`const ${MATH_CONSTS[idx]} = Math.${MATH_CONSTS[idx]};`));
|
|
61
|
-
|
|
62
|
-
// Model constants
|
|
63
|
-
if (ivp.consts !== null)
|
|
64
|
-
ivp.consts.forEach((input, name) => lines.push(`const ${name} = ${input.value};`));
|
|
65
|
-
|
|
66
|
-
// extract arg & function values
|
|
67
|
-
lines.push(`const ${ivp.arg.name} = arguments[0];`);
|
|
68
|
-
ivp.deqs.solutionNames.forEach((name, idx) => lines.push(`const ${name} = arguments[1][${idx}];`));
|
|
69
|
-
|
|
70
|
-
// evaluate expressions
|
|
71
|
-
if (ivp.exprs !== null)
|
|
72
|
-
ivp.exprs.forEach(((expr, name) => lines.push(`const ${name} = ${expr};`)));
|
|
73
|
-
|
|
74
|
-
// compute output
|
|
75
|
-
ivp.deqs.solutionNames.forEach((name, idx) => lines.push(`arguments[2][${idx}] = ${ivp.deqs.equations.get(name)};`));
|
|
76
|
-
|
|
77
|
-
return lines.join('\n');
|
|
78
|
-
}
|
|
79
|
-
|
|
80
19
|
/** Return IVP-structure to be passed to web-worker
|
|
81
20
|
* @param ivp - initial value problem to be solved
|
|
82
21
|
* @example
|
|
@@ -171,27 +110,6 @@ function getFuncMainBody(ivp: IVP): string {
|
|
|
171
110
|
* console.log('Simulation failed: ', err instanceof Error ? err.message : 'Unknown problem!');
|
|
172
111
|
* }
|
|
173
112
|
*/
|
|
174
|
-
export function getIvp2WebWorker(ivp: IVP): IVP2WebWorker
|
|
175
|
-
const paramNames: string[] = [];
|
|
176
|
-
if (ivp.params !== null)
|
|
177
|
-
ivp.params.forEach((_, name) => paramNames.push(name));
|
|
178
|
-
|
|
179
|
-
const ivpWW: IVP2WebWorker = {
|
|
180
|
-
tolerance: Number(ivp.tolerance),
|
|
181
|
-
solverOpts: getSolverOpts(ivp.solverSettings),
|
|
182
|
-
funcMainBody: getFuncMainBody(ivp),
|
|
183
|
-
paramNames: paramNames,
|
|
184
|
-
deqsCount: ivp.deqs.solutionNames.length,
|
|
185
|
-
};
|
|
186
|
-
|
|
187
|
-
return ivpWW;
|
|
188
|
-
}
|
|
189
|
-
|
|
113
|
+
export declare function getIvp2WebWorker(ivp: IVP): IVP2WebWorker;
|
|
190
114
|
/** Return a right-hand side function of IVP with the specified values of parameters */
|
|
191
|
-
export function getFunc(ivp: IVP2WebWorker, paramVals: Float64Array): string
|
|
192
|
-
const lines: string[] = [];
|
|
193
|
-
|
|
194
|
-
ivp.paramNames.forEach((name, idx) => lines.push(`const ${name} = ${paramVals[idx]};`));
|
|
195
|
-
|
|
196
|
-
return lines.concat(ivp.funcMainBody).join('\n');
|
|
197
|
-
}
|
|
115
|
+
export declare function getFunc(ivp: IVP2WebWorker, paramVals: Float64Array): string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripting.js","sourceRoot":"","sources":["../../../src/worker-tools/scripting.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { IVP2WebWorker } from './scripting';
|
|
2
|
+
/** Return solution of IVP with a specified inputs
|
|
3
|
+
* @param ivp - initial value problem to be solved
|
|
4
|
+
* @param inputs - vector of input values
|
|
5
|
+
* @returns solution of the given initial value problem
|
|
6
|
+
*/
|
|
7
|
+
export declare function solveIvp(ivp: IVP2WebWorker, inputs: Float64Array): Float64Array[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"solving.js","sourceRoot":"","sources":["../../../src/worker-tools/solving.ts"],"names":[],"mappings":"AAAA,wCAAwC;AAExC,OAAO,EAAe,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAQ,WAAW,EAC7D,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAC,MAAM,iBAAiB,CAAC;AAEjE,OAAO,EAAgB,OAAO,EAAC,MAAM,aAAa,CAAC;AAEnD,MAAM,QAAQ,GAAG,CAAC,CAAC;AACnB,MAAM,SAAS,GAAG,CAAC,CAAC;AACpB,MAAM,QAAQ,GAAG,CAAC,CAAC;AACnB,MAAM,aAAa,GAAG,CAAC,CAAC;AAExB,oCAAoC;AACpC,SAAS,SAAS,CAAC,IAAwB;IACzC,QAAQ,IAAI,EAAE,CAAC;QACf,KAAK,KAAK;YACR,OAAO,GAAG,CAAC;QAEb,KAAK,SAAS;YACZ,OAAO,OAAO,CAAC;QAEjB,KAAK,KAAK;YACR,OAAO,GAAG,CAAC;QAEb,KAAK,KAAK;YACR,OAAO,GAAG,CAAC;QAEb,KAAK,KAAK;YACR,OAAO,GAAG,CAAC;QAEb,KAAK,MAAM;YACT,OAAO,IAAI,CAAC;QAEd,KAAK,KAAK;YACR,OAAO,GAAG,CAAC;QAEb,KAAK,OAAO;YACV,OAAO,KAAK,CAAC;QAEf,KAAK,OAAO;YACV,OAAO,KAAK,CAAC;QAEf;YACE,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC;AAED,gDAAgD;AAChD,SAAS,WAAW,CAAC,GAAkB,EAAE,MAAoB;IAC3D,MAAM,QAAQ,GAAG,aAAa,GAAG,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC;IAEvE,IAAI,QAAQ,GAAG,MAAM,CAAC,MAAM;QAC1B,MAAM,IAAI,KAAK,CAAC,qCAAqC,QAAQ,cAAc,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;AAChG,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAkB,EAAE,MAAoB;IAC/D,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACzB,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC;IAElE,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;IACjE,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,QAAQ,CAAS,CAAC;IAE5C,MAAM,IAAI,GAAS;QACjB,IAAI,EAAE,EAAE;QACR,GAAG,EAAE;YACH,IAAI,EAAE,EAAE;YACR,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC;YACvB,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC;YACzB,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC;SACvB;QACD,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,EAAE,mBAAmB,CAAC;QACxD,IAAI,EAAE,IAAI;QACV,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,gBAAgB,EAAE,EAAE;KACrB,CAAC;IAEF,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAE7C,OAAO,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAChC,CAAC"}
|
package/package.json
CHANGED
|
@@ -8,8 +8,15 @@
|
|
|
8
8
|
"access": "public"
|
|
9
9
|
},
|
|
10
10
|
"license": "MIT",
|
|
11
|
-
"version": "1.
|
|
11
|
+
"version": "1.3.1",
|
|
12
12
|
"description": "Tools for solving initial value problem for ordinary differential equations",
|
|
13
|
+
"main": "dist/index.js",
|
|
14
|
+
"types": "dist/index.d.ts",
|
|
15
|
+
"files": [
|
|
16
|
+
"dist/",
|
|
17
|
+
"README.md",
|
|
18
|
+
"LICENSE"
|
|
19
|
+
],
|
|
13
20
|
"keywords": [
|
|
14
21
|
"initial value problem",
|
|
15
22
|
"ordinary differential equations",
|
|
@@ -19,27 +26,19 @@
|
|
|
19
26
|
],
|
|
20
27
|
"devDependencies": {
|
|
21
28
|
"@types/jest": "^29.0.0",
|
|
22
|
-
"@types/wu": "^2.1.44",
|
|
23
29
|
"@typescript-eslint/eslint-plugin": "^5.62.0",
|
|
24
30
|
"@typescript-eslint/parser": "^5.62.0",
|
|
25
|
-
"css-loader": "^6.7.3",
|
|
26
31
|
"eslint": "^8.56.0",
|
|
27
|
-
"eslint-config-eslint": "^9.0.0",
|
|
28
32
|
"eslint-config-google": "^0.14.0",
|
|
29
|
-
"eslint-plugin-react": "^7.33.2",
|
|
30
|
-
"eslint-plugin-vue": "^9.29.0",
|
|
31
33
|
"jest": "^29.0.0",
|
|
32
|
-
"style-loader": "^3.3.2",
|
|
33
34
|
"ts-jest": "^29.0.0",
|
|
34
|
-
"ts-loader": "^9.2.6",
|
|
35
35
|
"typedoc": "^0.28.14",
|
|
36
|
-
"typescript": "^5.6.3"
|
|
37
|
-
"typescript-eslint": "^8.10.0"
|
|
36
|
+
"typescript": "^5.6.3"
|
|
38
37
|
},
|
|
39
38
|
"scripts": {
|
|
40
39
|
"link": "npm link",
|
|
41
40
|
"build-diff-studio": "git clean -f -X -d ./src && tsc",
|
|
42
|
-
"build": "tsc",
|
|
41
|
+
"build": "tsc --build --clean && tsc",
|
|
43
42
|
"lint": "eslint \"./src/**/*.ts\"",
|
|
44
43
|
"lint-fix": "eslint \"./src/**/*.ts\" --fix",
|
|
45
44
|
"test": "jest"
|
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: license-updater
|
|
3
|
-
description: >
|
|
4
|
-
Update and manage third-party license attribution when porting code from
|
|
5
|
-
external libraries. Use this skill whenever the user mentions porting,
|
|
6
|
-
translating, or adapting code from another library (e.g. C/C++/Python to
|
|
7
|
-
TypeScript/JavaScript), asks to add license headers to source files, needs
|
|
8
|
-
to create or update a THIRD_PARTY_LICENSES file, or wants to ensure proper
|
|
9
|
-
license compliance for derived works. Also trigger when the user provides
|
|
10
|
-
a link to or local path of an upstream library and a folder of ported code
|
|
11
|
-
and asks about licensing. Keywords: license, attribution, port, third-party,
|
|
12
|
-
copyright, THIRD_PARTY_LICENSES, license header, BSD, MIT, Apache, derived
|
|
13
|
-
work.
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
# License Updater
|
|
17
|
-
|
|
18
|
-
A skill for maintaining proper license attribution when incorporating
|
|
19
|
-
third-party code — especially code ported from one language to another.
|
|
20
|
-
|
|
21
|
-
## When to use
|
|
22
|
-
|
|
23
|
-
- User provides a **source library URL or local path** and a **folder with ported files**
|
|
24
|
-
- User asks to "add license headers", "update THIRD_PARTY_LICENSES", or
|
|
25
|
-
"set up licensing for ported code"
|
|
26
|
-
- User mentions porting/translating code from an external project
|
|
27
|
-
|
|
28
|
-
## Inputs
|
|
29
|
-
|
|
30
|
-
The user provides two things:
|
|
31
|
-
|
|
32
|
-
1. **Source library URL or local path** — a GitHub (or similar) link to the
|
|
33
|
-
upstream project whose code was ported, or a local filesystem path to a
|
|
34
|
-
cloned/downloaded copy of the library.
|
|
35
|
-
Examples: `https://github.com/sdwfrost/liblsoda`, `src/solver-tools/cvode-7.5.0`
|
|
36
|
-
2. **Ported files path** — a path (relative to the repo root) to the folder
|
|
37
|
-
containing the ported TypeScript (or other language) files.
|
|
38
|
-
Example: `src/solver-tools/lsoda`
|
|
39
|
-
|
|
40
|
-
The user may optionally provide:
|
|
41
|
-
- The **repo root URL** or local path to their own project
|
|
42
|
-
- The **target project's license** (if not, discover it from the repo)
|
|
43
|
-
|
|
44
|
-
## Workflow
|
|
45
|
-
|
|
46
|
-
Follow these steps in order:
|
|
47
|
-
|
|
48
|
-
### Step 1: Discover upstream license
|
|
49
|
-
|
|
50
|
-
If the user provided a **URL**, use `web_fetch` to open the source library URL.
|
|
51
|
-
If the user provided a **local path**, read files directly from the filesystem.
|
|
52
|
-
|
|
53
|
-
Look for:
|
|
54
|
-
|
|
55
|
-
1. A `LICENSE` or `COPYING` file in the repository root
|
|
56
|
-
2. License badges or mentions in the README
|
|
57
|
-
3. SPDX identifiers in `package.json`, `setup.py`, `Cargo.toml`, etc.
|
|
58
|
-
4. Copyright headers inside source files (especially the main source file)
|
|
59
|
-
|
|
60
|
-
Identify:
|
|
61
|
-
- **License type** (MIT, BSD-2-Clause, BSD-3-Clause, Apache-2.0, etc.)
|
|
62
|
-
- **Copyright holders** — every `Copyright (c)` line you find
|
|
63
|
-
- **Provenance chain** — if the upstream code itself was derived from earlier
|
|
64
|
-
work, trace the chain (e.g., Fortran → C → C refactoring → shared library)
|
|
65
|
-
|
|
66
|
-
If the license is unclear, tell the user and ask for clarification before
|
|
67
|
-
proceeding.
|
|
68
|
-
|
|
69
|
-
### Step 2: Check compatibility
|
|
70
|
-
|
|
71
|
-
Verify that the upstream license is compatible with the target project's
|
|
72
|
-
license. Read `references/compatibility.md` for the compatibility matrix.
|
|
73
|
-
|
|
74
|
-
If there is a compatibility issue, **stop and inform the user** with a clear
|
|
75
|
-
explanation of the conflict and possible remedies.
|
|
76
|
-
|
|
77
|
-
### Step 3: Discover target project structure
|
|
78
|
-
|
|
79
|
-
If the user provided a repo URL, fetch it to understand the existing layout.
|
|
80
|
-
Look for:
|
|
81
|
-
- Existing `LICENSE` file
|
|
82
|
-
- Existing `THIRD_PARTY_LICENSES` or `NOTICES` file
|
|
83
|
-
- Existing copyright headers in files
|
|
84
|
-
|
|
85
|
-
### Step 4: Generate artifacts
|
|
86
|
-
|
|
87
|
-
Produce exactly three outputs. Use the script at
|
|
88
|
-
`scripts/generate_license_files.py` to generate them:
|
|
89
|
-
|
|
90
|
-
```bash
|
|
91
|
-
python3 /path/to/skill/scripts/generate_license_files.py \
|
|
92
|
-
--license-type "<SPDX identifier, e.g. MIT>" \
|
|
93
|
-
--copyright-holders "<semicolon-separated list>" \
|
|
94
|
-
--project-name "<upstream project name>" \
|
|
95
|
-
--project-url "<upstream project URL>" \
|
|
96
|
-
--ported-files-path "<relative path in target repo>" \
|
|
97
|
-
--target-copyright "<target project copyright line>" \
|
|
98
|
-
--provenance "<semicolon-separated provenance chain>" \
|
|
99
|
-
--output-dir "/home/claude/license-output"
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
The script creates three files in the output directory:
|
|
103
|
-
|
|
104
|
-
1. **`THIRD_PARTY_LICENSES`** — standalone file for the repo root documenting
|
|
105
|
-
upstream license and provenance
|
|
106
|
-
2. **`HEADER_TEMPLATE.txt`** — comment block to prepend to each ported file
|
|
107
|
-
3. **`LICENSE_GUIDE.md`** — human-readable instructions explaining what to do
|
|
108
|
-
|
|
109
|
-
If the script is unavailable or doesn't fit the situation, generate the files
|
|
110
|
-
manually following the templates in `references/templates.md`.
|
|
111
|
-
|
|
112
|
-
### Step 5: Update the README License section
|
|
113
|
-
|
|
114
|
-
If the project has a `README.md` (or `README.MD`), update its **License**
|
|
115
|
-
section to mention the third-party code and link to `THIRD_PARTY_LICENSES`.
|
|
116
|
-
|
|
117
|
-
Rules:
|
|
118
|
-
- Look for an existing `## License` heading in the README
|
|
119
|
-
- If one exists, **append** a line about the ported code beneath the existing
|
|
120
|
-
license statement — do not remove anything already there
|
|
121
|
-
- If there is no License section, add one at the end of the README (before
|
|
122
|
-
any final "Contributing" or similar section)
|
|
123
|
-
- Keep it concise: one sentence identifying the ported component, its upstream
|
|
124
|
-
source, and a link to the `THIRD_PARTY_LICENSES` file
|
|
125
|
-
- Use the template from `references/templates.md` → "README License section"
|
|
126
|
-
|
|
127
|
-
### Step 6: Present results
|
|
128
|
-
|
|
129
|
-
1. Give a brief summary:
|
|
130
|
-
- What license was found
|
|
131
|
-
- Whether it's compatible
|
|
132
|
-
- What files were created or modified (THIRD_PARTY_LICENSES, headers,
|
|
133
|
-
README)
|
|
134
|
-
|
|
135
|
-
## Important rules
|
|
136
|
-
|
|
137
|
-
- **Never modify the target project's main LICENSE file** unless the user
|
|
138
|
-
explicitly asks. The main LICENSE covers the project as a whole.
|
|
139
|
-
- **Always preserve the full original license text** in THIRD_PARTY_LICENSES.
|
|
140
|
-
Don't paraphrase or abbreviate license texts.
|
|
141
|
-
- **Include ALL copyright holders** from the upstream chain, not just the
|
|
142
|
-
most recent one.
|
|
143
|
-
- **If the upstream repo contains multiple licenses** (e.g., dual-licensed),
|
|
144
|
-
note all of them and ask the user which applies.
|
|
145
|
-
- If the target project already has a THIRD_PARTY_LICENSES file, **append**
|
|
146
|
-
a new section rather than overwriting.
|
|
147
|
-
- The header template should be concise (under 15 lines) — point to
|
|
148
|
-
THIRD_PARTY_LICENSES for full details rather than embedding the entire
|
|
149
|
-
license in every file.
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
# License Compatibility Matrix
|
|
2
|
-
|
|
3
|
-
Quick reference for whether an upstream license is compatible with common
|
|
4
|
-
target project licenses. "Compatible" means the ported code can be included
|
|
5
|
-
in a project under the target license.
|
|
6
|
-
|
|
7
|
-
## Permissive → Permissive (almost always OK)
|
|
8
|
-
|
|
9
|
-
| Upstream | Target: MIT | Target: BSD-2 | Target: BSD-3 | Target: Apache-2.0 |
|
|
10
|
-
|-----------------|:-----------:|:-------------:|:-------------:|:------------------:|
|
|
11
|
-
| MIT | ✅ | ✅ | ✅ | ✅ |
|
|
12
|
-
| BSD-2-Clause | ✅ | ✅ | ✅ | ✅ |
|
|
13
|
-
| BSD-3-Clause | ✅ | ✅ | ✅ | ✅ |
|
|
14
|
-
| Apache-2.0 | ✅* | ✅* | ✅* | ✅ |
|
|
15
|
-
| ISC | ✅ | ✅ | ✅ | ✅ |
|
|
16
|
-
| Zlib | ✅ | ✅ | ✅ | ✅ |
|
|
17
|
-
| Unlicense | ✅ | ✅ | ✅ | ✅ |
|
|
18
|
-
|
|
19
|
-
*Apache-2.0 has a patent grant clause. When including Apache-2.0 code in a
|
|
20
|
-
non-Apache project, the patent grant still applies to that code. This is
|
|
21
|
-
generally fine but worth noting.
|
|
22
|
-
|
|
23
|
-
## Copyleft → Permissive (usually NOT OK)
|
|
24
|
-
|
|
25
|
-
| Upstream | Target: MIT | Target: BSD | Target: Apache-2.0 |
|
|
26
|
-
|-----------------|:-----------:|:-----------:|:------------------:|
|
|
27
|
-
| GPL-2.0-only | ❌ | ❌ | ❌ |
|
|
28
|
-
| GPL-3.0-only | ❌ | ❌ | ❌ |
|
|
29
|
-
| LGPL-2.1 | ⚠️* | ⚠️* | ⚠️* |
|
|
30
|
-
| LGPL-3.0 | ⚠️* | ⚠️* | ⚠️* |
|
|
31
|
-
| MPL-2.0 | ⚠️** | ⚠️** | ⚠️** |
|
|
32
|
-
| AGPL-3.0 | ❌ | ❌ | ❌ |
|
|
33
|
-
|
|
34
|
-
*LGPL allows linking but not incorporating source code into a permissive
|
|
35
|
-
project without the LGPL applying to the modified files.
|
|
36
|
-
|
|
37
|
-
**MPL-2.0 is file-level copyleft: the ported files themselves must stay
|
|
38
|
-
under MPL-2.0, but the rest of the project can be permissive.
|
|
39
|
-
|
|
40
|
-
## What "compatible" means in practice
|
|
41
|
-
|
|
42
|
-
For permissive licenses (MIT, BSD, Apache, ISC, Zlib):
|
|
43
|
-
- Keep the original copyright notice and license text
|
|
44
|
-
- Include them in a THIRD_PARTY_LICENSES file
|
|
45
|
-
- Add attribution headers to ported files
|
|
46
|
-
- The overall project can use any license
|
|
47
|
-
|
|
48
|
-
For copyleft (GPL, LGPL, AGPL):
|
|
49
|
-
- Generally cannot include in a permissive project
|
|
50
|
-
- The copyleft license would need to apply to the derivative work
|
|
51
|
-
- STOP and inform the user about the conflict
|
|
52
|
-
|
|
53
|
-
## Special conditions by license type
|
|
54
|
-
|
|
55
|
-
### BSD-3-Clause
|
|
56
|
-
Extra requirement: cannot use the names of copyright holders or contributors
|
|
57
|
-
to endorse or promote the derived product without written permission.
|
|
58
|
-
|
|
59
|
-
### Apache-2.0
|
|
60
|
-
- Includes explicit patent grant
|
|
61
|
-
- Requires NOTICE file preservation if one exists upstream
|
|
62
|
-
- Must state significant changes made to ported files
|
|
63
|
-
|
|
64
|
-
### MIT
|
|
65
|
-
Minimal requirements: preserve copyright notice and license text.
|
|
66
|
-
|
|
67
|
-
### ISC
|
|
68
|
-
Functionally equivalent to MIT. Same requirements.
|
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
# License File Templates
|
|
2
|
-
|
|
3
|
-
Use these templates when the generation script is unavailable or the situation
|
|
4
|
-
requires custom formatting.
|
|
5
|
-
|
|
6
|
-
## THIRD_PARTY_LICENSES
|
|
7
|
-
|
|
8
|
-
```
|
|
9
|
-
Third-Party Licenses
|
|
10
|
-
====================
|
|
11
|
-
|
|
12
|
-
This file documents the licenses for third-party code included in or adapted
|
|
13
|
-
by this project.
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
================================================================================
|
|
17
|
-
{PROJECT_NAME}
|
|
18
|
-
================================================================================
|
|
19
|
-
|
|
20
|
-
Source: {PROJECT_URL}
|
|
21
|
-
License: {SPDX_IDENTIFIER}
|
|
22
|
-
Files: {PORTED_FILES_PATH}
|
|
23
|
-
|
|
24
|
-
{DESCRIPTION_OF_WHAT_WAS_PORTED}
|
|
25
|
-
|
|
26
|
-
{PROVENANCE_CHAIN — if the code has a history of forks/rewrites, list each
|
|
27
|
-
step with author and license}
|
|
28
|
-
|
|
29
|
-
{FULL_ORIGINAL_LICENSE_TEXT — copy verbatim, do not paraphrase}
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
When appending to an existing THIRD_PARTY_LICENSES file, add a new section
|
|
33
|
-
starting from the `====` separator line. Do not modify existing sections.
|
|
34
|
-
|
|
35
|
-
## Header template (for TypeScript / JavaScript files)
|
|
36
|
-
|
|
37
|
-
```typescript
|
|
38
|
-
/**
|
|
39
|
-
* {BRIEF_DESCRIPTION — one line saying what this code does}
|
|
40
|
-
*
|
|
41
|
-
* {PORT_DESCRIPTION — e.g. "TypeScript port of {project} ({url})"}
|
|
42
|
-
* {ORIGINAL_ALGORITHM_CREDIT — if applicable}
|
|
43
|
-
*
|
|
44
|
-
* {ORIGINAL_COPYRIGHT_LINES — one per line, all of them}
|
|
45
|
-
* {TARGET_COPYRIGHT_LINE}
|
|
46
|
-
*
|
|
47
|
-
* Licensed under the {SPDX_IDENTIFIER} License. See THIRD_PARTY_LICENSES
|
|
48
|
-
* for the full license text and provenance chain of the original code.
|
|
49
|
-
*/
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
### Header guidelines
|
|
53
|
-
|
|
54
|
-
- Keep under 15 lines total
|
|
55
|
-
- Include ALL original copyright holders
|
|
56
|
-
- Reference THIRD_PARTY_LICENSES instead of embedding the full license
|
|
57
|
-
- For BSD-3-Clause, do NOT include the full "neither the name..." clause
|
|
58
|
-
in the header — the THIRD_PARTY_LICENSES file covers this
|
|
59
|
-
|
|
60
|
-
## Header template (for Python files)
|
|
61
|
-
|
|
62
|
-
```python
|
|
63
|
-
# {BRIEF_DESCRIPTION}
|
|
64
|
-
#
|
|
65
|
-
# {PORT_DESCRIPTION}
|
|
66
|
-
# {ORIGINAL_ALGORITHM_CREDIT}
|
|
67
|
-
#
|
|
68
|
-
# {ORIGINAL_COPYRIGHT_LINES}
|
|
69
|
-
# {TARGET_COPYRIGHT_LINE}
|
|
70
|
-
#
|
|
71
|
-
# Licensed under the {SPDX_IDENTIFIER} License. See THIRD_PARTY_LICENSES
|
|
72
|
-
# for the full license text and provenance chain.
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
## Header template (for C / C++ files)
|
|
76
|
-
|
|
77
|
-
```c
|
|
78
|
-
/*
|
|
79
|
-
* {BRIEF_DESCRIPTION}
|
|
80
|
-
*
|
|
81
|
-
* {PORT_DESCRIPTION}
|
|
82
|
-
* {ORIGINAL_ALGORITHM_CREDIT}
|
|
83
|
-
*
|
|
84
|
-
* {ORIGINAL_COPYRIGHT_LINES}
|
|
85
|
-
* {TARGET_COPYRIGHT_LINE}
|
|
86
|
-
*
|
|
87
|
-
* Licensed under the {SPDX_IDENTIFIER} License. See THIRD_PARTY_LICENSES
|
|
88
|
-
* for the full license text and provenance chain.
|
|
89
|
-
*/
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
## README License section
|
|
93
|
-
|
|
94
|
-
Add the following beneath the existing license statement in the project's
|
|
95
|
-
`README.md`. If the README has no `## License` section yet, create one.
|
|
96
|
-
|
|
97
|
-
```markdown
|
|
98
|
-
## License
|
|
99
|
-
|
|
100
|
-
This project is licensed under the [{TARGET_LICENSE}]({LICENSE_FILE_PATH}).
|
|
101
|
-
|
|
102
|
-
{PORTED_COMPONENT_DESCRIPTION} is a {LANGUAGE} port of
|
|
103
|
-
[{PROJECT_NAME}]({PROJECT_URL}).
|
|
104
|
-
See [THIRD_PARTY_LICENSES](./THIRD_PARTY_LICENSES) for details on third-party
|
|
105
|
-
code provenance.
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
### README License guidelines
|
|
109
|
-
|
|
110
|
-
- Keep it to 2–3 sentences maximum
|
|
111
|
-
- Always link to both the main `LICENSE` file and `THIRD_PARTY_LICENSES`
|
|
112
|
-
- Name the specific component that was ported (e.g., "The LSODA solver")
|
|
113
|
-
- Name the upstream project and link to it
|
|
114
|
-
- If multiple third-party components exist, list each on its own line
|
|
115
|
-
|
|
116
|
-
## LICENSE_GUIDE.md
|
|
117
|
-
|
|
118
|
-
```markdown
|
|
119
|
-
# License Attribution Guide
|
|
120
|
-
|
|
121
|
-
## Overview
|
|
122
|
-
|
|
123
|
-
This guide explains how to properly attribute the third-party code ported
|
|
124
|
-
into this project from [{PROJECT_NAME}]({PROJECT_URL}).
|
|
125
|
-
|
|
126
|
-
## Files to add/modify
|
|
127
|
-
|
|
128
|
-
### 1. `THIRD_PARTY_LICENSES` → repo root
|
|
129
|
-
|
|
130
|
-
{Explain: new file or append to existing}
|
|
131
|
-
|
|
132
|
-
### 2. Header in each ported file → `{PORTED_FILES_PATH}/*.{ext}`
|
|
133
|
-
|
|
134
|
-
{Show the header template}
|
|
135
|
-
|
|
136
|
-
### 3. `LICENSE` → no changes needed
|
|
137
|
-
|
|
138
|
-
{Explain why the main license stays as-is}
|
|
139
|
-
|
|
140
|
-
### 4. `README` → optional update
|
|
141
|
-
|
|
142
|
-
{Suggest a license section addition if appropriate}
|
|
143
|
-
|
|
144
|
-
## License compatibility
|
|
145
|
-
|
|
146
|
-
Upstream: {UPSTREAM_LICENSE}
|
|
147
|
-
Target: {TARGET_LICENSE}
|
|
148
|
-
Status: ✅ Compatible / ❌ Incompatible
|
|
149
|
-
|
|
150
|
-
{Brief explanation of compatibility and any special conditions}
|
|
151
|
-
```
|