universal-physics-tensor 1.0.4 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (168) hide show
  1. package/README.md +6 -8
  2. package/dist/atlas/chain-pipeline.d.ts +37 -0
  3. package/dist/atlas/chain-pipeline.d.ts.map +1 -1
  4. package/dist/atlas/chain-pipeline.js +95 -79
  5. package/dist/atlas/chain-pipeline.js.map +1 -1
  6. package/dist/atlas/proof-target.d.ts +28 -2
  7. package/dist/atlas/proof-target.d.ts.map +1 -1
  8. package/dist/atlas/proof-target.js +25 -16
  9. package/dist/atlas/proof-target.js.map +1 -1
  10. package/dist/cli/commands/_atlas-route.d.ts +1 -1
  11. package/dist/cli/commands/atlas.d.ts.map +1 -1
  12. package/dist/cli/commands/atlas.js +1 -2
  13. package/dist/cli/commands/atlas.js.map +1 -1
  14. package/dist/cli/commands/eval.d.ts.map +1 -1
  15. package/dist/cli/commands/eval.js +7 -10
  16. package/dist/cli/commands/eval.js.map +1 -1
  17. package/dist/cli/commands/evaluate.d.ts +7 -3
  18. package/dist/cli/commands/evaluate.d.ts.map +1 -1
  19. package/dist/cli/commands/evaluate.js +53 -32
  20. package/dist/cli/commands/evaluate.js.map +1 -1
  21. package/dist/cli/commands/map.d.ts +1 -1
  22. package/dist/cli/commands/map.d.ts.map +1 -1
  23. package/dist/cli/commands/map.js.map +1 -1
  24. package/dist/cli/commands/metric.d.ts.map +1 -1
  25. package/dist/cli/commands/metric.js +10 -11
  26. package/dist/cli/commands/metric.js.map +1 -1
  27. package/dist/cli/commands/path.d.ts +2 -2
  28. package/dist/cli/commands/path.d.ts.map +1 -1
  29. package/dist/cli/commands/path.js +10 -11
  30. package/dist/cli/commands/path.js.map +1 -1
  31. package/dist/cli/commands/recover.d.ts.map +1 -1
  32. package/dist/cli/commands/recover.js +1 -2
  33. package/dist/cli/commands/recover.js.map +1 -1
  34. package/dist/cli/commands/regime.d.ts +2 -2
  35. package/dist/cli/commands/regime.d.ts.map +1 -1
  36. package/dist/cli/commands/regime.js +3 -4
  37. package/dist/cli/commands/regime.js.map +1 -1
  38. package/dist/cli/eval-numbers.d.ts +2 -2
  39. package/dist/cli/eval-numbers.js +2 -2
  40. package/dist/cli/version.d.ts +6 -2
  41. package/dist/cli/version.d.ts.map +1 -1
  42. package/dist/cli/version.js +11 -3
  43. package/dist/cli/version.js.map +1 -1
  44. package/dist/cli-api.d.ts +50 -0
  45. package/dist/cli-api.d.ts.map +1 -1
  46. package/dist/cli-api.js +42 -0
  47. package/dist/cli-api.js.map +1 -1
  48. package/dist/composition/chain-result.d.ts +55 -0
  49. package/dist/composition/chain-result.d.ts.map +1 -0
  50. package/dist/composition/chain-result.js +57 -0
  51. package/dist/composition/chain-result.js.map +1 -0
  52. package/dist/composition/compose-symbolic.d.ts.map +1 -1
  53. package/dist/composition/compose-symbolic.js +4 -39
  54. package/dist/composition/compose-symbolic.js.map +1 -1
  55. package/dist/composition/compose.d.ts.map +1 -1
  56. package/dist/composition/compose.js +11 -4
  57. package/dist/composition/compose.js.map +1 -1
  58. package/dist/composition/enumerate.d.ts +46 -5
  59. package/dist/composition/enumerate.d.ts.map +1 -1
  60. package/dist/composition/enumerate.js +37 -8
  61. package/dist/composition/enumerate.js.map +1 -1
  62. package/dist/composition/expr-simplify.d.ts.map +1 -1
  63. package/dist/composition/expr-simplify.js +3 -11
  64. package/dist/composition/expr-simplify.js.map +1 -1
  65. package/dist/composition/mathts-scalar-symbols.d.ts +48 -0
  66. package/dist/composition/mathts-scalar-symbols.d.ts.map +1 -0
  67. package/dist/composition/mathts-scalar-symbols.js +150 -0
  68. package/dist/composition/mathts-scalar-symbols.js.map +1 -0
  69. package/dist/composition/probe/study.js +1 -1
  70. package/dist/composition/probe/study.js.map +1 -1
  71. package/dist/composition/uncertainty.d.ts +2 -2
  72. package/dist/composition/uncertainty.d.ts.map +1 -1
  73. package/dist/composition/uncertainty.js +14 -13
  74. package/dist/composition/uncertainty.js.map +1 -1
  75. package/dist/diff/bridge-gradient.d.ts +5 -8
  76. package/dist/diff/bridge-gradient.d.ts.map +1 -1
  77. package/dist/diff/bridge-gradient.js +5 -8
  78. package/dist/diff/bridge-gradient.js.map +1 -1
  79. package/dist/dimensional/buckingham.d.ts.map +1 -1
  80. package/dist/dimensional/buckingham.js +19 -91
  81. package/dist/dimensional/buckingham.js.map +1 -1
  82. package/dist/dimensional/units.d.ts +13 -0
  83. package/dist/dimensional/units.d.ts.map +1 -1
  84. package/dist/dimensional/units.js +78 -1
  85. package/dist/dimensional/units.js.map +1 -1
  86. package/dist/index.d.ts +1 -1
  87. package/dist/index.d.ts.map +1 -1
  88. package/dist/index.js +4 -4
  89. package/dist/index.js.map +1 -1
  90. package/dist/numerical/binding-value.d.ts +3 -3
  91. package/dist/numerical/binding-value.d.ts.map +1 -1
  92. package/dist/numerical/binding-value.js +60 -31
  93. package/dist/numerical/binding-value.js.map +1 -1
  94. package/dist/numerical/einstein-equation.js +3 -3
  95. package/dist/numerical/einstein-equation.js.map +1 -1
  96. package/dist/numerical/engine-registry.d.ts +12 -27
  97. package/dist/numerical/engine-registry.d.ts.map +1 -1
  98. package/dist/numerical/engine-registry.js +10 -65
  99. package/dist/numerical/engine-registry.js.map +1 -1
  100. package/dist/numerical/errors.d.ts +1 -2
  101. package/dist/numerical/errors.d.ts.map +1 -1
  102. package/dist/numerical/errors.js +1 -2
  103. package/dist/numerical/errors.js.map +1 -1
  104. package/dist/numerical/formula-contract.d.ts +60 -0
  105. package/dist/numerical/formula-contract.d.ts.map +1 -0
  106. package/dist/numerical/formula-contract.js +107 -0
  107. package/dist/numerical/formula-contract.js.map +1 -0
  108. package/dist/numerical/formula-dimension.d.ts +33 -10
  109. package/dist/numerical/formula-dimension.d.ts.map +1 -1
  110. package/dist/numerical/formula-dimension.js +48 -35
  111. package/dist/numerical/formula-dimension.js.map +1 -1
  112. package/dist/numerical/formula-mathts.d.ts +15 -17
  113. package/dist/numerical/formula-mathts.d.ts.map +1 -1
  114. package/dist/numerical/formula-mathts.js +34 -36
  115. package/dist/numerical/formula-mathts.js.map +1 -1
  116. package/dist/numerical/formula-registry.d.ts +11 -19
  117. package/dist/numerical/formula-registry.d.ts.map +1 -1
  118. package/dist/numerical/formula-registry.js +16 -79
  119. package/dist/numerical/formula-registry.js.map +1 -1
  120. package/dist/numerical/geodesic-integrator.d.ts.map +1 -1
  121. package/dist/numerical/geodesic-integrator.js +19 -31
  122. package/dist/numerical/geodesic-integrator.js.map +1 -1
  123. package/dist/numerical/gl4-integrator.d.ts +12 -51
  124. package/dist/numerical/gl4-integrator.d.ts.map +1 -1
  125. package/dist/numerical/gl4-integrator.js +103 -565
  126. package/dist/numerical/gl4-integrator.js.map +1 -1
  127. package/dist/numerical/index.d.ts +0 -2
  128. package/dist/numerical/index.d.ts.map +1 -1
  129. package/dist/numerical/index.js +0 -2
  130. package/dist/numerical/index.js.map +1 -1
  131. package/dist/numerical/kretschmann.d.ts +2 -2
  132. package/dist/numerical/kretschmann.js +2 -2
  133. package/dist/numerical/mathts-engine.d.ts +7 -8
  134. package/dist/numerical/mathts-engine.d.ts.map +1 -1
  135. package/dist/numerical/mathts-engine.js +19 -27
  136. package/dist/numerical/mathts-engine.js.map +1 -1
  137. package/dist/numerical/null-ray-integrator.d.ts.map +1 -1
  138. package/dist/numerical/null-ray-integrator.js +11 -28
  139. package/dist/numerical/null-ray-integrator.js.map +1 -1
  140. package/dist/numerical/quadrature.d.ts +2 -17
  141. package/dist/numerical/quadrature.d.ts.map +1 -1
  142. package/dist/numerical/quadrature.js +9 -20
  143. package/dist/numerical/quadrature.js.map +1 -1
  144. package/dist/numerical/strides.d.ts +1 -2
  145. package/dist/numerical/strides.d.ts.map +1 -1
  146. package/dist/numerical/strides.js +1 -2
  147. package/dist/numerical/strides.js.map +1 -1
  148. package/dist/numerical/tensor-engine.d.ts +2 -3
  149. package/dist/numerical/tensor-engine.d.ts.map +1 -1
  150. package/dist/numerical/tensor-engine.js +1 -2
  151. package/dist/numerical/tensor-engine.js.map +1 -1
  152. package/dist/relations/category.d.ts +8 -2
  153. package/dist/relations/category.d.ts.map +1 -1
  154. package/dist/relations/category.js +10 -2
  155. package/dist/relations/category.js.map +1 -1
  156. package/dist/relations/regime-vocabularies.d.ts +40 -0
  157. package/dist/relations/regime-vocabularies.d.ts.map +1 -0
  158. package/dist/relations/regime-vocabularies.js +19 -0
  159. package/dist/relations/regime-vocabularies.js.map +1 -0
  160. package/package.json +12 -46
  161. package/dist/numerical/float64-engine.d.ts +0 -55
  162. package/dist/numerical/float64-engine.d.ts.map +0 -1
  163. package/dist/numerical/float64-engine.js +0 -675
  164. package/dist/numerical/float64-engine.js.map +0 -1
  165. package/dist/numerical/formula.d.ts +0 -106
  166. package/dist/numerical/formula.d.ts.map +0 -1
  167. package/dist/numerical/formula.js +0 -348
  168. package/dist/numerical/formula.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"float64-engine.js","sourceRoot":"","sources":["../../src/numerical/float64-engine.ts"],"names":[],"mappings":"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"}
