@cortex-js/compute-engine 0.57.0 → 0.59.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 (270) hide show
  1. package/README.md +4 -0
  2. package/dist/compile.esm.js +2376 -501
  3. package/dist/compile.min.esm.js +316 -68
  4. package/dist/compile.min.umd.cjs +316 -68
  5. package/dist/compile.umd.cjs +2376 -501
  6. package/dist/compute-engine.esm.js +15717 -12444
  7. package/dist/compute-engine.min.esm.js +331 -83
  8. package/dist/compute-engine.min.umd.cjs +330 -82
  9. package/dist/compute-engine.umd.cjs +15717 -12444
  10. package/dist/core.esm.js +15716 -12443
  11. package/dist/core.min.esm.js +329 -81
  12. package/dist/core.min.umd.cjs +329 -81
  13. package/dist/core.umd.cjs +15716 -12443
  14. package/dist/identities.esm.js +1921 -0
  15. package/dist/identities.min.esm.js +2 -0
  16. package/dist/identities.min.umd.cjs +4 -0
  17. package/dist/identities.umd.cjs +1946 -0
  18. package/dist/interval.esm.js +779 -339
  19. package/dist/interval.min.esm.js +8 -8
  20. package/dist/interval.min.umd.cjs +8 -8
  21. package/dist/interval.umd.cjs +779 -339
  22. package/dist/latex-syntax.esm.js +971 -608
  23. package/dist/latex-syntax.min.esm.js +7 -7
  24. package/dist/latex-syntax.min.umd.cjs +7 -7
  25. package/dist/latex-syntax.umd.cjs +971 -608
  26. package/dist/math-json.esm.js +8 -12
  27. package/dist/math-json.min.esm.js +2 -2
  28. package/dist/math-json.min.umd.cjs +2 -2
  29. package/dist/math-json.umd.cjs +8 -12
  30. package/dist/numerics.esm.js +1382 -226
  31. package/dist/numerics.min.esm.js +16 -5
  32. package/dist/numerics.min.umd.cjs +16 -5
  33. package/dist/numerics.umd.cjs +1382 -226
  34. package/dist/types/big-decimal/big-decimal.d.ts +1 -1
  35. package/dist/types/big-decimal/index.d.ts +1 -1
  36. package/dist/types/big-decimal/transcendentals.d.ts +1 -1
  37. package/dist/types/big-decimal/utils.d.ts +1 -1
  38. package/dist/types/common/ansi-codes.d.ts +1 -1
  39. package/dist/types/common/configuration-change.d.ts +1 -1
  40. package/dist/types/common/fuzzy-string-match.d.ts +1 -1
  41. package/dist/types/common/grapheme-splitter.d.ts +1 -1
  42. package/dist/types/common/interruptible.d.ts +1 -1
  43. package/dist/types/common/one-of.d.ts +1 -1
  44. package/dist/types/common/signals.d.ts +1 -1
  45. package/dist/types/common/type/ast-nodes.d.ts +1 -1
  46. package/dist/types/common/type/boxed-type.d.ts +1 -1
  47. package/dist/types/common/type/lexer.d.ts +1 -1
  48. package/dist/types/common/type/parse.d.ts +1 -208
  49. package/dist/types/common/type/parser.d.ts +124 -2
  50. package/dist/types/common/type/primitive.d.ts +5 -1
  51. package/dist/types/common/type/reduce.d.ts +1 -1
  52. package/dist/types/common/type/serialize.d.ts +1 -1
  53. package/dist/types/common/type/subtype.d.ts +18 -1
  54. package/dist/types/common/type/type-builder.d.ts +1 -1
  55. package/dist/types/common/type/types.d.ts +1 -1
  56. package/dist/types/common/type/utils.d.ts +1 -1
  57. package/dist/types/common/utils.d.ts +1 -1
  58. package/dist/types/compile.d.ts +1 -1
  59. package/dist/types/compute-engine/assume.d.ts +13 -6
  60. package/dist/types/compute-engine/boxed-expression/abstract-boxed-expression.d.ts +3 -1
  61. package/dist/types/compute-engine/boxed-expression/apply.d.ts +1 -1
  62. package/dist/types/compute-engine/boxed-expression/arithmetic-add.d.ts +1 -1
  63. package/dist/types/compute-engine/boxed-expression/arithmetic-mul-div.d.ts +1 -1
  64. package/dist/types/compute-engine/boxed-expression/arithmetic-power.d.ts +1 -1
  65. package/dist/types/compute-engine/boxed-expression/ascii-math.d.ts +1 -1
  66. package/dist/types/compute-engine/boxed-expression/box.d.ts +1 -1
  67. package/dist/types/compute-engine/boxed-expression/boxed-dictionary.d.ts +1 -1
  68. package/dist/types/compute-engine/boxed-expression/boxed-function.d.ts +1 -1
  69. package/dist/types/compute-engine/boxed-expression/boxed-number.d.ts +1 -1
  70. package/dist/types/compute-engine/boxed-expression/boxed-operator-definition.d.ts +7 -1
  71. package/dist/types/compute-engine/boxed-expression/boxed-patterns.d.ts +1 -1
  72. package/dist/types/compute-engine/boxed-expression/boxed-string.d.ts +1 -1
  73. package/dist/types/compute-engine/boxed-expression/boxed-symbol.d.ts +3 -3
  74. package/dist/types/compute-engine/boxed-expression/boxed-tensor.d.ts +1 -1
  75. package/dist/types/compute-engine/boxed-expression/boxed-value-definition.d.ts +1 -1
  76. package/dist/types/compute-engine/boxed-expression/cache.d.ts +1 -1
  77. package/dist/types/compute-engine/boxed-expression/canonical-utils.d.ts +1 -1
  78. package/dist/types/compute-engine/boxed-expression/canonical.d.ts +1 -1
  79. package/dist/types/compute-engine/boxed-expression/compare.d.ts +1 -1
  80. package/dist/types/compute-engine/boxed-expression/constants.d.ts +1 -1
  81. package/dist/types/compute-engine/boxed-expression/constraint-subject.d.ts +140 -0
  82. package/dist/types/compute-engine/boxed-expression/expand.d.ts +1 -1
  83. package/dist/types/compute-engine/boxed-expression/expression-map.d.ts +1 -1
  84. package/dist/types/compute-engine/boxed-expression/factor.d.ts +1 -1
  85. package/dist/types/compute-engine/boxed-expression/flatten.d.ts +1 -1
  86. package/dist/types/compute-engine/boxed-expression/hold.d.ts +1 -1
  87. package/dist/types/compute-engine/boxed-expression/inequality-bounds.d.ts +34 -12
  88. package/dist/types/compute-engine/boxed-expression/init-lazy-refs.d.ts +1 -1
  89. package/dist/types/compute-engine/boxed-expression/invisible-operator.d.ts +1 -1
  90. package/dist/types/compute-engine/boxed-expression/match.d.ts +1 -1
  91. package/dist/types/compute-engine/boxed-expression/negate.d.ts +1 -1
  92. package/dist/types/compute-engine/boxed-expression/numerics.d.ts +1 -1
  93. package/dist/types/compute-engine/boxed-expression/order.d.ts +1 -1
  94. package/dist/types/compute-engine/boxed-expression/pattern-utils.d.ts +1 -1
  95. package/dist/types/compute-engine/boxed-expression/polynomial-degree.d.ts +1 -1
  96. package/dist/types/compute-engine/boxed-expression/polynomials.d.ts +1 -1
  97. package/dist/types/compute-engine/boxed-expression/predicates.d.ts +1 -1
  98. package/dist/types/compute-engine/boxed-expression/rule-index.d.ts +112 -0
  99. package/dist/types/compute-engine/boxed-expression/rules.d.ts +2 -1
  100. package/dist/types/compute-engine/boxed-expression/serialize.d.ts +1 -1
  101. package/dist/types/compute-engine/boxed-expression/sgn.d.ts +1 -1
  102. package/dist/types/compute-engine/boxed-expression/simplify.d.ts +1 -1
  103. package/dist/types/compute-engine/boxed-expression/solve-linear-system.d.ts +1 -1
  104. package/dist/types/compute-engine/boxed-expression/solve.d.ts +1 -1
  105. package/dist/types/compute-engine/boxed-expression/stochastic-equal.d.ts +1 -1
  106. package/dist/types/compute-engine/boxed-expression/trigonometry.d.ts +1 -1
  107. package/dist/types/compute-engine/boxed-expression/type-guards.d.ts +1 -1
  108. package/dist/types/compute-engine/boxed-expression/utils.d.ts +1 -1
  109. package/dist/types/compute-engine/boxed-expression/validate.d.ts +1 -1
  110. package/dist/types/compute-engine/collection-utils.d.ts +1 -1
  111. package/dist/types/compute-engine/compilation/base-compiler.d.ts +8 -1
  112. package/dist/types/compute-engine/compilation/compile-expression.d.ts +1 -1
  113. package/dist/types/compute-engine/compilation/constant-folding.d.ts +16 -1
  114. package/dist/types/compute-engine/compilation/glsl-target.d.ts +1 -1
  115. package/dist/types/compute-engine/compilation/gpu-target.d.ts +58 -5
  116. package/dist/types/compute-engine/compilation/interval-javascript-target.d.ts +4 -4
  117. package/dist/types/compute-engine/compilation/javascript-target.d.ts +1 -1
  118. package/dist/types/compute-engine/compilation/python-target.d.ts +1 -1
  119. package/dist/types/compute-engine/compilation/types.d.ts +1 -1
  120. package/dist/types/compute-engine/compilation/wgsl-target.d.ts +1 -1
  121. package/dist/types/compute-engine/cost-function.d.ts +1 -1
  122. package/dist/types/compute-engine/engine-assumptions.d.ts +1 -1
  123. package/dist/types/compute-engine/engine-cache.d.ts +1 -1
  124. package/dist/types/compute-engine/engine-common-symbols.d.ts +1 -1
  125. package/dist/types/compute-engine/engine-compilation-targets.d.ts +1 -1
  126. package/dist/types/compute-engine/engine-configuration-lifecycle.d.ts +1 -1
  127. package/dist/types/compute-engine/engine-declarations.d.ts +1 -1
  128. package/dist/types/compute-engine/engine-expression-entrypoints.d.ts +1 -1
  129. package/dist/types/compute-engine/engine-extension-contracts.d.ts +1 -1
  130. package/dist/types/compute-engine/engine-library-bootstrap.d.ts +1 -1
  131. package/dist/types/compute-engine/engine-numeric-configuration.d.ts +1 -1
  132. package/dist/types/compute-engine/engine-runtime-state.d.ts +4 -1
  133. package/dist/types/compute-engine/engine-scope.d.ts +1 -1
  134. package/dist/types/compute-engine/engine-sequences.d.ts +1 -1
  135. package/dist/types/compute-engine/engine-simplification-rules.d.ts +10 -2
  136. package/dist/types/compute-engine/engine-startup-coordinator.d.ts +1 -1
  137. package/dist/types/compute-engine/engine-type-resolver.d.ts +1 -1
  138. package/dist/types/compute-engine/engine-validation-entrypoints.d.ts +1 -1
  139. package/dist/types/compute-engine/free-functions.d.ts +1 -1
  140. package/dist/types/compute-engine/function-utils.d.ts +1 -1
  141. package/dist/types/compute-engine/fungrim/loader.d.ts +13 -0
  142. package/dist/types/compute-engine/fungrim/types.d.ts +160 -0
  143. package/dist/types/compute-engine/global-types.d.ts +1 -1
  144. package/dist/types/compute-engine/index.d.ts +63 -2
  145. package/dist/types/compute-engine/interval/arithmetic.d.ts +1 -1
  146. package/dist/types/compute-engine/interval/comparison.d.ts +1 -1
  147. package/dist/types/compute-engine/interval/elementary.d.ts +10 -2
  148. package/dist/types/compute-engine/interval/index.d.ts +2 -2
  149. package/dist/types/compute-engine/interval/trigonometric.d.ts +1 -1
  150. package/dist/types/compute-engine/interval/types.d.ts +1 -1
  151. package/dist/types/compute-engine/interval/util.d.ts +1 -1
  152. package/dist/types/compute-engine/latex-syntax/dictionary/default-dictionary.d.ts +1 -1
  153. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-algebra.d.ts +1 -1
  154. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-arithmetic.d.ts +1 -1
  155. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-calculus.d.ts +1 -1
  156. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-colors.d.ts +1 -1
  157. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-complex.d.ts +1 -1
  158. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-core.d.ts +1 -1
  159. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-linear-algebra.d.ts +1 -1
  160. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-logic.d.ts +1 -1
  161. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-other.d.ts +1 -1
  162. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-relational-operators.d.ts +1 -1
  163. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-sets.d.ts +1 -1
  164. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-statistics.d.ts +1 -1
  165. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-symbols.d.ts +1 -1
  166. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-trigonometry.d.ts +1 -1
  167. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-units.d.ts +1 -1
  168. package/dist/types/compute-engine/latex-syntax/dictionary/definitions.d.ts +1 -1
  169. package/dist/types/compute-engine/latex-syntax/dictionary/indexed-types.d.ts +4 -1
  170. package/dist/types/compute-engine/latex-syntax/latex-syntax.d.ts +1 -1
  171. package/dist/types/compute-engine/latex-syntax/parse-number.d.ts +1 -1
  172. package/dist/types/compute-engine/latex-syntax/parse-symbol.d.ts +1 -1
  173. package/dist/types/compute-engine/latex-syntax/parse.d.ts +3 -2
  174. package/dist/types/compute-engine/latex-syntax/serialize-dms.d.ts +1 -1
  175. package/dist/types/compute-engine/latex-syntax/serialize-number.d.ts +1 -11
  176. package/dist/types/compute-engine/latex-syntax/serializer-style.d.ts +1 -1
  177. package/dist/types/compute-engine/latex-syntax/serializer.d.ts +1 -1
  178. package/dist/types/compute-engine/latex-syntax/tokenizer.d.ts +1 -1
  179. package/dist/types/compute-engine/latex-syntax/types.d.ts +1 -1
  180. package/dist/types/compute-engine/latex-syntax/utils.d.ts +1 -1
  181. package/dist/types/compute-engine/library/arithmetic.d.ts +1 -1
  182. package/dist/types/compute-engine/library/calculus.d.ts +1 -1
  183. package/dist/types/compute-engine/library/collections.d.ts +1 -1
  184. package/dist/types/compute-engine/library/colors.d.ts +1 -1
  185. package/dist/types/compute-engine/library/combinatorics.d.ts +1 -1
  186. package/dist/types/compute-engine/library/complex.d.ts +13 -1
  187. package/dist/types/compute-engine/library/control-structures.d.ts +1 -1
  188. package/dist/types/compute-engine/library/core.d.ts +1 -1
  189. package/dist/types/compute-engine/library/fractals.d.ts +1 -1
  190. package/dist/types/compute-engine/library/library.d.ts +1 -1
  191. package/dist/types/compute-engine/library/linear-algebra.d.ts +1 -1
  192. package/dist/types/compute-engine/library/logic-analysis.d.ts +1 -1
  193. package/dist/types/compute-engine/library/logic.d.ts +1 -1
  194. package/dist/types/compute-engine/library/number-theory.d.ts +1 -1
  195. package/dist/types/compute-engine/library/polynomials.d.ts +1 -1
  196. package/dist/types/compute-engine/library/quantity-arithmetic.d.ts +1 -1
  197. package/dist/types/compute-engine/library/random-expression.d.ts +1 -1
  198. package/dist/types/compute-engine/library/relational-operator.d.ts +1 -1
  199. package/dist/types/compute-engine/library/sets.d.ts +27 -1
  200. package/dist/types/compute-engine/library/statistics.d.ts +1 -1
  201. package/dist/types/compute-engine/library/trigonometry.d.ts +1 -1
  202. package/dist/types/compute-engine/library/type-handlers.d.ts +1 -1
  203. package/dist/types/compute-engine/library/unit-data.d.ts +1 -1
  204. package/dist/types/compute-engine/library/units.d.ts +1 -1
  205. package/dist/types/compute-engine/library/utils.d.ts +1 -1
  206. package/dist/types/compute-engine/numeric-value/big-numeric-value.d.ts +1 -1
  207. package/dist/types/compute-engine/numeric-value/exact-numeric-value.d.ts +7 -1
  208. package/dist/types/compute-engine/numeric-value/machine-numeric-value.d.ts +1 -1
  209. package/dist/types/compute-engine/numeric-value/types.d.ts +1 -1
  210. package/dist/types/compute-engine/numerics/bernoulli.d.ts +39 -0
  211. package/dist/types/compute-engine/numerics/bigint.d.ts +1 -1
  212. package/dist/types/compute-engine/numerics/expression.d.ts +1 -1
  213. package/dist/types/compute-engine/numerics/interval.d.ts +1 -1
  214. package/dist/types/compute-engine/numerics/linear-algebra.d.ts +1 -1
  215. package/dist/types/compute-engine/numerics/monte-carlo.d.ts +1 -1
  216. package/dist/types/compute-engine/numerics/numeric-bigint.d.ts +1 -1
  217. package/dist/types/compute-engine/numerics/numeric-bignum.d.ts +1 -1
  218. package/dist/types/compute-engine/numerics/numeric-complex.d.ts +12 -1
  219. package/dist/types/compute-engine/numerics/numeric.d.ts +1 -1
  220. package/dist/types/compute-engine/numerics/primes.d.ts +1 -1
  221. package/dist/types/compute-engine/numerics/random.d.ts +23 -0
  222. package/dist/types/compute-engine/numerics/rationals.d.ts +1 -1
  223. package/dist/types/compute-engine/numerics/richardson.d.ts +1 -1
  224. package/dist/types/compute-engine/numerics/special-functions.d.ts +78 -10
  225. package/dist/types/compute-engine/numerics/statistics.d.ts +1 -1
  226. package/dist/types/compute-engine/numerics/strings.d.ts +1 -1
  227. package/dist/types/compute-engine/numerics/types.d.ts +1 -1
  228. package/dist/types/compute-engine/numerics/unit-data.d.ts +1 -1
  229. package/dist/types/compute-engine/oeis.d.ts +1 -1
  230. package/dist/types/compute-engine/sequence.d.ts +1 -1
  231. package/dist/types/compute-engine/symbolic/antiderivative.d.ts +1 -1
  232. package/dist/types/compute-engine/symbolic/derivative.d.ts +1 -1
  233. package/dist/types/compute-engine/symbolic/distribute.d.ts +1 -1
  234. package/dist/types/compute-engine/symbolic/fu-cost.d.ts +1 -1
  235. package/dist/types/compute-engine/symbolic/fu-transforms.d.ts +1 -1
  236. package/dist/types/compute-engine/symbolic/fu.d.ts +1 -1
  237. package/dist/types/compute-engine/symbolic/logic-utils.d.ts +1 -1
  238. package/dist/types/compute-engine/symbolic/simplify-abs.d.ts +1 -1
  239. package/dist/types/compute-engine/symbolic/simplify-divide.d.ts +1 -1
  240. package/dist/types/compute-engine/symbolic/simplify-factorial.d.ts +1 -1
  241. package/dist/types/compute-engine/symbolic/simplify-hyperbolic.d.ts +1 -1
  242. package/dist/types/compute-engine/symbolic/simplify-infinity.d.ts +1 -1
  243. package/dist/types/compute-engine/symbolic/simplify-log.d.ts +1 -1
  244. package/dist/types/compute-engine/symbolic/simplify-logic.d.ts +1 -1
  245. package/dist/types/compute-engine/symbolic/simplify-power.d.ts +1 -1
  246. package/dist/types/compute-engine/symbolic/simplify-product.d.ts +1 -1
  247. package/dist/types/compute-engine/symbolic/simplify-rules.d.ts +1 -1
  248. package/dist/types/compute-engine/symbolic/simplify-sum.d.ts +1 -1
  249. package/dist/types/compute-engine/symbolic/simplify-trig.d.ts +1 -1
  250. package/dist/types/compute-engine/tensor/tensor-fields.d.ts +1 -1
  251. package/dist/types/compute-engine/tensor/tensors.d.ts +3 -3
  252. package/dist/types/compute-engine/types-definitions.d.ts +1 -1
  253. package/dist/types/compute-engine/types-engine.d.ts +52 -3
  254. package/dist/types/compute-engine/types-evaluation.d.ts +1 -1
  255. package/dist/types/compute-engine/types-expression.d.ts +85 -14
  256. package/dist/types/compute-engine/types-kernel-evaluation.d.ts +32 -1
  257. package/dist/types/compute-engine/types-kernel-serialization.d.ts +45 -3
  258. package/dist/types/compute-engine/types-serialization.d.ts +1 -1
  259. package/dist/types/compute-engine/types.d.ts +1 -1
  260. package/dist/types/compute-engine.d.ts +1 -1
  261. package/dist/types/core.d.ts +1 -1
  262. package/dist/types/identities.d.ts +3 -0
  263. package/dist/types/interval.d.ts +1 -1
  264. package/dist/types/latex-syntax.d.ts +2 -2
  265. package/dist/types/math-json/symbols.d.ts +1 -1
  266. package/dist/types/math-json/types.d.ts +1 -1
  267. package/dist/types/math-json/utils.d.ts +1 -1
  268. package/dist/types/math-json.d.ts +2 -2
  269. package/dist/types/numerics.d.ts +1 -1
  270. package/package.json +9 -3
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  import { Rational, SmallInteger } from '../numerics/types';
3
3
  import { ExactNumericValueData, NumericValue, NumericValueFactory } from './types';
