@cortex-js/compute-engine 0.50.2 → 0.51.1

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 (236) hide show
  1. package/dist/compute-engine.esm.js +7900 -267
  2. package/dist/compute-engine.min.esm.js +490 -65
  3. package/dist/compute-engine.min.umd.js +490 -65
  4. package/dist/compute-engine.umd.js +7900 -267
  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 +16 -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 +68 -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 +37 -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 +7 -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 +291 -3
  96. package/dist/types/compute-engine/compilation/python-target.d.ts +1 -1
  97. package/dist/types/compute-engine/compilation/types.d.ts +30 -3
  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 +15 -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 +26 -1
  126. package/dist/types/compute-engine/interval/index.d.ts +11 -5
  127. package/dist/types/compute-engine/interval/trigonometric.d.ts +16 -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-dms.d.ts +22 -0
  150. package/dist/types/compute-engine/latex-syntax/serialize-number.d.ts +1 -1
  151. package/dist/types/compute-engine/latex-syntax/serializer-style.d.ts +1 -1
  152. package/dist/types/compute-engine/latex-syntax/serializer.d.ts +2 -2
  153. package/dist/types/compute-engine/latex-syntax/tokenizer.d.ts +1 -1
  154. package/dist/types/compute-engine/latex-syntax/types.d.ts +59 -2
  155. package/dist/types/compute-engine/latex-syntax/utils.d.ts +1 -1
  156. package/dist/types/compute-engine/library/arithmetic.d.ts +1 -1
  157. package/dist/types/compute-engine/library/calculus.d.ts +1 -1
  158. package/dist/types/compute-engine/library/collections.d.ts +1 -1
  159. package/dist/types/compute-engine/library/colors.d.ts +2 -0
  160. package/dist/types/compute-engine/library/combinatorics.d.ts +1 -1
  161. package/dist/types/compute-engine/library/complex.d.ts +1 -1
  162. package/dist/types/compute-engine/library/control-structures.d.ts +1 -1
  163. package/dist/types/compute-engine/library/core.d.ts +1 -1
  164. package/dist/types/compute-engine/library/library.d.ts +1 -1
  165. package/dist/types/compute-engine/library/linear-algebra.d.ts +1 -1
  166. package/dist/types/compute-engine/library/logic-analysis.d.ts +1 -1
  167. package/dist/types/compute-engine/library/logic.d.ts +1 -1
  168. package/dist/types/compute-engine/library/number-theory.d.ts +1 -1
  169. package/dist/types/compute-engine/library/polynomials.d.ts +1 -1
  170. package/dist/types/compute-engine/library/quantity-arithmetic.d.ts +37 -0
  171. package/dist/types/compute-engine/library/random-expression.d.ts +1 -1
  172. package/dist/types/compute-engine/library/relational-operator.d.ts +1 -1
  173. package/dist/types/compute-engine/library/sets.d.ts +1 -1
  174. package/dist/types/compute-engine/library/statistics.d.ts +1 -1
  175. package/dist/types/compute-engine/library/trigonometry.d.ts +1 -1
  176. package/dist/types/compute-engine/library/type-handlers.d.ts +1 -1
  177. package/dist/types/compute-engine/library/unit-data.d.ts +8 -0
  178. package/dist/types/compute-engine/library/units.d.ts +9 -0
  179. package/dist/types/compute-engine/library/utils.d.ts +1 -1
  180. package/dist/types/compute-engine/numeric-value/big-numeric-value.d.ts +1 -1
  181. package/dist/types/compute-engine/numeric-value/exact-numeric-value.d.ts +1 -1
  182. package/dist/types/compute-engine/numeric-value/machine-numeric-value.d.ts +1 -1
  183. package/dist/types/compute-engine/numeric-value/types.d.ts +1 -1
  184. package/dist/types/compute-engine/numerics/bigint.d.ts +1 -1
  185. package/dist/types/compute-engine/numerics/expression.d.ts +1 -1
  186. package/dist/types/compute-engine/numerics/interval.d.ts +1 -1
  187. package/dist/types/compute-engine/numerics/monte-carlo.d.ts +1 -1
  188. package/dist/types/compute-engine/numerics/numeric-bigint.d.ts +1 -1
  189. package/dist/types/compute-engine/numerics/numeric-bignum.d.ts +1 -1
  190. package/dist/types/compute-engine/numerics/numeric-complex.d.ts +1 -1
  191. package/dist/types/compute-engine/numerics/numeric.d.ts +1 -1
  192. package/dist/types/compute-engine/numerics/primes.d.ts +1 -1
  193. package/dist/types/compute-engine/numerics/rationals.d.ts +1 -1
  194. package/dist/types/compute-engine/numerics/richardson.d.ts +1 -1
  195. package/dist/types/compute-engine/numerics/special-functions.d.ts +15 -1
  196. package/dist/types/compute-engine/numerics/statistics.d.ts +1 -1
  197. package/dist/types/compute-engine/numerics/strings.d.ts +1 -1
  198. package/dist/types/compute-engine/numerics/types.d.ts +1 -1
  199. package/dist/types/compute-engine/numerics/unit-data.d.ts +128 -0
  200. package/dist/types/compute-engine/oeis.d.ts +1 -1
  201. package/dist/types/compute-engine/sequence.d.ts +1 -1
  202. package/dist/types/compute-engine/symbolic/antiderivative.d.ts +1 -1
  203. package/dist/types/compute-engine/symbolic/derivative.d.ts +1 -1
  204. package/dist/types/compute-engine/symbolic/distribute.d.ts +1 -1
  205. package/dist/types/compute-engine/symbolic/fu-cost.d.ts +1 -1
  206. package/dist/types/compute-engine/symbolic/fu-transforms.d.ts +1 -1
  207. package/dist/types/compute-engine/symbolic/fu.d.ts +1 -1
  208. package/dist/types/compute-engine/symbolic/logic-utils.d.ts +1 -1
  209. package/dist/types/compute-engine/symbolic/simplify-abs.d.ts +1 -1
  210. package/dist/types/compute-engine/symbolic/simplify-divide.d.ts +4 -2
  211. package/dist/types/compute-engine/symbolic/simplify-factorial.d.ts +33 -0
  212. package/dist/types/compute-engine/symbolic/simplify-hyperbolic.d.ts +1 -1
  213. package/dist/types/compute-engine/symbolic/simplify-infinity.d.ts +1 -1
  214. package/dist/types/compute-engine/symbolic/simplify-log.d.ts +1 -1
  215. package/dist/types/compute-engine/symbolic/simplify-logic.d.ts +1 -1
  216. package/dist/types/compute-engine/symbolic/simplify-power.d.ts +1 -1
  217. package/dist/types/compute-engine/symbolic/simplify-product.d.ts +1 -1
  218. package/dist/types/compute-engine/symbolic/simplify-rules.d.ts +1 -1
  219. package/dist/types/compute-engine/symbolic/simplify-sum.d.ts +1 -1
  220. package/dist/types/compute-engine/symbolic/simplify-trig.d.ts +1 -1
  221. package/dist/types/compute-engine/tensor/tensor-fields.d.ts +1 -1
  222. package/dist/types/compute-engine/tensor/tensors.d.ts +1 -1
  223. package/dist/types/compute-engine/types-definitions.d.ts +1 -1
  224. package/dist/types/compute-engine/types-engine.d.ts +1 -1
  225. package/dist/types/compute-engine/types-evaluation.d.ts +1 -1
  226. package/dist/types/compute-engine/types-expression.d.ts +1 -1
  227. package/dist/types/compute-engine/types-kernel-evaluation.d.ts +1 -1
  228. package/dist/types/compute-engine/types-kernel-serialization.d.ts +1 -1
  229. package/dist/types/compute-engine/types-serialization.d.ts +1 -1
  230. package/dist/types/compute-engine/types.d.ts +1 -1
  231. package/dist/types/compute-engine.d.ts +2 -2
  232. package/dist/types/math-json/symbols.d.ts +1 -1
  233. package/dist/types/math-json/types.d.ts +1 -1
  234. package/dist/types/math-json/utils.d.ts +1 -1
  235. package/dist/types/math-json.d.ts +2 -2
  236. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- /* 0.50.2 */
