@cortex-js/compute-engine 0.50.1 → 0.51.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 (235) hide show
  1. package/dist/compute-engine.esm.js +6910 -389
  2. package/dist/compute-engine.min.esm.js +484 -67
  3. package/dist/compute-engine.min.umd.js +484 -67
  4. package/dist/compute-engine.umd.js +6910 -389
  5. package/dist/math-json.esm.js +2 -2
  6. package/dist/math-json.min.esm.js +2 -2
  7. package/dist/math-json.min.umd.js +2 -2
  8. package/dist/math-json.umd.js +2 -2
  9. package/dist/types/color/categorical.d.ts +9 -0
  10. package/dist/types/color/contrast.d.ts +16 -0
  11. package/dist/types/color/conversion.d.ts +13 -0
  12. package/dist/types/color/diverging-palettes.d.ts +15 -0
  13. package/dist/types/color/index.d.ts +4 -0
  14. package/dist/types/color/manipulation.d.ts +95 -0
  15. package/dist/types/color/palette.d.ts +38 -0
  16. package/dist/types/color/sequential.d.ts +21 -0
  17. package/dist/types/color/types.d.ts +19 -0
  18. package/dist/types/common/ansi-codes.d.ts +1 -1
  19. package/dist/types/common/configuration-change.d.ts +1 -1
  20. package/dist/types/common/fuzzy-string-match.d.ts +1 -1
  21. package/dist/types/common/grapheme-splitter.d.ts +1 -1
  22. package/dist/types/common/interruptible.d.ts +1 -1
  23. package/dist/types/common/one-of.d.ts +1 -1
  24. package/dist/types/common/signals.d.ts +1 -1
  25. package/dist/types/common/type/ast-nodes.d.ts +1 -1
  26. package/dist/types/common/type/boxed-type.d.ts +1 -1
  27. package/dist/types/common/type/lexer.d.ts +1 -1
  28. package/dist/types/common/type/parse.d.ts +1 -1
  29. package/dist/types/common/type/parser.d.ts +1 -1
  30. package/dist/types/common/type/primitive.d.ts +1 -1
  31. package/dist/types/common/type/reduce.d.ts +1 -1
  32. package/dist/types/common/type/serialize.d.ts +1 -1
  33. package/dist/types/common/type/subtype.d.ts +1 -1
  34. package/dist/types/common/type/type-builder.d.ts +1 -1
  35. package/dist/types/common/type/types.d.ts +1 -1
  36. package/dist/types/common/type/utils.d.ts +1 -1
  37. package/dist/types/common/utils.d.ts +1 -1
  38. package/dist/types/compute-engine/assume.d.ts +1 -1
  39. package/dist/types/compute-engine/boxed-expression/abstract-boxed-expression.d.ts +1 -1
  40. package/dist/types/compute-engine/boxed-expression/apply.d.ts +1 -1
  41. package/dist/types/compute-engine/boxed-expression/arithmetic-add.d.ts +1 -1
  42. package/dist/types/compute-engine/boxed-expression/arithmetic-mul-div.d.ts +1 -1
  43. package/dist/types/compute-engine/boxed-expression/arithmetic-power.d.ts +1 -1
  44. package/dist/types/compute-engine/boxed-expression/ascii-math.d.ts +1 -1
  45. package/dist/types/compute-engine/boxed-expression/box.d.ts +1 -1
  46. package/dist/types/compute-engine/boxed-expression/boxed-dictionary.d.ts +1 -1
  47. package/dist/types/compute-engine/boxed-expression/boxed-function.d.ts +1 -1
  48. package/dist/types/compute-engine/boxed-expression/boxed-number.d.ts +1 -1
  49. package/dist/types/compute-engine/boxed-expression/boxed-operator-definition.d.ts +1 -1
  50. package/dist/types/compute-engine/boxed-expression/boxed-patterns.d.ts +1 -1
  51. package/dist/types/compute-engine/boxed-expression/boxed-string.d.ts +1 -1
  52. package/dist/types/compute-engine/boxed-expression/boxed-symbol.d.ts +1 -1
  53. package/dist/types/compute-engine/boxed-expression/boxed-tensor.d.ts +1 -1
  54. package/dist/types/compute-engine/boxed-expression/boxed-value-definition.d.ts +1 -1
  55. package/dist/types/compute-engine/boxed-expression/cache.d.ts +1 -1
  56. package/dist/types/compute-engine/boxed-expression/canonical-utils.d.ts +1 -1
  57. package/dist/types/compute-engine/boxed-expression/canonical.d.ts +1 -1
  58. package/dist/types/compute-engine/boxed-expression/compare.d.ts +1 -1
  59. package/dist/types/compute-engine/boxed-expression/constants.d.ts +1 -1
  60. package/dist/types/compute-engine/boxed-expression/expand.d.ts +1 -1
  61. package/dist/types/compute-engine/boxed-expression/expression-map.d.ts +1 -1
  62. package/dist/types/compute-engine/boxed-expression/factor.d.ts +1 -1
  63. package/dist/types/compute-engine/boxed-expression/flatten.d.ts +1 -1
  64. package/dist/types/compute-engine/boxed-expression/hold.d.ts +1 -1
  65. package/dist/types/compute-engine/boxed-expression/inequality-bounds.d.ts +1 -1
  66. package/dist/types/compute-engine/boxed-expression/init-lazy-refs.d.ts +1 -1
  67. package/dist/types/compute-engine/boxed-expression/invisible-operator.d.ts +1 -1
  68. package/dist/types/compute-engine/boxed-expression/match.d.ts +1 -1
  69. package/dist/types/compute-engine/boxed-expression/negate.d.ts +1 -1
  70. package/dist/types/compute-engine/boxed-expression/numerics.d.ts +1 -1
  71. package/dist/types/compute-engine/boxed-expression/order.d.ts +1 -1
  72. package/dist/types/compute-engine/boxed-expression/pattern-utils.d.ts +1 -1
  73. package/dist/types/compute-engine/boxed-expression/polynomial-degree.d.ts +1 -1
  74. package/dist/types/compute-engine/boxed-expression/polynomials.d.ts +1 -1
  75. package/dist/types/compute-engine/boxed-expression/predicates.d.ts +1 -1
  76. package/dist/types/compute-engine/boxed-expression/product.d.ts +1 -1
  77. package/dist/types/compute-engine/boxed-expression/rules.d.ts +1 -1
  78. package/dist/types/compute-engine/boxed-expression/serialize.d.ts +1 -1
  79. package/dist/types/compute-engine/boxed-expression/sgn.d.ts +1 -1
  80. package/dist/types/compute-engine/boxed-expression/simplify.d.ts +1 -1
  81. package/dist/types/compute-engine/boxed-expression/solve-linear-system.d.ts +1 -1
  82. package/dist/types/compute-engine/boxed-expression/solve.d.ts +1 -1
  83. package/dist/types/compute-engine/boxed-expression/trigonometry.d.ts +1 -1
  84. package/dist/types/compute-engine/boxed-expression/type-guards.d.ts +1 -1
  85. package/dist/types/compute-engine/boxed-expression/utils.d.ts +1 -1
  86. package/dist/types/compute-engine/boxed-expression/validate.d.ts +1 -1
  87. package/dist/types/compute-engine/collection-utils.d.ts +1 -1
  88. package/dist/types/compute-engine/compilation/base-compiler.d.ts +12 -1
  89. package/dist/types/compute-engine/compilation/compile-expression.d.ts +1 -1
  90. package/dist/types/compute-engine/compilation/glsl-target.d.ts +1 -1
  91. package/dist/types/compute-engine/compilation/gpu-target.d.ts +40 -1
  92. package/dist/types/compute-engine/compilation/interval-glsl-target.d.ts +1 -1
  93. package/dist/types/compute-engine/compilation/interval-javascript-target.d.ts +1 -1
  94. package/dist/types/compute-engine/compilation/interval-wgsl-target.d.ts +1 -1
  95. package/dist/types/compute-engine/compilation/javascript-target.d.ts +283 -3
  96. package/dist/types/compute-engine/compilation/python-target.d.ts +1 -1
  97. package/dist/types/compute-engine/compilation/types.d.ts +11 -2
  98. package/dist/types/compute-engine/compilation/wgsl-target.d.ts +1 -1
  99. package/dist/types/compute-engine/cost-function.d.ts +1 -1
  100. package/dist/types/compute-engine/engine-assumptions.d.ts +1 -1
  101. package/dist/types/compute-engine/engine-cache.d.ts +1 -1
  102. package/dist/types/compute-engine/engine-common-symbols.d.ts +1 -1
  103. package/dist/types/compute-engine/engine-compilation-targets.d.ts +1 -1
  104. package/dist/types/compute-engine/engine-configuration-lifecycle.d.ts +1 -1
  105. package/dist/types/compute-engine/engine-declarations.d.ts +1 -1
  106. package/dist/types/compute-engine/engine-expression-entrypoints.d.ts +1 -1
  107. package/dist/types/compute-engine/engine-extension-contracts.d.ts +1 -1
  108. package/dist/types/compute-engine/engine-latex-dictionary-state.d.ts +1 -1
  109. package/dist/types/compute-engine/engine-library-bootstrap.d.ts +1 -1
  110. package/dist/types/compute-engine/engine-numeric-configuration.d.ts +1 -1
  111. package/dist/types/compute-engine/engine-parse-entrypoint.d.ts +1 -1
  112. package/dist/types/compute-engine/engine-runtime-state.d.ts +1 -1
  113. package/dist/types/compute-engine/engine-scope.d.ts +1 -1
  114. package/dist/types/compute-engine/engine-sequences.d.ts +1 -1
  115. package/dist/types/compute-engine/engine-simplification-rules.d.ts +1 -1
  116. package/dist/types/compute-engine/engine-startup-coordinator.d.ts +1 -1
  117. package/dist/types/compute-engine/engine-type-resolver.d.ts +1 -1
  118. package/dist/types/compute-engine/engine-validation-entrypoints.d.ts +1 -1
  119. package/dist/types/compute-engine/free-functions.d.ts +14 -9
  120. package/dist/types/compute-engine/function-utils.d.ts +1 -1
  121. package/dist/types/compute-engine/global-types.d.ts +1 -1
  122. package/dist/types/compute-engine/index.d.ts +2 -2
  123. package/dist/types/compute-engine/interval/arithmetic.d.ts +1 -1
  124. package/dist/types/compute-engine/interval/comparison.d.ts +1 -1
  125. package/dist/types/compute-engine/interval/elementary.d.ts +9 -1
  126. package/dist/types/compute-engine/interval/index.d.ts +1 -1
  127. package/dist/types/compute-engine/interval/trigonometric.d.ts +1 -1
  128. package/dist/types/compute-engine/interval/types.d.ts +1 -1
  129. package/dist/types/compute-engine/interval/util.d.ts +1 -1
  130. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-algebra.d.ts +1 -1
  131. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-arithmetic.d.ts +1 -1
  132. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-calculus.d.ts +1 -1
  133. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-complex.d.ts +1 -1
  134. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-core.d.ts +1 -1
  135. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-linear-algebra.d.ts +1 -1
  136. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-logic.d.ts +1 -1
  137. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-other.d.ts +1 -1
  138. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-relational-operators.d.ts +1 -1
  139. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-sets.d.ts +1 -1
  140. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-statistics.d.ts +1 -1
  141. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-symbols.d.ts +1 -1
  142. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-trigonometry.d.ts +1 -1
  143. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-units.d.ts +23 -0
  144. package/dist/types/compute-engine/latex-syntax/dictionary/definitions.d.ts +1 -1
  145. package/dist/types/compute-engine/latex-syntax/dictionary/indexed-types.d.ts +1 -1
  146. package/dist/types/compute-engine/latex-syntax/parse-number.d.ts +1 -1
  147. package/dist/types/compute-engine/latex-syntax/parse-symbol.d.ts +1 -1
  148. package/dist/types/compute-engine/latex-syntax/parse.d.ts +1 -1
  149. package/dist/types/compute-engine/latex-syntax/serialize-number.d.ts +1 -1
  150. package/dist/types/compute-engine/latex-syntax/serializer-style.d.ts +1 -1
  151. package/dist/types/compute-engine/latex-syntax/serializer.d.ts +1 -1
  152. package/dist/types/compute-engine/latex-syntax/tokenizer.d.ts +1 -1
  153. package/dist/types/compute-engine/latex-syntax/types.d.ts +2 -2
  154. package/dist/types/compute-engine/latex-syntax/utils.d.ts +1 -1
  155. package/dist/types/compute-engine/library/arithmetic.d.ts +1 -1
  156. package/dist/types/compute-engine/library/calculus.d.ts +1 -1
  157. package/dist/types/compute-engine/library/collections.d.ts +1 -1
  158. package/dist/types/compute-engine/library/colors.d.ts +2 -0
  159. package/dist/types/compute-engine/library/combinatorics.d.ts +1 -1
  160. package/dist/types/compute-engine/library/complex.d.ts +1 -1
  161. package/dist/types/compute-engine/library/control-structures.d.ts +1 -1
  162. package/dist/types/compute-engine/library/core.d.ts +1 -1
  163. package/dist/types/compute-engine/library/library.d.ts +1 -1
  164. package/dist/types/compute-engine/library/linear-algebra.d.ts +1 -1
  165. package/dist/types/compute-engine/library/logic-analysis.d.ts +1 -1
  166. package/dist/types/compute-engine/library/logic.d.ts +1 -1
  167. package/dist/types/compute-engine/library/number-theory.d.ts +1 -1
  168. package/dist/types/compute-engine/library/polynomials.d.ts +1 -1
  169. package/dist/types/compute-engine/library/quantity-arithmetic.d.ts +37 -0
  170. package/dist/types/compute-engine/library/random-expression.d.ts +1 -1
  171. package/dist/types/compute-engine/library/relational-operator.d.ts +1 -1
  172. package/dist/types/compute-engine/library/sets.d.ts +1 -1
  173. package/dist/types/compute-engine/library/statistics.d.ts +1 -1
  174. package/dist/types/compute-engine/library/trigonometry.d.ts +1 -1
  175. package/dist/types/compute-engine/library/type-handlers.d.ts +1 -1
  176. package/dist/types/compute-engine/library/unit-data.d.ts +8 -0
  177. package/dist/types/compute-engine/library/units.d.ts +9 -0
  178. package/dist/types/compute-engine/library/utils.d.ts +1 -1
  179. package/dist/types/compute-engine/numeric-value/big-numeric-value.d.ts +1 -1
  180. package/dist/types/compute-engine/numeric-value/exact-numeric-value.d.ts +1 -1
  181. package/dist/types/compute-engine/numeric-value/machine-numeric-value.d.ts +1 -1
  182. package/dist/types/compute-engine/numeric-value/types.d.ts +1 -1
  183. package/dist/types/compute-engine/numerics/bigint.d.ts +1 -1
  184. package/dist/types/compute-engine/numerics/expression.d.ts +1 -1
  185. package/dist/types/compute-engine/numerics/interval.d.ts +1 -1
  186. package/dist/types/compute-engine/numerics/monte-carlo.d.ts +1 -1
  187. package/dist/types/compute-engine/numerics/numeric-bigint.d.ts +1 -1
  188. package/dist/types/compute-engine/numerics/numeric-bignum.d.ts +1 -1
  189. package/dist/types/compute-engine/numerics/numeric-complex.d.ts +1 -1
  190. package/dist/types/compute-engine/numerics/numeric.d.ts +1 -1
  191. package/dist/types/compute-engine/numerics/primes.d.ts +1 -1
  192. package/dist/types/compute-engine/numerics/rationals.d.ts +1 -1
  193. package/dist/types/compute-engine/numerics/richardson.d.ts +1 -1
  194. package/dist/types/compute-engine/numerics/special-functions.d.ts +1 -1
  195. package/dist/types/compute-engine/numerics/statistics.d.ts +1 -1
  196. package/dist/types/compute-engine/numerics/strings.d.ts +1 -1
  197. package/dist/types/compute-engine/numerics/types.d.ts +1 -1
  198. package/dist/types/compute-engine/numerics/unit-data.d.ts +128 -0
  199. package/dist/types/compute-engine/oeis.d.ts +1 -1
  200. package/dist/types/compute-engine/sequence.d.ts +1 -1
  201. package/dist/types/compute-engine/symbolic/antiderivative.d.ts +1 -1
  202. package/dist/types/compute-engine/symbolic/derivative.d.ts +1 -1
  203. package/dist/types/compute-engine/symbolic/distribute.d.ts +1 -1
  204. package/dist/types/compute-engine/symbolic/fu-cost.d.ts +1 -1
  205. package/dist/types/compute-engine/symbolic/fu-transforms.d.ts +1 -1
  206. package/dist/types/compute-engine/symbolic/fu.d.ts +1 -1
  207. package/dist/types/compute-engine/symbolic/logic-utils.d.ts +1 -1
  208. package/dist/types/compute-engine/symbolic/simplify-abs.d.ts +1 -1
  209. package/dist/types/compute-engine/symbolic/simplify-divide.d.ts +4 -2
  210. package/dist/types/compute-engine/symbolic/simplify-factorial.d.ts +33 -0
  211. package/dist/types/compute-engine/symbolic/simplify-hyperbolic.d.ts +1 -1
  212. package/dist/types/compute-engine/symbolic/simplify-infinity.d.ts +1 -1
  213. package/dist/types/compute-engine/symbolic/simplify-log.d.ts +1 -1
  214. package/dist/types/compute-engine/symbolic/simplify-logic.d.ts +1 -1
  215. package/dist/types/compute-engine/symbolic/simplify-power.d.ts +1 -1
  216. package/dist/types/compute-engine/symbolic/simplify-product.d.ts +1 -1
  217. package/dist/types/compute-engine/symbolic/simplify-rules.d.ts +1 -1
  218. package/dist/types/compute-engine/symbolic/simplify-sum.d.ts +1 -1
  219. package/dist/types/compute-engine/symbolic/simplify-trig.d.ts +1 -1
  220. package/dist/types/compute-engine/tensor/tensor-fields.d.ts +1 -1
  221. package/dist/types/compute-engine/tensor/tensors.d.ts +1 -1
  222. package/dist/types/compute-engine/types-definitions.d.ts +1 -1
  223. package/dist/types/compute-engine/types-engine.d.ts +1 -1
  224. package/dist/types/compute-engine/types-evaluation.d.ts +1 -1
  225. package/dist/types/compute-engine/types-expression.d.ts +1 -1
  226. package/dist/types/compute-engine/types-kernel-evaluation.d.ts +1 -1
  227. package/dist/types/compute-engine/types-kernel-serialization.d.ts +1 -1
  228. package/dist/types/compute-engine/types-serialization.d.ts +1 -1
  229. package/dist/types/compute-engine/types.d.ts +1 -1
  230. package/dist/types/compute-engine.d.ts +2 -2
  231. package/dist/types/math-json/symbols.d.ts +1 -1
  232. package/dist/types/math-json/types.d.ts +1 -1
  233. package/dist/types/math-json/utils.d.ts +1 -1
  234. package/dist/types/math-json.d.ts +2 -2
  235. package/package.json +1 -1