4
4
  import { MathJsonExpression } from '../../math-json/types';
@@ -62,6 +62,12 @@ export declare class ExactNumericValue extends NumericValue {
62
62
  abs(): NumericValue;
63
63
  ln(base?: number): NumericValue;
64
64
  exp(): NumericValue;
65
+ /**
66
+ * Floor/ceil/round of a pure rational (`radical === 1`) computed exactly with
67
+ * bigints. Routing through `this.re` (a float) would lose digits for
68
+ * integers/rationals larger than 2^53.
69
+ */
70
+ private _integerPart;
65
71
  floor(): NumericValue;
66
72
  ceil(): NumericValue;
67
73
  round(): NumericValue;
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  import type { SmallInteger } from '../numerics/types';
3
3
  import { NumericValue, NumericValueData } from './types';
4
4
  import type { MathJsonExpression } from '../../math-json/types';
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  *
3
3
  * ## THEORY OF OPERATIONS
4
4
  *
@@ -0,0 +1,39 @@
1
+ /* 0.59.0 */
2
+ * Exact Bernoulli numbers and exact values of the Riemann zeta function at
3
+ * integers, computed with bigint rationals.
4
+ *
5
+ * Used by the exact (non-numericApproximation) evaluation path of `Zeta`
6
+ * in `library/arithmetic.ts`:
7
+ *
8
+ * - ζ(2k) = (−1)^{k+1} · B₂ₖ · (2π)^{2k} / (2·(2k)!) → rational · π^{2k}
9
+ * - ζ(−n) = −Bₙ₊₁/(n+1) → exact rational
10
+ *
11
+ * (The numeric approximation path uses the BigDecimal Bernoulli rationals in
12
+ * `numerics/special-functions.ts`; this module is self-contained so that the
13
+ * exact path has no dependency on the BigDecimal machinery.)
14
+ */
15
+ /**
16
+ * Bernoulli number Bₙ (B₁ = −1/2 convention) as a reduced bigint rational
17
+ * `[numerator, denominator]`.
18
+ *
19
+ * Uses the defining recurrence Bₘ = −1/(m+1) · Σ_{k=0}^{m−1} C(m+1, k)·Bₖ
20
+ * with exact bigint rational arithmetic. Suitable for moderate n (the Zeta
21
+ * exact path caps |argument| at 100, i.e. at most B₁₀₁).
22
+ */
23
+ export declare function bernoulliRational(n: number): [bigint, bigint];
24
+ /**
25
+ * The exact rational c such that ζ(2k) = c·π^{2k}, for integer k ≥ 1.
26
+ *
27
+ * From ζ(2k) = (−1)^{k+1}·B₂ₖ·(2π)^{2k} / (2·(2k)!) and the sign alternation
28
+ * of B₂ₖ, the coefficient is |B₂ₖ|·2^{2k−1}/(2k)! (always positive).
29
+ *
30
+ * ζ(2) = π²/6, ζ(4) = π⁴/90, ζ(6) = π⁶/945, ζ(8) = π⁸/9450, …
31
+ */
32
+ export declare function zetaEvenCoefficient(k: number): [bigint, bigint];
33
+ /**
34
+ * ζ(−n) for integer n ≥ 1 as an exact reduced rational: ζ(−n) = −Bₙ₊₁/(n+1).
35
+ *
36
+ * ζ(−1) = −1/12, ζ(−3) = 1/120, and ζ(−2k) = 0 (the trivial zeros, since
37
+ * the odd Bernoulli numbers B₃, B₅, … vanish).
38
+ */
39
+ export declare function zetaNegativeInteger(n: number): [bigint, bigint];
@@ -1,2 +1,2 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  export declare function bigint(a: BigDecimal | number | bigint | string): bigint | null;
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  export declare function bigintValue(expr: MathJsonExpression | null | undefined): bigint | null;
3
3
  /** Output a shorthand if possible */
4
4
  export declare function numberToExpression(num: number | bigint, fractionalDigits?: string | number): MathJsonExpression;
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  /** An interval is a continuous set of real numbers */
3
3
  export type Interval = {
4
4
  start: number;
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  * Test: determinant([[1,3,7],[2,-1,4],[5,0,2]]) === 81
3
3
  */
4
4
  export declare function determinant(matrix: number[][]): number;
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  estimate: number;
3
3
  error: number;
4
4
  };
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  export declare function lcm(a: bigint, b: bigint): bigint;
3
3
  /** Return `[factor, root]` such that
4
4
  * pow(n, 1/exponent) = factor * pow(root, 1/exponent)
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  export declare function gcd(a: BigNum, b: BigNum): BigNum;
3
3
  export declare function lcm(a: BigNum, b: BigNum): BigNum;
4
4
  export declare function factorial2(n: BigNum): Generator<BigNum, BigNum>;
@@ -1,3 +1,14 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
+ /**
3
+ * Gamma function for a complex argument, via the Lanczos approximation.
4
+ *
5
+ * Uses the reflection formula Γ(z)·Γ(1−z) = π / sin(πz) for Re(z) < 0.5 so the
6
+ * series converges on the whole complex plane (except at the non-positive
7
+ * integer poles, where the result is a (signed) infinity / NaN).
8
+ */
2
9
  export declare function gamma(c: Complex): Complex;
10
+ /**
11
+ * Natural logarithm of the Gamma function for a complex argument (principal
12
+ * branch), via the Lanczos approximation.
13
+ */
3
14
  export declare function gammaln(c: Complex): Complex;
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  export declare const MACHINE_PRECISION_BITS = 53;
3
3
  export declare const MACHINE_PRECISION: number;
4
4
  export declare const DEFAULT_TOLERANCE = 1e-10;
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  export declare function primeFactors(n: number): {
3
3
  [factor: number]: number;
4
4
  };
@@ -0,0 +1,23 @@
1
+ /* 0.59.0 */
2
+ * Shared deterministic-PRNG helpers for Random/Shuffle/Sample.
3
+ *
4
+ * The hash matches the GLSL/WGSL formula used by the GPU compile target:
5
+ * fract(sin(seed * 12.9898) * 43758.5453)
6
+ *
7
+ * JS↔GLSL parity is approximate (fp64 vs fp32; Math.sin is not bit-portable).
8
+ * Within a single host, the same seed always yields the same value.
9
+ */
10
+ /**
11
+ * Return a deterministic pseudorandom value in [0, 1) for the given seed.
12
+ * Matches the GLSL `_gpu_random(seed)` hash to within fp32 precision.
13
+ */
14
+ export declare function deterministicRandom(seed: number): number;
15
+ /**
16
+ * Advance the seed by a fixed amount so subsequent calls produce decorrelated
17
+ * draws. Used by Shuffle/Sample to walk through the elements deterministically.
18
+ * Uses a Weyl-sequence-style increment (golden-ratio fractional part).
19
+ *
20
+ * @param seed The current seed value.
21
+ * @returns The next seed in the sequence.
22
+ */
23
+ export declare function nextSeed(seed: number): number;
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  export declare function isRational(x: unknown | null): x is Rational;
3
3
  export declare function isMachineRational(x: unknown | null): x is [SmallInteger, SmallInteger];
4
4
  export declare function isBigRational(x: unknown | null): x is [bigint, bigint];
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
 
3
3
  Translated from https://github.com/JuliaMath/Richardson.jl/blob/master/src/Richardson.jl
4
4
 
@@ -1,27 +1,47 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  import type { BigNum } from './types';
3
3
  export declare function gammaln(z: number): number;
4
4
  export declare function gamma(z: number): number;
5
5
  /**
6
- * Inverse Error Function.
6
+ * Inverse Error Function, accurate to full machine (double) precision.
7
7
  *
8
+ * Winitzki's approximation (~3 correct digits) refined with Newton's
9
+ * method on the full-precision `erf()`:
10
+ * y ← y − (erf(y) − x)·(√π/2)·e^{y²}
11
+ * Each iteration doubles the number of correct digits, so 4 iterations
12
+ * reach machine precision.
13
+ *
14
+ * (Previously used a 6-term truncated Maclaurin series, which was only
15
+ * ~4-digit accurate at x = 0.5 and diverged badly for |x| → 1.)
8
16
  */
9
17
  export declare function erfInv(x: number): number;
10
18
  /**
11
- * Trivial function, used when compiling.
19
+ * Complementary error function, erfc(x) = 1 - erf(x), accurate to full
20
+ * machine (double) precision.
21
+ *
22
+ * For |x| < 2 the value is computed as `1 - erf(x)` (no significant
23
+ * cancellation). For larger |x|, `1 - erf(x)` would lose all precision
24
+ * (erf(x) ≈ 1), so erfc is computed directly from a continued fraction
25
+ * (DLMF 7.9.3) evaluated with the modified Lentz algorithm.
26
+ *
27
+ * References:
28
+ * - NIST DLMF: https://dlmf.nist.gov/7.9
12
29
  */
13
30
  export declare function erfc(x: number): number;
14
31
  /**
15
- * An approximation of the gaussian error function, Erf(), using
16
- * Abramowitz and Stegun approximation.
32
+ * The Gauss error function, erf(x), accurate to full machine (double)
33
+ * precision.
34
+ *
35
+ * Computed from the well-conditioned Maclaurin series (DLMF 7.6.2):
36
+ * erf(x) = (2/√π) e^{-x²} Σ_{n≥0} 2^n x^{2n+1} / (1·3·5···(2n+1))
37
+ * All terms are positive, so there is no subtractive cancellation. For
38
+ * |x| ≥ 6 the result rounds to ±1 (erfc(6) ≈ 2.15e-17, below machine eps).
17
39
  *
18
- * Thoughts for future improvements:
19
- * - https://math.stackexchange.com/questions/321569/approximating-the-error-function-erf-by-analytical-functions
20
- * - https://en.wikipedia.org/wiki/Error_function#Approximation_with_elementary_functions
21
-
40
+ * (Previously used the 5-term Abramowitz & Stegun rational approximation,
41
+ * which was only ~7-digit accurate.)
22
42
  *
23
43
  * References:
24
- * - NIST: https://dlmf.nist.gov/7.24#i
44
+ * - NIST DLMF: https://dlmf.nist.gov/7.6
25
45
  */
26
46
  export declare function erf(x: number): number;
27
47
  /**
@@ -185,3 +205,51 @@ export declare function fresnelS(x: number): number;
185
205
  export declare function fresnelC(x: number): number;
186
206
  /** Unnormalized cardinal sine: sinc(x) = sin(x)/x, sinc(0) = 1. */
187
207
  export declare function sinc(x: number): number;
208
+ /**
209
+ * Bignum error function. Precision scales with `BigDecimal.precision`.
210
+ *
211
+ * - |x| ≤ √((p+10)·ln 10): Maclaurin series (DLMF 7.6.2), no cancellation.
212
+ * - beyond: erf(x) rounds to ±1 at the working precision
213
+ * (erfc(x) < e^{−x²} ≤ 10^{−(p+10)}).
214
+ */
215
+ export declare function bigErf(ce: ComputeEngine, x: BigNum): BigNum;
216
+ /**
217
+ * Bignum complementary error function.
218
+ * Precision scales with `BigDecimal.precision`.
219
+ *
220
+ * - x² log10(e) ≤ p+10: computed as 1 − erf(x) with the working precision
221
+ * raised by the x²·log10(e) digits lost to cancellation.
222
+ * - beyond: the asymptotic series (DLMF 7.12.1), which by construction of
223
+ * the switchover delivers ≥ p+10 digits there.
224
+ */
225
+ export declare function bigErfc(ce: ComputeEngine, x: BigNum): BigNum;
226
+ /**
227
+ * Bignum inverse error function: y such that erf(y) = x, for x ∈ [−1, 1].
228
+ * Precision scales with `BigDecimal.precision`.
229
+ *
230
+ * Newton iteration on `bigErf`:
231
+ * y ← y − (erf(y) − x)·(√π/2)·e^{y²}
232
+ * seeded from the machine-precision Winitzki estimate (~3 digits; each
233
+ * iteration doubles the digits). Note that erfInv is intrinsically
234
+ * ill-conditioned as |x| → 1 (|dy/dx| = (√π/2)e^{y²}): the result is the
235
+ * best possible for the given input, but tiny perturbations of x near ±1
236
+ * produce large changes in y.
237
+ */
238
+ export declare function bigErfInv(ce: ComputeEngine, x: BigNum): BigNum;
239
+ /**
240
+ * Bignum unnormalized cardinal sine: sinc(x) = sin(x)/x, sinc(0) = 1.
241
+ * Precision scales with `BigDecimal.precision` (sin uses the engine's
242
+ * 1100-digit π for argument reduction).
243
+ */
244
+ export declare function bigSinc(x: BigNum): BigNum;
245
+ /**
246
+ * Bignum Fresnel sine integral S(x). Precision scales with
247
+ * `BigDecimal.precision`: Taylor series for πx²/2·log10(e) ≤ p+20 (with
248
+ * raised working precision to absorb the alternating-series cancellation),
249
+ * asymptotic expansion beyond (where it delivers ≥ p+10 digits).
250
+ */
251
+ export declare function bigFresnelS(x: BigNum): BigNum;
252
+ /**
253
+ * Bignum Fresnel cosine integral C(x). Same switchover as `bigFresnelS`.
254
+ */
255
+ export declare function bigFresnelC(x: BigNum): BigNum;
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  export declare function mean(values: Iterable<number>): number;
3
3
  export declare function bigMean(values: Iterable<BigDecimal>): BigDecimal;
4
4
  export declare function median(values: Iterable<number>): number;
@@ -1,2 +1,2 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  export declare function numberToString(num: number | bigint, fractionalDigits?: number | string): string;
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  /** @internal */
3
3
  type IsInteger<N extends number> = `${N}` extends `${string}.${string}` ? never : `${N}` extends `-${string}.${string}` ? never : number;
4
4
  /** A `SmallInteger` is an integer < 1e6
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  * Unit registry: dimension vectors, SI base units, prefixes, and conversion.
3
3
  *
4
4
  * A DimensionVector encodes the exponents for each of the 7 SI base
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  * OEIS (Online Encyclopedia of Integer Sequences) Integration
3
3
  *
4
4
  * This module provides functions to look up sequences in the OEIS database
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  * Utilities for declarative sequence definitions.
3
3
  *
4
4
  * This module provides functions to create subscriptEvaluate handlers
@@ -1,3 +1,3 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  /** Calculate the antiderivative of fn, as an expression (not a function) */
3
3
  export declare function antiderivative(fn: Expression, index: string): Expression;
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  /**
3
3
  *
4
4
  * @param fn The function to differentiate, a function literal.
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  /**
3
3
  *
4
4
  */
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  * Cost functions for the Fu trigonometric simplification algorithm.
3
3
  *
4
4
  * The primary objective is to minimize the number of trigonometric functions,
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  * Fu Algorithm Transformation Rules
3
3
  *
4
4
  * Programmatic implementations of TR1-TR22 from the Fu trigonometric
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  * Fu Algorithm for Trigonometric Simplification
3
3
  *
4
4
  * Implementation of the algorithm by Fu, Zhong, and Zeng:
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  export declare function evaluateAnd(args: ReadonlyArray<Expression>, { engine: ce }: {
3
3
  engine: ComputeEngine;
4
4
  }): Expression | undefined;
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  export declare function simplifyAbs(x: Expression): RuleStep | undefined;
3
3
  /**
4
4
  * Simplify expressions where Abs appears as the base of a power.
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  /**
3
3
  * Division simplification rules consolidated from simplify-rules.ts.
4
4
  *
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  /**
3
3
  * Extracts base + integer offset from an expression.
4
4
  * - Symbol `n` → { base: n, offset: 0 }
@@ -1,2 +1,2 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  export declare function simplifyHyperbolic(x: Expression): RuleStep | undefined;
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  /**
3
3
  * Infinity simplification rules consolidated from simplify-rules.ts.
4
4
  * Handles ~20 patterns for simplifying expressions involving infinity.
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  /**
3
3
  * Logarithm simplification rules consolidated from simplify-rules.ts.
4
4
  * Handles ~30 patterns for simplifying Ln and Log expressions.
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  export declare function simplifyLogicFunction(x: Expression): {
3
3
  value: Expression;
4
4
  because: string;
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  /**
3
3
  * Power simplification rules consolidated from simplify-rules.ts.
4
4
  * Handles ~25 patterns for simplifying Power expressions.
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  /**
3
3
  * Product simplification rules extracted from simplify-rules.ts.
4
4
  * Handles 13 patterns for simplifying Product expressions.
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  /**
3
3
  * # Performance Optimization Notes for Simplification Rules
4
4
  *
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  /**
3
3
  * Sum simplification rules extracted from simplify-rules.ts.
4
4
  * Handles 16 patterns for simplifying Sum expressions.
@@ -1,2 +1,2 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  export declare function simplifyTrig(x: Expression): RuleStep | undefined;
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  import { Expression, IComputeEngine as ComputeEngine, DataTypeMap, TensorDataType, TensorField } from '../global-types';
3
3
  /** @category Tensors */
4
4
  export declare function makeTensorField<DT extends keyof DataTypeMap>(ce: ComputeEngine, dtype: DT): TensorField<DataTypeMap[DT]>;
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  /** @category Tensors */
3
3
  export declare abstract class AbstractTensor<DT extends keyof DataTypeMap> implements Tensor<DT> {
4
4
  private ce;
@@ -6,8 +6,8 @@ export declare abstract class AbstractTensor<DT extends keyof DataTypeMap> imple
6
6
  * Return a tuple of tensors that have the same dtype.
7
7
  * If necessary, one of the two input tensors is upcast.
8
8
  *
9
- * The shape of the tensors is reshaped to a compatible
10
- * shape. If the shape is not compatible, `undefined` is returned.
9
+ * This harmonizes only the *dtype*; it does not reshape. Element-wise
10
+ * callers (see `broadcast`) must ensure the shapes are compatible.
11
11
  *
12
12
  * @param lhs
13
13
  * @param rhs
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  import type { Type, TypeString } from '../common/type/types';
3
3
  import type { BoxedType } from '../common/type/boxed-type';
4
4
  import type { LatexString } from './latex-syntax/types';
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  import type { OneOf } from '../common/one-of';
3
3
  import type { MathJsonSymbol, MathJsonNumberObject } from '../math-json';
4
4
  import type { Type, TypeString, TypeResolver } from '../common/type/types';
@@ -10,8 +10,9 @@ import type { BigNum, Rational } from './numerics/types';
10
10
  import type { Expression, ExpressionInput } from './types-expression';
11
11
  import type { Metadata, CanonicalOptions, FormOption, BoxedSubstitution } from './types-serialization';
12
12
  import type { AngularUnit, SymbolDefinition, OperatorDefinition, ValueDefinition, BoxedDefinition, SequenceDefinition, SequenceStatus, SequenceInfo, OEISSequenceInfo, OEISOptions } from './types-definitions';
13
- import type { AssumeResult, Rule as KernelRule, BoxedRule as KernelBoxedRule, BoxedRuleSet as KernelBoxedRuleSet, RuleStep as KernelRuleStep, AssignValue as KernelAssignValue, Scope as KernelScope, EvalContext as KernelEvalContext } from './types-kernel-evaluation';
13
+ import type { AssumeResult, Rule as KernelRule, BoxedRule as KernelBoxedRule, BoxedRuleSet as KernelBoxedRuleSet, RulePurpose, RuleStep as KernelRuleStep, AssignValue as KernelAssignValue, Scope as KernelScope, EvalContext as KernelEvalContext } from './types-kernel-evaluation';
14
14
  import type { LanguageTarget, CompilationResult } from './compilation/types';
15
+ export type { RulePurpose } from './types-kernel-evaluation';
15
16
  type Rule = KernelRule<Expression, ExpressionInput, IComputeEngine>;
16
17
  type BoxedRule = KernelBoxedRule<Expression, IComputeEngine>;
17
18
  type BoxedRuleSet = KernelBoxedRuleSet<Expression, IComputeEngine>;
@@ -29,6 +30,10 @@ export type OperatorInfo = {
29
30
  kind: 'function' | 'opaque';
30
31
  signature?: BoxedType;
31
32
  };
33
+ export type SymbolInfo = {
34
+ kind: 'constant' | 'variable';
35
+ type: BoxedType;
36
+ };
32
37
  /** @internal */
33
38
  export interface IComputeEngine {
34
39
  /** The LatexSyntax instance used for LaTeX parsing/serialization.
@@ -79,6 +84,7 @@ export interface IComputeEngine {
79
84
  timeLimit: number;
80
85
  iterationLimit: number;
81
86
  recursionLimit: number;
87
+ maxCollectionSize: number;
82
88
  chop(n: number): number;
83
89
  chop(n: BigNum): BigNum | 0;
84
90
  chop(n: number | BigNum): number | BigNum;
@@ -95,6 +101,19 @@ export interface IComputeEngine {
95
101
  * Initialized to the built-in simplification rules.
96
102
  * Users can `push()` additional rules or replace the entire array. */
97
103
  simplificationRules: Rule[];
104
+ /** The rules used by `solve()` to find roots of univariate expressions.
105
+ * Each rule matches a normalized equation `f(_x) = 0` — the unknown is
106
+ * the wildcard `_x` — and `replace` produces a root expression.
107
+ * Conditions should reject matches where other wildcards capture `_x`.
108
+ * Candidate roots are validated against the original equation, so an
109
+ * over-eager template degrades to a no-op rather than a wrong answer.
110
+ * Initialized to the built-in root-finding rules; `push()` to extend,
111
+ * assign to replace. */
112
+ solveRules: Rule[];
113
+ /** The rules used by `solve()` to transform an equation into equivalent,
114
+ * easier-to-solve forms before root-finding (e.g. `ln f(x) → f(x) - 1`).
115
+ * Same conventions and extension pattern as `solveRules`. */
116
+ harmonizationRules: Rule[];
98
117
  strict: boolean;
99
118
  expr(expr: NumericValue | ExpressionInput, options?: {
100
119
  form?: FormOption;
@@ -169,6 +188,9 @@ export interface IComputeEngine {
169
188
  type(type: Type | TypeString | BoxedType): BoxedType;
170
189
  rules(rules: Rule | ReadonlyArray<Rule | BoxedRule> | BoxedRuleSet | undefined | null, options?: {
171
190
  canonical?: boolean;
191
+ /** Default purpose applied to any rule in the set that doesn't carry
192
+ * its own `purpose` tag (a per-rule tag takes precedence). */
193
+ purpose?: RulePurpose;
172
194
  }): BoxedRuleSet;
173
195
  getRuleSet(id?: 'harmonization' | 'solve-univariate' | 'standard-simplification'): BoxedRuleSet | undefined;
174
196
  pushScope(scope?: Scope, name?: string): void;
@@ -377,6 +399,34 @@ export interface IComputeEngine {
377
399
  * maintaining a parallel list of "known" operators.
378
400
  */
379
401
  operatorInfo(head: string): OperatorInfo | undefined;
402
+ /**
403
+ * Convert a LaTeX identifier string to its canonical MathJSON name without
404
+ * declaring the symbol in the engine scope.
405
+ *
406
+ * Examples:
407
+ * - `'R_{3}'` → `'R_3'`
408
+ * - `'\\theta_x'` → `'theta_x'`
409
+ * - `'\\alpha'` → `'alpha'`
410
+ * - `'1 + 2'` → `''` (not an identifier)
411
+ *
412
+ * Use this instead of `ce.parse(latex).symbol` when you need the canonical
413
+ * name without the side-effect of auto-declaring the symbol.
414
+ */
415
+ normalizeIdentifier(latex: string): string;
416
+ /**
417
+ * Return introspection metadata for a symbol (value definition) in the
418
+ * current scope chain.
419
+ *
420
+ * - `kind: 'constant'` when the symbol is a CE-registered constant
421
+ * (e.g. `Pi`, `True`, `ExponentialE`).
422
+ * - `kind: 'variable'` for declared but non-constant value symbols
423
+ * (e.g. after `ce.declare('a', 'real')`).
424
+ *
425
+ * Returns `undefined` for unknown names and for names that resolve to
426
+ * operator/function definitions (use `operatorInfo()` for those — the
427
+ * two methods are non-overlapping).
428
+ */
429
+ symbolInfo(name: string): SymbolInfo | undefined;
380
430
  }
381
431
  declare module './types-expression' {
382
432
  interface ExpressionComputeEngine extends IComputeEngine {
@@ -386,4 +436,3 @@ declare module './types-definitions' {
386
436
  interface ComputeEngine extends IComputeEngine {
387
437
  }
388
438
  }
389
- export {};
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  import type { IComputeEngine as ComputeEngine } from './types-engine';
3
3
  import type { Expression, ExpressionInput } from './types-expression';
4
4
  import type { Assumption as KernelAssumption, AssumeResult, AssignValue as KernelAssignValue, BoxedRule as KernelBoxedRule, BoxedRuleSet as KernelBoxedRuleSet, EvaluateOptions as KernelEvaluateOptions, EvalContext as KernelEvalContext, ExpressionMapInterface as KernelExpressionMapInterface, Rule as KernelRule, RuleConditionFunction as KernelRuleConditionFunction, RuleFunction as KernelRuleFunction, RuleReplaceFunction as KernelRuleReplaceFunction, RuleStep as KernelRuleStep, RuleSteps as KernelRuleSteps, Scope as KernelScope } from './types-kernel-evaluation';