@cortex-js/compute-engine 0.35.6 → 0.50.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 (222) hide show
  1. package/README.md +121 -5
  2. package/dist/compute-engine.esm.js +50435 -44944
  3. package/dist/compute-engine.min.esm.js +1072 -69
  4. package/dist/compute-engine.min.umd.js +1072 -69
  5. package/dist/compute-engine.umd.js +50540 -45049
  6. package/dist/math-json.esm.js +2 -2
  7. package/dist/math-json.min.esm.js +2 -2
  8. package/dist/math-json.min.umd.js +2 -2
  9. package/dist/math-json.umd.js +2 -2
  10. package/dist/types/common/ansi-codes.d.ts +1 -1
  11. package/dist/types/common/configuration-change.d.ts +1 -1
  12. package/dist/types/common/fuzzy-string-match.d.ts +1 -1
  13. package/dist/types/common/grapheme-splitter.d.ts +1 -1
  14. package/dist/types/common/interruptible.d.ts +1 -1
  15. package/dist/types/common/one-of.d.ts +1 -1
  16. package/dist/types/common/signals.d.ts +1 -1
  17. package/dist/types/common/type/ast-nodes.d.ts +1 -1
  18. package/dist/types/common/type/boxed-type.d.ts +1 -1
  19. package/dist/types/common/type/lexer.d.ts +1 -1
  20. package/dist/types/common/type/parse.d.ts +1 -1
  21. package/dist/types/common/type/parser.d.ts +8 -1
  22. package/dist/types/common/type/primitive.d.ts +2 -1
  23. package/dist/types/common/type/reduce.d.ts +1 -1
  24. package/dist/types/common/type/serialize.d.ts +1 -1
  25. package/dist/types/common/type/subtype.d.ts +1 -1
  26. package/dist/types/common/type/type-builder.d.ts +1 -1
  27. package/dist/types/common/type/types.d.ts +1 -1
  28. package/dist/types/common/type/utils.d.ts +3 -2
  29. package/dist/types/common/utils.d.ts +1 -1
  30. package/dist/types/compute-engine/assume.d.ts +4 -22
  31. package/dist/types/compute-engine/boxed-expression/abstract-boxed-expression.d.ts +63 -76
  32. package/dist/types/compute-engine/boxed-expression/apply.d.ts +4 -4
  33. package/dist/types/compute-engine/boxed-expression/arithmetic-add.d.ts +15 -6
  34. package/dist/types/compute-engine/boxed-expression/arithmetic-mul-div.d.ts +72 -6
  35. package/dist/types/compute-engine/boxed-expression/arithmetic-power.d.ts +8 -8
  36. package/dist/types/compute-engine/boxed-expression/ascii-math.d.ts +5 -8
  37. package/dist/types/compute-engine/boxed-expression/box.d.ts +63 -8
  38. package/dist/types/compute-engine/boxed-expression/boxed-dictionary.d.ts +13 -12
  39. package/dist/types/compute-engine/boxed-expression/boxed-function.d.ts +44 -43
  40. package/dist/types/compute-engine/boxed-expression/boxed-number.d.ts +31 -30
  41. package/dist/types/compute-engine/boxed-expression/boxed-operator-definition.d.ts +18 -18
  42. package/dist/types/compute-engine/boxed-expression/boxed-patterns.d.ts +5 -37
  43. package/dist/types/compute-engine/boxed-expression/boxed-string.d.ts +5 -4
  44. package/dist/types/compute-engine/boxed-expression/boxed-symbol.d.ts +34 -33
  45. package/dist/types/compute-engine/boxed-expression/boxed-tensor.d.ts +34 -33
  46. package/dist/types/compute-engine/boxed-expression/boxed-value-definition.d.ts +8 -8
  47. package/dist/types/compute-engine/boxed-expression/cache.d.ts +1 -1
  48. package/dist/types/compute-engine/boxed-expression/canonical-utils.d.ts +2 -2
  49. package/dist/types/compute-engine/boxed-expression/canonical.d.ts +2 -2
  50. package/dist/types/compute-engine/boxed-expression/compare.d.ts +4 -4
  51. package/dist/types/compute-engine/boxed-expression/constants.d.ts +6 -0
  52. package/dist/types/compute-engine/boxed-expression/expand.d.ts +4 -5
  53. package/dist/types/compute-engine/boxed-expression/expression-map.d.ts +9 -9
  54. package/dist/types/compute-engine/boxed-expression/factor.d.ts +7 -7
  55. package/dist/types/compute-engine/boxed-expression/flatten.d.ts +4 -13
  56. package/dist/types/compute-engine/boxed-expression/hold.d.ts +3 -3
  57. package/dist/types/compute-engine/boxed-expression/inequality-bounds.d.ts +21 -0
  58. package/dist/types/compute-engine/boxed-expression/invisible-operator.d.ts +4 -0
  59. package/dist/types/compute-engine/boxed-expression/match.d.ts +2 -2
  60. package/dist/types/compute-engine/boxed-expression/negate.d.ts +4 -4
  61. package/dist/types/compute-engine/boxed-expression/numerics.d.ts +8 -8
  62. package/dist/types/compute-engine/boxed-expression/order.d.ts +14 -14
  63. package/dist/types/compute-engine/boxed-expression/pattern-utils.d.ts +41 -0
  64. package/dist/types/compute-engine/boxed-expression/polynomial-degree.d.ts +18 -0
  65. package/dist/types/compute-engine/boxed-expression/polynomials.d.ts +12 -35
  66. package/dist/types/compute-engine/boxed-expression/predicates.d.ts +2 -0
  67. package/dist/types/compute-engine/boxed-expression/rules.d.ts +51 -51
  68. package/dist/types/compute-engine/boxed-expression/serialize.d.ts +3 -3
  69. package/dist/types/compute-engine/boxed-expression/sgn.d.ts +2 -2
  70. package/dist/types/compute-engine/boxed-expression/simplify.d.ts +2 -2
  71. package/dist/types/compute-engine/boxed-expression/solve-linear-system.d.ts +8 -8
  72. package/dist/types/compute-engine/boxed-expression/solve.d.ts +3 -11
  73. package/dist/types/compute-engine/boxed-expression/trigonometry.d.ts +7 -7
  74. package/dist/types/compute-engine/boxed-expression/type-guards.d.ts +31 -0
  75. package/dist/types/compute-engine/boxed-expression/utils.d.ts +13 -13
  76. package/dist/types/compute-engine/boxed-expression/validate.d.ts +10 -10
  77. package/dist/types/compute-engine/collection-utils.d.ts +4 -4
  78. package/dist/types/compute-engine/compilation/base-compiler.d.ts +3 -3
  79. package/dist/types/compute-engine/compilation/compile-expression.d.ts +25 -0
  80. package/dist/types/compute-engine/compilation/glsl-target.d.ts +12 -41
  81. package/dist/types/compute-engine/compilation/gpu-target.d.ts +50 -0
  82. package/dist/types/compute-engine/compilation/interval-glsl-target.d.ts +11 -11
  83. package/dist/types/compute-engine/compilation/interval-javascript-target.d.ts +7 -7
  84. package/dist/types/compute-engine/compilation/interval-wgsl-target.d.ts +54 -0
  85. package/dist/types/compute-engine/compilation/javascript-target.d.ts +6 -6
  86. package/dist/types/compute-engine/compilation/python-target.d.ts +61 -0
  87. package/dist/types/compute-engine/compilation/types.d.ts +27 -22
  88. package/dist/types/compute-engine/compilation/wgsl-target.d.ts +41 -0
  89. package/dist/types/compute-engine/cost-function.d.ts +3 -3
  90. package/dist/types/compute-engine/engine-assumptions.d.ts +6 -0
  91. package/dist/types/compute-engine/engine-cache.d.ts +6 -0
  92. package/dist/types/compute-engine/engine-common-symbols.d.ts +6 -0
  93. package/dist/types/compute-engine/engine-compilation-targets.d.ts +17 -0
  94. package/dist/types/compute-engine/engine-configuration-lifecycle.d.ts +15 -0
  95. package/dist/types/compute-engine/engine-declarations.d.ts +19 -0
  96. package/dist/types/compute-engine/engine-expression-entrypoints.d.ts +44 -0
  97. package/dist/types/compute-engine/engine-extension-contracts.d.ts +9 -0
  98. package/dist/types/compute-engine/engine-latex-dictionary-state.d.ts +13 -0
  99. package/dist/types/compute-engine/engine-library-bootstrap.d.ts +6 -0
  100. package/dist/types/compute-engine/engine-numeric-configuration.d.ts +34 -0
  101. package/dist/types/compute-engine/engine-parse-entrypoint.d.ts +7 -0
  102. package/dist/types/compute-engine/engine-runtime-state.d.ts +19 -0
  103. package/dist/types/compute-engine/engine-scope.d.ts +13 -0
  104. package/dist/types/compute-engine/engine-sequences.d.ts +14 -0
  105. package/dist/types/compute-engine/engine-simplification-rules.d.ts +15 -0
  106. package/dist/types/compute-engine/engine-startup-coordinator.d.ts +28 -0
  107. package/dist/types/compute-engine/engine-type-resolver.d.ts +12 -0
  108. package/dist/types/compute-engine/engine-validation-entrypoints.d.ts +13 -0
  109. package/dist/types/compute-engine/free-functions.d.ts +20 -0
  110. package/dist/types/compute-engine/function-utils.d.ts +10 -10
  111. package/dist/types/compute-engine/global-types.d.ts +5 -3301
  112. package/dist/types/compute-engine/index.d.ts +155 -112
  113. package/dist/types/compute-engine/interval/arithmetic.d.ts +1 -1
  114. package/dist/types/compute-engine/interval/comparison.d.ts +1 -1
  115. package/dist/types/compute-engine/interval/elementary.d.ts +1 -1
  116. package/dist/types/compute-engine/interval/index.d.ts +1 -1
  117. package/dist/types/compute-engine/interval/trigonometric.d.ts +1 -1
  118. package/dist/types/compute-engine/interval/types.d.ts +1 -1
  119. package/dist/types/compute-engine/interval/util.d.ts +1 -1
  120. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-algebra.d.ts +1 -1
  121. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-arithmetic.d.ts +1 -1
  122. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-calculus.d.ts +1 -1
  123. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-complex.d.ts +1 -1
  124. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-core.d.ts +1 -1
  125. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-linear-algebra.d.ts +1 -1
  126. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-logic.d.ts +1 -1
  127. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-other.d.ts +1 -1
  128. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-relational-operators.d.ts +1 -1
  129. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-sets.d.ts +1 -1
  130. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-statistics.d.ts +1 -1
  131. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-symbols.d.ts +1 -1
  132. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-trigonometry.d.ts +1 -1
  133. package/dist/types/compute-engine/latex-syntax/dictionary/definitions.d.ts +4 -80
  134. package/dist/types/compute-engine/latex-syntax/dictionary/indexed-types.d.ts +83 -0
  135. package/dist/types/compute-engine/latex-syntax/parse-number.d.ts +28 -0
  136. package/dist/types/compute-engine/latex-syntax/parse-symbol.d.ts +2 -2
  137. package/dist/types/compute-engine/latex-syntax/parse.d.ts +23 -33
  138. package/dist/types/compute-engine/latex-syntax/serialize-number.d.ts +2 -2
  139. package/dist/types/compute-engine/latex-syntax/serializer-style.d.ts +8 -8
  140. package/dist/types/compute-engine/latex-syntax/serializer.d.ts +15 -15
  141. package/dist/types/compute-engine/latex-syntax/tokenizer.d.ts +1 -1
  142. package/dist/types/compute-engine/latex-syntax/types.d.ts +73 -53
  143. package/dist/types/compute-engine/latex-syntax/utils.d.ts +1 -1
  144. package/dist/types/compute-engine/library/arithmetic.d.ts +1 -2
  145. package/dist/types/compute-engine/library/calculus.d.ts +1 -1
  146. package/dist/types/compute-engine/library/collections.d.ts +4 -4
  147. package/dist/types/compute-engine/library/combinatorics.d.ts +1 -1
  148. package/dist/types/compute-engine/library/complex.d.ts +1 -1
  149. package/dist/types/compute-engine/library/control-structures.d.ts +1 -1
  150. package/dist/types/compute-engine/library/core.d.ts +1 -1
  151. package/dist/types/compute-engine/library/library.d.ts +19 -6
  152. package/dist/types/compute-engine/library/linear-algebra.d.ts +1 -1
  153. package/dist/types/compute-engine/library/logic-analysis.d.ts +19 -32
  154. package/dist/types/compute-engine/library/logic.d.ts +1 -5
  155. package/dist/types/compute-engine/library/number-theory.d.ts +1 -1
  156. package/dist/types/compute-engine/library/polynomials.d.ts +1 -1
  157. package/dist/types/compute-engine/library/random-expression.d.ts +2 -2
  158. package/dist/types/compute-engine/library/relational-operator.d.ts +1 -1
  159. package/dist/types/compute-engine/library/sets.d.ts +1 -1
  160. package/dist/types/compute-engine/library/statistics.d.ts +1 -1
  161. package/dist/types/compute-engine/library/trigonometry.d.ts +1 -1
  162. package/dist/types/compute-engine/library/type-handlers.d.ts +4 -0
  163. package/dist/types/compute-engine/library/utils.d.ts +12 -12
  164. package/dist/types/compute-engine/numeric-value/big-numeric-value.d.ts +5 -5
  165. package/dist/types/compute-engine/numeric-value/exact-numeric-value.d.ts +5 -5
  166. package/dist/types/compute-engine/numeric-value/machine-numeric-value.d.ts +5 -5
  167. package/dist/types/compute-engine/numeric-value/types.d.ts +2 -3
  168. package/dist/types/compute-engine/numerics/bigint.d.ts +1 -1
  169. package/dist/types/compute-engine/numerics/expression.d.ts +3 -3
  170. package/dist/types/compute-engine/numerics/interval.d.ts +2 -2
  171. package/dist/types/compute-engine/numerics/monte-carlo.d.ts +1 -1
  172. package/dist/types/compute-engine/numerics/numeric-bigint.d.ts +1 -1
  173. package/dist/types/compute-engine/numerics/numeric-bignum.d.ts +1 -1
  174. package/dist/types/compute-engine/numerics/numeric-complex.d.ts +1 -1
  175. package/dist/types/compute-engine/numerics/numeric.d.ts +1 -1
  176. package/dist/types/compute-engine/numerics/primes.d.ts +1 -1
  177. package/dist/types/compute-engine/numerics/rationals.d.ts +4 -4
  178. package/dist/types/compute-engine/numerics/richardson.d.ts +1 -1
  179. package/dist/types/compute-engine/numerics/special-functions.d.ts +120 -1
  180. package/dist/types/compute-engine/numerics/statistics.d.ts +1 -2
  181. package/dist/types/compute-engine/numerics/strings.d.ts +1 -1
  182. package/dist/types/compute-engine/numerics/types.d.ts +3 -1
  183. package/dist/types/compute-engine/oeis.d.ts +3 -3
  184. package/dist/types/compute-engine/sequence.d.ts +13 -13
  185. package/dist/types/compute-engine/symbolic/antiderivative.d.ts +2 -2
  186. package/dist/types/compute-engine/symbolic/derivative.d.ts +3 -3
  187. package/dist/types/compute-engine/symbolic/distribute.d.ts +2 -2
  188. package/dist/types/compute-engine/symbolic/fu-cost.d.ts +6 -6
  189. package/dist/types/compute-engine/symbolic/fu-transforms.d.ts +46 -46
  190. package/dist/types/compute-engine/symbolic/fu.d.ts +4 -4
  191. package/dist/types/compute-engine/symbolic/logic-utils.d.ts +54 -0
  192. package/dist/types/compute-engine/symbolic/simplify-abs.d.ts +4 -4
  193. package/dist/types/compute-engine/symbolic/simplify-divide.d.ts +2 -2
  194. package/dist/types/compute-engine/symbolic/simplify-hyperbolic.d.ts +2 -2
  195. package/dist/types/compute-engine/symbolic/simplify-infinity.d.ts +2 -2
  196. package/dist/types/compute-engine/symbolic/simplify-log.d.ts +2 -2
  197. package/dist/types/compute-engine/symbolic/simplify-logic.d.ts +5 -0
  198. package/dist/types/compute-engine/symbolic/simplify-power.d.ts +2 -2
  199. package/dist/types/compute-engine/symbolic/simplify-product.d.ts +2 -2
  200. package/dist/types/compute-engine/symbolic/simplify-rules.d.ts +65 -4
  201. package/dist/types/compute-engine/symbolic/simplify-sum.d.ts +2 -2
  202. package/dist/types/compute-engine/symbolic/simplify-trig.d.ts +2 -2
  203. package/dist/types/compute-engine/tensor/tensor-fields.d.ts +42 -42
  204. package/dist/types/compute-engine/tensor/tensors.d.ts +4 -4
  205. package/dist/types/compute-engine/types-definitions.d.ts +900 -0
  206. package/dist/types/compute-engine/types-engine.d.ts +375 -0
  207. package/dist/types/compute-engine/types-evaluation.d.ts +67 -0
  208. package/dist/types/compute-engine/types-expression.d.ts +1655 -0
  209. package/dist/types/compute-engine/types-kernel-evaluation.d.ts +164 -0
  210. package/dist/types/compute-engine/types-kernel-serialization.d.ts +147 -0
  211. package/dist/types/compute-engine/types-serialization.d.ts +23 -0
  212. package/dist/types/compute-engine/types.d.ts +2 -2
  213. package/dist/types/compute-engine.d.ts +16 -3
  214. package/dist/types/math-json/symbols.d.ts +1 -1
  215. package/dist/types/math-json/types.d.ts +3 -3
  216. package/dist/types/math-json/utils.d.ts +31 -31
  217. package/dist/types/math-json.d.ts +2 -2
  218. package/package.json +8 -1
  219. package/dist/types/compute-engine/boxed-expression/product.d.ts +0 -66
  220. package/dist/types/compute-engine/boxed-expression/terms.d.ts +0 -10
  221. package/dist/types/compute-engine/library/invisible-operator.d.ts +0 -4
  222. package/dist/types/compute-engine/library/logic-utils.d.ts +0 -54