1
+ /* 0.51.1 */
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.2 */
1
+ /* 0.51.1 */
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.2 */
1
+ /* 0.51.1 */
2
2
  estimate: number;
3
3
  error: number;
4
4
  };
@@ -1,4 +1,4 @@
1
- /* 0.50.2 */
1
+ /* 0.51.1 */
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.2 */
1
+ /* 0.51.1 */
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.2 */
1
+ /* 0.51.1 */
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.2 */
1
+ /* 0.51.1 */
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.2 */
1
+ /* 0.51.1 */
2
2
  export declare function primeFactors(n: number): {
3
3
  [factor: number]: number;
4
4
  };
@@ -1,4 +1,4 @@
1
- /* 0.50.2 */
1
+ /* 0.51.1 */
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.2 */
1
+ /* 0.51.1 */
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.2 */
1
+ /* 0.51.1 */
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;
@@ -145,3 +145,17 @@ export declare function airyAi(x: number): number;
145
145
  * Reference: NIST DLMF 9.2, 9.7
146
146
  */
147
147
  export declare function airyBi(x: number): number;
148
+ /**
149
+ * Fresnel sine integral: S(x) = ∫₀ˣ sin(π t²/2) dt
150
+ *
151
+ * S is odd, S(∞) → 1/2.
152
+ */
153
+ export declare function fresnelS(x: number): number;
154
+ /**
155
+ * Fresnel cosine integral: C(x) = ∫₀ˣ cos(π t²/2) dt
156
+ *
157
+ * C is odd, C(∞) → 1/2.
158
+ */
159
+ export declare function fresnelC(x: number): number;
160
+ /** Unnormalized cardinal sine: sinc(x) = sin(x)/x, sinc(0) = 1. */
161
+ export declare function sinc(x: number): number;
@@ -1,4 +1,4 @@
1
- /* 0.50.2 */
1
+ /* 0.51.1 */
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.2 */
1
+ /* 0.51.1 */
2
2
  export declare function numberToString(num: number | bigint, fractionalDigits?: number | string): string;
