@cortex-js/compute-engine 0.35.6 → 0.50.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (222) hide show
  1. package/README.md +121 -5
  2. package/dist/compute-engine.esm.js +50435 -44944
  3. package/dist/compute-engine.min.esm.js +1072 -69
  4. package/dist/compute-engine.min.umd.js +1072 -69
  5. package/dist/compute-engine.umd.js +50540 -45049
  6. package/dist/math-json.esm.js +2 -2
  7. package/dist/math-json.min.esm.js +2 -2
  8. package/dist/math-json.min.umd.js +2 -2
  9. package/dist/math-json.umd.js +2 -2
  10. package/dist/types/common/ansi-codes.d.ts +1 -1
  11. package/dist/types/common/configuration-change.d.ts +1 -1
  12. package/dist/types/common/fuzzy-string-match.d.ts +1 -1
  13. package/dist/types/common/grapheme-splitter.d.ts +1 -1
  14. package/dist/types/common/interruptible.d.ts +1 -1
  15. package/dist/types/common/one-of.d.ts +1 -1
  16. package/dist/types/common/signals.d.ts +1 -1
  17. package/dist/types/common/type/ast-nodes.d.ts +1 -1
  18. package/dist/types/common/type/boxed-type.d.ts +1 -1
  19. package/dist/types/common/type/lexer.d.ts +1 -1
  20. package/dist/types/common/type/parse.d.ts +1 -1
  21. package/dist/types/common/type/parser.d.ts +8 -1
  22. package/dist/types/common/type/primitive.d.ts +2 -1
  23. package/dist/types/common/type/reduce.d.ts +1 -1
  24. package/dist/types/common/type/serialize.d.ts +1 -1
  25. package/dist/types/common/type/subtype.d.ts +1 -1
  26. package/dist/types/common/type/type-builder.d.ts +1 -1
  27. package/dist/types/common/type/types.d.ts +1 -1
  28. package/dist/types/common/type/utils.d.ts +3 -2
  29. package/dist/types/common/utils.d.ts +1 -1
  30. package/dist/types/compute-engine/assume.d.ts +4 -22
  31. package/dist/types/compute-engine/boxed-expression/abstract-boxed-expression.d.ts +63 -76
  32. package/dist/types/compute-engine/boxed-expression/apply.d.ts +4 -4
  33. package/dist/types/compute-engine/boxed-expression/arithmetic-add.d.ts +15 -6
  34. package/dist/types/compute-engine/boxed-expression/arithmetic-mul-div.d.ts +72 -6
  35. package/dist/types/compute-engine/boxed-expression/arithmetic-power.d.ts +8 -8
  36. package/dist/types/compute-engine/boxed-expression/ascii-math.d.ts +5 -8
  37. package/dist/types/compute-engine/boxed-expression/box.d.ts +63 -8
  38. package/dist/types/compute-engine/boxed-expression/boxed-dictionary.d.ts +13 -12
  39. package/dist/types/compute-engine/boxed-expression/boxed-function.d.ts +44 -43
  40. package/dist/types/compute-engine/boxed-expression/boxed-number.d.ts +31 -30
  41. package/dist/types/compute-engine/boxed-expression/boxed-operator-definition.d.ts +18 -18
  42. package/dist/types/compute-engine/boxed-expression/boxed-patterns.d.ts +5 -37
  43. package/dist/types/compute-engine/boxed-expression/boxed-string.d.ts +5 -4
  44. package/dist/types/compute-engine/boxed-expression/boxed-symbol.d.ts +34 -33
  45. package/dist/types/compute-engine/boxed-expression/boxed-tensor.d.ts +34 -33
  46. package/dist/types/compute-engine/boxed-expression/boxed-value-definition.d.ts +8 -8
  47. package/dist/types/compute-engine/boxed-expression/cache.d.ts +1 -1
  48. package/dist/types/compute-engine/boxed-expression/canonical-utils.d.ts +2 -2
  49. package/dist/types/compute-engine/boxed-expression/canonical.d.ts +2 -2
  50. package/dist/types/compute-engine/boxed-expression/compare.d.ts +4 -4
  51. package/dist/types/compute-engine/boxed-expression/constants.d.ts +6 -0
  52. package/dist/types/compute-engine/boxed-expression/expand.d.ts +4 -5
  53. package/dist/types/compute-engine/boxed-expression/expression-map.d.ts +9 -9
  54. package/dist/types/compute-engine/boxed-expression/factor.d.ts +7 -7
  55. package/dist/types/compute-engine/boxed-expression/flatten.d.ts +4 -13
  56. package/dist/types/compute-engine/boxed-expression/hold.d.ts +3 -3
  57. package/dist/types/compute-engine/boxed-expression/inequality-bounds.d.ts +21 -0
  58. package/dist/types/compute-engine/boxed-expression/invisible-operator.d.ts +4 -0
  59. package/dist/types/compute-engine/boxed-expression/match.d.ts +2 -2
  60. package/dist/types/compute-engine/boxed-expression/negate.d.ts +4 -4
  61. package/dist/types/compute-engine/boxed-expression/numerics.d.ts +8 -8
  62. package/dist/types/compute-engine/boxed-expression/order.d.ts +14 -14
  63. package/dist/types/compute-engine/boxed-expression/pattern-utils.d.ts +41 -0
  64. package/dist/types/compute-engine/boxed-expression/polynomial-degree.d.ts +18 -0
  65. package/dist/types/compute-engine/boxed-expression/polynomials.d.ts +12 -35
  66. package/dist/types/compute-engine/boxed-expression/predicates.d.ts +2 -0
  67. package/dist/types/compute-engine/boxed-expression/rules.d.ts +51 -51
  68. package/dist/types/compute-engine/boxed-expression/serialize.d.ts +3 -3
  69. package/dist/types/compute-engine/boxed-expression/sgn.d.ts +2 -2
  70. package/dist/types/compute-engine/boxed-expression/simplify.d.ts +2 -2
  71. package/dist/types/compute-engine/boxed-expression/solve-linear-system.d.ts +8 -8
  72. package/dist/types/compute-engine/boxed-expression/solve.d.ts +3 -11
  73. package/dist/types/compute-engine/boxed-expression/trigonometry.d.ts +7 -7
  74. package/dist/types/compute-engine/boxed-expression/type-guards.d.ts +31 -0
  75. package/dist/types/compute-engine/boxed-expression/utils.d.ts +13 -13
  76. package/dist/types/compute-engine/boxed-expression/validate.d.ts +10 -10
  77. package/dist/types/compute-engine/collection-utils.d.ts +4 -4
  78. package/dist/types/compute-engine/compilation/base-compiler.d.ts +3 -3
  79. package/dist/types/compute-engine/compilation/compile-expression.d.ts +25 -0
  80. package/dist/types/compute-engine/compilation/glsl-target.d.ts +12 -41
  81. package/dist/types/compute-engine/compilation/gpu-target.d.ts +50 -0
  82. package/dist/types/compute-engine/compilation/interval-glsl-target.d.ts +11 -11
  83. package/dist/types/compute-engine/compilation/interval-javascript-target.d.ts +7 -7
  84. package/dist/types/compute-engine/compilation/interval-wgsl-target.d.ts +54 -0
  85. package/dist/types/compute-engine/compilation/javascript-target.d.ts +6 -6
  86. package/dist/types/compute-engine/compilation/python-target.d.ts +61 -0
  87. package/dist/types/compute-engine/compilation/types.d.ts +27 -22
  88. package/dist/types/compute-engine/compilation/wgsl-target.d.ts +41 -0
  89. package/dist/types/compute-engine/cost-function.d.ts +3 -3
  90. package/dist/types/compute-engine/engine-assumptions.d.ts +6 -0
  91. package/dist/types/compute-engine/engine-cache.d.ts +6 -0
  92. package/dist/types/compute-engine/engine-common-symbols.d.ts +6 -0
  93. package/dist/types/compute-engine/engine-compilation-targets.d.ts +17 -0
  94. package/dist/types/compute-engine/engine-configuration-lifecycle.d.ts +15 -0
  95. package/dist/types/compute-engine/engine-declarations.d.ts +19 -0
  96. package/dist/types/compute-engine/engine-expression-entrypoints.d.ts +44 -0
  97. package/dist/types/compute-engine/engine-extension-contracts.d.ts +9 -0
  98. package/dist/types/compute-engine/engine-latex-dictionary-state.d.ts +13 -0
  99. package/dist/types/compute-engine/engine-library-bootstrap.d.ts +6 -0
  100. package/dist/types/compute-engine/engine-numeric-configuration.d.ts +34 -0
  101. package/dist/types/compute-engine/engine-parse-entrypoint.d.ts +7 -0
  102. package/dist/types/compute-engine/engine-runtime-state.d.ts +19 -0
  103. package/dist/types/compute-engine/engine-scope.d.ts +13 -0
  104. package/dist/types/compute-engine/engine-sequences.d.ts +14 -0
  105. package/dist/types/compute-engine/engine-simplification-rules.d.ts +15 -0
  106. package/dist/types/compute-engine/engine-startup-coordinator.d.ts +28 -0
  107. package/dist/types/compute-engine/engine-type-resolver.d.ts +12 -0
  108. package/dist/types/compute-engine/engine-validation-entrypoints.d.ts +13 -0
  109. package/dist/types/compute-engine/free-functions.d.ts +20 -0
  110. package/dist/types/compute-engine/function-utils.d.ts +10 -10
  111. package/dist/types/compute-engine/global-types.d.ts +5 -3301
  112. package/dist/types/compute-engine/index.d.ts +155 -112
  113. package/dist/types/compute-engine/interval/arithmetic.d.ts +1 -1
  114. package/dist/types/compute-engine/interval/comparison.d.ts +1 -1
  115. package/dist/types/compute-engine/interval/elementary.d.ts +1 -1
  116. package/dist/types/compute-engine/interval/index.d.ts +1 -1
  117. package/dist/types/compute-engine/interval/trigonometric.d.ts +1 -1
  118. package/dist/types/compute-engine/interval/types.d.ts +1 -1
  119. package/dist/types/compute-engine/interval/util.d.ts +1 -1
  120. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-algebra.d.ts +1 -1
  121. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-arithmetic.d.ts +1 -1
  122. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-calculus.d.ts +1 -1
  123. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-complex.d.ts +1 -1
  124. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-core.d.ts +1 -1
  125. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-linear-algebra.d.ts +1 -1
  126. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-logic.d.ts +1 -1
  127. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-other.d.ts +1 -1
  128. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-relational-operators.d.ts +1 -1
  129. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-sets.d.ts +1 -1
  130. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-statistics.d.ts +1 -1
  131. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-symbols.d.ts +1 -1
  132. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-trigonometry.d.ts +1 -1
  133. package/dist/types/compute-engine/latex-syntax/dictionary/definitions.d.ts +4 -80
  134. package/dist/types/compute-engine/latex-syntax/dictionary/indexed-types.d.ts +83 -0
  135. package/dist/types/compute-engine/latex-syntax/parse-number.d.ts +28 -0
  136. package/dist/types/compute-engine/latex-syntax/parse-symbol.d.ts +2 -2
  137. package/dist/types/compute-engine/latex-syntax/parse.d.ts +23 -33
  138. package/dist/types/compute-engine/latex-syntax/serialize-number.d.ts +2 -2
  139. package/dist/types/compute-engine/latex-syntax/serializer-style.d.ts +8 -8
  140. package/dist/types/compute-engine/latex-syntax/serializer.d.ts +15 -15
  141. package/dist/types/compute-engine/latex-syntax/tokenizer.d.ts +1 -1
  142. package/dist/types/compute-engine/latex-syntax/types.d.ts +73 -53
  143. package/dist/types/compute-engine/latex-syntax/utils.d.ts +1 -1
  144. package/dist/types/compute-engine/library/arithmetic.d.ts +1 -2
  145. package/dist/types/compute-engine/library/calculus.d.ts +1 -1
  146. package/dist/types/compute-engine/library/collections.d.ts +4 -4
  147. package/dist/types/compute-engine/library/combinatorics.d.ts +1 -1
  148. package/dist/types/compute-engine/library/complex.d.ts +1 -1
  149. package/dist/types/compute-engine/library/control-structures.d.ts +1 -1
  150. package/dist/types/compute-engine/library/core.d.ts +1 -1
  151. package/dist/types/compute-engine/library/library.d.ts +19 -6
  152. package/dist/types/compute-engine/library/linear-algebra.d.ts +1 -1
  153. package/dist/types/compute-engine/library/logic-analysis.d.ts +19 -32
  154. package/dist/types/compute-engine/library/logic.d.ts +1 -5
  155. package/dist/types/compute-engine/library/number-theory.d.ts +1 -1
  156. package/dist/types/compute-engine/library/polynomials.d.ts +1 -1
  157. package/dist/types/compute-engine/library/random-expression.d.ts +2 -2
  158. package/dist/types/compute-engine/library/relational-operator.d.ts +1 -1
  159. package/dist/types/compute-engine/library/sets.d.ts +1 -1
  160. package/dist/types/compute-engine/library/statistics.d.ts +1 -1
  161. package/dist/types/compute-engine/library/trigonometry.d.ts +1 -1
  162. package/dist/types/compute-engine/library/type-handlers.d.ts +4 -0
  163. package/dist/types/compute-engine/library/utils.d.ts +12 -12
  164. package/dist/types/compute-engine/numeric-value/big-numeric-value.d.ts +5 -5
  165. package/dist/types/compute-engine/numeric-value/exact-numeric-value.d.ts +5 -5
  166. package/dist/types/compute-engine/numeric-value/machine-numeric-value.d.ts +5 -5
  167. package/dist/types/compute-engine/numeric-value/types.d.ts +2 -3
  168. package/dist/types/compute-engine/numerics/bigint.d.ts +1 -1
  169. package/dist/types/compute-engine/numerics/expression.d.ts +3 -3
  170. package/dist/types/compute-engine/numerics/interval.d.ts +2 -2
  171. package/dist/types/compute-engine/numerics/monte-carlo.d.ts +1 -1
  172. package/dist/types/compute-engine/numerics/numeric-bigint.d.ts +1 -1
  173. package/dist/types/compute-engine/numerics/numeric-bignum.d.ts +1 -1
  174. package/dist/types/compute-engine/numerics/numeric-complex.d.ts +1 -1
  175. package/dist/types/compute-engine/numerics/numeric.d.ts +1 -1
  176. package/dist/types/compute-engine/numerics/primes.d.ts +1 -1
  177. package/dist/types/compute-engine/numerics/rationals.d.ts +4 -4
  178. package/dist/types/compute-engine/numerics/richardson.d.ts +1 -1
  179. package/dist/types/compute-engine/numerics/special-functions.d.ts +120 -1
  180. package/dist/types/compute-engine/numerics/statistics.d.ts +1 -2
  181. package/dist/types/compute-engine/numerics/strings.d.ts +1 -1
  182. package/dist/types/compute-engine/numerics/types.d.ts +3 -1
  183. package/dist/types/compute-engine/oeis.d.ts +3 -3
  184. package/dist/types/compute-engine/sequence.d.ts +13 -13
  185. package/dist/types/compute-engine/symbolic/antiderivative.d.ts +2 -2
  186. package/dist/types/compute-engine/symbolic/derivative.d.ts +3 -3
  187. package/dist/types/compute-engine/symbolic/distribute.d.ts +2 -2
  188. package/dist/types/compute-engine/symbolic/fu-cost.d.ts +6 -6
  189. package/dist/types/compute-engine/symbolic/fu-transforms.d.ts +46 -46
  190. package/dist/types/compute-engine/symbolic/fu.d.ts +4 -4
  191. package/dist/types/compute-engine/symbolic/logic-utils.d.ts +54 -0
  192. package/dist/types/compute-engine/symbolic/simplify-abs.d.ts +4 -4
  193. package/dist/types/compute-engine/symbolic/simplify-divide.d.ts +2 -2
  194. package/dist/types/compute-engine/symbolic/simplify-hyperbolic.d.ts +2 -2
  195. package/dist/types/compute-engine/symbolic/simplify-infinity.d.ts +2 -2
  196. package/dist/types/compute-engine/symbolic/simplify-log.d.ts +2 -2
  197. package/dist/types/compute-engine/symbolic/simplify-logic.d.ts +5 -0
  198. package/dist/types/compute-engine/symbolic/simplify-power.d.ts +2 -2
  199. package/dist/types/compute-engine/symbolic/simplify-product.d.ts +2 -2
  200. package/dist/types/compute-engine/symbolic/simplify-rules.d.ts +65 -4
  201. package/dist/types/compute-engine/symbolic/simplify-sum.d.ts +2 -2
  202. package/dist/types/compute-engine/symbolic/simplify-trig.d.ts +2 -2
  203. package/dist/types/compute-engine/tensor/tensor-fields.d.ts +42 -42
  204. package/dist/types/compute-engine/tensor/tensors.d.ts +4 -4
  205. package/dist/types/compute-engine/types-definitions.d.ts +900 -0
  206. package/dist/types/compute-engine/types-engine.d.ts +375 -0
  207. package/dist/types/compute-engine/types-evaluation.d.ts +67 -0
  208. package/dist/types/compute-engine/types-expression.d.ts +1655 -0
  209. package/dist/types/compute-engine/types-kernel-evaluation.d.ts +164 -0
  210. package/dist/types/compute-engine/types-kernel-serialization.d.ts +147 -0
  211. package/dist/types/compute-engine/types-serialization.d.ts +23 -0
  212. package/dist/types/compute-engine/types.d.ts +2 -2
  213. package/dist/types/compute-engine.d.ts +16 -3
  214. package/dist/types/math-json/symbols.d.ts +1 -1
  215. package/dist/types/math-json/types.d.ts +3 -3
  216. package/dist/types/math-json/utils.d.ts +31 -31
  217. package/dist/types/math-json.d.ts +2 -2
  218. package/package.json +8 -1
  219. package/dist/types/compute-engine/boxed-expression/product.d.ts +0 -66
  220. package/dist/types/compute-engine/boxed-expression/terms.d.ts +0 -10
  221. package/dist/types/compute-engine/library/invisible-operator.d.ts +0 -4
  222. package/dist/types/compute-engine/library/logic-utils.d.ts +0 -54