@@ -0,0 +1,37 @@
1
+ /* 0.51.0 */
2
+ * Arithmetic helpers for Quantity expressions.
3
+ *
4
+ * Extracted from arithmetic.ts to keep that file focused on scalar
5
+ * arithmetic. Every function here operates on Quantity expressions
6
+ * (magnitude + unit pairs) and is called from the evaluate paths of
7
+ * Add, Multiply, Divide, Power, Negate, Sqrt, and Root.
8
+ */
9
+ import type { Expression, IComputeEngine as ComputeEngine } from '../global-types';
10
+ /** A Quantity function expression with guaranteed op1 and op2 access. */
11
+ export type QuantityExpr = Expression & {
12
+ readonly op1: Expression;
13
+ readonly op2: Expression;
14
+ readonly ops: ReadonlyArray<Expression>;
15
+ };
16
+ /** Check if an expression is a Quantity and narrow the type. */
17
+ export declare function isQuantity(expr: Expression): expr is QuantityExpr;
18
+ /**
19
+ * Add Quantity expressions. All operands must be Quantities with
20
+ * compatible dimensions. The result uses the unit with the largest
21
+ * scale factor (e.g. `m` wins over `cm`, `km` wins over `m`).
22
+ */
23
+ export declare function quantityAdd(ce: ComputeEngine, ops: ReadonlyArray<Expression>): Expression | undefined;
24
+ /**
25
+ * Multiply expressions where at least one is a Quantity.
26
+ * - scalar * Quantity => Quantity with scaled magnitude
27
+ * - Quantity * Quantity => Quantity with compound unit
28
+ */
29
+ export declare function quantityMultiply(ce: ComputeEngine, ops: ReadonlyArray<Expression>): Expression | undefined;
30
+ /**
31
+ * Divide two expressions where at least one is a Quantity.
32
+ */
33
+ export declare function quantityDivide(ce: ComputeEngine, num: Expression, den: Expression): Expression | undefined;
34
+ /**
35
+ * Raise a Quantity to a power.
36
+ */
37
+ export declare function quantityPower(ce: ComputeEngine, base: Expression, exp: Expression): Expression | undefined;
@@ -1,2 +1,2 @@
1
- /* 0.50.1 */
1
+ /* 0.51.0 */
2
2
  export declare function randomExpression(level?: number): MathJsonExpression;