@@ -1,106 +0,0 @@
1
- /**
2
- * Self-contained scalar-formula parser/evaluator (Path B).
3
- *
4
- * A small, dependency-free recursive-descent parser for closed-form
5
- * scalar physics expressions — `hbar*c^3/(8*pi*G*M*k_B)` and the like —
6
- * so non-TypeScript users can supply their OWN equation to the CLI
7
- * without UPT shipping a code evaluator. It is SAFE: there is no `eval`,
8
- * no function constructor, no property access — only arithmetic over
9
- * numbers, a fixed whitelist of math functions, and the variables the
10
- * caller explicitly supplies. An unknown symbol is an error, never an
11
- * implicit global.
12
- *
13
- * It sits behind the {@link FormulaParser} interface so a MathTS-backed
14
- * parser (Path A) can be dropped in later by implementing the same
15
- * contract — the inference/CLI code depends only on the interface.
16
- *
17
- * Grammar (standard precedence; `^` is right-associative; unary minus
18
- * binds looser than `^`, so `-2^2 = -4` and `2^-2` parses):
19
- * expr → term (('+'|'-') term)*
20
- * term → unary (('*'|'/') unary)*
21
- * unary → ('+'|'-') unary | power
22
- * power → atom ('^' unary)?
23
- * atom → NUMBER | NAME | NAME '(' args ')' | '(' expr ')'
24
- *
25
- * @module numerical/formula
26
- */
27
- /** A parse or evaluation failure (bad syntax, unknown symbol, arity). */
28
- export declare class FormulaError extends Error {
29
- constructor(message: string);
30
- }
31
- /** A parsed formula: its free variables and a safe evaluator. @internal */
32
- export interface CompiledFormula {
33
- /** The original source string. */
34
- readonly source: string;
35
- /** Free variable names (excludes built-in constants and functions). */
36
- readonly variables: readonly string[];
37
- /** Evaluate against a `name → value` scope. Throws on a missing var. */
38
- evaluate(scope: Record<string, number>): number;
39
- }
40
- /** The swap point for Path A (a MathTS-backed parser implements this). */
41
- export interface FormulaParser {
42
- parse(expr: string): CompiledFormula;
43
- }
44
- /**
45
- * The name `euler` is not Euler's number. Write `exp(x)`, for example `exp(1)`.
46
- * A bare `e` is the elementary charge. `E` is energy.
47
- * @internal
48
- */
49
- export declare const EULER_NUMBER_ERROR = "euler is not Euler's number. Write it as exp(x), for example exp(1). A bare e is the elementary charge. E is energy.";
50
- /** Names of the built-in functions this parser documents. @internal */
51
- export declare const BUILTIN_FUNCTION_NAMES: readonly string[];
52
- /**
53
- * Function names from other conventions, each with the documented function that computes the same
54
- * value (audit I4). An unknown name still fails: the equivalent is only named in the message, so a
55
- * formula never means something its author did not write. Every `use` is in
56
- * {@link BUILTIN_FUNCTION_NAMES}, and the conformance suite checks each against the value the
57
- * foreign name means, under both parsers.
58
- * @internal
59
- */
60
- export declare const FUNCTION_EQUIVALENTS: Readonly<Record<string, {
61
- readonly use: string;
62
- readonly meaning: string;
63
- }>>;
64
- /** The documented functions as help and diagnostics list them, with the base of `log` stated. @internal */
65
- export declare const BUILTIN_FUNCTION_LIST: string;
66
- /**
67
- * The diagnostic for a function neither parser documents: the documented equivalent when the name
68
- * is a known alias or differs only in case, then the documented list. @internal
69
- */
70
- export declare function unknownFunctionMessage(name: string): string;
71
- /**
72
- * Call a built-in function by name, with this parser's arity checks. Lets
73
- * another parser supply a documented function it does not define itself.
74
- * @internal
75
- */
76
- export declare function callBuiltinFunction(name: string, args: number[]): number;
77
- type Node = {
78
- kind: 'num';
79
- value: number;
80
- } | {
81
- kind: 'sym';
82
- name: string;
83
- } | {
84
- kind: 'unary';
85
- op: '+' | '-';
86
- arg: Node;
87
- } | {
88
- kind: 'bin';
89
- op: '+' | '-' | '*' | '/' | '^';
90
- left: Node;
91
- right: Node;
92
- } | {
93
- kind: 'call';
94
- fn: string;
95
- args: Node[];
96
- };
97
- /** The self-contained Path B parser. @internal */
98
- export declare const defaultFormulaParser: FormulaParser;
99
- /** Parse a scalar formula with the default (self-contained) parser. @internal */
100
- export declare function parseFormula(expr: string): CompiledFormula;
101
- /** The Path B formula AST node. @internal */
102
- export type FormulaAstNode = Node;
103
- /** Parse a formula to its Path B AST. @internal */
104
- export declare const parseFormulaToAst: (expr: string) => FormulaAstNode;
105
- export {};
106
- //# sourceMappingURL=formula.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"formula.d.ts","sourceRoot":"","sources":["../../src/numerical/formula.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAIH,yEAAyE;AACzE,qBAAa,YAAa,SAAQ,KAAK;IACrC,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAED,2EAA2E;AAC3E,MAAM,WAAW,eAAe;IAC9B,kCAAkC;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,uEAAuE;IACvE,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,wEAAwE;IACxE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC;CACjD;AAED,0EAA0E;AAC1E,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAAC;CACtC;AAID;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,yHACyF,CAAC;AAkDzH,uEAAuE;AACvE,eAAO,MAAM,sBAAsB,EAAE,SAAS,MAAM,EAA2B,CAAC;AAEhF;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAY7G,CAAC;AAEF,2GAA2G;AAC3G,eAAO,MAAM,qBAAqB,EAAE,MAExB,CAAC;AAEb;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAW3D;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAIxE;AAID,KAAK,IAAI,GACL;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC7B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,GAAG,GAAG,GAAG,CAAC;IAAC,GAAG,EAAE,IAAI,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAAC,IAAI,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,IAAI,CAAA;CAAE,GACzE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,EAAE,CAAA;CAAE,CAAC;AA8L/C,kDAAkD;AAClD,eAAO,MAAM,oBAAoB,EAAE,aAqBlC,CAAC;AAEF,iFAAiF;AACjF,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAE1D;AAQD,6CAA6C;AAC7C,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC;AAClC,mDAAmD;AACnD,eAAO,MAAM,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,cAA2B,CAAC"}
@@ -1,348 +0,0 @@
1
- /**
2
- * Self-contained scalar-formula parser/evaluator (Path B).
3
- *
4
- * A small, dependency-free recursive-descent parser for closed-form
5
- * scalar physics expressions — `hbar*c^3/(8*pi*G*M*k_B)` and the like —
6
- * so non-TypeScript users can supply their OWN equation to the CLI
7
- * without UPT shipping a code evaluator. It is SAFE: there is no `eval`,
8
- * no function constructor, no property access — only arithmetic over
9
- * numbers, a fixed whitelist of math functions, and the variables the
10
- * caller explicitly supplies. An unknown symbol is an error, never an
11
- * implicit global.
12
- *
13
- * It sits behind the {@link FormulaParser} interface so a MathTS-backed
14
- * parser (Path A) can be dropped in later by implementing the same
15
- * contract — the inference/CLI code depends only on the interface.
16
- *
17
- * Grammar (standard precedence; `^` is right-associative; unary minus
18
- * binds looser than `^`, so `-2^2 = -4` and `2^-2` parses):
19
- * expr → term (('+'|'-') term)*
20
- * term → unary (('*'|'/') unary)*
21
- * unary → ('+'|'-') unary | power
22
- * power → atom ('^' unary)?
23
- * atom → NUMBER | NAME | NAME '(' args ')' | '(' expr ')'
24
- *
25
- * @module numerical/formula
26
- */
27
- import { E_SI } from '../core/constants.js';
28
- /** A parse or evaluation failure (bad syntax, unknown symbol, arity). */
29
- export class FormulaError extends Error {
30
- constructor(message) {
31
- super(message);
32
- this.name = 'FormulaError';
33
- }
34
- }
35
- // --- built-ins ------------------------------------------------------------
36
- /**
37
- * The name `euler` is not Euler's number. Write `exp(x)`, for example `exp(1)`.
38
- * A bare `e` is the elementary charge. `E` is energy.
39
- * @internal
40
- */
41
- export const EULER_NUMBER_ERROR = "euler is not Euler's number. Write it as exp(x), for example exp(1). A bare e is the elementary charge. E is energy.";
42
- /**
43
- * Baked numeric constants. `e` is the elementary charge (CODATA / ISO 80000),
44
- * not Euler's number. Euler's number is `exp(x)`. `pi` and `tau` ignore a
45
- * scope value. `e` does not: an explicit `name=` replaces the baked value,
46
- * the same way a filled CODATA name does.
47
- */
48
- const CONSTANTS = {
49
- pi: Math.PI,
50
- tau: 2 * Math.PI,
51
- e: E_SI,
52
- };
53
- /** Scope replaces the baked value for these names only. */
54
- const SCOPE_WINS = new Set(['e']);
55
- const arity1 = (f) => (a) => {
56
- if (a.length !== 1)
57
- throw new FormulaError('expected 1 argument');
58
- return f(a[0]);
59
- };
60
- const FUNCTIONS = {
61
- sqrt: arity1(Math.sqrt),
62
- cbrt: arity1(Math.cbrt),
63
- exp: arity1(Math.exp),
64
- ln: arity1(Math.log),
65
- log: arity1(Math.log), // natural log (physics convention)
66
- log10: arity1(Math.log10),
67
- log2: arity1(Math.log2),
68
- abs: arity1(Math.abs),
69
- sin: arity1(Math.sin),
70
- cos: arity1(Math.cos),
71
- tan: arity1(Math.tan),
72
- asin: arity1(Math.asin),
73
- acos: arity1(Math.acos),
74
- atan: arity1(Math.atan),
75
- sinh: arity1(Math.sinh),
76
- cosh: arity1(Math.cosh),
77
- tanh: arity1(Math.tanh),
78
- pow: (a) => {
79
- if (a.length !== 2)
80
- throw new FormulaError('pow expects 2 arguments');
81
- return Math.pow(a[0], a[1]);
82
- },
83
- atan2: (a) => {
84
- if (a.length !== 2)
85
- throw new FormulaError('atan2 expects 2 arguments');
86
- return Math.atan2(a[0], a[1]);
87
- },
88
- };
89
- /** Names of the built-in functions this parser documents. @internal */
90
- export const BUILTIN_FUNCTION_NAMES = Object.keys(FUNCTIONS);
91
- /**
92
- * Function names from other conventions, each with the documented function that computes the same
93
- * value (audit I4). An unknown name still fails: the equivalent is only named in the message, so a
94
- * formula never means something its author did not write. Every `use` is in
95
- * {@link BUILTIN_FUNCTION_NAMES}, and the conformance suite checks each against the value the
96
- * foreign name means, under both parsers.
97
- * @internal
98
- */
99
- export const FUNCTION_EQUIVALENTS = {
100
- lg: { use: 'log10', meaning: 'the base-10 logarithm' },
101
- lb: { use: 'log2', meaning: 'the base-2 logarithm' },
102
- ld: { use: 'log2', meaning: 'the base-2 logarithm' },
103
- arcsin: { use: 'asin', meaning: 'the inverse sine' },
104
- arccos: { use: 'acos', meaning: 'the inverse cosine' },
105
- arctan: { use: 'atan', meaning: 'the inverse tangent' },
106
- arctg: { use: 'atan', meaning: 'the inverse tangent' },
107
- tg: { use: 'tan', meaning: 'the tangent' },
108
- fabs: { use: 'abs', meaning: 'the absolute value' },
109
- power: { use: 'pow', meaning: 'a power' },
110
- arctan2: { use: 'atan2', meaning: 'the two-argument inverse tangent' },
111
- };
112
- /** The documented functions as help and diagnostics list them, with the base of `log` stated. @internal */
113
- export const BUILTIN_FUNCTION_LIST = BUILTIN_FUNCTION_NAMES.map((n) => n === 'log' ? 'log (natural, = ln)' : n).join(', ');
114
- /**
115
- * The diagnostic for a function neither parser documents: the documented equivalent when the name
116
- * is a known alias or differs only in case, then the documented list. @internal
117
- */
118
- export function unknownFunctionMessage(name) {
119
- const alias = FUNCTION_EQUIVALENTS[name];
120
- const lower = name.toLowerCase();
121
- const use = alias?.use ?? (lower !== name && BUILTIN_FUNCTION_NAMES.includes(lower) ? lower : FUNCTION_EQUIVALENTS[lower]?.use);
122
- const meaning = alias?.meaning ?? FUNCTION_EQUIVALENTS[lower]?.meaning;
123
- const hint = use === undefined
124
- ? ''
125
- : ` For ${meaning ?? `the function ${use}`} use ${use}(…), which both formula parsers evaluate.`;
126
- return `unknown function '${name}'.${hint} Documented functions: ${BUILTIN_FUNCTION_LIST}.`;
127
- }
128
- /**
129
- * Call a built-in function by name, with this parser's arity checks. Lets
130
- * another parser supply a documented function it does not define itself.
131
- * @internal
132
- */
133
- export function callBuiltinFunction(name, args) {
134
- const fn = FUNCTIONS[name];
135
- if (fn === undefined)
136
- throw new FormulaError(unknownFunctionMessage(name));
137
- return fn(args);
138
- }
139
- const NUM_RE = /^(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?/;
140
- const NAME_RE = /^[A-Za-z_][A-Za-z0-9_]*/;
141
- function tokenize(src) {
142
- const toks = [];
143
- let s = src;
144
- while (s.length) {
145
- const ch = s[0];
146
- if (ch === ' ' || ch === '\t' || ch === '\n') {
147
- s = s.slice(1);
148
- continue;
149
- }
150
- if ('+-*/^(),'.includes(ch)) {
151
- toks.push({ t: 'op', v: ch });
152
- s = s.slice(1);
153
- continue;
154
- }
155
- const num = NUM_RE.exec(s);
156
- if (num) {
157
- toks.push({ t: 'num', v: Number(num[0]) });
158
- s = s.slice(num[0].length);
159
- continue;
160
- }
161
- const name = NAME_RE.exec(s);
162
- if (name) {
163
- toks.push({ t: 'name', v: name[0] });
164
- s = s.slice(name[0].length);
165
- continue;
166
- }
167
- throw new FormulaError(`unexpected character '${ch}' in formula`);
168
- }
169
- return toks;
170
- }
171
- // --- parser (recursive descent) ------------------------------------------
172
- function parseToAst(src) {
173
- const toks = tokenize(src);
174
- let i = 0;
175
- const peek = () => toks[i];
176
- const eat = (v) => {
177
- const tk = toks[i];
178
- if (!tk)
179
- throw new FormulaError('unexpected end of formula');
180
- if (v !== undefined && !(tk.t === 'op' && tk.v === v)) {
181
- throw new FormulaError(`expected '${v}'`);
182
- }
183
- i++;
184
- return tk;
185
- };
186
- const isOp = (v) => {
187
- const tk = peek();
188
- return !!tk && tk.t === 'op' && tk.v === v;
189
- };
190
- function expr() {
191
- let node = term();
192
- while (isOp('+') || isOp('-')) {
193
- const op = eat().v;
194
- node = { kind: 'bin', op, left: node, right: term() };
195
- }
196
- return node;
197
- }
198
- function term() {
199
- let node = unary();
200
- while (isOp('*') || isOp('/')) {
201
- const op = eat().v;
202
- node = { kind: 'bin', op, left: node, right: unary() };
203
- }
204
- return node;
205
- }
206
- function unary() {
207
- if (isOp('+') || isOp('-')) {
208
- const op = eat().v;
209
- return { kind: 'unary', op, arg: unary() };
210
- }
211
- return power();
212
- }
213
- function power() {
214
- const base = atom();
215
- if (isOp('^')) {
216
- eat('^');
217
- return { kind: 'bin', op: '^', left: base, right: unary() };
218
- }
219
- return base;
220
- }
221
- function atom() {
222
- const tk = peek();
223
- if (!tk)
224
- throw new FormulaError('unexpected end of formula');
225
- if (tk.t === 'num') {
226
- eat();
227
- return { kind: 'num', value: tk.v };
228
- }
229
- if (tk.t === 'name') {
230
- eat();
231
- if (tk.v === 'euler')
232
- throw new FormulaError(EULER_NUMBER_ERROR);
233
- if (isOp('(')) {
234
- eat('(');
235
- const args = [];
236
- if (!isOp(')')) {
237
- args.push(expr());
238
- while (isOp(',')) {
239
- eat(',');
240
- args.push(expr());
241
- }
242
- }
243
- eat(')');
244
- return { kind: 'call', fn: tk.v, args };
245
- }
246
- return { kind: 'sym', name: tk.v };
247
- }
248
- if (tk.t === 'op' && tk.v === '(') {
249
- eat('(');
250
- const node = expr();
251
- eat(')');
252
- return node;
253
- }
254
- throw new FormulaError(`unexpected token '${tk.v}'`);
255
- }
256
- const node = expr();
257
- if (i !== toks.length) {
258
- throw new FormulaError(`unexpected trailing input in formula`);
259
- }
260
- return node;
261
- }
262
- function collectSymbols(node, out) {
263
- switch (node.kind) {
264
- case 'num':
265
- return;
266
- case 'sym':
267
- if (!(node.name in CONSTANTS))
268
- out.add(node.name);
269
- return;
270
- case 'unary':
271
- collectSymbols(node.arg, out);
272
- return;
273
- case 'bin':
274
- collectSymbols(node.left, out);
275
- collectSymbols(node.right, out);
276
- return;
277
- case 'call':
278
- for (const a of node.args)
279
- collectSymbols(a, out);
280
- return;
281
- }
282
- }
283
- function evalNode(node, scope) {
284
- switch (node.kind) {
285
- case 'num':
286
- return node.value;
287
- case 'sym': {
288
- const baked = CONSTANTS[node.name];
289
- const fromScope = scope[node.name];
290
- if (baked !== undefined && !(SCOPE_WINS.has(node.name) && fromScope !== undefined))
291
- return baked;
292
- if (fromScope === undefined)
293
- throw new FormulaError(`unknown variable '${node.name}'`);
294
- return fromScope;
295
- }
296
- case 'unary': {
297
- const a = evalNode(node.arg, scope);
298
- return node.op === '-' ? -a : a;
299
- }
300
- case 'bin': {
301
- const l = evalNode(node.left, scope);
302
- const r = evalNode(node.right, scope);
303
- switch (node.op) {
304
- case '+': return l + r;
305
- case '-': return l - r;
306
- case '*': return l * r;
307
- case '/': return l / r;
308
- case '^': return Math.pow(l, r);
309
- }
310
- }
311
- // eslint-disable-next-line no-fallthrough
312
- case 'call': {
313
- const fn = FUNCTIONS[node.fn];
314
- if (!fn)
315
- throw new FormulaError(unknownFunctionMessage(node.fn));
316
- return fn(node.args.map((a) => evalNode(a, scope)));
317
- }
318
- }
319
- }
320
- /** The self-contained Path B parser. @internal */
321
- export const defaultFormulaParser = {
322
- parse(expr) {
323
- if (!expr || !expr.trim())
324
- throw new FormulaError('empty formula');
325
- const ast = parseToAst(expr);
326
- const syms = new Set();
327
- collectSymbols(ast, syms);
328
- const variables = [...syms].sort();
329
- return {
330
- source: expr,
331
- variables,
332
- evaluate: (scope) => {
333
- const v = evalNode(ast, scope);
334
- if (!Number.isFinite(v)) {
335
- throw new FormulaError(`formula '${expr}' evaluated to a non-finite value (${v}).`);
336
- }
337
- return v;
338
- },
339
- };
340
- },
341
- };
342
- /** Parse a scalar formula with the default (self-contained) parser. @internal */
343
- export function parseFormula(expr) {
344
- return defaultFormulaParser.parse(expr);
345
- }
346
- /** Parse a formula to its Path B AST. @internal */
347
- export const parseFormulaToAst = parseToAst;
348
- //# sourceMappingURL=formula.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"formula.js","sourceRoot":"","sources":["../../src/numerical/formula.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAE5C,yEAAyE;AACzE,MAAM,OAAO,YAAa,SAAQ,KAAK;IACrC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AAiBD,6EAA6E;AAE7E;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAC7B,sHAAsH,CAAC;AAEzH;;;;;GAKG;AACH,MAAM,SAAS,GAAqC;IAClD,EAAE,EAAE,IAAI,CAAC,EAAE;IACX,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE;IAChB,CAAC,EAAE,IAAI;CACR,CAAC;AAEF,2DAA2D;AAC3D,MAAM,UAAU,GAAwB,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAGvD,MAAM,MAAM,GAAG,CAAC,CAAwB,EAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;IACrD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,YAAY,CAAC,qBAAqB,CAAC,CAAC;IAClE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC;AACF,MAAM,SAAS,GAAiC;IAC9C,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;IACrB,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,mCAAmC;IAC1D,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;IACvB,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE;QACT,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,YAAY,CAAC,yBAAyB,CAAC,CAAC;QACtE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IACD,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE;QACX,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,YAAY,CAAC,2BAA2B,CAAC,CAAC;QACxE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;CACF,CAAC;AAEF,uEAAuE;AACvE,MAAM,CAAC,MAAM,sBAAsB,GAAsB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAEhF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAiF;IAChH,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,uBAAuB,EAAE;IACtD,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,EAAE;IACpD,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,EAAE;IACpD,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,EAAE;IACpD,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,EAAE;IACtD,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,qBAAqB,EAAE;IACvD,KAAK,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,qBAAqB,EAAE;IACtD,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE;IAC1C,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,oBAAoB,EAAE;IACnD,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE;IACzC,OAAO,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,kCAAkC,EAAE;CACvE,CAAC;AAEF,2GAA2G;AAC3G,MAAM,CAAC,MAAM,qBAAqB,GAAW,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC5E,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CACxC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAY;IACjD,MAAM,KAAK,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACjC,MAAM,GAAG,GACP,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,sBAAsB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;IACtH,MAAM,OAAO,GAAG,KAAK,EAAE,OAAO,IAAI,oBAAoB,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACvE,MAAM,IAAI,GACR,GAAG,KAAK,SAAS;QACf,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,QAAQ,OAAO,IAAI,gBAAgB,GAAG,EAAE,QAAQ,GAAG,2CAA2C,CAAC;IACrG,OAAO,qBAAqB,IAAI,KAAK,IAAI,0BAA0B,qBAAqB,GAAG,CAAC;AAC9F,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY,EAAE,IAAc;IAC9D,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,EAAE,KAAK,SAAS;QAAE,MAAM,IAAI,YAAY,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3E,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;AAClB,CAAC;AAkBD,MAAM,MAAM,GAAG,uCAAuC,CAAC;AACvD,MAAM,OAAO,GAAG,yBAAyB,CAAC;AAE1C,SAAS,QAAQ,CAAC,GAAW;IAC3B,MAAM,IAAI,GAAU,EAAE,CAAC;IACvB,IAAI,CAAC,GAAG,GAAG,CAAC;IACZ,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;QAChB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChB,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;YAC7C,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACf,SAAS;QACX,CAAC;QACD,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC9B,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACf,SAAS;QACX,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,GAAG,EAAE,CAAC;YACR,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC3C,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3B,SAAS;QACX,CAAC;QACD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACrC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC5B,SAAS;QACX,CAAC;QACD,MAAM,IAAI,YAAY,CAAC,yBAAyB,EAAE,cAAc,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,4EAA4E;AAE5E,SAAS,UAAU,CAAC,GAAW;IAC7B,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,MAAM,IAAI,GAAG,GAAoB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,CAAC,CAAU,EAAO,EAAE;QAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACnB,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,YAAY,CAAC,2BAA2B,CAAC,CAAC;QAC7D,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YACtD,MAAM,IAAI,YAAY,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAC5C,CAAC;QACD,CAAC,EAAE,CAAC;QACJ,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC;IACF,MAAM,IAAI,GAAG,CAAC,CAAS,EAAW,EAAE;QAClC,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC;QAClB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC,CAAC;IAEF,SAAS,IAAI;QACX,IAAI,IAAI,GAAG,IAAI,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,EAAE,GAAI,GAAG,EAAuB,CAAC,CAAC,CAAC;YACzC,IAAI,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;QACxD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,SAAS,IAAI;QACX,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,EAAE,GAAI,GAAG,EAAuB,CAAC,CAAC,CAAC;YACzC,IAAI,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC;QACzD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,SAAS,KAAK;QACZ,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,EAAE,GAAI,GAAG,EAAuB,CAAC,CAAC,CAAC;YACzC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC;QAC7C,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;IACjB,CAAC;IACD,SAAS,KAAK;QACZ,MAAM,IAAI,GAAG,IAAI,EAAE,CAAC;QACpB,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACd,GAAG,CAAC,GAAG,CAAC,CAAC;YACT,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC;QAC9D,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,SAAS,IAAI;QACX,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC;QAClB,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,YAAY,CAAC,2BAA2B,CAAC,CAAC;QAC7D,IAAI,EAAE,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;YACnB,GAAG,EAAE,CAAC;YACN,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;QACtC,CAAC;QACD,IAAI,EAAE,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;YACpB,GAAG,EAAE,CAAC;YACN,IAAI,EAAE,CAAC,CAAC,KAAK,OAAO;gBAAE,MAAM,IAAI,YAAY,CAAC,kBAAkB,CAAC,CAAC;YACjE,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACd,GAAG,CAAC,GAAG,CAAC,CAAC;gBACT,MAAM,IAAI,GAAW,EAAE,CAAC;gBACxB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;oBACf,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;oBAClB,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;wBACjB,GAAG,CAAC,GAAG,CAAC,CAAC;wBACT,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;oBACpB,CAAC;gBACH,CAAC;gBACD,GAAG,CAAC,GAAG,CAAC,CAAC;gBACT,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;YAC1C,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;QACrC,CAAC;QACD,IAAI,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAClC,GAAG,CAAC,GAAG,CAAC,CAAC;YACT,MAAM,IAAI,GAAG,IAAI,EAAE,CAAC;YACpB,GAAG,CAAC,GAAG,CAAC,CAAC;YACT,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,IAAI,YAAY,CAAC,qBAAsB,EAAqB,CAAC,CAAC,GAAG,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,EAAE,CAAC;IACpB,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;QACtB,MAAM,IAAI,YAAY,CAAC,sCAAsC,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,cAAc,CAAC,IAAU,EAAE,GAAgB;IAClD,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,KAAK;YACR,OAAO;QACT,KAAK,KAAK;YACR,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,SAAS,CAAC;gBAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClD,OAAO;QACT,KAAK,OAAO;YACV,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC9B,OAAO;QACT,KAAK,KAAK;YACR,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC/B,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAChC,OAAO;QACT,KAAK,MAAM;YACT,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI;gBAAE,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAClD,OAAO;IACX,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,IAAU,EAAE,KAA6B;IACzD,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,KAAK;YACR,OAAO,IAAI,CAAC,KAAK,CAAC;QACpB,KAAK,KAAK,EAAE,CAAC;YACX,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnC,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS,KAAK,SAAS,CAAC;gBAAE,OAAO,KAAK,CAAC;YACjG,IAAI,SAAS,KAAK,SAAS;gBAAE,MAAM,IAAI,YAAY,CAAC,qBAAqB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;YACvF,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,KAAK,OAAO,EAAE,CAAC;YACb,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACpC,OAAO,IAAI,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,CAAC;QACD,KAAK,KAAK,EAAE,CAAC;YACX,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACrC,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACtC,QAAQ,IAAI,CAAC,EAAE,EAAE,CAAC;gBAChB,KAAK,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;gBACvB,KAAK,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;gBACvB,KAAK,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;gBACvB,KAAK,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;gBACvB,KAAK,GAAG,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;QACD,0CAA0C;QAC1C,KAAK,MAAM,EAAE,CAAC;YACZ,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC9B,IAAI,CAAC,EAAE;gBAAE,MAAM,IAAI,YAAY,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACjE,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;AACH,CAAC;AAED,kDAAkD;AAClD,MAAM,CAAC,MAAM,oBAAoB,GAAkB;IACjD,KAAK,CAAC,IAAY;QAChB,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAAE,MAAM,IAAI,YAAY,CAAC,eAAe,CAAC,CAAC;QACnE,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAC7B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC1B,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QACnC,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,SAAS;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;gBAClB,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBAC/B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;oBACxB,MAAM,IAAI,YAAY,CACpB,YAAY,IAAI,sCAAsC,CAAC,IAAI,CAC5D,CAAC;gBACJ,CAAC;gBACD,OAAO,CAAC,CAAC;YACX,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC;AAEF,iFAAiF;AACjF,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC1C,CAAC;AAUD,mDAAmD;AACnD,MAAM,CAAC,MAAM,iBAAiB,GAAqC,UAAU,CAAC"}