universal-physics-tensor 0.4.5
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/LICENSE +21 -0
- package/README.md +377 -0
- package/dist/bridges/equations/be-11-decoherence-master.d.ts +83 -0
- package/dist/bridges/equations/be-11-decoherence-master.d.ts.map +1 -0
- package/dist/bridges/equations/be-11-decoherence-master.js +116 -0
- package/dist/bridges/equations/be-11-decoherence-master.js.map +1 -0
- package/dist/bridges/equations/be-12-coherence-length.d.ts +80 -0
- package/dist/bridges/equations/be-12-coherence-length.d.ts.map +1 -0
- package/dist/bridges/equations/be-12-coherence-length.js +128 -0
- package/dist/bridges/equations/be-12-coherence-length.js.map +1 -0
- package/dist/bridges/equations/be-13-einstein-trace.d.ts +89 -0
- package/dist/bridges/equations/be-13-einstein-trace.d.ts.map +1 -0
- package/dist/bridges/equations/be-13-einstein-trace.js +143 -0
- package/dist/bridges/equations/be-13-einstein-trace.js.map +1 -0
- package/dist/bridges/equations/be-14-ryu-takayanagi.d.ts +67 -0
- package/dist/bridges/equations/be-14-ryu-takayanagi.d.ts.map +1 -0
- package/dist/bridges/equations/be-14-ryu-takayanagi.js +112 -0
- package/dist/bridges/equations/be-14-ryu-takayanagi.js.map +1 -0
- package/dist/bridges/equations/be-15-emergence.d.ts +164 -0
- package/dist/bridges/equations/be-15-emergence.d.ts.map +1 -0
- package/dist/bridges/equations/be-15-emergence.js +204 -0
- package/dist/bridges/equations/be-15-emergence.js.map +1 -0
- package/dist/bridges/equations/be-16-landauer.d.ts +180 -0
- package/dist/bridges/equations/be-16-landauer.d.ts.map +1 -0
- package/dist/bridges/equations/be-16-landauer.js +206 -0
- package/dist/bridges/equations/be-16-landauer.js.map +1 -0
- package/dist/bridges/equations/be-17-einstein-cartan.d.ts +245 -0
- package/dist/bridges/equations/be-17-einstein-cartan.d.ts.map +1 -0
- package/dist/bridges/equations/be-17-einstein-cartan.js +304 -0
- package/dist/bridges/equations/be-17-einstein-cartan.js.map +1 -0
- package/dist/bridges/equations/be-18-higgs-mass.d.ts +65 -0
- package/dist/bridges/equations/be-18-higgs-mass.d.ts.map +1 -0
- package/dist/bridges/equations/be-18-higgs-mass.js +86 -0
- package/dist/bridges/equations/be-18-higgs-mass.js.map +1 -0
- package/dist/bridges/equations/be-19-quantum-bounce.d.ts +72 -0
- package/dist/bridges/equations/be-19-quantum-bounce.d.ts.map +1 -0
- package/dist/bridges/equations/be-19-quantum-bounce.js +151 -0
- package/dist/bridges/equations/be-19-quantum-bounce.js.map +1 -0
- package/dist/bridges/equations/be-20-vacuum-energy.d.ts +72 -0
- package/dist/bridges/equations/be-20-vacuum-energy.d.ts.map +1 -0
- package/dist/bridges/equations/be-20-vacuum-energy.js +115 -0
- package/dist/bridges/equations/be-20-vacuum-energy.js.map +1 -0
- package/dist/bridges/equations/be-21-kss-bound.d.ts +72 -0
- package/dist/bridges/equations/be-21-kss-bound.d.ts.map +1 -0
- package/dist/bridges/equations/be-21-kss-bound.js +103 -0
- package/dist/bridges/equations/be-21-kss-bound.js.map +1 -0
- package/dist/bridges/equations/be-22-topological-entanglement.d.ts +90 -0
- package/dist/bridges/equations/be-22-topological-entanglement.d.ts.map +1 -0
- package/dist/bridges/equations/be-22-topological-entanglement.js +123 -0
- package/dist/bridges/equations/be-22-topological-entanglement.js.map +1 -0
- package/dist/bridges/equations/be-23-syk-planckian.d.ts +89 -0
- package/dist/bridges/equations/be-23-syk-planckian.d.ts.map +1 -0
- package/dist/bridges/equations/be-23-syk-planckian.js +155 -0
- package/dist/bridges/equations/be-23-syk-planckian.js.map +1 -0
- package/dist/bridges/equations/be-24-foerster-fret.d.ts +81 -0
- package/dist/bridges/equations/be-24-foerster-fret.d.ts.map +1 -0
- package/dist/bridges/equations/be-24-foerster-fret.js +121 -0
- package/dist/bridges/equations/be-24-foerster-fret.js.map +1 -0
- package/dist/bridges/equations/be-25-iit-phi.d.ts +220 -0
- package/dist/bridges/equations/be-25-iit-phi.d.ts.map +1 -0
- package/dist/bridges/equations/be-25-iit-phi.js +259 -0
- package/dist/bridges/equations/be-25-iit-phi.js.map +1 -0
- package/dist/bridges/equations/be-25-orch-or.d.ts +78 -0
- package/dist/bridges/equations/be-25-orch-or.d.ts.map +1 -0
- package/dist/bridges/equations/be-25-orch-or.js +121 -0
- package/dist/bridges/equations/be-25-orch-or.js.map +1 -0
- package/dist/bridges/equations/be-26-dna-tunneling.d.ts +75 -0
- package/dist/bridges/equations/be-26-dna-tunneling.d.ts.map +1 -0
- package/dist/bridges/equations/be-26-dna-tunneling.js +138 -0
- package/dist/bridges/equations/be-26-dna-tunneling.js.map +1 -0
- package/dist/bridges/equations/be-27-effective-temperature.d.ts +81 -0
- package/dist/bridges/equations/be-27-effective-temperature.d.ts.map +1 -0
- package/dist/bridges/equations/be-27-effective-temperature.js +120 -0
- package/dist/bridges/equations/be-27-effective-temperature.js.map +1 -0
- package/dist/bridges/equations/be-28-onsager-entropy-production.d.ts +175 -0
- package/dist/bridges/equations/be-28-onsager-entropy-production.d.ts.map +1 -0
- package/dist/bridges/equations/be-28-onsager-entropy-production.js +203 -0
- package/dist/bridges/equations/be-28-onsager-entropy-production.js.map +1 -0
- package/dist/bridges/equations/be-29-jarzynski.d.ts +86 -0
- package/dist/bridges/equations/be-29-jarzynski.d.ts.map +1 -0
- package/dist/bridges/equations/be-29-jarzynski.js +132 -0
- package/dist/bridges/equations/be-29-jarzynski.js.map +1 -0
- package/dist/bridges/equations/be-30-flm-first-law.d.ts +93 -0
- package/dist/bridges/equations/be-30-flm-first-law.d.ts.map +1 -0
- package/dist/bridges/equations/be-30-flm-first-law.js +109 -0
- package/dist/bridges/equations/be-30-flm-first-law.js.map +1 -0
- package/dist/bridges/equations/be-31-causal-set-bd.d.ts +96 -0
- package/dist/bridges/equations/be-31-causal-set-bd.d.ts.map +1 -0
- package/dist/bridges/equations/be-31-causal-set-bd.js +133 -0
- package/dist/bridges/equations/be-31-causal-set-bd.js.map +1 -0
- package/dist/bridges/equations/be-32-quantum-reference-frame.d.ts +113 -0
- package/dist/bridges/equations/be-32-quantum-reference-frame.d.ts.map +1 -0
- package/dist/bridges/equations/be-32-quantum-reference-frame.js +155 -0
- package/dist/bridges/equations/be-32-quantum-reference-frame.js.map +1 -0
- package/dist/bridges/equations/be-33-hertz-millis.d.ts +77 -0
- package/dist/bridges/equations/be-33-hertz-millis.d.ts.map +1 -0
- package/dist/bridges/equations/be-33-hertz-millis.js +113 -0
- package/dist/bridges/equations/be-33-hertz-millis.js.map +1 -0
- package/dist/bridges/equations/be-34-kibble-zurek.d.ts +76 -0
- package/dist/bridges/equations/be-34-kibble-zurek.d.ts.map +1 -0
- package/dist/bridges/equations/be-34-kibble-zurek.js +139 -0
- package/dist/bridges/equations/be-34-kibble-zurek.js.map +1 -0
- package/dist/bridges/equations/be-35-conformal-bootstrap.d.ts +117 -0
- package/dist/bridges/equations/be-35-conformal-bootstrap.d.ts.map +1 -0
- package/dist/bridges/equations/be-35-conformal-bootstrap.js +167 -0
- package/dist/bridges/equations/be-35-conformal-bootstrap.js.map +1 -0
- package/dist/bridges/equations/be-36-gw-speed-bound.d.ts +77 -0
- package/dist/bridges/equations/be-36-gw-speed-bound.d.ts.map +1 -0
- package/dist/bridges/equations/be-36-gw-speed-bound.js +107 -0
- package/dist/bridges/equations/be-36-gw-speed-bound.js.map +1 -0
- package/dist/bridges/equations/be-37-shapiro-delay.d.ts +260 -0
- package/dist/bridges/equations/be-37-shapiro-delay.d.ts.map +1 -0
- package/dist/bridges/equations/be-37-shapiro-delay.js +429 -0
- package/dist/bridges/equations/be-37-shapiro-delay.js.map +1 -0
- package/dist/bridges/equations/be-38-mond.d.ts +86 -0
- package/dist/bridges/equations/be-38-mond.d.ts.map +1 -0
- package/dist/bridges/equations/be-38-mond.js +122 -0
- package/dist/bridges/equations/be-38-mond.js.map +1 -0
- package/dist/bridges/equations/be-39-asymptotic-safety.d.ts +106 -0
- package/dist/bridges/equations/be-39-asymptotic-safety.d.ts.map +1 -0
- package/dist/bridges/equations/be-39-asymptotic-safety.js +155 -0
- package/dist/bridges/equations/be-39-asymptotic-safety.js.map +1 -0
- package/dist/bridges/equations/be-40-composite-higgs.d.ts +81 -0
- package/dist/bridges/equations/be-40-composite-higgs.d.ts.map +1 -0
- package/dist/bridges/equations/be-40-composite-higgs.js +149 -0
- package/dist/bridges/equations/be-40-composite-higgs.js.map +1 -0
- package/dist/bridges/equations/be-41-swampland.d.ts +67 -0
- package/dist/bridges/equations/be-41-swampland.d.ts.map +1 -0
- package/dist/bridges/equations/be-41-swampland.js +109 -0
- package/dist/bridges/equations/be-41-swampland.js.map +1 -0
- package/dist/bridges/equations/be-42-hawking-temperature.d.ts +67 -0
- package/dist/bridges/equations/be-42-hawking-temperature.d.ts.map +1 -0
- package/dist/bridges/equations/be-42-hawking-temperature.js +109 -0
- package/dist/bridges/equations/be-42-hawking-temperature.js.map +1 -0
- package/dist/bridges/equations/be-43-er-epr.d.ts +73 -0
- package/dist/bridges/equations/be-43-er-epr.d.ts.map +1 -0
- package/dist/bridges/equations/be-43-er-epr.js +114 -0
- package/dist/bridges/equations/be-43-er-epr.js.map +1 -0
- package/dist/bridges/equations/be-44-soft-hair.d.ts +151 -0
- package/dist/bridges/equations/be-44-soft-hair.d.ts.map +1 -0
- package/dist/bridges/equations/be-44-soft-hair.js +185 -0
- package/dist/bridges/equations/be-44-soft-hair.js.map +1 -0
- package/dist/bridges/equations/be-45-tcc.d.ts +116 -0
- package/dist/bridges/equations/be-45-tcc.d.ts.map +1 -0
- package/dist/bridges/equations/be-45-tcc.js +157 -0
- package/dist/bridges/equations/be-45-tcc.js.map +1 -0
- package/dist/bridges/equations/be-46-multiverse-measure.d.ts +163 -0
- package/dist/bridges/equations/be-46-multiverse-measure.d.ts.map +1 -0
- package/dist/bridges/equations/be-46-multiverse-measure.js +198 -0
- package/dist/bridges/equations/be-46-multiverse-measure.js.map +1 -0
- package/dist/bridges/equations/be-47-bbn-dark-sector.d.ts +72 -0
- package/dist/bridges/equations/be-47-bbn-dark-sector.d.ts.map +1 -0
- package/dist/bridges/equations/be-47-bbn-dark-sector.js +121 -0
- package/dist/bridges/equations/be-47-bbn-dark-sector.js.map +1 -0
- package/dist/bridges/equations/be-48-grw-localization.d.ts +84 -0
- package/dist/bridges/equations/be-48-grw-localization.d.ts.map +1 -0
- package/dist/bridges/equations/be-48-grw-localization.js +107 -0
- package/dist/bridges/equations/be-48-grw-localization.js.map +1 -0
- package/dist/bridges/equations/be-49-quantum-darwinism.d.ts +97 -0
- package/dist/bridges/equations/be-49-quantum-darwinism.d.ts.map +1 -0
- package/dist/bridges/equations/be-49-quantum-darwinism.js +129 -0
- package/dist/bridges/equations/be-49-quantum-darwinism.js.map +1 -0
- package/dist/bridges/equations/be-50-wheeler-feynman.d.ts +120 -0
- package/dist/bridges/equations/be-50-wheeler-feynman.d.ts.map +1 -0
- package/dist/bridges/equations/be-50-wheeler-feynman.js +151 -0
- package/dist/bridges/equations/be-50-wheeler-feynman.js.map +1 -0
- package/dist/bridges/gravitational-lensing.d.ts +52 -0
- package/dist/bridges/gravitational-lensing.d.ts.map +1 -0
- package/dist/bridges/gravitational-lensing.js +48 -0
- package/dist/bridges/gravitational-lensing.js.map +1 -0
- package/dist/bridges/index.d.ts +104 -0
- package/dist/bridges/index.d.ts.map +1 -0
- package/dist/bridges/index.js +1663 -0
- package/dist/bridges/index.js.map +1 -0
- package/dist/bridges/perihelion-precession.d.ts +62 -0
- package/dist/bridges/perihelion-precession.d.ts.map +1 -0
- package/dist/bridges/perihelion-precession.js +68 -0
- package/dist/bridges/perihelion-precession.js.map +1 -0
- package/dist/core/tensor.d.ts +135 -0
- package/dist/core/tensor.d.ts.map +1 -0
- package/dist/core/tensor.js +376 -0
- package/dist/core/tensor.js.map +1 -0
- package/dist/core/types.d.ts +131 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +25 -0
- package/dist/core/types.js.map +1 -0
- package/dist/dimensional/algebra.d.ts +34 -0
- package/dist/dimensional/algebra.d.ts.map +1 -0
- package/dist/dimensional/algebra.js +90 -0
- package/dist/dimensional/algebra.js.map +1 -0
- package/dist/dimensional/bridge-check.d.ts +48 -0
- package/dist/dimensional/bridge-check.d.ts.map +1 -0
- package/dist/dimensional/bridge-check.js +137 -0
- package/dist/dimensional/bridge-check.js.map +1 -0
- package/dist/dimensional/connection-validators.d.ts +53 -0
- package/dist/dimensional/connection-validators.d.ts.map +1 -0
- package/dist/dimensional/connection-validators.js +84 -0
- package/dist/dimensional/connection-validators.js.map +1 -0
- package/dist/dimensional/connection.d.ts +40 -0
- package/dist/dimensional/connection.d.ts.map +1 -0
- package/dist/dimensional/connection.js +81 -0
- package/dist/dimensional/connection.js.map +1 -0
- package/dist/dimensional/constants.d.ts +30 -0
- package/dist/dimensional/constants.d.ts.map +1 -0
- package/dist/dimensional/constants.js +31 -0
- package/dist/dimensional/constants.js.map +1 -0
- package/dist/dimensional/errors.d.ts +161 -0
- package/dist/dimensional/errors.d.ts.map +1 -0
- package/dist/dimensional/errors.js +254 -0
- package/dist/dimensional/errors.js.map +1 -0
- package/dist/dimensional/fresh-label.d.ts +26 -0
- package/dist/dimensional/fresh-label.d.ts.map +1 -0
- package/dist/dimensional/fresh-label.js +31 -0
- package/dist/dimensional/fresh-label.js.map +1 -0
- package/dist/dimensional/metric-validators.d.ts +124 -0
- package/dist/dimensional/metric-validators.d.ts.map +1 -0
- package/dist/dimensional/metric-validators.js +141 -0
- package/dist/dimensional/metric-validators.js.map +1 -0
- package/dist/dimensional/metric.d.ts +67 -0
- package/dist/dimensional/metric.d.ts.map +1 -0
- package/dist/dimensional/metric.js +177 -0
- package/dist/dimensional/metric.js.map +1 -0
- package/dist/dimensional/tensor.d.ts +153 -0
- package/dist/dimensional/tensor.d.ts.map +1 -0
- package/dist/dimensional/tensor.js +138 -0
- package/dist/dimensional/tensor.js.map +1 -0
- package/dist/dimensional/types.d.ts +50 -0
- package/dist/dimensional/types.d.ts.map +1 -0
- package/dist/dimensional/types.js +66 -0
- package/dist/dimensional/types.js.map +1 -0
- package/dist/dimensional/validator.d.ts +84 -0
- package/dist/dimensional/validator.d.ts.map +1 -0
- package/dist/dimensional/validator.js +505 -0
- package/dist/dimensional/validator.js.map +1 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +37 -0
- package/dist/index.js.map +1 -0
- package/dist/numerical/be37-covariant-eikonal.d.ts +90 -0
- package/dist/numerical/be37-covariant-eikonal.d.ts.map +1 -0
- package/dist/numerical/be37-covariant-eikonal.js +79 -0
- package/dist/numerical/be37-covariant-eikonal.js.map +1 -0
- package/dist/numerical/connection-lowering-helpers.d.ts +107 -0
- package/dist/numerical/connection-lowering-helpers.d.ts.map +1 -0
- package/dist/numerical/connection-lowering-helpers.js +315 -0
- package/dist/numerical/connection-lowering-helpers.js.map +1 -0
- package/dist/numerical/engine-registry.d.ts +50 -0
- package/dist/numerical/engine-registry.d.ts.map +1 -0
- package/dist/numerical/engine-registry.js +82 -0
- package/dist/numerical/engine-registry.js.map +1 -0
- package/dist/numerical/errors.d.ts +28 -0
- package/dist/numerical/errors.d.ts.map +1 -0
- package/dist/numerical/errors.js +39 -0
- package/dist/numerical/errors.js.map +1 -0
- package/dist/numerical/float64-engine.d.ts +53 -0
- package/dist/numerical/float64-engine.d.ts.map +1 -0
- package/dist/numerical/float64-engine.js +638 -0
- package/dist/numerical/float64-engine.js.map +1 -0
- package/dist/numerical/geodesic-integrator.d.ts +62 -0
- package/dist/numerical/geodesic-integrator.d.ts.map +1 -0
- package/dist/numerical/geodesic-integrator.js +103 -0
- package/dist/numerical/geodesic-integrator.js.map +1 -0
- package/dist/numerical/grid-field.d.ts +24 -0
- package/dist/numerical/grid-field.d.ts.map +1 -0
- package/dist/numerical/grid-field.js +2 -0
- package/dist/numerical/grid-field.js.map +1 -0
- package/dist/numerical/index.d.ts +80 -0
- package/dist/numerical/index.d.ts.map +1 -0
- package/dist/numerical/index.js +75 -0
- package/dist/numerical/index.js.map +1 -0
- package/dist/numerical/lowering.d.ts +48 -0
- package/dist/numerical/lowering.d.ts.map +1 -0
- package/dist/numerical/lowering.js +443 -0
- package/dist/numerical/lowering.js.map +1 -0
- package/dist/numerical/mathts-engine.d.ts +55 -0
- package/dist/numerical/mathts-engine.d.ts.map +1 -0
- package/dist/numerical/mathts-engine.js +164 -0
- package/dist/numerical/mathts-engine.js.map +1 -0
- package/dist/numerical/metric-inverse.d.ts +31 -0
- package/dist/numerical/metric-inverse.d.ts.map +1 -0
- package/dist/numerical/metric-inverse.js +68 -0
- package/dist/numerical/metric-inverse.js.map +1 -0
- package/dist/numerical/null-ray-integrator.d.ts +13 -0
- package/dist/numerical/null-ray-integrator.d.ts.map +1 -0
- package/dist/numerical/null-ray-integrator.js +53 -0
- package/dist/numerical/null-ray-integrator.js.map +1 -0
- package/dist/numerical/pderiv.d.ts +43 -0
- package/dist/numerical/pderiv.d.ts.map +1 -0
- package/dist/numerical/pderiv.js +121 -0
- package/dist/numerical/pderiv.js.map +1 -0
- package/dist/numerical/tensor-engine.d.ts +114 -0
- package/dist/numerical/tensor-engine.d.ts.map +1 -0
- package/dist/numerical/tensor-engine.js +64 -0
- package/dist/numerical/tensor-engine.js.map +1 -0
- package/dist/numerical/types.d.ts +37 -0
- package/dist/numerical/types.d.ts.map +1 -0
- package/dist/numerical/types.js +8 -0
- package/dist/numerical/types.js.map +1 -0
- package/package.json +72 -0
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The TensorEngine contract — the compute interface both v0.3.5 engines
|
|
3
|
+
* (Float64ReferenceEngine, MathTSEngine) satisfy. See docs/planning/
|
|
4
|
+
* v0.3.5-Design.md §3, §5.
|
|
5
|
+
*
|
|
6
|
+
* `EngineTensor` is an opaque handle; consumers operate on it only through
|
|
7
|
+
* a TensorEngine. The lowering pass (lowering.ts) builds an `EinsumSpec`
|
|
8
|
+
* from `computeContraction()`'s `contractionPairs` and hands it to
|
|
9
|
+
* `engine.einsum()`.
|
|
10
|
+
*
|
|
11
|
+
* @module numerical/tensor-engine
|
|
12
|
+
*/
|
|
13
|
+
import type { NestedArray } from './types.js';
|
|
14
|
+
import { EngineCapabilityError } from './errors.js';
|
|
15
|
+
export { EngineCapabilityError };
|
|
16
|
+
/** Opaque rank-N tensor handle. Each engine backs it with its own storage
|
|
17
|
+
* (Float64Array, a MathTS Tensor, a future WASM offset); consumers see
|
|
18
|
+
* only the shape.
|
|
19
|
+
* @public */
|
|
20
|
+
export interface EngineTensor {
|
|
21
|
+
readonly shape: ReadonlyArray<number>;
|
|
22
|
+
}
|
|
23
|
+
/** One contracted index: the two (operand, axis) coordinates that the
|
|
24
|
+
* Einstein summation pairs and sums over.
|
|
25
|
+
* @internal */
|
|
26
|
+
export interface EinsumContraction {
|
|
27
|
+
readonly pair: readonly [readonly [number, number], readonly [number, number]];
|
|
28
|
+
}
|
|
29
|
+
/** One surviving (free) index in the einsum output, in output-axis order.
|
|
30
|
+
* @internal */
|
|
31
|
+
export interface EinsumFreeAxis {
|
|
32
|
+
readonly operand: number;
|
|
33
|
+
readonly axis: number;
|
|
34
|
+
}
|
|
35
|
+
/** The engine-agnostic einsum plan produced by lowering.ts.
|
|
36
|
+
* @public */
|
|
37
|
+
export interface EinsumSpec {
|
|
38
|
+
readonly contractions: ReadonlyArray<EinsumContraction>;
|
|
39
|
+
readonly free: ReadonlyArray<EinsumFreeAxis>;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Result of a forward-mode automatic differentiation pass.
|
|
43
|
+
* `value` is f(x); `jacobian` is the Jacobian of f at x (Jvp with tangent 1).
|
|
44
|
+
* @public
|
|
45
|
+
*/
|
|
46
|
+
export interface ForwardGradResult {
|
|
47
|
+
readonly value: EngineTensor;
|
|
48
|
+
readonly jacobian: EngineTensor;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Result of a reverse-mode automatic differentiation pass.
|
|
52
|
+
* `value` is f(x); `gradient` is ∂L/∂x for cotangent dL/df (ones-like by default).
|
|
53
|
+
* @public
|
|
54
|
+
*/
|
|
55
|
+
export interface ReverseGradResult {
|
|
56
|
+
readonly value: EngineTensor;
|
|
57
|
+
readonly gradient: EngineTensor;
|
|
58
|
+
}
|
|
59
|
+
/** The compute contract. Float64ReferenceEngine and MathTSEngine implement it.
|
|
60
|
+
* @public */
|
|
61
|
+
export interface TensorEngine {
|
|
62
|
+
readonly name: string;
|
|
63
|
+
fromNested(data: NestedArray, shape: ReadonlyArray<number>): EngineTensor;
|
|
64
|
+
toNested(t: EngineTensor): NestedArray;
|
|
65
|
+
einsum(spec: EinsumSpec, ...operands: EngineTensor[]): EngineTensor;
|
|
66
|
+
matMul(a: EngineTensor, b: EngineTensor): EngineTensor;
|
|
67
|
+
transpose(t: EngineTensor, perm?: ReadonlyArray<number>): EngineTensor;
|
|
68
|
+
reshape(t: EngineTensor, shape: ReadonlyArray<number>): EngineTensor;
|
|
69
|
+
add(a: EngineTensor, b: EngineTensor): EngineTensor;
|
|
70
|
+
sub(a: EngineTensor, b: EngineTensor): EngineTensor;
|
|
71
|
+
mul(a: EngineTensor, b: EngineTensor): EngineTensor;
|
|
72
|
+
scale(t: EngineTensor, k: number): EngineTensor;
|
|
73
|
+
identity(n: number): EngineTensor;
|
|
74
|
+
normInf(t: EngineTensor): number;
|
|
75
|
+
/** Optional — no-op for pure-JS engines; a future native engine implements
|
|
76
|
+
* real disposal. evaluateNumerical() never relies on it. */
|
|
77
|
+
dispose?(t: EngineTensor): void;
|
|
78
|
+
/**
|
|
79
|
+
* Forward-mode AD (Jacobian-vector product). Always Promise-returning for
|
|
80
|
+
* uniform consumer semantics (S6 reconciliation fix — no T | Promise<T> union).
|
|
81
|
+
* Engines without AD support omit this method; call `hasAutogradSupport(engine)`
|
|
82
|
+
* before invoking.
|
|
83
|
+
* @public
|
|
84
|
+
*/
|
|
85
|
+
forwardGrad?(fn: (x: EngineTensor) => EngineTensor, x: EngineTensor): Promise<ForwardGradResult>;
|
|
86
|
+
/**
|
|
87
|
+
* Reverse-mode AD (vector-Jacobian product). `cotangent` defaults to
|
|
88
|
+
* ones-like(value) when omitted. Always Promise-returning (S6).
|
|
89
|
+
* Engines without AD support omit this method; call `hasAutogradSupport(engine)`
|
|
90
|
+
* before invoking.
|
|
91
|
+
* @public
|
|
92
|
+
*/
|
|
93
|
+
reverseGrad?(fn: (x: EngineTensor) => EngineTensor, x: EngineTensor, cotangent?: EngineTensor): Promise<ReverseGradResult>;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Returns `true` iff the engine implements both `forwardGrad` and `reverseGrad`.
|
|
97
|
+
* Use this before invoking AD methods so callers get a clear capability signal
|
|
98
|
+
* rather than a runtime TypeError.
|
|
99
|
+
*
|
|
100
|
+
* @example
|
|
101
|
+
* ```typescript
|
|
102
|
+
* if (!hasAutogradSupport(engine)) {
|
|
103
|
+
* throw new EngineCapabilityError(engine.name, 'forwardGrad');
|
|
104
|
+
* }
|
|
105
|
+
* const { value, jacobian } = await engine.forwardGrad!(fn, x);
|
|
106
|
+
* ```
|
|
107
|
+
* @public
|
|
108
|
+
*/
|
|
109
|
+
export declare function hasAutogradSupport(engine: TensorEngine): boolean;
|
|
110
|
+
/** Runtime guard for EinsumSpec — used at the lowering→engine boundary so a
|
|
111
|
+
* malformed spec fails loudly rather than producing a wrong-shape tensor.
|
|
112
|
+
* @internal */
|
|
113
|
+
export declare function isEinsumSpec(x: unknown): x is EinsumSpec;
|
|
114
|
+
//# sourceMappingURL=tensor-engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tensor-engine.d.ts","sourceRoot":"","sources":["../../src/numerical/tensor-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The TensorEngine contract — the compute interface both v0.3.5 engines
|
|
3
|
+
* (Float64ReferenceEngine, MathTSEngine) satisfy. See docs/planning/
|
|
4
|
+
* v0.3.5-Design.md §3, §5.
|
|
5
|
+
*
|
|
6
|
+
* `EngineTensor` is an opaque handle; consumers operate on it only through
|
|
7
|
+
* a TensorEngine. The lowering pass (lowering.ts) builds an `EinsumSpec`
|
|
8
|
+
* from `computeContraction()`'s `contractionPairs` and hands it to
|
|
9
|
+
* `engine.einsum()`.
|
|
10
|
+
*
|
|
11
|
+
* @module numerical/tensor-engine
|
|
12
|
+
*/
|
|
13
|
+
import { EngineCapabilityError } from './errors.js';
|
|
14
|
+
export { EngineCapabilityError };
|
|
15
|
+
/**
|
|
16
|
+
* Returns `true` iff the engine implements both `forwardGrad` and `reverseGrad`.
|
|
17
|
+
* Use this before invoking AD methods so callers get a clear capability signal
|
|
18
|
+
* rather than a runtime TypeError.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```typescript
|
|
22
|
+
* if (!hasAutogradSupport(engine)) {
|
|
23
|
+
* throw new EngineCapabilityError(engine.name, 'forwardGrad');
|
|
24
|
+
* }
|
|
25
|
+
* const { value, jacobian } = await engine.forwardGrad!(fn, x);
|
|
26
|
+
* ```
|
|
27
|
+
* @public
|
|
28
|
+
*/
|
|
29
|
+
export function hasAutogradSupport(engine) {
|
|
30
|
+
return typeof engine.forwardGrad === 'function'
|
|
31
|
+
&& typeof engine.reverseGrad === 'function';
|
|
32
|
+
}
|
|
33
|
+
/** Runtime guard for EinsumSpec — used at the lowering→engine boundary so a
|
|
34
|
+
* malformed spec fails loudly rather than producing a wrong-shape tensor.
|
|
35
|
+
* @internal */
|
|
36
|
+
export function isEinsumSpec(x) {
|
|
37
|
+
if (typeof x !== 'object' || x === null)
|
|
38
|
+
return false;
|
|
39
|
+
const s = x;
|
|
40
|
+
if (!Array.isArray(s.contractions) || !Array.isArray(s.free))
|
|
41
|
+
return false;
|
|
42
|
+
for (const c of s.contractions) {
|
|
43
|
+
if (typeof c !== 'object' || c === null)
|
|
44
|
+
return false;
|
|
45
|
+
const pair = c.pair;
|
|
46
|
+
if (!Array.isArray(pair) || pair.length !== 2)
|
|
47
|
+
return false;
|
|
48
|
+
for (const coord of pair) {
|
|
49
|
+
if (!Array.isArray(coord) || coord.length !== 2)
|
|
50
|
+
return false;
|
|
51
|
+
if (typeof coord[0] !== 'number' || typeof coord[1] !== 'number')
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
for (const f of s.free) {
|
|
56
|
+
if (typeof f !== 'object' || f === null)
|
|
57
|
+
return false;
|
|
58
|
+
const fa = f;
|
|
59
|
+
if (typeof fa.operand !== 'number' || typeof fa.axis !== 'number')
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
return true;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=tensor-engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tensor-engine.js","sourceRoot":"","sources":["../../src/numerical/tensor-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,CAAC;AAsGjC;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAoB;IACrD,OAAO,OAAO,MAAM,CAAC,WAAW,KAAK,UAAU;WACxC,OAAO,MAAM,CAAC,WAAW,KAAK,UAAU,CAAC;AAClD,CAAC;AAED;;gBAEgB;AAChB,MAAM,UAAU,YAAY,CAAC,CAAU;IACrC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,CAAC,GAAG,CAA+C,CAAC;IAC1D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3E,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;QACtD,MAAM,IAAI,GAAI,CAAwB,CAAC,IAAI,CAAC;QAC5C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAC5D,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;YACzB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC9D,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ;gBAAE,OAAO,KAAK,CAAC;QACjF,CAAC;IACH,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QACvB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;QACtD,MAAM,EAAE,GAAG,CAA0C,CAAC;QACtD,IAAI,OAAO,EAAE,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,EAAE,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;IAClF,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared types for the numerical backend. Kept in a tiny module so the
|
|
3
|
+
* TensorEngine interface and the lowering pass share one definition.
|
|
4
|
+
*
|
|
5
|
+
* @module numerical/types
|
|
6
|
+
*/
|
|
7
|
+
/** A scalar, or arbitrarily nested arrays of scalars. The plain-JS shape
|
|
8
|
+
* that crosses the public boundary of the numerical module.
|
|
9
|
+
* @public */
|
|
10
|
+
export type NestedArray = number | NestedArray[];
|
|
11
|
+
import type { GridField } from './grid-field.js';
|
|
12
|
+
/** Concrete inputs for a numerical evaluation. See v0.3.5-Design.md §5.
|
|
13
|
+
* @public */
|
|
14
|
+
export interface NumericalInputs {
|
|
15
|
+
/** Component values per tensor-symbol / metric-tensor / scalar-symbol, by name. */
|
|
16
|
+
readonly tensors: ReadonlyMap<string, NestedArray>;
|
|
17
|
+
/** Index dimensionality N for kronecker-delta (and any node whose size is
|
|
18
|
+
* not otherwise determined). Defaults to 4 (spacetime) when omitted. */
|
|
19
|
+
readonly dimension?: number;
|
|
20
|
+
/** For 'numerical-fn' tensor-symbols (Task 10). */
|
|
21
|
+
readonly fields?: ReadonlyMap<string, (coords: ReadonlyArray<number>) => NestedArray>;
|
|
22
|
+
/** For 'grid' tensor-symbols (Task 10). */
|
|
23
|
+
readonly grids?: ReadonlyMap<string, GridField>;
|
|
24
|
+
/** Explicit pre-computed derivatives for 'symbolic' tensor-symbols under a
|
|
25
|
+
* pderiv, keyed `${symbolName}/${coordLabel}` (Task 10). */
|
|
26
|
+
readonly derivatives?: ReadonlyMap<string, NestedArray>;
|
|
27
|
+
/** Coordinate values for partial-derivative evaluation (Task 10). */
|
|
28
|
+
readonly coords?: ReadonlyMap<string, number>;
|
|
29
|
+
/**
|
|
30
|
+
* v0.4.0: for metric-tensor nodes with derivativeStrategy='supplied' under
|
|
31
|
+
* a christoffel/covariant-derivative lowering. Keyed `${metricName}/${coordLabel}`
|
|
32
|
+
* (e.g., 'g/μ'). Each value is the full metric Jacobian slice — shape [N,N]
|
|
33
|
+
* for the partial derivative of an N×N metric w.r.t. one coordinate.
|
|
34
|
+
*/
|
|
35
|
+
readonly metricDerivatives?: ReadonlyMap<string, NestedArray>;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/numerical/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;cAEc;AACd,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,WAAW,EAAE,CAAC;AAEjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD;cACc;AACd,MAAM,WAAW,eAAe;IAC9B,mFAAmF;IACnF,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACnD;6EACyE;IACzE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,mDAAmD;IACnD,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,WAAW,CAAC,CAAC;IACtF,2CAA2C;IAC3C,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAChD;iEAC6D;IAC7D,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACxD,qEAAqE;IACrE,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C;;;;;OAKG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;CAC/D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/numerical/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
package/package.json
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "universal-physics-tensor",
|
|
3
|
+
"version": "0.4.5",
|
|
4
|
+
"description": "Computational framework for exploring unified physics through tensor formalism",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": {
|
|
9
|
+
"types": "./dist/index.d.ts",
|
|
10
|
+
"import": "./dist/index.js",
|
|
11
|
+
"default": "./dist/index.js"
|
|
12
|
+
},
|
|
13
|
+
"./numerical/mathts-engine": {
|
|
14
|
+
"types": "./dist/numerical/mathts-engine.d.ts",
|
|
15
|
+
"import": "./dist/numerical/mathts-engine.js",
|
|
16
|
+
"default": "./dist/numerical/mathts-engine.js"
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"directories": {
|
|
20
|
+
"doc": "docs",
|
|
21
|
+
"example": "examples",
|
|
22
|
+
"test": "tests"
|
|
23
|
+
},
|
|
24
|
+
"scripts": {
|
|
25
|
+
"build": "tsc",
|
|
26
|
+
"dev": "tsc --watch",
|
|
27
|
+
"smoke": "node test-example.js",
|
|
28
|
+
"test": "vitest run",
|
|
29
|
+
"test:watch": "vitest",
|
|
30
|
+
"prepublishOnly": "tsc && vitest run",
|
|
31
|
+
"bench": "vitest bench",
|
|
32
|
+
"bench:ci": "vitest bench --reporter=verbose"
|
|
33
|
+
},
|
|
34
|
+
"files": [
|
|
35
|
+
"dist",
|
|
36
|
+
"README.md",
|
|
37
|
+
"LICENSE"
|
|
38
|
+
],
|
|
39
|
+
"keywords": [
|
|
40
|
+
"physics",
|
|
41
|
+
"tensor",
|
|
42
|
+
"unification",
|
|
43
|
+
"quantum-mechanics",
|
|
44
|
+
"general-relativity",
|
|
45
|
+
"bridge-equations",
|
|
46
|
+
"theoretical-physics",
|
|
47
|
+
"computational-physics"
|
|
48
|
+
],
|
|
49
|
+
"author": "Daniel Simon Jr. <danielsimonjr@users.noreply.github.com>",
|
|
50
|
+
"license": "MIT",
|
|
51
|
+
"type": "module",
|
|
52
|
+
"engines": {
|
|
53
|
+
"node": ">=18.0.0"
|
|
54
|
+
},
|
|
55
|
+
"repository": {
|
|
56
|
+
"type": "git",
|
|
57
|
+
"url": "https://github.com/danielsimonjr/universal-physics-tensor.git"
|
|
58
|
+
},
|
|
59
|
+
"bugs": {
|
|
60
|
+
"url": "https://github.com/danielsimonjr/universal-physics-tensor/issues"
|
|
61
|
+
},
|
|
62
|
+
"homepage": "https://github.com/danielsimonjr/universal-physics-tensor#readme",
|
|
63
|
+
"devDependencies": {
|
|
64
|
+
"@types/node": "^24.9.2",
|
|
65
|
+
"typescript": "^5.9.3",
|
|
66
|
+
"vitest": "^4.1.4"
|
|
67
|
+
},
|
|
68
|
+
"optionalDependencies": {
|
|
69
|
+
"@danielsimonjr/mathts-tensor": "^0.1.0",
|
|
70
|
+
"@danielsimonjr/mathts-autograd": "^0.1.0"
|
|
71
|
+
}
|
|
72
|
+
}
|