@@ -1,2 +1,2 @@
1
- /* 0.50.1 */
1
+ /* 0.51.0 */
2
2
  export declare const RELOP_LIBRARY: SymbolDefinitions;
@@ -1,2 +1,2 @@
1
- /* 0.50.1 */
1
+ /* 0.51.0 */
2
2
  export declare const SETS_LIBRARY: SymbolDefinitions;
@@ -1,2 +1,2 @@
1
- /* 0.50.1 */
1
+ /* 0.51.0 */
2
2
  export declare const STATISTICS_LIBRARY: SymbolDefinitions[];
@@ -1,2 +1,2 @@
1
- /* 0.50.1 */
1
+ /* 0.51.0 */
2
2
  export declare const TRIGONOMETRY_LIBRARY: SymbolDefinitions[];
@@ -1,4 +1,4 @@
1
- /* 0.50.1 */
1
+ /* 0.51.0 */
2
2
  import type { Type } from '../../common/type/types';
3
3
  /** Real inputs → finite_real, otherwise → finite_number. */
4
4
  export declare function numericTypeHandler(ops: ReadonlyArray<Expression>): Type;
@@ -0,0 +1,8 @@
1
+ /* 0.51.0 */
2
+ * Re-export the unit registry from its canonical location in numerics/.
3
+ *
4
+ * The unit registry lives in numerics/ so that lower layers (like
5
+ * latex-syntax/) can access it without violating the layered dependency
6
+ * rules.
7
+ */
8
+ export { type DimensionVector, type UnitExpression, dimensionsEqual, isDimensionless, getUnitDimension, getUnitScale, areCompatibleUnits, convertUnit, getExpressionDimension, getExpressionScale, parseUnitDSL, convertCompoundUnit, findNamedUnit, } from '../numerics/unit-data';
@@ -0,0 +1,9 @@
1
+ /* 0.51.0 */
2
+ import { type UnitExpression } from './unit-data';
3
+ /**
4
+ * Convert a boxed expression representing a unit into a plain
5
+ * `UnitExpression` (string or JSON array) that `unit-data.ts` functions
6
+ * can work with.
7
+ */
8
+ export declare function boxedToUnitExpression(expr: Expression): UnitExpression | null;
9
+ export declare const UNITS_LIBRARY: SymbolDefinitions;
@@ -1,4 +1,4 @@
1
- /* 0.50.1 */
1
+ /* 0.51.0 */
2
2
  /**
3
3
  * EL-4: Convert known infinite integer sets to their equivalent Limits bounds.
4
4
  * Returns undefined if the set cannot be converted to a Limits form.
@@ -1,4 +1,4 @@
1
- /* 0.50.1 */
1
+ /* 0.51.0 */
2
2
  import type { BigNumFactory, SmallInteger } from '../numerics/types';
