universal-physics-tensor 0.24.0 → 0.28.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 +22 -9
- package/bin/upt.mjs +843 -685
- package/dist/canonical/entries/atomic.d.ts +17 -0
- package/dist/canonical/entries/atomic.d.ts.map +1 -0
- package/dist/canonical/entries/atomic.js +71 -0
- package/dist/canonical/entries/atomic.js.map +1 -0
- package/dist/canonical/entries/electromagnetism.d.ts +18 -0
- package/dist/canonical/entries/electromagnetism.d.ts.map +1 -0
- package/dist/canonical/entries/electromagnetism.js +212 -0
- package/dist/canonical/entries/electromagnetism.js.map +1 -0
- package/dist/canonical/entries/fluids-waves.d.ts +18 -0
- package/dist/canonical/entries/fluids-waves.d.ts.map +1 -0
- package/dist/canonical/entries/fluids-waves.js +130 -0
- package/dist/canonical/entries/fluids-waves.js.map +1 -0
- package/dist/canonical/entries/mechanics.d.ts +18 -0
- package/dist/canonical/entries/mechanics.d.ts.map +1 -0
- package/dist/canonical/entries/mechanics.js +275 -0
- package/dist/canonical/entries/mechanics.js.map +1 -0
- package/dist/canonical/entries/thermo-nuclear-cosmo.d.ts +18 -0
- package/dist/canonical/entries/thermo-nuclear-cosmo.d.ts.map +1 -0
- package/dist/canonical/entries/thermo-nuclear-cosmo.js +56 -0
- package/dist/canonical/entries/thermo-nuclear-cosmo.js.map +1 -0
- package/dist/canonical/registry.d.ts.map +1 -1
- package/dist/canonical/registry.js +10 -0
- package/dist/canonical/registry.js.map +1 -1
- package/dist/composition/compose.d.ts.map +1 -1
- package/dist/composition/compose.js +14 -0
- package/dist/composition/compose.js.map +1 -1
- package/dist/composition/dimension-adjacency.d.ts +39 -0
- package/dist/composition/dimension-adjacency.d.ts.map +1 -0
- package/dist/composition/dimension-adjacency.js +44 -0
- package/dist/composition/dimension-adjacency.js.map +1 -0
- package/dist/composition/graph-viz-svg.d.ts +31 -0
- package/dist/composition/graph-viz-svg.d.ts.map +1 -0
- package/dist/composition/graph-viz-svg.js +45 -0
- package/dist/composition/graph-viz-svg.js.map +1 -0
- package/dist/composition/graph-viz.d.ts +100 -0
- package/dist/composition/graph-viz.d.ts.map +1 -0
- package/dist/composition/graph-viz.js +256 -0
- package/dist/composition/graph-viz.js.map +1 -0
- package/dist/composition/index.d.ts +8 -0
- package/dist/composition/index.d.ts.map +1 -1
- package/dist/composition/index.js +4 -0
- package/dist/composition/index.js.map +1 -1
- package/dist/composition/user-equation.d.ts +136 -0
- package/dist/composition/user-equation.d.ts.map +1 -0
- package/dist/composition/user-equation.js +247 -0
- package/dist/composition/user-equation.js.map +1 -0
- package/dist/dimensional/dimension-inference.d.ts +37 -0
- package/dist/dimensional/dimension-inference.d.ts.map +1 -0
- package/dist/dimensional/dimension-inference.js +79 -0
- package/dist/dimensional/dimension-inference.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -1
- package/dist/numerical/formula-dimension.d.ts +16 -1
- package/dist/numerical/formula-dimension.d.ts.map +1 -1
- package/dist/numerical/formula-dimension.js +116 -84
- package/dist/numerical/formula-dimension.js.map +1 -1
- package/dist/numerical/formula-registry.d.ts +11 -1
- package/dist/numerical/formula-registry.d.ts.map +1 -1
- package/dist/numerical/formula-registry.js +12 -0
- package/dist/numerical/formula-registry.js.map +1 -1
- package/package.json +92 -91
|
@@ -17,10 +17,11 @@
|
|
|
17
17
|
import { DIMENSIONLESS } from '../dimensional/types.js';
|
|
18
18
|
import { equals, format } from '../dimensional/algebra.js';
|
|
19
19
|
import { validate } from '../dimensional/validator.js';
|
|
20
|
-
import { parseFormulaToAst
|
|
20
|
+
import { parseFormulaToAst } from './formula.js';
|
|
21
21
|
/** A formula cannot be dimensionally analyzed (undeclared symbol, variable
|
|
22
|
-
* exponent, transcendental of a dimensional argument, unsupported node).
|
|
23
|
-
|
|
22
|
+
* exponent, transcendental of a dimensional argument, unsupported node).
|
|
23
|
+
* @public */
|
|
24
|
+
export class FormulaDimensionError extends Error {
|
|
24
25
|
constructor(message) {
|
|
25
26
|
super(message);
|
|
26
27
|
this.name = 'FormulaDimensionError';
|
|
@@ -28,15 +29,30 @@ class FormulaDimensionError extends Error {
|
|
|
28
29
|
}
|
|
29
30
|
/** Dimensionless math constants both parsers recognize. */
|
|
30
31
|
const MATH_CONSTANTS = new Set(['pi', 'tau', 'e', 'phi', 'Infinity', 'NaN']);
|
|
31
|
-
/**
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
'
|
|
36
|
-
|
|
32
|
+
/** Parser function names → the dimensional grammar's `transcendental` node fn
|
|
33
|
+
* (dimensionless → dimensionless). `log` is natural log (mathjs convention). */
|
|
34
|
+
const TRANSCENDENTAL_FN = {
|
|
35
|
+
exp: 'exp', ln: 'ln', log: 'ln', log10: 'log10', log2: 'log2',
|
|
36
|
+
sin: 'sin', cos: 'cos', tan: 'tan', sinh: 'sinh', cosh: 'cosh', tanh: 'tanh',
|
|
37
|
+
};
|
|
38
|
+
/** Transcendentals WITHOUT a grammar node — kept as dimensionless stubs (still
|
|
39
|
+
* dimensionless→dimensionless, just not a faithful node). */
|
|
40
|
+
const TRANSCENDENTAL_STUB = new Set(['asin', 'acos', 'atan', 'sec', 'csc', 'cot']);
|
|
37
41
|
const sym = (name, dim) => ({ kind: 'symbol', name, dim });
|
|
38
42
|
const op = (o, args) => ({ kind: 'op', op: o, args });
|
|
39
43
|
const powExpr = (base, exp) => op('^', [base, sym(String(exp), DIMENSIONLESS)]);
|
|
44
|
+
const transcendental = (fn, arg) => ({ kind: 'transcendental', fn, arg });
|
|
45
|
+
const absNode = (arg) => ({ kind: 'abs', arg });
|
|
46
|
+
/** Dispatch a parsed function name to its `ExprNode`. Shared by both transpilers. */
|
|
47
|
+
function transpileFunction(fn, argExpr) {
|
|
48
|
+
if (fn === 'abs')
|
|
49
|
+
return absNode(argExpr);
|
|
50
|
+
if (fn in TRANSCENDENTAL_FN)
|
|
51
|
+
return transcendental(TRANSCENDENTAL_FN[fn], argExpr);
|
|
52
|
+
if (TRANSCENDENTAL_STUB.has(fn))
|
|
53
|
+
return transcendentalStub(fn, argExpr);
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
40
56
|
/** Resolve a symbol to a dimensioned `ExprNode` (declared dim, or a
|
|
41
57
|
* dimensionless math constant, else an error). */
|
|
42
58
|
function resolveSymbol(name, dims) {
|
|
@@ -63,97 +79,104 @@ function transcendentalStub(fn, argExprNode) {
|
|
|
63
79
|
}
|
|
64
80
|
return sym(`${fn}(...)`, DIMENSIONLESS);
|
|
65
81
|
}
|
|
66
|
-
/**
|
|
67
|
-
function
|
|
68
|
-
let v;
|
|
69
|
-
try {
|
|
70
|
-
v = node.evaluate({});
|
|
71
|
-
}
|
|
72
|
-
catch {
|
|
73
|
-
throw new FormulaDimensionError('exponent must be a numeric constant');
|
|
74
|
-
}
|
|
75
|
-
if (typeof v !== 'number' || !Number.isFinite(v)) {
|
|
76
|
-
throw new FormulaDimensionError('exponent must be a finite numeric constant');
|
|
77
|
-
}
|
|
78
|
-
return v;
|
|
79
|
-
}
|
|
80
|
-
function transpileMathts(node, dims) {
|
|
82
|
+
/** Adapt a MathTS AST node to a `PNode` (pure shape map; no dimensions). */
|
|
83
|
+
function mathtsToPNode(node) {
|
|
81
84
|
switch (node.type) {
|
|
82
85
|
case 'ConstantNode':
|
|
83
|
-
return
|
|
86
|
+
return { kind: 'num', value: Number(node.value) };
|
|
84
87
|
case 'SymbolNode':
|
|
85
|
-
return
|
|
88
|
+
return { kind: 'sym', name: node.name };
|
|
86
89
|
case 'ParenthesisNode':
|
|
87
|
-
return
|
|
90
|
+
return mathtsToPNode(node.content);
|
|
88
91
|
case 'OperatorNode': {
|
|
89
|
-
const args = node.args ?? [];
|
|
92
|
+
const args = (node.args ?? []).map(mathtsToPNode);
|
|
90
93
|
if (node.op === '-' && args.length === 1)
|
|
91
|
-
return
|
|
94
|
+
return { kind: 'neg', arg: args[0] };
|
|
92
95
|
if (node.op === '^')
|
|
93
|
-
return
|
|
96
|
+
return { kind: 'pow', base: args[0], exp: args[1] };
|
|
94
97
|
if (node.op === '+' || node.op === '-' || node.op === '*' || node.op === '/') {
|
|
95
|
-
return op
|
|
98
|
+
return { kind: 'op', op: node.op, args };
|
|
96
99
|
}
|
|
97
100
|
throw new FormulaDimensionError(`unsupported operator '${node.op}'`);
|
|
98
101
|
}
|
|
99
|
-
case 'FunctionNode':
|
|
100
|
-
|
|
101
|
-
const args = node.args ?? [];
|
|
102
|
-
if (fn === 'sqrt')
|
|
103
|
-
return powExpr(transpileMathts(args[0], dims), 0.5);
|
|
104
|
-
if (fn === 'cbrt')
|
|
105
|
-
return powExpr(transpileMathts(args[0], dims), 1 / 3);
|
|
106
|
-
if (fn === 'pow')
|
|
107
|
-
return powExpr(transpileMathts(args[0], dims), mathtsConstant(args[1]));
|
|
108
|
-
if (fn === 'abs')
|
|
109
|
-
return transpileMathts(args[0], dims);
|
|
110
|
-
if (TRANSCENDENTAL.has(fn))
|
|
111
|
-
return transcendentalStub(fn, transpileMathts(args[0], dims));
|
|
112
|
-
throw new FormulaDimensionError(`unsupported function '${fn}'`);
|
|
113
|
-
}
|
|
102
|
+
case 'FunctionNode':
|
|
103
|
+
return { kind: 'call', fn: node.fn?.name ?? node.name ?? '', args: (node.args ?? []).map(mathtsToPNode) };
|
|
114
104
|
default:
|
|
115
105
|
throw new FormulaDimensionError(`unsupported node '${node.type}'`);
|
|
116
106
|
}
|
|
117
107
|
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
return
|
|
108
|
+
/** Adapt a built-in `FormulaAstNode` to a `PNode` (pure shape map). */
|
|
109
|
+
function pathBToPNode(node) {
|
|
110
|
+
switch (node.kind) {
|
|
111
|
+
case 'num':
|
|
112
|
+
return { kind: 'num', value: node.value };
|
|
113
|
+
case 'sym':
|
|
114
|
+
return { kind: 'sym', name: node.name };
|
|
115
|
+
case 'unary':
|
|
116
|
+
return node.op === '-'
|
|
117
|
+
? { kind: 'neg', arg: pathBToPNode(node.arg) }
|
|
118
|
+
: pathBToPNode(node.arg); // unary '+' is identity
|
|
119
|
+
case 'bin':
|
|
120
|
+
return node.op === '^'
|
|
121
|
+
? { kind: 'pow', base: pathBToPNode(node.left), exp: pathBToPNode(node.right) }
|
|
122
|
+
: { kind: 'op', op: node.op, args: [pathBToPNode(node.left), pathBToPNode(node.right)] };
|
|
123
|
+
case 'call':
|
|
124
|
+
return { kind: 'call', fn: node.fn, args: node.args.map(pathBToPNode) };
|
|
125
125
|
}
|
|
126
|
-
|
|
127
|
-
|
|
126
|
+
}
|
|
127
|
+
/** Fold a (presumed constant) `PNode` to a finite number, else throw. */
|
|
128
|
+
function pnodeConstant(node) {
|
|
129
|
+
const v = evalConstPNode(node);
|
|
130
|
+
if (!Number.isFinite(v))
|
|
131
|
+
throw new FormulaDimensionError('exponent must be a finite numeric constant');
|
|
132
|
+
return v;
|
|
133
|
+
}
|
|
134
|
+
function evalConstPNode(node) {
|
|
135
|
+
switch (node.kind) {
|
|
136
|
+
case 'num':
|
|
137
|
+
return node.value;
|
|
138
|
+
case 'neg':
|
|
139
|
+
return -evalConstPNode(node.arg);
|
|
140
|
+
case 'pow':
|
|
141
|
+
return Math.pow(evalConstPNode(node.base), evalConstPNode(node.exp));
|
|
142
|
+
case 'op': {
|
|
143
|
+
const v = node.args.map(evalConstPNode);
|
|
144
|
+
switch (node.op) {
|
|
145
|
+
case '+': return v.reduce((a, b) => a + b, 0);
|
|
146
|
+
case '-': return v.length === 1 ? -v[0] : v.reduce((a, b) => a - b);
|
|
147
|
+
case '*': return v.reduce((a, b) => a * b, 1);
|
|
148
|
+
case '/': return v.reduce((a, b) => a / b);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
// falls through: a 'sym' or 'call' is not a numeric constant
|
|
152
|
+
default:
|
|
153
|
+
throw new FormulaDimensionError('exponent must be a numeric constant');
|
|
128
154
|
}
|
|
129
|
-
throw new FormulaDimensionError('exponent must be a numeric constant');
|
|
130
155
|
}
|
|
131
|
-
|
|
156
|
+
/** The ONE transpiler: normalized parse node → dimensional `ExprNode`. */
|
|
157
|
+
function normToExpr(node, dims) {
|
|
132
158
|
switch (node.kind) {
|
|
133
159
|
case 'num':
|
|
134
160
|
return sym(String(node.value), DIMENSIONLESS);
|
|
135
161
|
case 'sym':
|
|
136
162
|
return resolveSymbol(node.name, dims);
|
|
137
|
-
case '
|
|
138
|
-
return
|
|
139
|
-
case '
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
return
|
|
143
|
-
}
|
|
163
|
+
case 'neg':
|
|
164
|
+
return normToExpr(node.arg, dims); // sign is dimension-neutral
|
|
165
|
+
case 'op':
|
|
166
|
+
return op(node.op, node.args.map((a) => normToExpr(a, dims)));
|
|
167
|
+
case 'pow':
|
|
168
|
+
return powExpr(normToExpr(node.base, dims), pnodeConstant(node.exp));
|
|
144
169
|
case 'call': {
|
|
145
170
|
const fn = node.fn;
|
|
146
|
-
const args = node.args;
|
|
147
171
|
if (fn === 'sqrt')
|
|
148
|
-
return powExpr(
|
|
172
|
+
return powExpr(normToExpr(node.args[0], dims), 0.5);
|
|
149
173
|
if (fn === 'cbrt')
|
|
150
|
-
return powExpr(
|
|
174
|
+
return powExpr(normToExpr(node.args[0], dims), 1 / 3);
|
|
151
175
|
if (fn === 'pow')
|
|
152
|
-
return powExpr(
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
return transcendentalStub(fn, transpilePathB(args[0], dims));
|
|
176
|
+
return powExpr(normToExpr(node.args[0], dims), pnodeConstant(node.args[1]));
|
|
177
|
+
const fnNode = transpileFunction(fn, normToExpr(node.args[0], dims));
|
|
178
|
+
if (fnNode)
|
|
179
|
+
return fnNode;
|
|
157
180
|
throw new FormulaDimensionError(`unsupported function '${fn}'`);
|
|
158
181
|
}
|
|
159
182
|
}
|
|
@@ -161,28 +184,37 @@ function transpilePathB(node, dims) {
|
|
|
161
184
|
/** Build a checker from an `(expr, dims) → ExprNode` transpile (parse +
|
|
162
185
|
* transpile, which may throw a parse error or `FormulaDimensionError`). */
|
|
163
186
|
function createFormulaDimensionChecker(toExprNode) {
|
|
187
|
+
const parse = (expr, dims) => {
|
|
188
|
+
let exprNode;
|
|
189
|
+
try {
|
|
190
|
+
exprNode = toExprNode(expr, dims);
|
|
191
|
+
}
|
|
192
|
+
catch (e) {
|
|
193
|
+
if (e instanceof FormulaDimensionError)
|
|
194
|
+
throw e;
|
|
195
|
+
throw new FormulaDimensionError(`parse error: ${e instanceof Error ? e.message : String(e)}`);
|
|
196
|
+
}
|
|
197
|
+
const r = validate(exprNode);
|
|
198
|
+
if (!r.ok || r.inferredDimension === null) {
|
|
199
|
+
throw new FormulaDimensionError(r.violations[0]?.note ?? 'not dimensionally homogeneous');
|
|
200
|
+
}
|
|
201
|
+
return { expr: exprNode, dimension: r.inferredDimension };
|
|
202
|
+
};
|
|
164
203
|
return {
|
|
204
|
+
parse,
|
|
165
205
|
check(expr, dims) {
|
|
166
|
-
let exprNode;
|
|
167
206
|
try {
|
|
168
|
-
|
|
207
|
+
return { ok: true, dim: parse(expr, dims).dimension };
|
|
169
208
|
}
|
|
170
209
|
catch (e) {
|
|
171
|
-
|
|
172
|
-
return { ok: false, error: e.message };
|
|
173
|
-
return { ok: false, error: `parse error: ${e instanceof Error ? e.message : String(e)}` };
|
|
174
|
-
}
|
|
175
|
-
const r = validate(exprNode);
|
|
176
|
-
if (!r.ok || r.inferredDimension === null) {
|
|
177
|
-
return { ok: false, error: r.violations[0]?.note ?? 'not dimensionally homogeneous' };
|
|
210
|
+
return { ok: false, error: e instanceof Error ? e.message : String(e) };
|
|
178
211
|
}
|
|
179
|
-
return { ok: true, dim: r.inferredDimension };
|
|
180
212
|
},
|
|
181
213
|
};
|
|
182
214
|
}
|
|
183
215
|
/** The built-in (Path B) dimensional checker — always available, no peer. */
|
|
184
216
|
export function builtinFormulaDimensionChecker() {
|
|
185
|
-
return createFormulaDimensionChecker((expr, dims) =>
|
|
217
|
+
return createFormulaDimensionChecker((expr, dims) => normToExpr(pathBToPNode(parseFormulaToAst(expr)), dims));
|
|
186
218
|
}
|
|
187
219
|
/**
|
|
188
220
|
* Dynamically load the optional MathTS peer and build a dimensional checker
|
|
@@ -194,6 +226,6 @@ export async function loadFormulaDimensionChecker() {
|
|
|
194
226
|
if (typeof mod.parse !== 'function') {
|
|
195
227
|
throw new FormulaDimensionError('mathts-functions: no parse() export');
|
|
196
228
|
}
|
|
197
|
-
return createFormulaDimensionChecker((expr, dims) =>
|
|
229
|
+
return createFormulaDimensionChecker((expr, dims) => normToExpr(mathtsToPNode(mod.parse(expr)), dims));
|
|
198
230
|
}
|
|
199
231
|
//# sourceMappingURL=formula-dimension.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formula-dimension.js","sourceRoot":"","sources":["../../src/numerical/formula-dimension.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAE3D,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEvD,OAAO,EAAE,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"formula-dimension.js","sourceRoot":"","sources":["../../src/numerical/formula-dimension.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,8 @@
|
|
|
13
13
|
* @module numerical/formula-registry
|
|
14
14
|
*/
|
|
15
15
|
import type { FormulaParser } from './formula.js';
|
|
16
|
-
import type {
|
|
16
|
+
import type { Dimension } from '../dimensional/types.js';
|
|
17
|
+
import type { FormulaDimensionChecker, ParsedPhysics } from './formula-dimension.js';
|
|
17
18
|
type FormulaParserKind = 'mathts' | 'builtin';
|
|
18
19
|
/** Resolve the active formula parser (cached). @internal */
|
|
19
20
|
export declare function getFormulaParser(): Promise<FormulaParser>;
|
|
@@ -26,5 +27,14 @@ export declare function getFormulaParserKind(): Promise<FormulaParserKind>;
|
|
|
26
27
|
* the same `ExprNode`, so the dimensional verdict is identical. @internal
|
|
27
28
|
*/
|
|
28
29
|
export declare function getFormulaDimensionChecker(): Promise<FormulaDimensionChecker>;
|
|
30
|
+
/**
|
|
31
|
+
* Parse physics text to a dimensional `ExprNode` + its inferred dimension, using
|
|
32
|
+
* the active front-end (MathTS when the optional peer is installed, else the
|
|
33
|
+
* built-in parser). The single public string→`ExprNode` entry point.
|
|
34
|
+
*
|
|
35
|
+
* @throws {FormulaDimensionError} on a parse error or non-homogeneity.
|
|
36
|
+
* @public
|
|
37
|
+
*/
|
|
38
|
+
export declare function parsePhysics(text: string, dims: Readonly<Record<string, Dimension>>): Promise<ParsedPhysics>;
|
|
29
39
|
export {};
|
|
30
40
|
//# sourceMappingURL=formula-registry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formula-registry.d.ts","sourceRoot":"","sources":["../../src/numerical/formula-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAGlD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"formula-registry.d.ts","sourceRoot":"","sources":["../../src/numerical/formula-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAGlD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAGrF,KAAK,iBAAiB,GAAG,QAAQ,GAAG,SAAS,CAAC;AA8C9C,4DAA4D;AAC5D,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,aAAa,CAAC,CAG/D;AAED,kFAAkF;AAClF,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAGvE;AAMD;;;;;GAKG;AACH,wBAAsB,0BAA0B,IAAI,OAAO,CAAC,uBAAuB,CAAC,CAYnF;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,GACxC,OAAO,CAAC,aAAa,CAAC,CAGxB"}
|
|
@@ -85,4 +85,16 @@ export async function getFormulaDimensionChecker() {
|
|
|
85
85
|
})();
|
|
86
86
|
return cachedChecker;
|
|
87
87
|
}
|
|
88
|
+
/**
|
|
89
|
+
* Parse physics text to a dimensional `ExprNode` + its inferred dimension, using
|
|
90
|
+
* the active front-end (MathTS when the optional peer is installed, else the
|
|
91
|
+
* built-in parser). The single public string→`ExprNode` entry point.
|
|
92
|
+
*
|
|
93
|
+
* @throws {FormulaDimensionError} on a parse error or non-homogeneity.
|
|
94
|
+
* @public
|
|
95
|
+
*/
|
|
96
|
+
export async function parsePhysics(text, dims) {
|
|
97
|
+
const checker = await getFormulaDimensionChecker();
|
|
98
|
+
return checker.parse(text, dims);
|
|
99
|
+
}
|
|
88
100
|
//# sourceMappingURL=formula-registry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formula-registry.js","sourceRoot":"","sources":["../../src/numerical/formula-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"formula-registry.js","sourceRoot":"","sources":["../../src/numerical/formula-registry.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,91 +1,92 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "universal-physics-tensor",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Computational framework for exploring unified physics through tensor formalism",
|
|
5
|
-
"main": "dist/index.js",
|
|
6
|
-
"types": "dist/index.d.ts",
|
|
7
|
-
"bin": {
|
|
8
|
-
"upt": "bin/upt.mjs"
|
|
9
|
-
},
|
|
10
|
-
"exports": {
|
|
11
|
-
".": {
|
|
12
|
-
"types": "./dist/index.d.ts",
|
|
13
|
-
"import": "./dist/index.js",
|
|
14
|
-
"default": "./dist/index.js"
|
|
15
|
-
},
|
|
16
|
-
"./numerical/mathts-engine": {
|
|
17
|
-
"types": "./dist/numerical/mathts-engine.d.ts",
|
|
18
|
-
"import": "./dist/numerical/mathts-engine.js",
|
|
19
|
-
"default": "./dist/numerical/mathts-engine.js"
|
|
20
|
-
}
|
|
21
|
-
},
|
|
22
|
-
"directories": {
|
|
23
|
-
"doc": "docs",
|
|
24
|
-
"example": "examples",
|
|
25
|
-
"test": "tests"
|
|
26
|
-
},
|
|
27
|
-
"scripts": {
|
|
28
|
-
"build": "tsc",
|
|
29
|
-
"dev": "tsc --watch",
|
|
30
|
-
"smoke": "node test-example.js",
|
|
31
|
-
"upt": "node bin/upt.mjs",
|
|
32
|
-
"explain": "node bin/upt.mjs explain",
|
|
33
|
-
"bridge-priority": "node bin/upt.mjs priority",
|
|
34
|
-
"test": "vitest run",
|
|
35
|
-
"test:watch": "vitest",
|
|
36
|
-
"prepublishOnly": "tsc && vitest run",
|
|
37
|
-
"bench": "vitest bench",
|
|
38
|
-
"bench:ci": "vitest bench --reporter=verbose",
|
|
39
|
-
"docs:deps": "npx tsx tools/create-dependency-graph/create-dependency-graph.ts --root=. --include-tests",
|
|
40
|
-
"audit:plans": "npx tsx tools/plan-doc-audit/audit.ts",
|
|
41
|
-
"catalog:json": "npm run build && node scripts/emit-catalog-json.mjs"
|
|
42
|
-
},
|
|
43
|
-
"files": [
|
|
44
|
-
"dist",
|
|
45
|
-
"bin",
|
|
46
|
-
"README.md",
|
|
47
|
-
"LICENSE"
|
|
48
|
-
],
|
|
49
|
-
"keywords": [
|
|
50
|
-
"physics",
|
|
51
|
-
"tensor",
|
|
52
|
-
"unification",
|
|
53
|
-
"quantum-mechanics",
|
|
54
|
-
"general-relativity",
|
|
55
|
-
"bridge-equations",
|
|
56
|
-
"theoretical-physics",
|
|
57
|
-
"computational-physics"
|
|
58
|
-
],
|
|
59
|
-
"author": "Daniel Simon Jr. <danielsimonjr@users.noreply.github.com>",
|
|
60
|
-
"license": "MIT",
|
|
61
|
-
"type": "module",
|
|
62
|
-
"engines": {
|
|
63
|
-
"node": ">=18.0.0"
|
|
64
|
-
},
|
|
65
|
-
"repository": {
|
|
66
|
-
"type": "git",
|
|
67
|
-
"url": "https://github.com/danielsimonjr/universal-physics-tensor.git"
|
|
68
|
-
},
|
|
69
|
-
"bugs": {
|
|
70
|
-
"url": "https://github.com/danielsimonjr/universal-physics-tensor/issues"
|
|
71
|
-
},
|
|
72
|
-
"homepage": "https://github.com/danielsimonjr/universal-physics-tensor#readme",
|
|
73
|
-
"devDependencies": {
|
|
74
|
-
"@types/node": "^26.0.0",
|
|
75
|
-
"fast-check": "^4.8.0",
|
|
76
|
-
"js-yaml": "^4.2.0",
|
|
77
|
-
"typescript": "^6.0.3",
|
|
78
|
-
"vitest": "^4.1.7"
|
|
79
|
-
},
|
|
80
|
-
"optionalDependencies": {
|
|
81
|
-
"@danielsimonjr/mathts-autograd": "^0.2.0",
|
|
82
|
-
"@danielsimonjr/mathts-core": "^0.1.3",
|
|
83
|
-
"@danielsimonjr/mathts-expression": "^0.2.1",
|
|
84
|
-
"@danielsimonjr/mathts-functions": "^0.2.2",
|
|
85
|
-
"@danielsimonjr/mathts-matrix": "^0.1.4",
|
|
86
|
-
"@danielsimonjr/mathts-parallel": "^0.2.1",
|
|
87
|
-
"@danielsimonjr/mathts-tensor": "^0.1.1",
|
|
88
|
-
"@danielsimonjr/mathts-wasm": "^0.1.3",
|
|
89
|
-
"@danielsimonjr/mathts-workerpool": "^0.2.0"
|
|
90
|
-
|
|
91
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "universal-physics-tensor",
|
|
3
|
+
"version": "0.28.0",
|
|
4
|
+
"description": "Computational framework for exploring unified physics through tensor formalism",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"bin": {
|
|
8
|
+
"upt": "bin/upt.mjs"
|
|
9
|
+
},
|
|
10
|
+
"exports": {
|
|
11
|
+
".": {
|
|
12
|
+
"types": "./dist/index.d.ts",
|
|
13
|
+
"import": "./dist/index.js",
|
|
14
|
+
"default": "./dist/index.js"
|
|
15
|
+
},
|
|
16
|
+
"./numerical/mathts-engine": {
|
|
17
|
+
"types": "./dist/numerical/mathts-engine.d.ts",
|
|
18
|
+
"import": "./dist/numerical/mathts-engine.js",
|
|
19
|
+
"default": "./dist/numerical/mathts-engine.js"
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
"directories": {
|
|
23
|
+
"doc": "docs",
|
|
24
|
+
"example": "examples",
|
|
25
|
+
"test": "tests"
|
|
26
|
+
},
|
|
27
|
+
"scripts": {
|
|
28
|
+
"build": "tsc",
|
|
29
|
+
"dev": "tsc --watch",
|
|
30
|
+
"smoke": "node test-example.js",
|
|
31
|
+
"upt": "node bin/upt.mjs",
|
|
32
|
+
"explain": "node bin/upt.mjs explain",
|
|
33
|
+
"bridge-priority": "node bin/upt.mjs priority",
|
|
34
|
+
"test": "vitest run",
|
|
35
|
+
"test:watch": "vitest",
|
|
36
|
+
"prepublishOnly": "tsc && vitest run",
|
|
37
|
+
"bench": "vitest bench",
|
|
38
|
+
"bench:ci": "vitest bench --reporter=verbose",
|
|
39
|
+
"docs:deps": "npx tsx tools/create-dependency-graph/create-dependency-graph.ts --root=. --include-tests",
|
|
40
|
+
"audit:plans": "npx tsx tools/plan-doc-audit/audit.ts",
|
|
41
|
+
"catalog:json": "npm run build && node scripts/emit-catalog-json.mjs"
|
|
42
|
+
},
|
|
43
|
+
"files": [
|
|
44
|
+
"dist",
|
|
45
|
+
"bin",
|
|
46
|
+
"README.md",
|
|
47
|
+
"LICENSE"
|
|
48
|
+
],
|
|
49
|
+
"keywords": [
|
|
50
|
+
"physics",
|
|
51
|
+
"tensor",
|
|
52
|
+
"unification",
|
|
53
|
+
"quantum-mechanics",
|
|
54
|
+
"general-relativity",
|
|
55
|
+
"bridge-equations",
|
|
56
|
+
"theoretical-physics",
|
|
57
|
+
"computational-physics"
|
|
58
|
+
],
|
|
59
|
+
"author": "Daniel Simon Jr. <danielsimonjr@users.noreply.github.com>",
|
|
60
|
+
"license": "MIT",
|
|
61
|
+
"type": "module",
|
|
62
|
+
"engines": {
|
|
63
|
+
"node": ">=18.0.0"
|
|
64
|
+
},
|
|
65
|
+
"repository": {
|
|
66
|
+
"type": "git",
|
|
67
|
+
"url": "git+https://github.com/danielsimonjr/universal-physics-tensor.git"
|
|
68
|
+
},
|
|
69
|
+
"bugs": {
|
|
70
|
+
"url": "https://github.com/danielsimonjr/universal-physics-tensor/issues"
|
|
71
|
+
},
|
|
72
|
+
"homepage": "https://github.com/danielsimonjr/universal-physics-tensor#readme",
|
|
73
|
+
"devDependencies": {
|
|
74
|
+
"@types/node": "^26.0.0",
|
|
75
|
+
"fast-check": "^4.8.0",
|
|
76
|
+
"js-yaml": "^4.2.0",
|
|
77
|
+
"typescript": "^6.0.3",
|
|
78
|
+
"vitest": "^4.1.7"
|
|
79
|
+
},
|
|
80
|
+
"optionalDependencies": {
|
|
81
|
+
"@danielsimonjr/mathts-autograd": "^0.2.0",
|
|
82
|
+
"@danielsimonjr/mathts-core": "^0.1.3",
|
|
83
|
+
"@danielsimonjr/mathts-expression": "^0.2.1",
|
|
84
|
+
"@danielsimonjr/mathts-functions": "^0.2.2",
|
|
85
|
+
"@danielsimonjr/mathts-matrix": "^0.1.4",
|
|
86
|
+
"@danielsimonjr/mathts-parallel": "^0.2.1",
|
|
87
|
+
"@danielsimonjr/mathts-tensor": "^0.1.1",
|
|
88
|
+
"@danielsimonjr/mathts-wasm": "^0.1.3",
|
|
89
|
+
"@danielsimonjr/mathts-workerpool": "^0.2.0",
|
|
90
|
+
"@viz-js/viz": "^3.28.0"
|
|
91
|
+
}
|
|
92
|
+
}
|