@@ -1,4 +1,4 @@
1
- /* 0.50.2 */
1
+ /* 0.51.1 */
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.1 */
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.2 */
1
+ /* 0.51.1 */
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.2 */
1
+ /* 0.51.1 */
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.2 */
1
+ /* 0.51.1 */
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.2 */
1
+ /* 0.51.1 */
2
2
  /**
3
3
  *
4
4
  * @param fn The function to differentiate, a function literal.
@@ -1,4 +1,4 @@
1
- /* 0.50.2 */
1
+ /* 0.51.1 */
2
2
  /**
3
3
  *
4
4
  */
@@ -1,4 +1,4 @@
1
- /* 0.50.2 */
1
+ /* 0.51.1 */
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.2 */
1
+ /* 0.51.1 */
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.2 */
1
+ /* 0.51.1 */
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.2 */
1
+ /* 0.51.1 */
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.2 */
1
+ /* 0.51.1 */
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.2 */
1
+ /* 0.51.1 */
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.1 */
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.2 */
1
+ /* 0.51.1 */
2
2
  export declare function simplifyHyperbolic(x: Expression): RuleStep | undefined;
@@ -1,4 +1,4 @@
1
- /* 0.50.2 */
1
+ /* 0.51.1 */
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.2 */
1
+ /* 0.51.1 */
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.2 */
1
+ /* 0.51.1 */
2
2
  export declare function simplifyLogicFunction(x: Expression): {
3
3
  value: Expression;
4
4
  because: string;
@@ -1,4 +1,4 @@
1
- /* 0.50.2 */
1
+ /* 0.51.1 */
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.2 */
1
+ /* 0.51.1 */
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.2 */
1
+ /* 0.51.1 */
2
2
  /**
3
3
  * # Performance Optimization Notes for Simplification Rules
4
4
  *
@@ -1,4 +1,4 @@
1
- /* 0.50.2 */
1
+ /* 0.51.1 */
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.2 */
1
+ /* 0.51.1 */
2
2
  export declare function simplifyTrig(x: Expression): RuleStep | undefined;
@@ -1,4 +1,4 @@
1
- /* 0.50.2 */
1
+ /* 0.51.1 */
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.2 */
1
+ /* 0.51.1 */
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.2 */
1
+ /* 0.51.1 */
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.2 */
1
+ /* 0.51.1 */
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.2 */
1
+ /* 0.51.1 */
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.2 */
1
+ /* 0.51.1 */
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.2 */
1
+ /* 0.51.1 */
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.2 */
1
+ /* 0.51.1 */
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.2 */
1
+ /* 0.51.1 */
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.2 */
1
+ /* 0.51.1 */
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';
@@ -1,4 +1,4 @@
1
- /* 0.50.2 */
1
+ /* 0.51.1 */
2
2
  export { ComputeEngine } from './compute-engine/index';
3
3
  export type * from './compute-engine/types';
4
4
  export type { CompileTarget, CompiledOperators, CompiledFunctions, CompilationOptions, CompilationResult, LanguageTarget, TargetSource, CompiledFunction, } from './compute-engine/compilation/types';
@@ -11,7 +11,7 @@ export { IntervalJavaScriptTarget } from './compute-engine/compilation/interval-
11
11
  export { IntervalGLSLTarget } from './compute-engine/compilation/interval-glsl-target';
12
12
  export { IntervalWGSLTarget } from './compute-engine/compilation/interval-wgsl-target';
13
13
  export { BaseCompiler } from './compute-engine/compilation/base-compiler';
14
- export { parse, simplify, evaluate, N, assign, expand, expandAll, factor, solve, compile, getDefaultEngine, } from './compute-engine/free-functions';
14
+ export { parse, simplify, evaluate, N, declare, assign, expand, expandAll, factor, solve, compile, getDefaultEngine, } from './compute-engine/free-functions';
15
15
  export { isExpression, isNumber, isSymbol, isFunction, isString, isTensor, isDictionary, isCollection, isIndexedCollection, isBoxedExpression, isBoxedNumber, isBoxedSymbol, isBoxedFunction, isBoxedString, isBoxedTensor, } from './compute-engine/boxed-expression/type-guards';
16
16
  export type { BoxedNumber } from './compute-engine/boxed-expression/boxed-number';
17
17
  export type { BoxedSymbol } from './compute-engine/boxed-expression/boxed-symbol';
@@ -1,4 +1,4 @@
1
- /* 0.50.2 */
1
+ /* 0.51.1 */
2
2
  * Return true if the string is a valid symbol.
3
3
  *
4
4
  * Check for symbols matching a profile of [Unicode UAX31](https://unicode.org/reports/tr31/)
@@ -1,4 +1,4 @@
1
- /* 0.50.2 */
1
+ /* 0.51.1 */
2
2
  * The following properties can be added to any MathJSON expression
3
3
  * to provide additional information about the expression.
4
4
  *
@@ -1,4 +1,4 @@
1
- /* 0.50.2 */
1
+ /* 0.51.1 */
2
2
  export declare const MISSING: MathJsonExpression;
3
3
  export declare function isNumberExpression(expr: MathJsonExpression | null): expr is number | string | MathJsonNumberObject;
4
4
  export declare function isNumberObject(expr: MathJsonExpression | null): expr is MathJsonNumberObject;
@@ -1,3 +1,3 @@
1
- /* 0.50.2 */
1
+ /* 0.51.1 */
2
2
  export { isSymbolObject, isStringObject, isFunctionObject, stringValue, operator, operand, symbol, mapArgs, dictionaryFromExpression, } from './math-json/utils';
3
- export declare const version = "0.50.2";
3
+ export declare const version = "0.51.1";
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.50.2",
2
+ "version": "0.51.1",
3
3
  "scripts": {
4
4
  "doc": "bash ./scripts/doc.sh",
5
5
  "build": "bash ./scripts/build.sh",