3
3
  import { NumericValue, NumericValueData } from './types';
4
4
  import { ExactNumericValue } from './exact-numeric-value';
@@ -1,4 +1,4 @@
1
- /* 0.50.1 */
1
+ /* 0.51.0 */
2
2
  import { type BigNumFactory, Rational, SmallInteger } from '../numerics/types';
3
3
  import { ExactNumericValueData, NumericValue, NumericValueFactory } from './types';
4
4
  import { MathJsonExpression } from '../../math-json/types';
@@ -1,4 +1,4 @@
1
- /* 0.50.1 */
1
+ /* 0.51.0 */
2
2
  import type { BigNumFactory, 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.50.1 */
1
+ /* 0.51.0 */
2
2
  *
3
3
  * ## THEORY OF OPERATIONS
4
4
  *
@@ -1,2 +1,2 @@
1
- /* 0.50.1 */
1
+ /* 0.51.0 */
2
2
  export declare function bigint(a: Decimal | number | bigint | string): bigint | null;
@@ -1,4 +1,4 @@
1
- /* 0.50.1 */
1
+ /* 0.51.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.50.1 */
1
+ /* 0.51.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.50.1 */
1
+ /* 0.51.0 */
2
2
  estimate: number;
3
3
  error: number;
4
4
  };