package/README.md CHANGED
@@ -16,21 +16,137 @@ Reference documentation and guides at
16
16
 
17
17
  [![](https://dcbadge.vercel.app/api/server/yhmvVeJ4Hd)](https://discord.gg/yhmvVeJ4Hd)
18
18
 
19
- ## Using Compute Engine
19
+ ## Installation
20
20
 
21
21
  ```bash
22
22
  $ npm install --save @cortex-js/compute-engine
23
23
  ```
24
24
 
25
+ ## Quick Start
26
+
27
+ ### Basic Parsing and Evaluation
28
+
29
+ No setup required:
30
+
31
+ ```js
32
+ import { simplify, evaluate, N, assign } from "@cortex-js/compute-engine";
33
+
34
+ simplify("x + x + 1").print();
35
+ // ➔ 2x + 1
36
+
37
+ evaluate("2^{11} - 1").print();
38
+ // ➔ 2047
39
+
40
+ N("\\sqrt{2}").print();
41
+ // ➔ 1.414213562...
42
+
43
+ assign("x", 3);
44
+ evaluate("x + 2").print();
45
+ // ➔ 5
46
+ ```
47
+
48
+ These functions use a shared `ComputeEngine` instance created on first use. Use
49
+ `getDefaultEngine()` to configure it, or create your own instance for isolated
50
+ configurations.
51
+
52
+ ### Working with Numbers (Type-Safe)
53
+
54
+ Use type guards to safely access specialized properties:
55
+
56
+ ```js
57
+ import { evaluate, isNumber } from "@cortex-js/compute-engine";
58
+
59
+ const expr = evaluate("\\frac{5}{2}");
60
+
61
+ if (isNumber(expr)) {
62
+ console.log(expr.numericValue); // 2.5 (type-safe access)
63
+ console.log(expr.isInteger); // false
64
+ }
65
+ ```
66
+
67
+ ### Working with Symbols
68
+
69
+ ```js
70
+ import { parse, isSymbol, sym } from "@cortex-js/compute-engine";
71
+
72
+ const expr = parse("x + 1");
73
+
74
+ // Check if expression is a specific symbol
75
+ if (sym(expr) === "x") {
76
+ console.log("This is the variable x");
77
+ }
78
+
79
+ // Or use full type guard for more access
80
+ const variable = parse("y");
81
+ if (isSymbol(variable)) {
82
+ console.log(variable.symbol); // "y"
83
+ }
84
+ ```
85
+
86
+ ### Working with Functions
87
+
88
+ ```js
89
+ import { parse, isFunction } from "@cortex-js/compute-engine";
90
+
91
+ const expr = parse("2x + 3y");
92
+
93
+ // Access function structure safely
94
+ if (isFunction(expr)) {
95
+ console.log(expr.operator); // "Add"
96
+ console.log(expr.ops.length); // 2
97
+
98
+ // Iterate over operands
99
+ for (const op of expr.ops) {
100
+ console.log(op.toString());
101
+ }
102
+ }
103
+ ```
104
+
105
+ ### Simplification and Manipulation
106
+
25
107
  ```js
26
- import { ComputeEngine } from "@cortex-js/compute-engine";
108
+ import { parse, simplify, expand } from "@cortex-js/compute-engine";
27
109
 
28
- const ce = new ComputeEngine();
110
+ // Simplify expressions
111
+ simplify("x + x").print();
112
+ // ➔ 2x
29
113
 
30
- ce.parse("2^{11}-1 \\in \\Z").evaluate().print()
31
- // "True"
114
+ // Expand from LaTeX or Expression
115
+ expand("(x + 1)^2").print();
116
+ // ➔ x^2 + 2x + 1
117
+
118
+ // Substitute values
119
+ const expr = parse("x^2 + 2x + 1");
120
+ expr.subs({ x: 3 }).evaluate().print();
121
+ // ➔ 16
32
122
  ```
33
123
 
124
+ ### Solving Equations
125
+
126
+ ```js
127
+ import { solve, parse } from "@cortex-js/compute-engine";
128
+
129
+ // Solve from LaTeX
130
+ solve("x^2 - 5x + 6 = 0", "x");
131
+ // ➔ [2, 3]
132
+
133
+ // Solve a linear system
134
+ const system = parse("\\begin{cases}x+y=5\\\\x-y=1\\end{cases}");
135
+ const solution = system.solve(["x", "y"]);
136
+
137
+ console.log(solution.x.json); // 3
138
+ console.log(solution.y.json); // 2
139
+ ```
140
+
141
+ **💡 Best Practices:**
142
+
143
+ - Always use type guards (`isNumber`, `isSymbol`, `isFunction`)
144
+ before accessing specialized properties
145
+ - Use the `sym()` helper for quick symbol name checks
146
+
147
+ **📚 Learn More:**
148
+ [Full documentation and guides](https://cortexjs.io/compute-engine/)
149
+
34
150
  ## FAQ
35
151
 
36
152
  **Q** How do I build the project?