@@ -1,10 +1,10 @@
1
- /* 0.35.6 */
1
+ /* 0.50.0 */
2
2
  import type { Type, TypeString } from '../../common/type/types';
3
3
  import type { OneOf } from '../../common/one-of';
4
4
  import { BoxedType } from '../../common/type/boxed-type';
5
5
  import type { BigNum } from '../numerics/types';
6
6
  import { NumericValue } from '../numeric-value/types';
7
- import type { BoxedExpression, SimplifyOptions, PatternMatchOptions, ReplaceOptions, BoxedValueDefinition, BoxedOperatorDefinition, ComputeEngine, Metadata, CanonicalOptions, BoxedBaseDefinition, BoxedSubstitution, EvaluateOptions, Rule, BoxedRule, BoxedRuleSet, Substitution, Sign, BoxedDefinition, CollectionHandlers } from '../global-types';
7
+ import type { Expression, SimplifyOptions, PatternMatchOptions, ReplaceOptions, BoxedValueDefinition, BoxedOperatorDefinition, IComputeEngine as ComputeEngine, Metadata, CanonicalOptions, BoxedBaseDefinition, BoxedSubstitution, EvaluateOptions, Rule, BoxedRule, BoxedRuleSet, Substitution, Sign, BoxedDefinition, CollectionHandlers, SymbolInterface } from '../global-types';
8
8
  import { _BoxedExpression } from './abstract-boxed-expression';