@@ -1,4 +1,4 @@
1
- /* 0.50.1 */
1
+ /* 0.51.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.50.1 */
1
+ /* 0.51.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(ce: IBigNum, n: BigNum): BigNum;
@@ -1,3 +1,3 @@
1
- /* 0.50.1 */
1
+ /* 0.51.0 */
2
2
  export declare function gamma(c: Complex): Complex;
3
3
  export declare function gammaln(c: Complex): Complex;
@@ -1,4 +1,4 @@
1
- /* 0.50.1 */
1
+ /* 0.51.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.50.1 */
1
+ /* 0.51.0 */
2
2
  export declare function primeFactors(n: number): {
3
3
  [factor: number]: number;
4
4
  };
@@ -1,4 +1,4 @@
1
- /* 0.50.1 */
1
+ /* 0.51.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.50.1 */
1
+ /* 0.51.0 */
2
2
 
3
3
  Translated from https://github.com/JuliaMath/Richardson.jl/blob/master/src/Richardson.jl
4
4
 
@@ -1,4 +1,4 @@
1
- /* 0.50.1 */
1
+ /* 0.51.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;
@@ -1,4 +1,4 @@
1
- /* 0.50.1 */
1
+ /* 0.51.0 */
2
2
  export declare function mean(values: Iterable<number>): number;
