universal-physics-tensor 0.45.2 → 0.47.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.
- package/README.md +85 -66
- package/bin/upt.mjs +22 -22
- package/dist/atlas/applicability.d.ts +108 -0
- package/dist/atlas/applicability.d.ts.map +1 -0
- package/dist/atlas/applicability.js +301 -0
- package/dist/atlas/applicability.js.map +1 -0
- package/dist/atlas/association.d.ts +92 -0
- package/dist/atlas/association.d.ts.map +1 -0
- package/dist/atlas/association.js +112 -0
- package/dist/atlas/association.js.map +1 -0
- package/dist/atlas/benchmark/backend-shapes.d.ts +47 -0
- package/dist/atlas/benchmark/backend-shapes.d.ts.map +1 -0
- package/dist/atlas/benchmark/backend-shapes.js +58 -0
- package/dist/atlas/benchmark/backend-shapes.js.map +1 -0
- package/dist/atlas/benchmark/baselines.d.ts +64 -0
- package/dist/atlas/benchmark/baselines.d.ts.map +1 -0
- package/dist/atlas/benchmark/baselines.js +112 -0
- package/dist/atlas/benchmark/baselines.js.map +1 -0
- package/dist/atlas/benchmark/leakage.d.ts +56 -0
- package/dist/atlas/benchmark/leakage.d.ts.map +1 -0
- package/dist/atlas/benchmark/leakage.js +100 -0
- package/dist/atlas/benchmark/leakage.js.map +1 -0
- package/dist/atlas/benchmark/loader.d.ts +56 -0
- package/dist/atlas/benchmark/loader.d.ts.map +1 -0
- package/dist/atlas/benchmark/loader.js +104 -0
- package/dist/atlas/benchmark/loader.js.map +1 -0
- package/dist/atlas/benchmark/run-atlas.d.ts +72 -0
- package/dist/atlas/benchmark/run-atlas.d.ts.map +1 -0
- package/dist/atlas/benchmark/run-atlas.js +210 -0
- package/dist/atlas/benchmark/run-atlas.js.map +1 -0
- package/dist/atlas/benchmark/stats.d.ts +90 -0
- package/dist/atlas/benchmark/stats.d.ts.map +1 -0
- package/dist/atlas/benchmark/stats.js +159 -0
- package/dist/atlas/benchmark/stats.js.map +1 -0
- package/dist/atlas/benchmark/study.d.ts +120 -0
- package/dist/atlas/benchmark/study.d.ts.map +1 -0
- package/dist/atlas/benchmark/study.js +192 -0
- package/dist/atlas/benchmark/study.js.map +1 -0
- package/dist/atlas/benchmark/types.d.ts +79 -0
- package/dist/atlas/benchmark/types.d.ts.map +1 -0
- package/dist/atlas/benchmark/types.js +46 -0
- package/dist/atlas/benchmark/types.js.map +1 -0
- package/dist/atlas/composition-table.d.ts +55 -0
- package/dist/atlas/composition-table.d.ts.map +1 -0
- package/dist/atlas/composition-table.js +133 -0
- package/dist/atlas/composition-table.js.map +1 -0
- package/dist/atlas/conventions.d.ts +63 -0
- package/dist/atlas/conventions.d.ts.map +1 -0
- package/dist/atlas/conventions.js +93 -0
- package/dist/atlas/conventions.js.map +1 -0
- package/dist/atlas/coverage.d.ts +93 -0
- package/dist/atlas/coverage.d.ts.map +1 -0
- package/dist/atlas/coverage.js +69 -0
- package/dist/atlas/coverage.js.map +1 -0
- package/dist/atlas/derivation.d.ts +137 -0
- package/dist/atlas/derivation.d.ts.map +1 -0
- package/dist/atlas/derivation.js +190 -0
- package/dist/atlas/derivation.js.map +1 -0
- package/dist/atlas/derive-evidence.d.ts +218 -0
- package/dist/atlas/derive-evidence.d.ts.map +1 -0
- package/dist/atlas/derive-evidence.js +225 -0
- package/dist/atlas/derive-evidence.js.map +1 -0
- package/dist/atlas/diffusion/bridges-closure.d.ts +63 -0
- package/dist/atlas/diffusion/bridges-closure.d.ts.map +1 -0
- package/dist/atlas/diffusion/bridges-closure.js +350 -0
- package/dist/atlas/diffusion/bridges-closure.js.map +1 -0
- package/dist/atlas/diffusion/bridges.d.ts +36 -0
- package/dist/atlas/diffusion/bridges.d.ts.map +1 -0
- package/dist/atlas/diffusion/bridges.js +226 -0
- package/dist/atlas/diffusion/bridges.js.map +1 -0
- package/dist/atlas/diffusion/dimensions.d.ts +21 -0
- package/dist/atlas/diffusion/dimensions.d.ts.map +1 -0
- package/dist/atlas/diffusion/dimensions.js +21 -0
- package/dist/atlas/diffusion/dimensions.js.map +1 -0
- package/dist/atlas/diffusion/index.d.ts +16 -0
- package/dist/atlas/diffusion/index.d.ts.map +1 -0
- package/dist/atlas/diffusion/index.js +23 -0
- package/dist/atlas/diffusion/index.js.map +1 -0
- package/dist/atlas/diffusion/models.d.ts +24 -0
- package/dist/atlas/diffusion/models.d.ts.map +1 -0
- package/dist/atlas/diffusion/models.js +139 -0
- package/dist/atlas/diffusion/models.js.map +1 -0
- package/dist/atlas/diffusion/numerics.d.ts +181 -0
- package/dist/atlas/diffusion/numerics.d.ts.map +1 -0
- package/dist/atlas/diffusion/numerics.js +251 -0
- package/dist/atlas/diffusion/numerics.js.map +1 -0
- package/dist/atlas/error-algebra.d.ts +52 -0
- package/dist/atlas/error-algebra.d.ts.map +1 -0
- package/dist/atlas/error-algebra.js +55 -0
- package/dist/atlas/error-algebra.js.map +1 -0
- package/dist/atlas/export.d.ts +48 -0
- package/dist/atlas/export.d.ts.map +1 -0
- package/dist/atlas/export.js +106 -0
- package/dist/atlas/export.js.map +1 -0
- package/dist/atlas/families.d.ts +14 -0
- package/dist/atlas/families.d.ts.map +1 -0
- package/dist/atlas/families.js +20 -0
- package/dist/atlas/families.js.map +1 -0
- package/dist/atlas/index.d.ts +90 -0
- package/dist/atlas/index.d.ts.map +1 -0
- package/dist/atlas/index.js +69 -0
- package/dist/atlas/index.js.map +1 -0
- package/dist/atlas/link-prediction.d.ts +71 -0
- package/dist/atlas/link-prediction.d.ts.map +1 -0
- package/dist/atlas/link-prediction.js +128 -0
- package/dist/atlas/link-prediction.js.map +1 -0
- package/dist/atlas/model.d.ts +70 -0
- package/dist/atlas/model.d.ts.map +1 -0
- package/dist/atlas/model.js +26 -0
- package/dist/atlas/model.js.map +1 -0
- package/dist/atlas/oscillators/bridges-coarse.d.ts +71 -0
- package/dist/atlas/oscillators/bridges-coarse.d.ts.map +1 -0
- package/dist/atlas/oscillators/bridges-coarse.js +146 -0
- package/dist/atlas/oscillators/bridges-coarse.js.map +1 -0
- package/dist/atlas/oscillators/bridges-exact.d.ts +70 -0
- package/dist/atlas/oscillators/bridges-exact.d.ts.map +1 -0
- package/dist/atlas/oscillators/bridges-exact.js +230 -0
- package/dist/atlas/oscillators/bridges-exact.js.map +1 -0
- package/dist/atlas/oscillators/bridges-limits.d.ts +118 -0
- package/dist/atlas/oscillators/bridges-limits.d.ts.map +1 -0
- package/dist/atlas/oscillators/bridges-limits.js +345 -0
- package/dist/atlas/oscillators/bridges-limits.js.map +1 -0
- package/dist/atlas/oscillators/dimensions.d.ts +34 -0
- package/dist/atlas/oscillators/dimensions.d.ts.map +1 -0
- package/dist/atlas/oscillators/dimensions.js +34 -0
- package/dist/atlas/oscillators/dimensions.js.map +1 -0
- package/dist/atlas/oscillators/index.d.ts +38 -0
- package/dist/atlas/oscillators/index.d.ts.map +1 -0
- package/dist/atlas/oscillators/index.js +37 -0
- package/dist/atlas/oscillators/index.js.map +1 -0
- package/dist/atlas/oscillators/models.d.ts +25 -0
- package/dist/atlas/oscillators/models.d.ts.map +1 -0
- package/dist/atlas/oscillators/models.js +160 -0
- package/dist/atlas/oscillators/models.js.map +1 -0
- package/dist/atlas/oscillators/rejections.d.ts +21 -0
- package/dist/atlas/oscillators/rejections.d.ts.map +1 -0
- package/dist/atlas/oscillators/rejections.js +54 -0
- package/dist/atlas/oscillators/rejections.js.map +1 -0
- package/dist/atlas/path-bound.d.ts +143 -0
- package/dist/atlas/path-bound.d.ts.map +1 -0
- package/dist/atlas/path-bound.js +268 -0
- package/dist/atlas/path-bound.js.map +1 -0
- package/dist/atlas/poster/associations.d.ts +66 -0
- package/dist/atlas/poster/associations.d.ts.map +1 -0
- package/dist/atlas/poster/associations.js +90 -0
- package/dist/atlas/poster/associations.js.map +1 -0
- package/dist/atlas/poster/derivations.d.ts +156 -0
- package/dist/atlas/poster/derivations.d.ts.map +1 -0
- package/dist/atlas/poster/derivations.js +430 -0
- package/dist/atlas/poster/derivations.js.map +1 -0
- package/dist/atlas/poster/statements.d.ts +198 -0
- package/dist/atlas/poster/statements.d.ts.map +1 -0
- package/dist/atlas/poster/statements.js +365 -0
- package/dist/atlas/poster/statements.js.map +1 -0
- package/dist/atlas/public.d.ts +26 -0
- package/dist/atlas/public.d.ts.map +1 -0
- package/dist/atlas/public.js +21 -0
- package/dist/atlas/public.js.map +1 -0
- package/dist/atlas/regime.d.ts +171 -0
- package/dist/atlas/regime.d.ts.map +1 -0
- package/dist/atlas/regime.js +309 -0
- package/dist/atlas/regime.js.map +1 -0
- package/dist/atlas/serialize.d.ts +50 -0
- package/dist/atlas/serialize.d.ts.map +1 -0
- package/dist/atlas/serialize.js +180 -0
- package/dist/atlas/serialize.js.map +1 -0
- package/dist/atlas/statement.d.ts +165 -0
- package/dist/atlas/statement.d.ts.map +1 -0
- package/dist/atlas/statement.js +176 -0
- package/dist/atlas/statement.js.map +1 -0
- package/dist/atlas/types.d.ts +325 -0
- package/dist/atlas/types.d.ts.map +1 -0
- package/dist/atlas/types.js +61 -0
- package/dist/atlas/types.js.map +1 -0
- package/dist/atlas/waves/bridges-closure.d.ts +39 -0
- package/dist/atlas/waves/bridges-closure.d.ts.map +1 -0
- package/dist/atlas/waves/bridges-closure.js +226 -0
- package/dist/atlas/waves/bridges-closure.js.map +1 -0
- package/dist/atlas/waves/bridges.d.ts +49 -0
- package/dist/atlas/waves/bridges.d.ts.map +1 -0
- package/dist/atlas/waves/bridges.js +266 -0
- package/dist/atlas/waves/bridges.js.map +1 -0
- package/dist/atlas/waves/index.d.ts +16 -0
- package/dist/atlas/waves/index.d.ts.map +1 -0
- package/dist/atlas/waves/index.js +23 -0
- package/dist/atlas/waves/index.js.map +1 -0
- package/dist/atlas/waves/models.d.ts +29 -0
- package/dist/atlas/waves/models.d.ts.map +1 -0
- package/dist/atlas/waves/models.js +127 -0
- package/dist/atlas/waves/models.js.map +1 -0
- package/dist/atlas/waves/numerics.d.ts +149 -0
- package/dist/atlas/waves/numerics.d.ts.map +1 -0
- package/dist/atlas/waves/numerics.js +218 -0
- package/dist/atlas/waves/numerics.js.map +1 -0
- package/dist/atlas/witness-artifact.d.ts +65 -0
- package/dist/atlas/witness-artifact.d.ts.map +1 -0
- package/dist/atlas/witness-artifact.js +78 -0
- package/dist/atlas/witness-artifact.js.map +1 -0
- package/dist/atlas/witness-numeric.d.ts +81 -0
- package/dist/atlas/witness-numeric.d.ts.map +1 -0
- package/dist/atlas/witness-numeric.js +105 -0
- package/dist/atlas/witness-numeric.js.map +1 -0
- package/dist/atlas/witness-result.d.ts +77 -0
- package/dist/atlas/witness-result.d.ts.map +1 -0
- package/dist/atlas/witness-result.js +39 -0
- package/dist/atlas/witness-result.js.map +1 -0
- package/dist/atlas/witness-specs.d.ts +110 -0
- package/dist/atlas/witness-specs.d.ts.map +1 -0
- package/dist/atlas/witness-specs.js +372 -0
- package/dist/atlas/witness-specs.js.map +1 -0
- package/dist/atlas/witness-symbolic.d.ts +79 -0
- package/dist/atlas/witness-symbolic.d.ts.map +1 -0
- package/dist/atlas/witness-symbolic.js +140 -0
- package/dist/atlas/witness-symbolic.js.map +1 -0
- package/dist/atlas/witnesses/quantum-support.d.ts +50 -0
- package/dist/atlas/witnesses/quantum-support.d.ts.map +1 -0
- package/dist/atlas/witnesses/quantum-support.js +48 -0
- package/dist/atlas/witnesses/quantum-support.js.map +1 -0
- package/dist/bridges/be11-decoherence-confrontation.js.map +1 -1
- package/dist/bridges/be21-kss-confrontation.js.map +1 -1
- package/dist/bridges/be23-planckian-confrontation.js.map +1 -1
- package/dist/bridges/be35-bootstrap-confrontation.js.map +1 -1
- package/dist/bridges/be36-gw170817-confrontation.js.map +1 -1
- package/dist/bridges/be37-cassini-confrontation.js.map +1 -1
- package/dist/bridges/be48-collapse-confrontation.js.map +1 -1
- package/dist/bridges/be51-lensing-confrontation.d.ts.map +1 -1
- package/dist/bridges/be51-lensing-confrontation.js +5 -3
- package/dist/bridges/be51-lensing-confrontation.js.map +1 -1
- package/dist/bridges/be52-mercury-confrontation.d.ts.map +1 -1
- package/dist/bridges/be52-mercury-confrontation.js +4 -1
- package/dist/bridges/be52-mercury-confrontation.js.map +1 -1
- package/dist/bridges/be55-quantum-hall-confrontation.js.map +1 -1
- package/dist/bridges/be56-casimir-confrontation.js.map +1 -1
- package/dist/bridges/be58-johnson-nyquist-confrontation.js.map +1 -1
- package/dist/bridges/be59-ac-josephson-confrontation.js.map +1 -1
- package/dist/bridges/be60-fractional-qh-confrontation.js.map +1 -1
- package/dist/bridges/be61-wiedemann-franz-confrontation.js.map +1 -1
- package/dist/bridges/be62-bcs-gap-confrontation.js.map +1 -1
- package/dist/bridges/be63-chandrasekhar-mass-confrontation.js.map +1 -1
- package/dist/bridges/be64-eddington-luminosity-confrontation.js.map +1 -1
- package/dist/bridges/be65-jeans-mass-confrontation.js.map +1 -1
- package/dist/bridges/bridge-equations.d.ts +2 -2
- package/dist/bridges/bridge-equations.d.ts.map +1 -1
- package/dist/bridges/bridge-equations.js +2 -2
- package/dist/bridges/bridge-equations.js.map +1 -1
- package/dist/bridges/catalog-adapter.d.ts.map +1 -1
- package/dist/bridges/catalog-adapter.js.map +1 -1
- package/dist/bridges/confrontations.d.ts.map +1 -1
- package/dist/bridges/confrontations.js +7 -0
- package/dist/bridges/confrontations.js.map +1 -1
- package/dist/bridges/equations/_be-helpers.d.ts +2 -2
- package/dist/bridges/equations/_be-helpers.js +2 -2
- package/dist/bridges/equations/be-20-vacuum-energy.js.map +1 -1
- package/dist/bridges/equations/be-35-conformal-bootstrap.d.ts +59 -72
- package/dist/bridges/equations/be-35-conformal-bootstrap.d.ts.map +1 -1
- package/dist/bridges/equations/be-35-conformal-bootstrap.js +66 -98
- package/dist/bridges/equations/be-35-conformal-bootstrap.js.map +1 -1
- package/dist/bridges/equations/be-48-grw-localization.d.ts +9 -8
- package/dist/bridges/equations/be-48-grw-localization.d.ts.map +1 -1
- package/dist/bridges/equations/be-48-grw-localization.js +9 -8
- package/dist/bridges/equations/be-48-grw-localization.js.map +1 -1
- package/dist/bridges/gravitational-lensing.d.ts +10 -0
- package/dist/bridges/gravitational-lensing.d.ts.map +1 -1
- package/dist/bridges/gravitational-lensing.js.map +1 -1
- package/dist/bridges/index.d.ts +125 -7
- package/dist/bridges/index.d.ts.map +1 -1
- package/dist/bridges/index.js +483 -20
- package/dist/bridges/index.js.map +1 -1
- package/dist/bridges/observations/types.d.ts +14 -0
- package/dist/bridges/observations/types.d.ts.map +1 -1
- package/dist/bridges/observations/types.js.map +1 -1
- package/dist/bridges/perihelion-precession.d.ts +10 -0
- package/dist/bridges/perihelion-precession.d.ts.map +1 -1
- package/dist/bridges/perihelion-precession.js.map +1 -1
- package/dist/bridges/rhs-registry.js +2 -2
- package/dist/canonical/canonical-equation.d.ts +15 -0
- package/dist/canonical/canonical-equation.d.ts.map +1 -1
- package/dist/canonical/entries/_l1-build.d.ts +1 -1
- package/dist/canonical/entries/_l1-build.d.ts.map +1 -1
- package/dist/canonical/entries/atomic.d.ts.map +1 -1
- package/dist/canonical/entries/atomic.js +23 -0
- package/dist/canonical/entries/atomic.js.map +1 -1
- package/dist/canonical/entries/nonmonomial.d.ts.map +1 -1
- package/dist/canonical/entries/nonmonomial.js +93 -0
- package/dist/canonical/entries/nonmonomial.js.map +1 -1
- package/dist/canonical/normal-form.js.map +1 -1
- package/dist/canonical/residual.d.ts +28 -0
- package/dist/canonical/residual.d.ts.map +1 -0
- package/dist/canonical/residual.js +31 -0
- package/dist/canonical/residual.js.map +1 -0
- package/dist/cli/command.d.ts +8 -0
- package/dist/cli/command.d.ts.map +1 -1
- package/dist/cli/command.js +10 -0
- package/dist/cli/command.js.map +1 -1
- package/dist/cli/commands/atlas.d.ts +3 -0
- package/dist/cli/commands/atlas.d.ts.map +1 -0
- package/dist/cli/commands/atlas.js +158 -0
- package/dist/cli/commands/atlas.js.map +1 -0
- package/dist/cli/commands/audit.js +3 -3
- package/dist/cli/commands/candidates.js +3 -3
- package/dist/cli/commands/canonical.js +3 -3
- package/dist/cli/commands/confront.d.ts.map +1 -1
- package/dist/cli/commands/confront.js +8 -1
- package/dist/cli/commands/confront.js.map +1 -1
- package/dist/cli/commands/connectors.js +7 -7
- package/dist/cli/commands/coverage.js +3 -3
- package/dist/cli/commands/derive.d.ts.map +1 -1
- package/dist/cli/commands/derive.js +40 -9
- package/dist/cli/commands/derive.js.map +1 -1
- package/dist/cli/commands/discover.d.ts.map +1 -1
- package/dist/cli/commands/discover.js +46 -27
- package/dist/cli/commands/discover.js.map +1 -1
- package/dist/cli/commands/evaluate.d.ts.map +1 -1
- package/dist/cli/commands/evaluate.js +2 -1
- package/dist/cli/commands/evaluate.js.map +1 -1
- package/dist/cli/commands/explain.d.ts.map +1 -1
- package/dist/cli/commands/explain.js +19 -6
- package/dist/cli/commands/explain.js.map +1 -1
- package/dist/cli/commands/index.d.ts +3 -0
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/index.js +3 -0
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/map.d.ts.map +1 -1
- package/dist/cli/commands/map.js +187 -36
- package/dist/cli/commands/map.js.map +1 -1
- package/dist/cli/commands/path.d.ts +3 -0
- package/dist/cli/commands/path.d.ts.map +1 -0
- package/dist/cli/commands/path.js +228 -0
- package/dist/cli/commands/path.js.map +1 -0
- package/dist/cli/commands/predict.js +4 -4
- package/dist/cli/commands/priority.js +2 -2
- package/dist/cli/commands/probe.d.ts.map +1 -1
- package/dist/cli/commands/probe.js +59 -2
- package/dist/cli/commands/probe.js.map +1 -1
- package/dist/cli/commands/recover.d.ts.map +1 -1
- package/dist/cli/commands/recover.js +25 -6
- package/dist/cli/commands/recover.js.map +1 -1
- package/dist/cli/commands/regime.d.ts +41 -0
- package/dist/cli/commands/regime.d.ts.map +1 -0
- package/dist/cli/commands/regime.js +243 -0
- package/dist/cli/commands/regime.js.map +1 -0
- package/dist/cli/commands/symbolic.js +5 -5
- package/dist/cli/errors.d.ts +13 -1
- package/dist/cli/errors.d.ts.map +1 -1
- package/dist/cli/errors.js +13 -1
- package/dist/cli/errors.js.map +1 -1
- package/dist/cli/graphs.d.ts.map +1 -1
- package/dist/cli/graphs.js +5 -1
- package/dist/cli/graphs.js.map +1 -1
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +29 -2
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/output.d.ts +6 -1
- package/dist/cli/output.d.ts.map +1 -1
- package/dist/cli/output.js.map +1 -1
- package/dist/cli/version.js.map +1 -1
- package/dist/cli-api.d.ts +21 -1
- package/dist/cli-api.d.ts.map +1 -1
- package/dist/cli-api.js +23 -1
- package/dist/cli-api.js.map +1 -1
- package/dist/composition/axis-audit.js.map +1 -1
- package/dist/composition/bridge-prediction.d.ts.map +1 -1
- package/dist/composition/bridge-prediction.js +0 -0
- package/dist/composition/bridge-prediction.js.map +1 -1
- package/dist/composition/canonical-compare.d.ts +65 -0
- package/dist/composition/canonical-compare.d.ts.map +1 -0
- package/dist/composition/canonical-compare.js +237 -0
- package/dist/composition/canonical-compare.js.map +1 -0
- package/dist/composition/canonical-graph.d.ts +2 -2
- package/dist/composition/canonical-graph.js +2 -2
- package/dist/composition/canonical-graph.js.map +1 -1
- package/dist/composition/canonical-prefactors.d.ts +32 -0
- package/dist/composition/canonical-prefactors.d.ts.map +1 -0
- package/dist/composition/canonical-prefactors.js +80 -0
- package/dist/composition/canonical-prefactors.js.map +1 -0
- package/dist/composition/compose-symbolic.d.ts.map +1 -1
- package/dist/composition/compose-symbolic.js.map +1 -1
- package/dist/composition/compose.d.ts.map +1 -1
- package/dist/composition/compose.js +80 -1
- package/dist/composition/compose.js.map +1 -1
- package/dist/composition/consequence.js.map +1 -1
- package/dist/composition/discovery.d.ts +20 -3
- package/dist/composition/discovery.d.ts.map +1 -1
- package/dist/composition/discovery.js +30 -4
- package/dist/composition/discovery.js.map +1 -1
- package/dist/composition/edge.d.ts +64 -0
- package/dist/composition/edge.d.ts.map +1 -1
- package/dist/composition/edge.js +29 -0
- package/dist/composition/edge.js.map +1 -1
- package/dist/composition/edges/calibration.d.ts.map +1 -1
- package/dist/composition/edges/calibration.js +46 -0
- package/dist/composition/edges/calibration.js.map +1 -1
- package/dist/composition/edges/catalog-quantum.d.ts.map +1 -1
- package/dist/composition/edges/catalog-quantum.js +9 -0
- package/dist/composition/edges/catalog-quantum.js.map +1 -1
- package/dist/composition/edges/catalog-tranche.d.ts.map +1 -1
- package/dist/composition/edges/catalog-tranche.js +18 -0
- package/dist/composition/edges/catalog-tranche.js.map +1 -1
- package/dist/composition/enumerate.js.map +1 -1
- package/dist/composition/explain.d.ts +9 -1
- package/dist/composition/explain.d.ts.map +1 -1
- package/dist/composition/explain.js +34 -8
- package/dist/composition/explain.js.map +1 -1
- package/dist/composition/expr-eval.d.ts.map +1 -1
- package/dist/composition/expr-eval.js.map +1 -1
- package/dist/composition/expr-simplify.d.ts +13 -0
- package/dist/composition/expr-simplify.d.ts.map +1 -1
- package/dist/composition/expr-simplify.js +25 -0
- package/dist/composition/expr-simplify.js.map +1 -1
- package/dist/composition/expr-subst.js.map +1 -1
- package/dist/composition/graph-viz-svg.d.ts.map +1 -1
- package/dist/composition/graph-viz.d.ts +118 -1
- package/dist/composition/graph-viz.d.ts.map +1 -1
- package/dist/composition/graph-viz.js +189 -6
- package/dist/composition/graph-viz.js.map +1 -1
- package/dist/composition/grounding.d.ts.map +1 -1
- package/dist/composition/grounding.js +6 -1
- package/dist/composition/grounding.js.map +1 -1
- package/dist/composition/identifiability.js.map +1 -1
- package/dist/composition/index.d.ts +4 -2
- package/dist/composition/index.d.ts.map +1 -1
- package/dist/composition/index.js +2 -1
- package/dist/composition/index.js.map +1 -1
- package/dist/composition/poster-source.d.ts +153 -0
- package/dist/composition/poster-source.d.ts.map +1 -0
- package/dist/composition/poster-source.js +183 -0
- package/dist/composition/poster-source.js.map +1 -0
- package/dist/composition/probe/backend-protocol.d.ts +34 -1
- package/dist/composition/probe/backend-protocol.d.ts.map +1 -1
- package/dist/composition/probe/backend-protocol.js +9 -2
- package/dist/composition/probe/backend-protocol.js.map +1 -1
- package/dist/composition/probe/candidate-store.d.ts.map +1 -1
- package/dist/composition/probe/corpus.d.ts +12 -0
- package/dist/composition/probe/corpus.d.ts.map +1 -1
- package/dist/composition/probe/corpus.js +100 -0
- package/dist/composition/probe/corpus.js.map +1 -1
- package/dist/composition/probe/generator.d.ts +14 -0
- package/dist/composition/probe/generator.d.ts.map +1 -1
- package/dist/composition/probe/generator.js +24 -2
- package/dist/composition/probe/generator.js.map +1 -1
- package/dist/composition/probe/limits.js.map +1 -1
- package/dist/composition/probe/pipeline.d.ts +5 -0
- package/dist/composition/probe/pipeline.d.ts.map +1 -1
- package/dist/composition/probe/pipeline.js +20 -3
- package/dist/composition/probe/pipeline.js.map +1 -1
- package/dist/composition/probe/problem.js.map +1 -1
- package/dist/composition/probe/report.d.ts.map +1 -1
- package/dist/composition/probe/report.js +2 -0
- package/dist/composition/probe/report.js.map +1 -1
- package/dist/composition/probe/residual.d.ts.map +1 -1
- package/dist/composition/probe/residual.js.map +1 -1
- package/dist/composition/probe/search-budget.js.map +1 -1
- package/dist/composition/proposed-bridges.d.ts +2 -2
- package/dist/composition/proposed-bridges.d.ts.map +1 -1
- package/dist/composition/proposed-bridges.js +1 -1
- package/dist/composition/proposed-bridges.js.map +1 -1
- package/dist/composition/retrodiction.js.map +1 -1
- package/dist/composition/uncertainty.d.ts +52 -2
- package/dist/composition/uncertainty.d.ts.map +1 -1
- package/dist/composition/uncertainty.js +38 -2
- package/dist/composition/uncertainty.js.map +1 -1
- package/dist/composition/user-equation.d.ts.map +1 -1
- package/dist/core/constants.d.ts +13 -0
- package/dist/core/constants.d.ts.map +1 -1
- package/dist/core/constants.js +13 -0
- package/dist/core/constants.js.map +1 -1
- package/dist/core/flux-rules.d.ts.map +1 -1
- package/dist/core/flux-rules.js.map +1 -1
- package/dist/core/labeled-tensor.d.ts.map +1 -1
- package/dist/core/regime-registry.d.ts.map +1 -1
- package/dist/core/regime-rule-install.js.map +1 -1
- package/dist/core/tensor.d.ts.map +1 -1
- package/dist/core/tensor.js.map +1 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/diff/bridge-ast-gradient.js.map +1 -1
- package/dist/diff/bridge-gradient.d.ts +1 -1
- package/dist/diff/bridge-gradient.js +1 -1
- package/dist/dimensional/ast-types.d.ts +31 -1
- package/dist/dimensional/ast-types.d.ts.map +1 -1
- package/dist/dimensional/bridge-check.d.ts +1 -1
- package/dist/dimensional/bridge-check.js +1 -1
- package/dist/dimensional/buckingham.d.ts.map +1 -1
- package/dist/dimensional/connection.d.ts +2 -0
- package/dist/dimensional/connection.d.ts.map +1 -1
- package/dist/dimensional/connection.js +2 -0
- package/dist/dimensional/connection.js.map +1 -1
- package/dist/dimensional/curvature-composite.d.ts +5 -3
- package/dist/dimensional/curvature-composite.d.ts.map +1 -1
- package/dist/dimensional/curvature-composite.js +1 -0
- package/dist/dimensional/curvature-composite.js.map +1 -1
- package/dist/dimensional/curvature-invariants.d.ts +2 -0
- package/dist/dimensional/curvature-invariants.d.ts.map +1 -1
- package/dist/dimensional/curvature-invariants.js +2 -0
- package/dist/dimensional/curvature-invariants.js.map +1 -1
- package/dist/dimensional/dimension-spec.d.ts.map +1 -1
- package/dist/dimensional/einstein-equation.d.ts +3 -3
- package/dist/dimensional/einstein-equation.js +3 -3
- package/dist/dimensional/errors.d.ts.map +1 -1
- package/dist/dimensional/metric.d.ts +5 -2
- package/dist/dimensional/metric.d.ts.map +1 -1
- package/dist/dimensional/metric.js +5 -2
- package/dist/dimensional/metric.js.map +1 -1
- package/dist/dimensional/tensor-trace.js.map +1 -1
- package/dist/dimensional/validator-registry.js.map +1 -1
- package/dist/dimensional/validator.d.ts +3 -2
- package/dist/dimensional/validator.d.ts.map +1 -1
- package/dist/dimensional/validator.js +23 -4
- package/dist/dimensional/validator.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/numerical/curvature-lowering-helpers.d.ts.map +1 -1
- package/dist/numerical/curvature-lowering-helpers.js +104 -0
- package/dist/numerical/curvature-lowering-helpers.js.map +1 -1
- package/dist/numerical/errors.d.ts.map +1 -1
- package/dist/numerical/errors.js.map +1 -1
- package/dist/numerical/float64-engine.d.ts.map +1 -1
- package/dist/numerical/float64-engine.js +51 -24
- package/dist/numerical/float64-engine.js.map +1 -1
- package/dist/numerical/formula-dimension.d.ts.map +1 -1
- package/dist/numerical/formula-dimension.js.map +1 -1
- package/dist/numerical/formula.d.ts.map +1 -1
- package/dist/numerical/formula.js.map +1 -1
- package/dist/numerical/geometrized.d.ts.map +1 -1
- package/dist/numerical/gl4-integrator.d.ts +3 -3
- package/dist/numerical/gl4-integrator.js +3 -3
- package/dist/numerical/killing.d.ts +47 -5
- package/dist/numerical/killing.d.ts.map +1 -1
- package/dist/numerical/killing.js +41 -3
- package/dist/numerical/killing.js.map +1 -1
- package/dist/numerical/klein-gordon.d.ts +2 -2
- package/dist/numerical/klein-gordon.js +2 -2
- package/dist/numerical/lowering.d.ts +2 -2
- package/dist/numerical/lowering.d.ts.map +1 -1
- package/dist/numerical/lowering.js +5 -3
- package/dist/numerical/lowering.js.map +1 -1
- package/dist/numerical/mathts-engine.d.ts.map +1 -1
- package/dist/numerical/mathts-engine.js.map +1 -1
- package/dist/numerical/metric-inverse.js.map +1 -1
- package/dist/numerical/perihelion-finder.d.ts +15 -13
- package/dist/numerical/perihelion-finder.d.ts.map +1 -1
- package/dist/numerical/perihelion-finder.js +15 -13
- package/dist/numerical/perihelion-finder.js.map +1 -1
- package/dist/numerical/weyl-lowering.d.ts.map +1 -1
- package/dist/numerical/weyl-lowering.js +90 -40
- package/dist/numerical/weyl-lowering.js.map +1 -1
- package/package.json +163 -104
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Atlas Phase 4, S4.4 — the numerics behind the diffusion family's witnesses.
|
|
3
|
+
*
|
|
4
|
+
* Each function evaluates one claim at a RESOLUTION, so the numeric witness
|
|
5
|
+
* runner can evaluate it twice and record how the error shrank. None of them
|
|
6
|
+
* asserts an order of convergence; the runner reports the ratio and a reviewer
|
|
7
|
+
* reads it (Phase 4 design note §2.3).
|
|
8
|
+
*
|
|
9
|
+
* @module atlas/diffusion/numerics
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* The Gaussian solution of `∂c/∂t = D ∂²c/∂x²` from a point source of unit
|
|
13
|
+
* mass, evaluated at `x`: `(4πDt)^{-1/2} exp(−x²/(4Dt))`.
|
|
14
|
+
*
|
|
15
|
+
* @internal
|
|
16
|
+
*/
|
|
17
|
+
export function diffusionKernel(x, t, D) {
|
|
18
|
+
return Math.exp(-(x * x) / (4 * D * t)) / Math.sqrt(4 * Math.PI * D * t);
|
|
19
|
+
}
|
|
20
|
+
/** `ln C(n, k)` by summing logs — exact enough for the n ≤ 10⁵ used here. */
|
|
21
|
+
function logBinomial(n, k) {
|
|
22
|
+
let s = 0;
|
|
23
|
+
for (let i = 1; i <= k; i++)
|
|
24
|
+
s += Math.log(n - k + i) - Math.log(i);
|
|
25
|
+
return s;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* WD1 — the probability DENSITY at the origin of a symmetric lattice random
|
|
29
|
+
* walk after `steps` steps, under the closure `D = Δx²/(2Δt)` at fixed `D`
|
|
30
|
+
* and `t`.
|
|
31
|
+
*
|
|
32
|
+
* With `Δt = t/steps` and `Δx = √(2DΔt)`, the walker sits at the origin with
|
|
33
|
+
* probability `C(steps, steps/2)/2^steps`. Only every other site is reachable
|
|
34
|
+
* after an even number of steps, so the probability is spread over a cell of
|
|
35
|
+
* width `2Δx`, and the density is that probability divided by `2Δx`.
|
|
36
|
+
* As `steps → ∞` it converges to {@link diffusionKernel}`(0, t, D)`.
|
|
37
|
+
*
|
|
38
|
+
* @param steps - the resolution; rounded up to the next even integer.
|
|
39
|
+
* @internal
|
|
40
|
+
*/
|
|
41
|
+
export function randomWalkCentralDensity(steps, D, t) {
|
|
42
|
+
const n = 2 * Math.ceil(steps / 2);
|
|
43
|
+
const dt = t / n;
|
|
44
|
+
const dx = Math.sqrt(2 * D * dt);
|
|
45
|
+
const logP = logBinomial(n, n / 2) - n * Math.LN2;
|
|
46
|
+
return Math.exp(logP) / (2 * dx);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* WD1b — the random walk's density at lattice site `site` after `steps` steps
|
|
50
|
+
* (same closure and grid as {@link randomWalkCentralDensity}). Exactly zero
|
|
51
|
+
* outside the light cone `|site| > steps` and on sites of the wrong parity.
|
|
52
|
+
*
|
|
53
|
+
* @internal
|
|
54
|
+
*/
|
|
55
|
+
export function randomWalkDensity(site, steps, D, t) {
|
|
56
|
+
const n = 2 * Math.ceil(steps / 2);
|
|
57
|
+
if (Math.abs(site) > n || (site + n) % 2 !== 0)
|
|
58
|
+
return 0;
|
|
59
|
+
const dx = Math.sqrt((2 * D * t) / n);
|
|
60
|
+
const k = (n + site) / 2;
|
|
61
|
+
return Math.exp(logBinomial(n, k) - n * Math.LN2) / (2 * dx);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* The exact solution of the DIFFUSION equation with coefficient `D` from the
|
|
65
|
+
* WD2 initial condition: `√(s0/(s0 + D t)) · exp(−x²/(4(s0 + D t)))`.
|
|
66
|
+
*
|
|
67
|
+
* @internal
|
|
68
|
+
*/
|
|
69
|
+
export function gaussianSpread(x, t, D, s0) {
|
|
70
|
+
const s = s0 + D * t;
|
|
71
|
+
return Math.sqrt(s0 / s) * Math.exp(-(x * x) / (4 * s));
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* WD2 — the temperature at `x = 0, t = tEnd` from an explicit FTCS solution of
|
|
75
|
+
* the HEAT equation `ρ c_p ∂T/∂t = κ ∂²T/∂x²` on `cells` intervals.
|
|
76
|
+
*
|
|
77
|
+
* The heat equation is solved in its OWN variables: the step uses `κ`, `ρ` and
|
|
78
|
+
* `c_p`, never a pre-combined `D`. Comparing the result against
|
|
79
|
+
* {@link gaussianSpread} with `D = κ/(ρ c_p)` is what tests the dictionary.
|
|
80
|
+
* The mesh ratio `κΔt/(ρ c_p Δx²)` is held at or below 1/4, inside the FTCS
|
|
81
|
+
* stability limit of 1/2, so refinement halves `Δx` and quarters `Δt`.
|
|
82
|
+
*
|
|
83
|
+
* @param cells - the resolution: the number of spatial intervals (made even so
|
|
84
|
+
* `x = 0` is a node).
|
|
85
|
+
* @internal
|
|
86
|
+
*/
|
|
87
|
+
export function heatFtcsCentre(cells, f) {
|
|
88
|
+
const nx = 2 * Math.ceil(cells / 2);
|
|
89
|
+
const dx = (2 * f.halfWidth) / nx;
|
|
90
|
+
const capacity = f.rho * f.cp;
|
|
91
|
+
const dtMax = (0.25 * capacity * dx * dx) / f.kappa;
|
|
92
|
+
const steps = Math.ceil(f.tEnd / dtMax);
|
|
93
|
+
const dt = f.tEnd / steps;
|
|
94
|
+
const r = (f.kappa * dt) / (capacity * dx * dx);
|
|
95
|
+
let u = new Float64Array(nx + 1);
|
|
96
|
+
let next = new Float64Array(nx + 1);
|
|
97
|
+
// The initial condition exp(−x²/(4 s0)) involves no diffusivity at all.
|
|
98
|
+
for (let i = 0; i <= nx; i++) {
|
|
99
|
+
const x = -f.halfWidth + i * dx;
|
|
100
|
+
u[i] = Math.exp(-(x * x) / (4 * f.s0));
|
|
101
|
+
}
|
|
102
|
+
u[0] = 0;
|
|
103
|
+
u[nx] = 0;
|
|
104
|
+
for (let n = 1; n <= steps; n++) {
|
|
105
|
+
for (let i = 1; i < nx; i++) {
|
|
106
|
+
next[i] = u[i] + r * (u[i + 1] - 2 * u[i] + u[i - 1]);
|
|
107
|
+
}
|
|
108
|
+
next[0] = 0;
|
|
109
|
+
next[nx] = 0;
|
|
110
|
+
[u, next] = [next, u];
|
|
111
|
+
}
|
|
112
|
+
return u[nx / 2];
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* WD3 — the finite-difference residual `|∂_τ φ − (ħ/2m) ∂²_x φ|` of the
|
|
116
|
+
* Wick-rotated free kernel `φ(x, τ)` (`witnesses/quantum-support.ts`, W5) at
|
|
117
|
+
* one point, with step `h = h0/resolution` in both variables.
|
|
118
|
+
*
|
|
119
|
+
* The residual measures whether the Wick rotation `t = −iτ` of the free
|
|
120
|
+
* Schrödinger equation really lands on the DIFFUSION equation with
|
|
121
|
+
* `D = ħ/(2m)`. Its exact value is zero; the finite-difference estimate
|
|
122
|
+
* approaches zero as `h` shrinks, and the runner records how fast.
|
|
123
|
+
*
|
|
124
|
+
* @internal
|
|
125
|
+
*/
|
|
126
|
+
export function wickHeatResidual(resolution, f, kernel) {
|
|
127
|
+
const h = f.h0 / resolution;
|
|
128
|
+
const phi = (x, tau) => kernel(x, tau, f.s, f.hbar, f.m);
|
|
129
|
+
const dTau = (phi(f.x, f.tau + h) - phi(f.x, f.tau - h)) / (2 * h);
|
|
130
|
+
const dXX = (phi(f.x + h, f.tau) - 2 * phi(f.x, f.tau) + phi(f.x - h, f.tau)) / (h * h);
|
|
131
|
+
return Math.abs(dTau - (f.hbar / (2 * f.m)) * dXX);
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* WD3b — `∫ φ(x, τ)² dx` of the Wick-rotated free kernel, by the trapezoid
|
|
135
|
+
* rule over `[−halfWidth, halfWidth]`. The Schrödinger norm `∫|ψ|² dx` is
|
|
136
|
+
* conserved; this one DECAYS with τ, which is the unitarity the continuation
|
|
137
|
+
* does not preserve.
|
|
138
|
+
*
|
|
139
|
+
* @internal
|
|
140
|
+
*/
|
|
141
|
+
export function wickKernelSquaredNorm(tau, f, kernel, halfWidth = 20, cells = 4000) {
|
|
142
|
+
const dx = (2 * halfWidth) / cells;
|
|
143
|
+
let sum = 0;
|
|
144
|
+
for (let i = 0; i <= cells; i++) {
|
|
145
|
+
const v = kernel(-halfWidth + i * dx, tau, f.s, f.hbar, f.m);
|
|
146
|
+
sum += (i === 0 || i === cells ? 0.5 : 1) * v * v;
|
|
147
|
+
}
|
|
148
|
+
return sum * dx;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* WD4 — `⟨x²⟩(t) / (2Dt)` for the Langevin model `m v̇ = −γv + ξ`,
|
|
152
|
+
* `⟨ξ(t)ξ(t′)⟩ = 2γ k_B T δ(t − t′)`, started from x = 0 with a thermalized
|
|
153
|
+
* velocity, at `t = resolution · τ_p` where `τ_p = m/γ`.
|
|
154
|
+
*
|
|
155
|
+
* The second moments are integrated from the LANGEVIN model's own moment
|
|
156
|
+
* equations, `d⟨x²⟩/dt = 2⟨xv⟩`, `d⟨xv⟩/dt = ⟨v²⟩ − (γ/m)⟨xv⟩`, with
|
|
157
|
+
* `⟨v²⟩ = k_B T/m` held at equipartition, by RK4 on a fine fixed grid. The
|
|
158
|
+
* diffusion coefficient `D = k_B T/γ` (Einstein) enters only the DENOMINATOR:
|
|
159
|
+
* the ratio tends to 1 in the diffusive regime `t ≫ τ_p`.
|
|
160
|
+
*
|
|
161
|
+
* @internal
|
|
162
|
+
*/
|
|
163
|
+
export function langevinMsdRatio(resolution, f) {
|
|
164
|
+
const tauP = f.m / f.gamma;
|
|
165
|
+
const tEnd = resolution * tauP;
|
|
166
|
+
const v2 = f.kT / f.m;
|
|
167
|
+
const steps = Math.max(2000, Math.ceil(200 * resolution));
|
|
168
|
+
const h = tEnd / steps;
|
|
169
|
+
let x2 = 0;
|
|
170
|
+
let xv = 0;
|
|
171
|
+
const rhs = (xvNow) => [2 * xvNow, v2 - xvNow / tauP];
|
|
172
|
+
for (let n = 0; n < steps; n++) {
|
|
173
|
+
const [a1, b1] = rhs(xv);
|
|
174
|
+
const [a2, b2] = rhs(xv + 0.5 * h * b1);
|
|
175
|
+
const [a3, b3] = rhs(xv + 0.5 * h * b2);
|
|
176
|
+
const [a4, b4] = rhs(xv + h * b3);
|
|
177
|
+
x2 += (h / 6) * (a1 + 2 * a2 + 2 * a3 + a4);
|
|
178
|
+
xv += (h / 6) * (b1 + 2 * b2 + 2 * b3 + b4);
|
|
179
|
+
}
|
|
180
|
+
const D = f.kT / f.gamma;
|
|
181
|
+
return x2 / (2 * D * tEnd);
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* The slow decay rate of a Fourier mode of the TELEGRAPH equation
|
|
185
|
+
* `τ u_tt + u_t = D u_xx`, divided by the diffusion rate `D q²`:
|
|
186
|
+
* `(1 − √(1 − 4ε)) / (2ε)` with `ε = τ D q²`. Tends to 1 as τ → 0; complex
|
|
187
|
+
* (oscillatory) for `ε > 1/4`, where it returns NaN.
|
|
188
|
+
*
|
|
189
|
+
* @internal
|
|
190
|
+
*/
|
|
191
|
+
export function telegraphSlowRateRatio(tau, D, q) {
|
|
192
|
+
const eps = tau * D * q * q;
|
|
193
|
+
if (eps === 0)
|
|
194
|
+
return 1;
|
|
195
|
+
const disc = 1 - 4 * eps;
|
|
196
|
+
if (disc < 0)
|
|
197
|
+
return Number.NaN;
|
|
198
|
+
return (1 - Math.sqrt(disc)) / (2 * eps);
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* The oscillation frequency of a telegraph mode in its underdamped range,
|
|
202
|
+
* divided by the undamped wave frequency `c q` with `c² = D/τ`:
|
|
203
|
+
* `√(1 − 1/(4ε))`, `ε = τ D q²`. Tends to 1 as ε grows.
|
|
204
|
+
*
|
|
205
|
+
* @internal
|
|
206
|
+
*/
|
|
207
|
+
export function telegraphWaveFrequencyRatio(tau, D, q) {
|
|
208
|
+
const eps = tau * D * q * q;
|
|
209
|
+
if (eps <= 0.25)
|
|
210
|
+
return Number.NaN;
|
|
211
|
+
return Math.sqrt(1 - 1 / (4 * eps));
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* WD8 — the largest deviation from the LINEAR steady profile (the Laplace
|
|
215
|
+
* equation's solution) of an FTCS heat solution with fixed end temperatures,
|
|
216
|
+
* started from a profile with a sin(πx/ℓ) bump, at `t = resolution · t0`.
|
|
217
|
+
* Tends to zero as t → ∞: the steady state is the heat equation's attractor.
|
|
218
|
+
* `reference` replaces the linear profile the deviation is measured against.
|
|
219
|
+
*
|
|
220
|
+
* @internal
|
|
221
|
+
*/
|
|
222
|
+
export function heatSteadyDeviation(resolution, f, reference) {
|
|
223
|
+
const nx = f.cells;
|
|
224
|
+
const dx = f.ell / nx;
|
|
225
|
+
const dtMax = (0.25 * dx * dx) / f.alpha;
|
|
226
|
+
const tEnd = resolution * f.t0;
|
|
227
|
+
const steps = Math.ceil(tEnd / dtMax);
|
|
228
|
+
const dt = tEnd / steps;
|
|
229
|
+
const r = (f.alpha * dt) / (dx * dx);
|
|
230
|
+
const linear = (i) => f.tLeft + ((f.tRight - f.tLeft) * i) / nx;
|
|
231
|
+
let u = new Float64Array(nx + 1);
|
|
232
|
+
let next = new Float64Array(nx + 1);
|
|
233
|
+
for (let i = 0; i <= nx; i++)
|
|
234
|
+
u[i] = linear(i) + Math.sin((Math.PI * i) / nx);
|
|
235
|
+
next[0] = f.tLeft;
|
|
236
|
+
next[nx] = f.tRight;
|
|
237
|
+
for (let n = 0; n < steps; n++) {
|
|
238
|
+
for (let i = 1; i < nx; i++)
|
|
239
|
+
next[i] = u[i] + r * (u[i + 1] - 2 * u[i] + u[i - 1]);
|
|
240
|
+
[u, next] = [next, u];
|
|
241
|
+
}
|
|
242
|
+
// The deviation is measured against `reference` when given — the negative
|
|
243
|
+
// control uses a WRONG steady state here — and against the linear Laplace
|
|
244
|
+
// profile otherwise. The solver itself never sees the reference.
|
|
245
|
+
const ref = reference ?? ((i) => linear(i));
|
|
246
|
+
let worst = 0;
|
|
247
|
+
for (let i = 0; i <= nx; i++)
|
|
248
|
+
worst = Math.max(worst, Math.abs(u[i] - ref(i, nx)));
|
|
249
|
+
return worst;
|
|
250
|
+
}
|
|
251
|
+
//# sourceMappingURL=numerics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"numerics.js","sourceRoot":"","sources":["../../../src/atlas/diffusion/numerics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Phase 0 error algebra: composition of Lipschitz-plus-offset bounds.
|
|
3
|
+
*
|
|
4
|
+
* With `∘` read as OUTER-AFTER-INNER, a bound `(K, δ)` states
|
|
5
|
+
* `|f(x) − f̃(x̃)| ≤ K|x − x̃| + δ` in the bound's own norm. Composing an outer
|
|
6
|
+
* map onto an inner one therefore gives
|
|
7
|
+
*
|
|
8
|
+
* (K_o, δ_o) ∘ (K_i, δ_i) = (K_o·K_i, K_o·δ_i + δ_o)
|
|
9
|
+
*
|
|
10
|
+
* which is associative and NOT commutative. `IDENTITY_BOUND` is the two-sided
|
|
11
|
+
* identity, so `(bounds, ∘, IDENTITY_BOUND)` is a monoid.
|
|
12
|
+
*
|
|
13
|
+
* An exact equivalence contributes `IDENTITY_BOUND` **in the norms these
|
|
14
|
+
* Phase 0 bridges state** — not in every norm (design note §9 YELLOW (a)).
|
|
15
|
+
*
|
|
16
|
+
* @module atlas/error-algebra
|
|
17
|
+
*/
|
|
18
|
+
/** The `K`/`delta` pair an `ApproximationBound` composes through. @public */
|
|
19
|
+
export interface BoundPair {
|
|
20
|
+
readonly K: number;
|
|
21
|
+
readonly delta: number;
|
|
22
|
+
}
|
|
23
|
+
/** The two-sided identity of {@link composeBounds}: an exact, error-free map. @public */
|
|
24
|
+
export declare const IDENTITY_BOUND: BoundPair;
|
|
25
|
+
/**
|
|
26
|
+
* Compose two bounds, `outer` after `inner`.
|
|
27
|
+
*
|
|
28
|
+
* @public
|
|
29
|
+
*/
|
|
30
|
+
export declare function composeBounds(outer: BoundPair, inner: BoundPair): BoundPair;
|
|
31
|
+
/** Result of {@link composeBoundPath}. @public */
|
|
32
|
+
export interface ComposedPath {
|
|
33
|
+
readonly bound: BoundPair;
|
|
34
|
+
/**
|
|
35
|
+
* True when the path ended on a step with no Lipschitz constant: `bound`
|
|
36
|
+
* covers the prefix, and nothing is claimed past the final step.
|
|
37
|
+
*/
|
|
38
|
+
readonly terminal: boolean;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Fold a path of bounds in TRAVERSAL order — `[b1, b2]` means b1 then b2, so
|
|
42
|
+
* the composite is `b2 ∘ b1`.
|
|
43
|
+
*
|
|
44
|
+
* A `null` entry is a step whose Lipschitz constant is unknown. It is tolerated
|
|
45
|
+
* only as the LAST entry, where it terminates the claim; anywhere else the
|
|
46
|
+
* composite would be unbounded, and {@link MissingLipschitzError} is thrown
|
|
47
|
+
* rather than a number invented for it.
|
|
48
|
+
*
|
|
49
|
+
* @public
|
|
50
|
+
*/
|
|
51
|
+
export declare function composeBoundPath(bounds: readonly (BoundPair | null)[]): ComposedPath;
|
|
52
|
+
//# sourceMappingURL=error-algebra.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-algebra.d.ts","sourceRoot":"","sources":["../../src/atlas/error-algebra.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,6EAA6E;AAC7E,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,yFAAyF;AACzF,eAAO,MAAM,cAAc,EAAE,SAA8B,CAAC;AAE5D;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,GAAG,SAAS,CAE3E;AAED,kDAAkD;AAClD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,EAAE,GAAG,YAAY,CAgBpF"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Phase 0 error algebra: composition of Lipschitz-plus-offset bounds.
|
|
3
|
+
*
|
|
4
|
+
* With `∘` read as OUTER-AFTER-INNER, a bound `(K, δ)` states
|
|
5
|
+
* `|f(x) − f̃(x̃)| ≤ K|x − x̃| + δ` in the bound's own norm. Composing an outer
|
|
6
|
+
* map onto an inner one therefore gives
|
|
7
|
+
*
|
|
8
|
+
* (K_o, δ_o) ∘ (K_i, δ_i) = (K_o·K_i, K_o·δ_i + δ_o)
|
|
9
|
+
*
|
|
10
|
+
* which is associative and NOT commutative. `IDENTITY_BOUND` is the two-sided
|
|
11
|
+
* identity, so `(bounds, ∘, IDENTITY_BOUND)` is a monoid.
|
|
12
|
+
*
|
|
13
|
+
* An exact equivalence contributes `IDENTITY_BOUND` **in the norms these
|
|
14
|
+
* Phase 0 bridges state** — not in every norm (design note §9 YELLOW (a)).
|
|
15
|
+
*
|
|
16
|
+
* @module atlas/error-algebra
|
|
17
|
+
*/
|
|
18
|
+
import { MissingLipschitzError } from './types.js';
|
|
19
|
+
/** The two-sided identity of {@link composeBounds}: an exact, error-free map. @public */
|
|
20
|
+
export const IDENTITY_BOUND = { K: 1, delta: 0 };
|
|
21
|
+
/**
|
|
22
|
+
* Compose two bounds, `outer` after `inner`.
|
|
23
|
+
*
|
|
24
|
+
* @public
|
|
25
|
+
*/
|
|
26
|
+
export function composeBounds(outer, inner) {
|
|
27
|
+
return { K: outer.K * inner.K, delta: outer.K * inner.delta + outer.delta };
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Fold a path of bounds in TRAVERSAL order — `[b1, b2]` means b1 then b2, so
|
|
31
|
+
* the composite is `b2 ∘ b1`.
|
|
32
|
+
*
|
|
33
|
+
* A `null` entry is a step whose Lipschitz constant is unknown. It is tolerated
|
|
34
|
+
* only as the LAST entry, where it terminates the claim; anywhere else the
|
|
35
|
+
* composite would be unbounded, and {@link MissingLipschitzError} is thrown
|
|
36
|
+
* rather than a number invented for it.
|
|
37
|
+
*
|
|
38
|
+
* @public
|
|
39
|
+
*/
|
|
40
|
+
export function composeBoundPath(bounds) {
|
|
41
|
+
let acc = IDENTITY_BOUND;
|
|
42
|
+
for (let i = 0; i < bounds.length; i++) {
|
|
43
|
+
const step = bounds[i];
|
|
44
|
+
if (step === null) {
|
|
45
|
+
if (i !== bounds.length - 1) {
|
|
46
|
+
throw new MissingLipschitzError(`bound path has no Lipschitz constant at step ${i} of ${bounds.length}; ` +
|
|
47
|
+
'an unknown constant is tolerated only as the final step');
|
|
48
|
+
}
|
|
49
|
+
return { bound: acc, terminal: true };
|
|
50
|
+
}
|
|
51
|
+
acc = composeBounds(step, acc);
|
|
52
|
+
}
|
|
53
|
+
return { bound: acc, terminal: false };
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=error-algebra.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-algebra.js","sourceRoot":"","sources":["../../src/atlas/error-algebra.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAQnD,yFAAyF;AACzF,MAAM,CAAC,MAAM,cAAc,GAAc,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AAE5D;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,KAAgB,EAAE,KAAgB;IAC9D,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;AAC9E,CAAC;AAYD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAqC;IACpE,IAAI,GAAG,GAAc,cAAc,CAAC;IACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,IAAI,CAAC,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,MAAM,IAAI,qBAAqB,CAC7B,gDAAgD,CAAC,OAAO,MAAM,CAAC,MAAM,IAAI;oBACvE,yDAAyD,CAC5D,CAAC;YACJ,CAAC;YACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QACxC,CAAC;QACD,GAAG,GAAG,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AACzC,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Atlas Phase 6, S6.4 — the versioned export: one combined JSON artifact for
|
|
3
|
+
* every family, and a JSON-LD projection with stable ids, QUDT quantity kinds
|
|
4
|
+
* where they genuinely resolve, and PROV-O-shaped provenance.
|
|
5
|
+
*
|
|
6
|
+
* Design note: `docs/planning/Atlas-Phase-6-Design.md` §2.
|
|
7
|
+
*
|
|
8
|
+
* Pure: no I/O. The QUDT resolution table (`data/atlas/qudt-resolution.json`) is
|
|
9
|
+
* passed IN by the emitter, so this module cannot drift from the table it was
|
|
10
|
+
* given and never reads the tree.
|
|
11
|
+
*
|
|
12
|
+
* ## Why the QUDT table is keyed by (model, parameter), never by name
|
|
13
|
+
*
|
|
14
|
+
* `kappa` is a SPRING CONSTANT in `model-chain` and a THERMAL CONDUCTIVITY in
|
|
15
|
+
* `model-heat`. A name-keyed table would assign one of them the other's
|
|
16
|
+
* quantity kind — a notation collision in the atlas's own data.
|
|
17
|
+
*
|
|
18
|
+
* ## Schema version
|
|
19
|
+
*
|
|
20
|
+
* The combined artifact keeps `schemaVersion: '0'`. Phase 4 added one OPTIONAL
|
|
21
|
+
* field (`formalRef`); an additive optional field is not a breaking change, and
|
|
22
|
+
* the plan bumps to `v1` only on one.
|
|
23
|
+
*
|
|
24
|
+
* @module atlas/export
|
|
25
|
+
* @internal
|
|
26
|
+
*/
|
|
27
|
+
import type { AtlasFamily } from './oscillators/index.js';
|
|
28
|
+
/** The QUDT resolution table: `"<model-id>/<parameter>"` → IRI, or null when none resolves. @internal */
|
|
29
|
+
export interface QudtResolution {
|
|
30
|
+
/** When and how the IRIs were checked. */
|
|
31
|
+
readonly probedAt: string;
|
|
32
|
+
readonly method: string;
|
|
33
|
+
readonly entries: Readonly<Record<string, string | null>>;
|
|
34
|
+
}
|
|
35
|
+
/** The stable id namespace. A URN, so no id depends on a host that could move. @internal */
|
|
36
|
+
export declare const ATLAS_ID_PREFIX = "urn:upt:atlas:";
|
|
37
|
+
/** The combined artifact: every family's record under one version stamp. @internal */
|
|
38
|
+
export declare function toCombinedAtlasJson(families: readonly AtlasFamily[], packageVersion: string): unknown;
|
|
39
|
+
/**
|
|
40
|
+
* The JSON-LD projection.
|
|
41
|
+
*
|
|
42
|
+
* @throws Error when a model parameter has NO entry in the resolution table — an
|
|
43
|
+
* unlisted parameter is a gap in the table, and exporting it silently blank
|
|
44
|
+
* would be indistinguishable from a deliberate "no QUDT kind resolves".
|
|
45
|
+
* @internal
|
|
46
|
+
*/
|
|
47
|
+
export declare function toAtlasJsonLd(families: readonly AtlasFamily[], packageVersion: string, qudt: QudtResolution): unknown;
|
|
48
|
+
//# sourceMappingURL=export.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../src/atlas/export.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAG1D,yGAAyG;AACzG,MAAM,WAAW,cAAc;IAC7B,0CAA0C;IAC1C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;CAC3D;AAED,4FAA4F;AAC5F,eAAO,MAAM,eAAe,mBAAmB,CAAC;AAKhD,sFAAsF;AACtF,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,SAAS,WAAW,EAAE,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAYrG;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,SAAS,WAAW,EAAE,EAChC,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,cAAc,GACnB,OAAO,CAsDT"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Atlas Phase 6, S6.4 — the versioned export: one combined JSON artifact for
|
|
3
|
+
* every family, and a JSON-LD projection with stable ids, QUDT quantity kinds
|
|
4
|
+
* where they genuinely resolve, and PROV-O-shaped provenance.
|
|
5
|
+
*
|
|
6
|
+
* Design note: `docs/planning/Atlas-Phase-6-Design.md` §2.
|
|
7
|
+
*
|
|
8
|
+
* Pure: no I/O. The QUDT resolution table (`data/atlas/qudt-resolution.json`) is
|
|
9
|
+
* passed IN by the emitter, so this module cannot drift from the table it was
|
|
10
|
+
* given and never reads the tree.
|
|
11
|
+
*
|
|
12
|
+
* ## Why the QUDT table is keyed by (model, parameter), never by name
|
|
13
|
+
*
|
|
14
|
+
* `kappa` is a SPRING CONSTANT in `model-chain` and a THERMAL CONDUCTIVITY in
|
|
15
|
+
* `model-heat`. A name-keyed table would assign one of them the other's
|
|
16
|
+
* quantity kind — a notation collision in the atlas's own data.
|
|
17
|
+
*
|
|
18
|
+
* ## Schema version
|
|
19
|
+
*
|
|
20
|
+
* The combined artifact keeps `schemaVersion: '0'`. Phase 4 added one OPTIONAL
|
|
21
|
+
* field (`formalRef`); an additive optional field is not a breaking change, and
|
|
22
|
+
* the plan bumps to `v1` only on one.
|
|
23
|
+
*
|
|
24
|
+
* @module atlas/export
|
|
25
|
+
* @internal
|
|
26
|
+
*/
|
|
27
|
+
import { toAtlasJson } from './serialize.js';
|
|
28
|
+
/** The stable id namespace. A URN, so no id depends on a host that could move. @internal */
|
|
29
|
+
export const ATLAS_ID_PREFIX = 'urn:upt:atlas:';
|
|
30
|
+
const modelIri = (id) => `${ATLAS_ID_PREFIX}model:${id}`;
|
|
31
|
+
const bridgeIri = (id) => `${ATLAS_ID_PREFIX}bridge:${id}`;
|
|
32
|
+
/** The combined artifact: every family's record under one version stamp. @internal */
|
|
33
|
+
export function toCombinedAtlasJson(families, packageVersion) {
|
|
34
|
+
return {
|
|
35
|
+
schemaVersion: '0',
|
|
36
|
+
packageVersion,
|
|
37
|
+
families: families.map((f) => {
|
|
38
|
+
const { packageVersion: _dropped, ...record } = toAtlasJson(f, packageVersion);
|
|
39
|
+
return record;
|
|
40
|
+
}),
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* The JSON-LD projection.
|
|
45
|
+
*
|
|
46
|
+
* @throws Error when a model parameter has NO entry in the resolution table — an
|
|
47
|
+
* unlisted parameter is a gap in the table, and exporting it silently blank
|
|
48
|
+
* would be indistinguishable from a deliberate "no QUDT kind resolves".
|
|
49
|
+
* @internal
|
|
50
|
+
*/
|
|
51
|
+
export function toAtlasJsonLd(families, packageVersion, qudt) {
|
|
52
|
+
const graph = [];
|
|
53
|
+
for (const family of families) {
|
|
54
|
+
for (const m of family.models) {
|
|
55
|
+
graph.push({
|
|
56
|
+
'@id': modelIri(m.id),
|
|
57
|
+
'@type': 'upt:Model',
|
|
58
|
+
'upt:family': family.family,
|
|
59
|
+
'upt:dynamics': m.dynamics,
|
|
60
|
+
'upt:parameter': m.parameters.map((p) => {
|
|
61
|
+
const key = `${m.id}/${p.name}`;
|
|
62
|
+
if (!(key in qudt.entries)) {
|
|
63
|
+
throw new Error(`toAtlasJsonLd: no QUDT resolution entry for ${key}`);
|
|
64
|
+
}
|
|
65
|
+
const kind = qudt.entries[key];
|
|
66
|
+
return {
|
|
67
|
+
'upt:symbol': p.name,
|
|
68
|
+
'upt:dimension': [p.dim.L, p.dim.M, p.dim.T, p.dim.I, p.dim.Theta, p.dim.N, p.dim.J],
|
|
69
|
+
...(kind === null ? {} : { 'qudt:hasQuantityKind': { '@id': kind } }),
|
|
70
|
+
};
|
|
71
|
+
}),
|
|
72
|
+
...(m.canonicalRefs.length === 0 ? {} : { 'upt:canonicalRef': [...m.canonicalRefs] }),
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
for (const b of family.bridges) {
|
|
76
|
+
graph.push({
|
|
77
|
+
'@id': bridgeIri(b.id),
|
|
78
|
+
'@type': ['upt:Bridge', 'prov:Entity'],
|
|
79
|
+
'upt:relation': b.relation,
|
|
80
|
+
'upt:premise': b.premises.map((p) => ({ '@id': modelIri(p) })),
|
|
81
|
+
'upt:conclusion': { '@id': modelIri(b.conclusion) },
|
|
82
|
+
// PROV-O shape: the bridge's claim is derived from its premises, and
|
|
83
|
+
// its sources are the citations it states.
|
|
84
|
+
'prov:wasDerivedFrom': b.premises.map((p) => ({ '@id': modelIri(p) })),
|
|
85
|
+
'dcterms:source': [...b.citations],
|
|
86
|
+
'upt:reviewStatus': b.reviewStatus,
|
|
87
|
+
'upt:witness': b.witnesses.map((w) => ({ 'upt:id': w.id, 'upt:kind': w.kind, 'upt:test': w.test })),
|
|
88
|
+
...(b.formalRef === undefined
|
|
89
|
+
? {}
|
|
90
|
+
: { 'upt:formalRef': { 'upt:statement': b.formalRef.statement, 'upt:fidelity': b.formalRef.fidelity } }),
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return {
|
|
95
|
+
'@context': {
|
|
96
|
+
upt: `${ATLAS_ID_PREFIX}vocab:`,
|
|
97
|
+
prov: 'http://www.w3.org/ns/prov#',
|
|
98
|
+
qudt: 'http://qudt.org/schema/qudt/',
|
|
99
|
+
dcterms: 'http://purl.org/dc/terms/',
|
|
100
|
+
},
|
|
101
|
+
'@id': `${ATLAS_ID_PREFIX}release:${packageVersion}`,
|
|
102
|
+
'upt:qudtProbedAt': qudt.probedAt,
|
|
103
|
+
'@graph': graph,
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=export.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/atlas/export.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Every registered atlas family, in the order they were built.
|
|
3
|
+
*
|
|
4
|
+
* Gates that must cover the WHOLE atlas (the evidence rule, admission, the
|
|
5
|
+
* JSON artifacts) iterate this list rather than naming one family, so a new
|
|
6
|
+
* family is checked the moment it is registered here. A gate that named
|
|
7
|
+
* `OSCILLATOR_FAMILY` directly would pass forever over a family it never read.
|
|
8
|
+
*
|
|
9
|
+
* @module atlas/families
|
|
10
|
+
*/
|
|
11
|
+
import type { AtlasFamily } from './oscillators/index.js';
|
|
12
|
+
/** All atlas families. @internal */
|
|
13
|
+
export declare const ATLAS_FAMILIES: readonly AtlasFamily[];
|
|
14
|
+
//# sourceMappingURL=families.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"families.d.ts","sourceRoot":"","sources":["../../src/atlas/families.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,oCAAoC;AACpC,eAAO,MAAM,cAAc,EAAE,SAAS,WAAW,EAIhD,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Every registered atlas family, in the order they were built.
|
|
3
|
+
*
|
|
4
|
+
* Gates that must cover the WHOLE atlas (the evidence rule, admission, the
|
|
5
|
+
* JSON artifacts) iterate this list rather than naming one family, so a new
|
|
6
|
+
* family is checked the moment it is registered here. A gate that named
|
|
7
|
+
* `OSCILLATOR_FAMILY` directly would pass forever over a family it never read.
|
|
8
|
+
*
|
|
9
|
+
* @module atlas/families
|
|
10
|
+
*/
|
|
11
|
+
import { DIFFUSION_FAMILY } from './diffusion/index.js';
|
|
12
|
+
import { OSCILLATOR_FAMILY } from './oscillators/index.js';
|
|
13
|
+
import { WAVES_FAMILY } from './waves/index.js';
|
|
14
|
+
/** All atlas families. @internal */
|
|
15
|
+
export const ATLAS_FAMILIES = [
|
|
16
|
+
OSCILLATOR_FAMILY,
|
|
17
|
+
DIFFUSION_FAMILY,
|
|
18
|
+
WAVES_FAMILY,
|
|
19
|
+
];
|
|
20
|
+
//# sourceMappingURL=families.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"families.js","sourceRoot":"","sources":["../../src/atlas/families.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,oCAAoC;AACpC,MAAM,CAAC,MAAM,cAAc,GAA2B;IACpD,iBAAiB;IACjB,gBAAgB;IAChB,YAAY;CACb,CAAC"}
|