9
9
  /**
10
10
  * ### BoxedSymbol
@@ -34,7 +34,8 @@ import { _BoxedExpression } from './abstract-boxed-expression';
34
34
  * symbol may have no value).
35
35
  *
36
36
  */
37
- export declare class BoxedSymbol extends _BoxedExpression {
37
+ export declare class BoxedSymbol extends _BoxedExpression implements SymbolInterface {
38
+ readonly _kind = "symbol";
38
39
  private _hash;
39
40
  /** The name of the symbol */
40
41
  protected _id: MathJsonSymbol;
@@ -47,7 +48,7 @@ export declare class BoxedSymbol extends _BoxedExpression {
47
48
  metadata?: Metadata;
48
49
  def?: BoxedDefinition;
49
50
  });
50
- get json(): Expression;
51
+ get json(): MathJsonExpression;
51
52
  get hash(): number;
52
53
  get isPure(): boolean;
53
54
  get isConstant(): boolean;
@@ -55,20 +56,20 @@ export declare class BoxedSymbol extends _BoxedExpression {
55
56
  reset(): void;
56
57
  get isCanonical(): boolean;
57
58
  set isCanonical(val: boolean);
58
- get canonical(): BoxedExpression;
59
- is(other: any): boolean;
60
- toNumericValue(): [NumericValue, BoxedExpression];
61
- neg(): BoxedExpression;
62
- inv(): BoxedExpression;
63
- abs(): BoxedExpression;
64
- add(rhs: number | BoxedExpression): BoxedExpression;
65
- mul(rhs: NumericValue | number | BoxedExpression): BoxedExpression;
66
- div(rhs: number | BoxedExpression): BoxedExpression;
67
- pow(exp: number | BoxedExpression): BoxedExpression;
68
- root(n: number | BoxedExpression): BoxedExpression;
69
- sqrt(): BoxedExpression;
70
- ln(semiBase?: number | BoxedExpression): BoxedExpression;
71
- solve(vars?: Iterable<string> | string | BoxedExpression | Iterable<BoxedExpression>): null | ReadonlyArray<BoxedExpression>;
59
+ get canonical(): Expression;
60
+ is(other: unknown): boolean;
61
+ toNumericValue(): [NumericValue, Expression];
62
+ neg(): Expression;
63
+ inv(): Expression;
64
+ abs(): Expression;
65
+ add(rhs: number | Expression): Expression;
66
+ mul(rhs: NumericValue | number | Expression): Expression;
67
+ div(rhs: number | Expression): Expression;
68
+ pow(exp: number | Expression): Expression;
69
+ root(n: number | Expression): Expression;
70
+ sqrt(): Expression;
71
+ ln(semiBase?: number | Expression): Expression;
72
+ solve(vars?: Iterable<string> | string | Expression | Iterable<Expression>): null | ReadonlyArray<Expression>;
72
73
  get complexity(): number;
73
74
  get operator(): MathJsonSymbol;
74
75
  get symbol(): MathJsonSymbol;
@@ -101,8 +102,8 @@ export declare class BoxedSymbol extends _BoxedExpression {
101
102
  */
102
103
  infer(t: Type, inferenceMode?: 'narrow' | 'widen'): boolean;
103
104
  /** Return the value of the symbol, undefined if an operator or not bound */
104
- get _value(): BoxedExpression | undefined;
105
- get value(): BoxedExpression | undefined;
105
+ get _value(): Expression | undefined;
106
+ get value(): Expression | undefined;
106
107
  set value(value: boolean | string | BigNum | number[] | OneOf<[
107
108
  {
108
109
  re: number;
@@ -112,7 +113,7 @@ export declare class BoxedSymbol extends _BoxedExpression {
112
113
  num: number;
113
114
  denom: number;
114
115
  },
115
- BoxedExpression
116
+ Expression
116
117
  ]> | number | undefined);
117
118
  /**
118
119
  * The type of the symbol.
@@ -127,7 +128,7 @@ export declare class BoxedSymbol extends _BoxedExpression {
127
128
  get type(): BoxedType;
128
129
  set type(t: Type | TypeString | BoxedType);
129
130
  has(x: MathJsonSymbol | MathJsonSymbol[]): boolean;
130
- match(pattern: BoxedExpression, options?: PatternMatchOptions): BoxedSubstitution | null;
131
+ match(pattern: Expression, options?: PatternMatchOptions): BoxedSubstitution | null;
131
132
  /** The shape of the tensor (dimensions), derived from the type */
132
133
  get shape(): number[];
133
134
  /** The rank of the tensor (number of dimensions), derived from the type */
@@ -151,24 +152,24 @@ export declare class BoxedSymbol extends _BoxedExpression {
151
152
  get im(): number;
152
153
  get bignumRe(): BigNum | undefined;
153
154
  get bignumIm(): BigNum | undefined;
154
- simplify(options?: Partial<SimplifyOptions>): BoxedExpression;
155
- evaluate(options?: Partial<EvaluateOptions>): BoxedExpression;
156
- N(): BoxedExpression;
157
- replace(rules: Rule | (Rule | BoxedRule)[] | BoxedRuleSet, options?: Partial<ReplaceOptions>): BoxedExpression | null;
155
+ simplify(options?: Partial<SimplifyOptions>): Expression;
156
+ evaluate(options?: Partial<EvaluateOptions>): Expression;
157
+ N(): Expression;
158
+ replace(rules: Rule | (Rule | BoxedRule)[] | BoxedRuleSet, options?: Partial<ReplaceOptions>): Expression | null;
158
159
  subs(sub: Substitution, options?: {
159
160
  canonical?: CanonicalOptions;
160
- }): BoxedExpression;
161
+ }): Expression;
161
162
  get _asCollection(): CollectionHandlers | undefined;
162
163
  get isCollection(): boolean;
163
164
  get isIndexedCollection(): boolean;
164
165
  get isLazyCollection(): boolean;
165
- contains(rhs: BoxedExpression): boolean | undefined;
166
+ contains(rhs: Expression): boolean | undefined;
166
167
  get count(): number;
167
168
  get isEmptyCollection(): boolean;
168
169
  get isFiniteCollection(): boolean | undefined;
169
- each(): Generator<BoxedExpression>;
170
- at(index: number): BoxedExpression | undefined;
171
- get(index: BoxedExpression | string): BoxedExpression | undefined;
172
- indexWhere(predicate: (element: BoxedExpression) => boolean): number | undefined;
173
- subsetOf(rhs: BoxedExpression, strict: boolean): boolean;
170
+ each(): Generator<Expression>;
171
+ at(index: number): Expression | undefined;
172
+ get(index: Expression | string): Expression | undefined;
173
+ indexWhere(predicate: (element: Expression) => boolean): number | undefined;
174
+ subsetOf(rhs: Expression, strict: boolean): boolean;
174
175
  }
@@ -1,5 +1,5 @@
1
- /* 0.35.6 */
2
- import type { ComputeEngine, TensorDataType, Metadata, BoxedBaseDefinition, BoxedOperatorDefinition, BoxedSubstitution, EvaluateOptions, BoxedExpression, SimplifyOptions, PatternMatchOptions, Tensor } from '../global-types';
1
+ /* 0.50.0 */
2
+ import type { IComputeEngine as ComputeEngine, TensorDataType, Metadata, BoxedBaseDefinition, BoxedOperatorDefinition, BoxedSubstitution, EvaluateOptions, Expression, SimplifyOptions, PatternMatchOptions, Tensor, TensorInterface } from '../global-types';
3
3
  import { BoxedType } from '../../common/type/boxed-type';
4
4
  import { NumericValue } from '../numeric-value/types';
5
5
  import { _BoxedExpression } from './abstract-boxed-expression';
@@ -14,71 +14,72 @@ import { _BoxedExpression } from './abstract-boxed-expression';
14
14
  * if input is expression) is created lazily.
15
15
  *
16
16
  */
17
- export declare class BoxedTensor<T extends TensorDataType> extends _BoxedExpression {
17
+ export declare class BoxedTensor<T extends TensorDataType> extends _BoxedExpression implements TensorInterface {
18
18
  readonly input: {
19
- ops: ReadonlyArray<BoxedExpression>;
19
+ ops: ReadonlyArray<Expression>;
20
20
  shape: number[];
21
21
  dtype: T;
22
22
  };
23
23
  readonly options?: {
24
24
  metadata?: Metadata;
25
25
  };
26
+ readonly _kind = "tensor";
26
27
  private _tensor;
27
28
  private _expression?;
28
29
  constructor(ce: ComputeEngine, input: {
29
- ops: ReadonlyArray<BoxedExpression>;
30
+ ops: ReadonlyArray<Expression>;
30
31
  shape: number[];
31
32
  dtype: T;
32
33
  }, options?: {
33
34
  metadata?: Metadata;
34
35
  });
35
- get structural(): BoxedExpression;
36
+ get structural(): Expression;
36
37
  /** Create the tensor on demand */
37
38
  get tensor(): Tensor<T>;
38
39
  get baseDefinition(): BoxedBaseDefinition | undefined;
39
40
  get operatorDefinition(): BoxedOperatorDefinition | undefined;
40
41
  get hash(): number;
41
- get canonical(): BoxedExpression;
42
+ get canonical(): Expression;
42
43
  get isCanonical(): boolean;
43
44
  get isPure(): boolean;
44
45
  get isValid(): boolean;
45
46
  get complexity(): number;
46
47
  get operator(): string;
47
48
  get nops(): number;
48
- get ops(): ReadonlyArray<BoxedExpression>;
49
- get op1(): BoxedExpression;
50
- get op2(): BoxedExpression;
51
- get op3(): BoxedExpression;
52
- neg(): BoxedExpression;
53
- inv(): BoxedExpression;
54
- abs(): BoxedExpression;
55
- add(rhs: number | BoxedExpression): BoxedExpression;
56
- sub(rhs: BoxedExpression): BoxedExpression;
57
- mul(rhs: NumericValue | number | BoxedExpression): BoxedExpression;
58
- div(rhs: number | BoxedExpression): BoxedExpression;
59
- pow(exp: number | BoxedExpression): BoxedExpression;
60
- root(exp: number | BoxedExpression): BoxedExpression;
61
- sqrt(): BoxedExpression;
49
+ get ops(): ReadonlyArray<Expression>;
50
+ get op1(): Expression;
51
+ get op2(): Expression;
52
+ get op3(): Expression;
53
+ neg(): Expression;
54
+ inv(): Expression;
55
+ abs(): Expression;
56
+ add(rhs: number | Expression): Expression;
57
+ sub(rhs: Expression): Expression;
58
+ mul(rhs: NumericValue | number | Expression): Expression;
59
+ div(rhs: number | Expression): Expression;
60
+ pow(exp: number | Expression): Expression;
61
+ root(exp: number | Expression): Expression;
62
+ sqrt(): Expression;
62
63
  get shape(): number[];
63
64
  get rank(): number;
64
65
  get type(): BoxedType;
65
- get json(): Expression;
66
+ get json(): MathJsonExpression;
66
67
  /** Mathematical equality */
67
- isEqual(rhs: number | BoxedExpression): boolean | undefined;
68
+ isEqual(rhs: number | Expression): boolean | undefined;
68
69
  get isCollection(): boolean;
69
70
  get isIndexedCollection(): boolean;
70
- contains(other: BoxedExpression): boolean | undefined;
71
+ contains(other: Expression): boolean | undefined;
71
72
  get count(): number;
72
- each(): Generator<BoxedExpression>;
73
- at(index: number): BoxedExpression | undefined;
74
- match(pattern: BoxedExpression, options?: PatternMatchOptions): BoxedSubstitution | null;
75
- evaluate(options?: Partial<EvaluateOptions>): BoxedExpression;
76
- simplify(options?: Partial<SimplifyOptions>): BoxedExpression;
77
- N(): BoxedExpression;
78
- solve(vars?: Iterable<string> | string | BoxedExpression | Iterable<BoxedExpression>): null | ReadonlyArray<BoxedExpression> | Record<string, BoxedExpression> | Array<Record<string, BoxedExpression>>;
73
+ each(): Generator<Expression>;
74
+ at(index: number): Expression | undefined;
75
+ match(pattern: Expression, options?: PatternMatchOptions): BoxedSubstitution | null;
76
+ evaluate(options?: Partial<EvaluateOptions>): Expression;
77
+ simplify(options?: Partial<SimplifyOptions>): Expression;
78
+ N(): Expression;
79
+ solve(vars?: Iterable<string> | string | Expression | Iterable<Expression>): null | ReadonlyArray<Expression> | Record<string, Expression> | Array<Record<string, Expression>>;
79
80
  }
80
- export declare function isBoxedTensor(val: unknown): val is BoxedTensor<any>;
81
- export declare function expressionTensorInfo(operator: string, rows: ReadonlyArray<BoxedExpression>): {
81
+ export declare function isTensor(val: unknown): val is BoxedTensor<TensorDataType>;
82
+ export declare function expressionTensorInfo(operator: string, rows: ReadonlyArray<Expression>): {
82
83
  shape: number[];
83
84
  dtype: TensorDataType;
84
85
  } | undefined;
@@ -1,4 +1,4 @@
1
- /* 0.35.6 */
1
+ /* 0.50.0 */
2
2
  import type { Type, TypeString } from '../../common/type/types';
3
3
  import { BoxedType } from '../../common/type/boxed-type';
4
4
  import { ConfigurationChangeListener } from '../../common/configuration-change';
@@ -31,19 +31,19 @@ export declare class _BoxedValueDefinition implements BoxedValueDefinition, Conf
31
31
  inferredType: boolean;
32
32
  _isConstant: boolean;
33
33
  holdUntil: 'never' | 'evaluate' | 'N';
34
- eq?: (a: BoxedExpression) => boolean | undefined;
35
- neq?: (a: BoxedExpression) => boolean | undefined;
36
- cmp?: (a: BoxedExpression) => '=' | '>' | '<' | undefined;
34
+ eq?: (a: Expression) => boolean | undefined;
35
+ neq?: (a: Expression) => boolean | undefined;
36
+ cmp?: (a: Expression) => '=' | '>' | '<' | undefined;
37
37
  collection?: CollectionHandlers;
38
- subscriptEvaluate?: (subscript: BoxedExpression, options: {
38
+ subscriptEvaluate?: (subscript: Expression, options: {
39
39
  engine: ComputeEngine;
40
40
  numericApproximation?: boolean;
41
- }) => BoxedExpression | undefined;
41
+ }) => Expression | undefined;
42
42
  constructor(ce: ComputeEngine, name: string, def: Partial<ValueDefinition>);
43
43
  /** For debugging */
44
- toJSON(): any;
44
+ toJSON(): Record<string, unknown>;
45
45
  get isConstant(): boolean;
46
- get value(): BoxedExpression | undefined;
46
+ get value(): Expression | undefined;
47
47
  get type(): BoxedType;
48
48
  set type(t: Type | TypeString | BoxedType);
49
49
  onConfigurationChange(): void;
@@ -1,4 +1,4 @@
1
- /* 0.35.6 */
1
+ /* 0.50.0 */
2
2
  value: T | null;
3
3
  generation: number | undefined;
4
4
  };
@@ -1,5 +1,5 @@
1
- /* 0.35.6 */
1
+ /* 0.50.0 */
2
2
  /**
3
3
  * Ensure all expressions in the array are in canonical form
4
4
  */
5
- export declare function canonical(ce: ComputeEngine, xs: ReadonlyArray<BoxedExpression>, scope?: Scope): ReadonlyArray<BoxedExpression>;
5
+ export declare function canonical(ce: ComputeEngine, xs: ReadonlyArray<Expression>, scope?: Scope): ReadonlyArray<Expression>;
@@ -1,2 +1,2 @@
1
- /* 0.35.6 */
2
- export declare function canonicalForm(expr: BoxedExpression, forms: CanonicalOptions, scope?: Scope): BoxedExpression;
1
+ /* 0.50.0 */
2
+ export declare function canonicalForm(expr: Expression, forms: CanonicalOptions, scope?: Scope): Expression;
@@ -1,13 +1,13 @@
1
- /* 0.35.6 */
1
+ /* 0.50.0 */
2
2
  /**
3
3
  * Structural equality of boxed expressions.
4
4
  */
5
- export declare function same(a: BoxedExpression, b: BoxedExpression): boolean;
5
+ export declare function same(a: Expression, b: Expression): boolean;
6
6
  /**
7
7
  * Mathematical equality of two boxed expressions.
8
8
  *
9
9
  * In general, it is impossible to always prove equality
10
10
  * ([Richardson's theorem](https://en.wikipedia.org/wiki/Richardson%27s_theorem)) but this works often...
11
11
  */
12
- export declare function eq(a: BoxedExpression, inputB: number | BoxedExpression): boolean | undefined;
13
- export declare function cmp(a: BoxedExpression, b: number | BoxedExpression): '<' | '=' | '>' | '>=' | '<=' | undefined;
12
+ export declare function eq(a: Expression, inputB: number | Expression): boolean | undefined;
13
+ export declare function cmp(a: Expression, b: number | Expression): '<' | '=' | '>' | '>=' | '<=' | undefined;
@@ -0,0 +1,6 @@
1
+ /* 0.50.0 */
2
+ * Leaf module for shared constants used across boxed-expression modules.
3
+ * No imports from sibling modules to avoid circular dependencies.
4
+ */
5
+ /** Default complexity for operators that don't specify one */
6
+ export declare const DEFAULT_COMPLEXITY = 100000;
@@ -1,8 +1,7 @@
1
- /* 0.35.6 */
2
- export declare function expandProducts(ce: ComputeEngine, ops: ReadonlyArray<BoxedExpression>): BoxedExpression | null;
1
+ /* 0.50.0 */
3
2
  export declare function choose(n: number, k: number): number;
4
3
  /** Attempt to transform the expression (h, ops) into a sum */
5
- export declare function expandFunction(ce: ComputeEngine, h: string, ops: ReadonlyArray<BoxedExpression>): BoxedExpression | null;
4
+ export declare function expandFunction(ce: ComputeEngine, h: string, ops: ReadonlyArray<Expression>): Expression | null;
6
5
  /** Apply the distributive law if the expression is a product of sums.
7
6
  * For example, a(b + c) = ab + ac
8
7
  * Expand the expression if it is a power of a sum.
@@ -11,10 +10,10 @@ export declare function expandFunction(ce: ComputeEngine, h: string, ops: Readon
11
10
  * If the exression is a relational operator, expand the operands.
12
11
  * Return null if the expression cannot be expanded.
13
12
  */
14
- export declare function expand(expr: BoxedExpression | undefined): BoxedExpression | null;
13
+ export declare function expand(expr: Expression | undefined): Expression | null;
15
14
  /**
16
15
  * Recursive expand of all terms in the expression.
17
16
  *
18
17
  * `expand()` only expands the top level of the expression.
19
18
  */
20
- export declare function expandAll(expr: BoxedExpression): BoxedExpression | null;
19
+ export declare function expandAll(expr: Expression): Expression | null;
@@ -1,12 +1,12 @@
1
- /* 0.35.6 */
1
+ /* 0.50.0 */
2
2
  export declare class ExpressionMap<U> implements ExpressionMapInterface<U> {
3
- readonly _items: Map<BoxedExpression, U>;
4
- constructor(source?: ExpressionMapInterface<U> | readonly (readonly [BoxedExpression, U])[]);
5
- has(expr: BoxedExpression): boolean;
6
- get(expr: BoxedExpression): U | undefined;
3
+ readonly _items: Map<Expression, U>;
4
+ constructor(source?: ExpressionMapInterface<U> | readonly (readonly [Expression, U])[]);
5
+ has(expr: Expression): boolean;
6
+ get(expr: Expression): U | undefined;
7
7
  clear(): void;
8
- set(expr: BoxedExpression, value: U): void;
9
- delete(expr: BoxedExpression): void;
10
- [Symbol.iterator](): IterableIterator<[BoxedExpression, U]>;
11
- entries(): IterableIterator<[BoxedExpression, U]>;
8
+ set(expr: Expression, value: U): void;
9
+ delete(expr: Expression): void;
10
+ [Symbol.iterator](): IterableIterator<[Expression, U]>;
11
+ entries(): IterableIterator<[Expression, U]>;
12
12
  }
@@ -1,6 +1,6 @@
1
- /* 0.35.6 */
1
+ /* 0.50.0 */
2
2
  /** Combine rational expressions into a single fraction */
3
- export declare function together(op: BoxedExpression): BoxedExpression;
3
+ export declare function together(op: Expression): Expression;
4
4
  /**
5
5
  * Detect if an expression is a perfect square trinomial.
6
6
  * Returns the factored form (a±b)² if successful, null otherwise.
@@ -14,7 +14,7 @@ export declare function together(op: BoxedExpression): BoxedExpression;
14
14
  *
15
15
  * IMPORTANT: Does not call .simplify() to avoid infinite recursion.
16
16
  */
17
- export declare function factorPerfectSquare(expr: BoxedExpression): BoxedExpression | null;
17
+ export declare function factorPerfectSquare(expr: Expression): Expression | null;
18
18
  /**
19
19
  * Detect if an expression is a difference of squares.
20
20
  * Returns the factored form (a-b)(a+b) if successful, null otherwise.
@@ -23,7 +23,7 @@ export declare function factorPerfectSquare(expr: BoxedExpression): BoxedExpress
23
23
  *
24
24
  * IMPORTANT: Does not call .simplify() on the result to avoid infinite recursion.
25
25
  */
26
- export declare function factorDifferenceOfSquares(expr: BoxedExpression): BoxedExpression | null;
26
+ export declare function factorDifferenceOfSquares(expr: Expression): Expression | null;
27
27
  /**
28
28
  * Factor a quadratic polynomial using the quadratic formula.
29
29
  * Returns factored form if successful, null otherwise.
@@ -34,7 +34,7 @@ export declare function factorDifferenceOfSquares(expr: BoxedExpression): BoxedE
34
34
  *
35
35
  * IMPORTANT: Does not call .simplify() to avoid infinite recursion.
36
36
  */
37
- export declare function factorQuadratic(expr: BoxedExpression, variable: string): BoxedExpression | null;
37
+ export declare function factorQuadratic(expr: Expression, variable: string): Expression | null;
38
38
  /**
39
39
  * Factor a polynomial expression.
40
40
  * Attempts various factoring strategies:
@@ -46,11 +46,11 @@ export declare function factorQuadratic(expr: BoxedExpression, variable: string)
46
46
  *
47
47
  * IMPORTANT: Does not call .simplify() to avoid infinite recursion.
48
48
  */
49
- export declare function factorPolynomial(expr: BoxedExpression, variable?: string): BoxedExpression;
49
+ export declare function factorPolynomial(expr: Expression, variable?: string): Expression;
50
50
  /**
51
51
  * Return an expression factored as a product.
52
52
  * - 2x + 4 -> 2(x + 2)
53
53
  * - 2x < 4 -> x < 2
54
54
  * - (2x) * (2y) -> 4xy
55
55
  */
56
- export declare function factor(expr: BoxedExpression): BoxedExpression;
56
+ export declare function factor(expr: Expression): Expression;
@@ -1,7 +1,7 @@
1
- /* 0.35.6 */
1
+ /* 0.50.0 */
2
2
  /**
3
3
  *
4
- * Make all the arguments canonical.
4
+ * Optionally make all the arguments canonical (default).
5
5
  *
6
6
  * "Lift" Sequence expressions to the top level.
7
7
  * e.g. `["Add", 1, ["Sequence", 2, 3]]` -> `["Add", 1, 2, 3]`
@@ -12,14 +12,5 @@
12
12
  *
13
13
  * Note: *not* recursive
14
14
  */
15
- export declare function flatten<T extends ReadonlyArray<BoxedExpression> | BoxedExpression[]>(ops: T, operator?: string): T;
16
- /**
17
- * Flatten the arguments.
18
- * @fixme replace with just flatten.
19
- * @fixme consider adding flatternSort()
20
- */
21
- export declare function flattenOps<T extends ReadonlyArray<BoxedExpression> | BoxedExpression[]>(ops: T, operator: string): T;
22
- /**
23
- * @todo: this function should probably not be recursive. As it, it is semi-recursive.
24
- */
25
- export declare function flattenSequence(xs: ReadonlyArray<BoxedExpression>): ReadonlyArray<BoxedExpression>;
15
+ export declare function flatten<T extends ReadonlyArray<Expression> | Expression[]>(ops: T, operator?: string, canonicalize?: boolean): T;
16
+ export declare function flattenSequence(xs: ReadonlyArray<Expression>): ReadonlyArray<Expression>;
@@ -1,4 +1,4 @@
1
- /* 0.35.6 */
1
+ /* 0.50.0 */
2
2
  /** Apply the function `f` to each operand of the expression `expr`,
3
3
  * account for the 'lazy' property of the operator definition:
4
4
  *
@@ -6,5 +6,5 @@
6
6
  *
7
7
  * If `f` returns `null`, the element is not added to the result
8
8
  */
9
- export declare function holdMap(expr: BoxedExpression, f: (x: BoxedExpression) => BoxedExpression | null): ReadonlyArray<BoxedExpression>;
10
- export declare function holdMapAsync(expr: BoxedExpression, f: (x: BoxedExpression) => Promise<BoxedExpression | null>): Promise<ReadonlyArray<BoxedExpression>>;
9
+ export declare function holdMap(expr: Expression, f: (x: Expression) => Expression | null): ReadonlyArray<Expression>;
10
+ export declare function holdMapAsync(expr: Expression, f: (x: Expression) => Promise<Expression | null>): Promise<ReadonlyArray<Expression>>;
@@ -0,0 +1,21 @@
1
+ /* 0.50.0 */
2
+ /**
3
+ * Get inequality bounds for a symbol from the assumption database.
4
+ *
5
+ * For example, if `x > 4` is assumed, this returns `{ lowerBound: 4, lowerStrict: true }`.
6
+ * If `x <= 10` is assumed, this returns `{ upperBound: 10, upperStrict: false }`.
7
+ *
8
+ * Note: Assumptions are normalized to forms like:
9
+ * - `x > 4` becomes `Less(Add(Negate(x), 4), 0)` i.e., `4 - x < 0`
10
+ * - `x > 0` becomes `Less(Negate(x), 0)` i.e., `-x < 0`
11
+ *
12
+ * @param ce - The compute engine instance
13
+ * @param symbol - The symbol name to query
14
+ * @returns An object with lowerBound, upperBound, and strictness flags
15
+ */
16
+ export declare function getInequalityBoundsFromAssumptions(ce: ComputeEngine, symbol: string): {
17
+ lowerBound?: Expression;
18
+ lowerStrict?: boolean;
19
+ upperBound?: Expression;
20
+ upperStrict?: boolean;
21
+ };
@@ -0,0 +1,4 @@
1
+ /* 0.50.0 */
2
+ export declare function canonicalInvisibleOperator(ops: ReadonlyArray<Expression>, { engine: ce }: {
3
+ engine: ComputeEngine;
4
+ }): Expression | null;
@@ -1,4 +1,4 @@
1
- /* 0.35.6 */
1
+ /* 0.50.0 */
2
2
  /**
3
3
  * The function attempts to match a subject expression to a
4
4
  * [pattern](/compute-engine/guides/patterns-and-rules/).
@@ -38,4 +38,4 @@
38
38
  * -->
39
39
  *
40
40
  */
41
- export declare function match(subject: BoxedExpression, pattern: BoxedExpression, options?: PatternMatchOptions): BoxedSubstitution | null;
41
+ export declare function match(subject: Expression, pattern: Expression, options?: PatternMatchOptions): BoxedSubstitution | null;
@@ -1,5 +1,5 @@
1
- /* 0.35.6 */
2
- export declare function canonicalNegate(expr: BoxedExpression): BoxedExpression;
1
+ /* 0.50.0 */
2
+ export declare function canonicalNegate(expr: Expression): Expression;
3
3
  /**
4
4
  * Distribute `Negate` (multiply by -1) if expr is a number literal, an
5
5
  * addition or multiplication or another `Negate`.
@@ -7,5 +7,5 @@ export declare function canonicalNegate(expr: BoxedExpression): BoxedExpression;
7
7
  * It is important to do all these to handle cases like
8
8
  * `-3x` -> ["Negate, ["Multiply", 3, "x"]] -> ["Multiply, -3, x]
9
9
  */
10
- export declare function negate(expr: BoxedExpression): BoxedExpression;
11
- export declare function negateProduct(ce: ComputeEngine, args: ReadonlyArray<BoxedExpression>): BoxedExpression;
10
+ export declare function negate(expr: Expression): Expression;
11
+ export declare function negateProduct(ce: ComputeEngine, args: ReadonlyArray<Expression>): Expression;
@@ -1,10 +1,10 @@
1
- /* 0.35.6 */
1
+ /* 0.50.0 */
2
2
  import { Decimal } from 'decimal.js';
3
3
  import type { Rational } from '../numerics/types';
4
- import type { BoxedExpression, SemiBoxedExpression } from '../global-types';
5
- export declare function asRational(expr: BoxedExpression): Rational | undefined;
6
- export declare function asBigint(x: Complex | Decimal | SemiBoxedExpression | undefined): bigint | null;
7
- export declare function asBignum(expr: BoxedExpression | undefined): Decimal | null;
4
+ import type { Expression, ExpressionInput } from '../global-types';
5
+ export declare function asRational(expr: Expression): Rational | undefined;
6
+ export declare function asBigint(x: Complex | Decimal | ExpressionInput | undefined): bigint | null;
7
+ export declare function asBignum(expr: Expression | undefined): Decimal | null;
8
8
  /**
9
9
  * Validate if the expression is a small integer.
10
10
  * A small integer is an integer between -SMALL_INTEGER and SMALL_INTEGER (inclusive).
@@ -13,7 +13,7 @@ export declare function asBignum(expr: BoxedExpression | undefined): Decimal | n
13
13
  * Unlike `toInteger()` this functions fails if the expression is not an
14
14
  * integer. `toInteger()` will round the value to the nearest integer.
15
15
  */
16
- export declare function asSmallInteger(expr: number | BoxedExpression | undefined): number | null;
16
+ export declare function asSmallInteger(expr: number | Expression | undefined): number | null;
17
17
  /**
18
18
  * Convert a boxed expression to an integer.
19
19
  * Returns null if the expression cannot be converted to an integer.
@@ -25,10 +25,10 @@ export declare function asSmallInteger(expr: number | BoxedExpression | undefine
25
25
  * value to the nearest integer if it is a number.
26
26
  *
27
27
  */
28
- export declare function toInteger(expr: BoxedExpression | undefined): number | null;
28
+ export declare function toInteger(expr: Expression | undefined): number | null;
29
29
  /** Convert a boxed expression to a bigint.
30
30
  * Returns null if the expression cannot be converted to a bigint.
31
31
  * If the expression is a complex number, only the real part is considered.
32
32
  * If the real part is not an integer, it is rounded to the nearest integer.
33
33
  */
34
- export declare function toBigint(expr: BoxedExpression | undefined): bigint | null;
34
+ export declare function toBigint(expr: Expression | undefined): bigint | null;
@@ -1,6 +1,7 @@
1
- /* 0.35.6 */
1
+ /* 0.50.0 */
2
2
  export type Order = 'lex' | 'dexlex' | 'grevlex' | 'elim';
3
- export declare const DEFAULT_COMPLEXITY = 100000;
3
+ import { DEFAULT_COMPLEXITY } from './constants';
4
+ export { DEFAULT_COMPLEXITY };
4
5
  /**
5
6
  * The sorting order of arguments of the Add function uses a modified degrevlex:
6
7
  * - Sort by total degree (sum of degree)
@@ -13,8 +14,8 @@ export declare const DEFAULT_COMPLEXITY = 100000;
13
14
  * - 2x^2 + 3x + 1
14
15
  * - 2x^2y^3 + 5x^3y
15
16
  */
16
- export declare function addOrder(a: BoxedExpression, b: BoxedExpression): number;
17
- export declare function equalOrder(a: BoxedExpression, b: BoxedExpression): number;
17
+ export declare function addOrder(a: Expression, b: Expression): number;
18
+ export declare function equalOrder(a: Expression, b: Expression): number;
18
19
  declare const RANKS: readonly ["integer", "rational", "radical", "real", "complex", "constant", "symbol", "multiply", "divide", "add", "trig", "fn", "power", "string", "other"];
19
20
  export type Rank = (typeof RANKS)[number];
20
21
  /**
@@ -50,22 +51,21 @@ export type Rank = (typeof RANKS)[number];
50
51
  * description of the ordering of expressions in Mathematica.
51
52
  *
52
53
  */
53
- export declare function order(a: BoxedExpression, b: BoxedExpression): number;
54
+ export declare function order(a: Expression, b: Expression): number;
54
55
  /** Return a version of the expression with its arguments sorted in
55
56
  * canonical order
56
57
  */
57
- export declare function canonicalOrder(expr: BoxedExpression, { recursive }: {
58
+ export declare function canonicalOrder(expr: Expression, { recursive }: {
58
59
  recursive?: boolean;
59
- }): BoxedExpression;
60
- export declare function sortOperands(operator: string, xs: ReadonlyArray<BoxedExpression>): ReadonlyArray<BoxedExpression>;
60
+ }): Expression;
61
+ export declare function sortOperands(operator: string, xs: ReadonlyArray<Expression>): ReadonlyArray<Expression>;
61
62
  /**
62
63
  * Sort the terms of a polynomial expression (`Add` expression) according
63
64
  * to the deglex polynomial ordering
64
65
  *
65
66
  */
66
- export declare function polynomialOrder(expr: BoxedExpression): BoxedExpression;
67
- export declare function lexicographicOrder(expr: BoxedExpression, vars?: ReadonlyArray<string>): BoxedExpression;
68
- export declare function degreeLexicographicOrder(expr: BoxedExpression, vars?: ReadonlyArray<string>): BoxedExpression;
69
- export declare function degreeReverseLexicographicOrder(expr: BoxedExpression, vars?: ReadonlyArray<string>): BoxedExpression;
70
- export declare function eliminationOrder(expr: BoxedExpression, vars?: ReadonlyArray<string>): BoxedExpression;
71
- export {};
67
+ export declare function polynomialOrder(expr: Expression): Expression;
68
+ export declare function lexicographicOrder(expr: Expression, vars?: ReadonlyArray<string>): Expression;
69
+ export declare function degreeLexicographicOrder(expr: Expression, vars?: ReadonlyArray<string>): Expression;
70
+ export declare function degreeReverseLexicographicOrder(expr: Expression, vars?: ReadonlyArray<string>): Expression;
71
+ export declare function eliminationOrder(expr: Expression, vars?: ReadonlyArray<string>): Expression;