3
3
  export declare function bigMean(bignum: BigNumFactory, values: Iterable<BigNum>): BigNum;
4
4
  export declare function median(values: Iterable<number>): number;
@@ -1,2 +1,2 @@
1
- /* 0.50.1 */
1
+ /* 0.51.0 */
2
2
  export declare function numberToString(num: number | bigint, fractionalDigits?: number | string): string;
@@ -1,4 +1,4 @@
1
- /* 0.50.1 */
1
+ /* 0.51.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
@@ -0,0 +1,128 @@
1
+ /* 0.51.0 */
2
+ * Unit registry: dimension vectors, SI base units, prefixes, and conversion.
3
+ *
4
+ * A DimensionVector encodes the exponents for each of the 7 SI base
5
+ * dimensions: [length, mass, time, current, temperature, amount, luminosity].
6
+ *
7
+ * Every unit in the registry stores its dimension vector and a scale factor
8
+ * relative to the coherent SI unit for that dimension. For example the meter
9
+ * has scale 1, the kilometer has scale 1000, and the inch has scale 0.0254
10
+ * (all measuring length).
11
+ *
12
+ * Prefixed units (km, mg, GHz, ...) are resolved on the fly by
13
+ * `parsePrefixedUnit` rather than stored explicitly.
14
+ */
15
+ /**
16
+ * 7-tuple of exponents over the SI base dimensions:
17
+ * [length, mass, time, current, temperature, amount, luminosity]
18
+ */
19
+ export type DimensionVector = [
20
+ number,
21
+ number,
22
+ number,
23
+ number,
24
+ number,
25
+ number,
26
+ number
27
+ ];
28
+ export declare function dimensionsEqual(a: DimensionVector, b: DimensionVector): boolean;
29
+ export declare function isDimensionless(dim: DimensionVector): boolean;
30
+ /**
31
+ * Return the dimension vector for `symbol`, or `null` if unknown.
32
+ *
33
+ * Handles direct units (m, kg, N, ...) and prefixed units (km, MHz, ...).
34
+ */
35
+ export declare function getUnitDimension(symbol: string): DimensionVector | null;
36
+ /**
37
+ * Return the scale factor of `symbol` relative to the coherent SI unit
38
+ * for the same dimension, or `null` if unknown.
39
+ *
40
+ * Examples:
41
+ * - getUnitScale('m') → 1
42
+ * - getUnitScale('km') → 1000
43
+ * - getUnitScale('mg') → 1e-6 (milli × gram: 1e-3 × 1e-3)
44
+ */
45
+ export declare function getUnitScale(symbol: string): number | null;
46
+ /**
47
+ * Return `true` when `a` and `b` share the same dimension vector
48
+ * (i.e. they measure the same physical quantity and can be inter-converted).
49
+ */
50
+ export declare function areCompatibleUnits(a: string, b: string): boolean;
51
+ /**
52
+ * Search for a named derived SI unit that matches the given dimension vector
53
+ * and has scale=1.
54
+ *
55
+ * Returns the unit symbol (e.g., 'N', 'J', 'W') or `null` if no match.
56
+ */
57
+ export declare function findNamedUnit(dim: DimensionVector): string | null;
58
+ /**
59
+ * Convert a numeric `value` from `fromUnit` to `toUnit`.
60
+ *
61
+ * Returns the converted value, or `null` when the units are unknown or
62
+ * dimensionally incompatible.
63
+ *
64
+ * Handles both linear conversions (most units) and affine conversions
65
+ * (degC, degF) via the optional `offset` field.
66
+ */
67
+ export declare function convertUnit(value: number, fromUnit: string, toUnit: string): number | null;
68
+ /**
69
+ * A MathJSON-like unit expression: either a string (simple unit symbol) or
70
+ * an array like `["Divide", "m", "s"]`.
71
+ */
72
+ export type UnitExpression = string | [string, ...any[]];
73
+ /**
74
+ * Compute the dimension vector for a MathJSON unit expression.
75
+ *
76
+ * - If `expr` is a string, delegates to `getUnitDimension`.
77
+ * - `["Multiply", a, b, ...]` — adds dimension vectors component-wise.
78
+ * - `["Divide", a, b]` — subtracts b's dimension from a's.
79
+ * - `["Power", base, exp]` — multiplies base dimension by exp.
80
+ *
81
+ * Returns `null` if any component is unrecognised.
82
+ */
83
+ export declare function getExpressionDimension(expr: UnitExpression): DimensionVector | null;
84
+ /**
85
+ * Compute the scale factor for a MathJSON unit expression relative to
86
+ * coherent SI.
87
+ *
88
+ * - If `expr` is a string, delegates to `getUnitScale`.
89
+ * - `["Multiply", a, b, ...]` — multiplies scales.
90
+ * - `["Divide", a, b]` — a.scale / b.scale.
91
+ * - `["Power", base, exp]` — base.scale ^ exp.
92
+ *
93
+ * Returns `null` if any component is unrecognised.
94
+ */
95
+ export declare function getExpressionScale(expr: UnitExpression): number | null;
96
+ /**
97
+ * Parse a unit DSL string like `"m/s^2"` or `"kg*m/s^2"` into a
98
+ * MathJSON unit expression.
99
+ *
100
+ * Grammar:
101
+ * - `*` = multiplication
102
+ * - `/` = division (everything after `/` is in denominator)
103
+ * - `^N` = power (integer exponent)
104
+ * - `(...)` = grouping
105
+ * - Simple units (no operators) stay as strings.
106
+ *
107
+ * Examples:
108
+ * ```
109
+ * parseUnitDSL("m") // "m"
110
+ * parseUnitDSL("km") // "km"
111
+ * parseUnitDSL("m/s") // ["Divide", "m", "s"]
112
+ * parseUnitDSL("m/s^2") // ["Divide", "m", ["Power", "s", 2]]
113
+ * parseUnitDSL("kg*m/s^2") // ["Divide", ["Multiply", "kg", "m"], ["Power", "s", 2]]
114
+ * parseUnitDSL("kg/(m*s^2)") // ["Divide", "kg", ["Multiply", "m", ["Power", "s", 2]]]
115
+ * ```
116
+ */
117
+ export declare function parseUnitDSL(s: string): UnitExpression | null;
118
+ /**
119
+ * Convert a numeric `value` between two compound unit expressions.
120
+ *
121
+ * Both `fromUnit` and `toUnit` may be simple strings or MathJSON arrays.
122
+ * Returns the converted value, or `null` on dimensional mismatch or
123
+ * unknown units.
124
+ *
125
+ * For simple string units, delegates to `convertUnit` so that affine
126
+ * offsets (degC, degF) are handled correctly.
127
+ */
128
+ export declare function convertCompoundUnit(value: number, fromUnit: UnitExpression, toUnit: UnitExpression): number | null;
@@ -1,4 +1,4 @@
1
- /* 0.50.1 */
1
+ /* 0.51.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.50.1 */
1
+ /* 0.51.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.50.1 */
1
+ /* 0.51.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.50.1 */
1
+ /* 0.51.0 */
2
2
  /**
3
3
  *
4
4
  * @param fn The function to differentiate, a function literal.
@@ -1,4 +1,4 @@
1
- /* 0.50.1 */
1
+ /* 0.51.0 */
2
2
  /**
3
3
  *
4
4
  */
@@ -1,4 +1,4 @@
1
- /* 0.50.1 */
1
+ /* 0.51.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.50.1 */
1
+ /* 0.51.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.50.1 */
1
+ /* 0.51.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.50.1 */
1
+ /* 0.51.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.50.1 */
1
+ /* 0.51.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,7 +1,6 @@
1
- /* 0.50.1 */
1
+ /* 0.51.0 */
2
2
  /**
3
3
  * Division simplification rules consolidated from simplify-rules.ts.
4
- * Handles ~5 patterns for simplifying Divide expressions.
5
4
  *
6
5
  * Patterns:
7
6
  * - a/a -> 1 (when a ≠ 0)
@@ -9,6 +8,9 @@
9
8
  * - a/(1/b) -> a*b (when b ≠ 0)
10
9
  * - a/(b/c) -> a*c/b (when c ≠ 0)
11
10
  * - 0/a -> 0 (when a ≠ 0)
11
+ * - n!/k! -> partial product (concrete integers)
12
+ * - n!/k! -> (k+1)(k+2)...n (symbolic, small constant diff)
13
+ * - n!/(k!(n-k)!) -> Binomial(n, k)
12
14
  *
13
15
  * IMPORTANT: Do not call .simplify() on results to avoid infinite recursion.
14
16
  */
@@ -0,0 +1,33 @@
1
+ /* 0.51.0 */
2
+ /**
3
+ * Extracts base + integer offset from an expression.
4
+ * - Symbol `n` → { base: n, offset: 0 }
5
+ * - Add(n, 3) → { base: n, offset: 3 }
6
+ * - Add(n, -2) → { base: n, offset: -2 }
7
+ * - Multiply(2, x) → { base: Multiply(2, x), offset: 0 }
8
+ * - Number → null (pure numeric, no symbolic base)
9
+ */
10
+ export declare function baseOffset(expr: Expression): {
11
+ base: Expression;
12
+ offset: number;
13
+ } | null;
14
+ /**
15
+ * Simplification rules for Binomial and Choose expressions.
16
+ *
17
+ * Patterns:
18
+ * - C(n, 0) → 1
19
+ * - C(n, 1) → n
20
+ * - C(n, n) → 1
21
+ * - C(n, n-1) → n
22
+ */
23
+ export declare function simplifyBinomial(x: Expression): RuleStep | undefined;
24
+ /**
25
+ * Simplification for Add expressions containing factorial terms.
26
+ * Factors out the common (smallest) factorial for symbolic expressions.
27
+ *
28
+ * Examples:
29
+ * - n! - (n-1)! → (n-1)! * (n - 1)
30
+ * - (n+1)! - n! → n! * n
31
+ * - (n+1)! + n! → n! * (n + 2)
32
+ */
33
+ export declare function simplifyFactorialAdd(x: Expression): RuleStep | undefined;
@@ -1,2 +1,2 @@
1
- /* 0.50.1 */
1
+ /* 0.51.0 */
2
2
  export declare function simplifyHyperbolic(x: Expression): RuleStep | undefined;
@@ -1,4 +1,4 @@
1
- /* 0.50.1 */
1
+ /* 0.51.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.50.1 */
1
+ /* 0.51.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.50.1 */
1
+ /* 0.51.0 */
2
2
  export declare function simplifyLogicFunction(x: Expression): {
3
3
  value: Expression;
4
4
  because: string;
@@ -1,4 +1,4 @@
1
- /* 0.50.1 */
1
+ /* 0.51.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.50.1 */
1
+ /* 0.51.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.50.1 */
1
+ /* 0.51.0 */
2
2
  /**
3
3
  * # Performance Optimization Notes for Simplification Rules
4
4
  *
@@ -1,4 +1,4 @@
1
- /* 0.50.1 */
1
+ /* 0.51.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.50.1 */
1
+ /* 0.51.0 */
2
2
  export declare function simplifyTrig(x: Expression): RuleStep | undefined;
@@ -1,4 +1,4 @@
1
- /* 0.50.1 */
1
+ /* 0.51.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.50.1 */
1
+ /* 0.51.0 */
2
2
  /** @category Tensors */
3
3
  export declare abstract class AbstractTensor<DT extends keyof DataTypeMap> implements Tensor<DT> {
4
4
  private ce;
@@ -1,4 +1,4 @@
1
- /* 0.50.1 */
1
+ /* 0.51.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, LatexDictionaryEntry } from './latex-syntax/types';
@@ -1,4 +1,4 @@
1
- /* 0.50.1 */
1
+ /* 0.51.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';
@@ -1,4 +1,4 @@
1
- /* 0.50.1 */
1
+ /* 0.51.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';
@@ -1,4 +1,4 @@
1
- /* 0.50.1 */
1
+ /* 0.51.0 */
2
2
  import type { OneOf } from '../common/one-of';
3
3
  import type { MathJsonExpression, MathJsonNumberObject, MathJsonStringObject, MathJsonSymbolObject, MathJsonFunctionObject, MathJsonSymbol, MathJsonDictionaryObject } from '../math-json';
4
4
  import type { Type, TypeString } from '../common/type/types';
@@ -1,4 +1,4 @@
1
- /* 0.50.1 */
1
+ /* 0.51.0 */
2
2
  import type { TypeReference } 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.50.1 */
1
+ /* 0.51.0 */
2
2
  export type Hold = 'none' | 'all' | 'first' | 'rest' | 'last' | 'most';
3
3
  /**
4
4
  * Options to control serialization to MathJSON when using
@@ -1,4 +1,4 @@
1
- /* 0.50.1 */
1
+ /* 0.51.0 */
2
2
  import type { BoxedSubstitution as KernelBoxedSubstitution, CanonicalForm, CanonicalOptions, FormOption, Hold, JsonSerializationOptions, Metadata, PatternMatchOptions as KernelPatternMatchOptions, ReplaceOptions, Substitution as KernelSubstitution } from './types-kernel-serialization';
3
3
  export type { Hold, JsonSerializationOptions, ReplaceOptions, CanonicalForm, CanonicalOptions, FormOption, Metadata, };
4
4
  /**
@@ -1,4 +1,4 @@
1
- /* 0.50.1 */
1
+ /* 0.51.0 */
2
2
  export type { MathJsonExpression, MathJsonAttributes, MathJsonNumberObject, MathJsonSymbolObject, MathJsonStringObject, MathJsonFunctionObject, DictionaryValue, MathJsonDictionaryObject, ExpressionObject, MathJsonSymbol, } from '../math-json/types';
3
3
  export * from '../common/type/boxed-type';
4
4
  export * from '../common/type/types';