@cortex-js/compute-engine 0.32.1 → 0.34.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 (168) hide show
  1. package/dist/compute-engine.esm.js +39456 -28560
  2. package/dist/compute-engine.min.esm.js +80 -59
  3. package/dist/compute-engine.min.umd.js +80 -59
  4. package/dist/compute-engine.umd.js +39464 -28585
  5. package/dist/math-json.esm.js +2 -2
  6. package/dist/math-json.min.esm.js +2 -130
  7. package/dist/math-json.min.umd.js +2 -2
  8. package/dist/math-json.umd.js +2 -2
  9. package/dist/types/common/ansi-codes.d.ts +1 -1
  10. package/dist/types/common/configuration-change.d.ts +1 -1
  11. package/dist/types/common/fuzzy-string-match.d.ts +1 -1
  12. package/dist/types/common/grapheme-splitter.d.ts +1 -1
  13. package/dist/types/common/interruptible.d.ts +1 -1
  14. package/dist/types/common/one-of.d.ts +2 -1
  15. package/dist/types/common/signals.d.ts +1 -1
  16. package/dist/types/common/type/ast-nodes.d.ts +1 -1
  17. package/dist/types/common/type/boxed-type.d.ts +1 -1
  18. package/dist/types/common/type/lexer.d.ts +1 -1
  19. package/dist/types/common/type/parse.d.ts +1 -1
  20. package/dist/types/common/type/parser.d.ts +1 -1
  21. package/dist/types/common/type/primitive.d.ts +1 -1
  22. package/dist/types/common/type/reduce.d.ts +12 -0
  23. package/dist/types/common/type/serialize.d.ts +1 -1
  24. package/dist/types/common/type/subtype.d.ts +1 -1
  25. package/dist/types/common/type/type-builder.d.ts +1 -1
  26. package/dist/types/common/type/types.d.ts +1 -1
  27. package/dist/types/common/type/utils.d.ts +1 -1
  28. package/dist/types/common/utils.d.ts +1 -1
  29. package/dist/types/compute-engine/assume.d.ts +37 -1
  30. package/dist/types/compute-engine/boxed-expression/abstract-boxed-expression.d.ts +6 -3
  31. package/dist/types/compute-engine/boxed-expression/apply.d.ts +1 -1
  32. package/dist/types/compute-engine/boxed-expression/arithmetic-add.d.ts +1 -1
  33. package/dist/types/compute-engine/boxed-expression/arithmetic-mul-div.d.ts +1 -1
  34. package/dist/types/compute-engine/boxed-expression/arithmetic-power.d.ts +1 -1
  35. package/dist/types/compute-engine/boxed-expression/ascii-math.d.ts +1 -1
  36. package/dist/types/compute-engine/boxed-expression/box.d.ts +1 -1
  37. package/dist/types/compute-engine/boxed-expression/boxed-dictionary.d.ts +1 -1
  38. package/dist/types/compute-engine/boxed-expression/boxed-function.d.ts +6 -2
  39. package/dist/types/compute-engine/boxed-expression/boxed-number.d.ts +1 -1
  40. package/dist/types/compute-engine/boxed-expression/boxed-operator-definition.d.ts +1 -1
  41. package/dist/types/compute-engine/boxed-expression/boxed-patterns.d.ts +1 -1
  42. package/dist/types/compute-engine/boxed-expression/boxed-string.d.ts +1 -1
  43. package/dist/types/compute-engine/boxed-expression/boxed-symbol.d.ts +5 -1
  44. package/dist/types/compute-engine/boxed-expression/boxed-tensor.d.ts +2 -1
  45. package/dist/types/compute-engine/boxed-expression/boxed-value-definition.d.ts +5 -1
  46. package/dist/types/compute-engine/boxed-expression/cache.d.ts +1 -1
  47. package/dist/types/compute-engine/boxed-expression/canonical-utils.d.ts +1 -1
  48. package/dist/types/compute-engine/boxed-expression/canonical.d.ts +1 -1
  49. package/dist/types/compute-engine/boxed-expression/compare.d.ts +1 -1
  50. package/dist/types/compute-engine/boxed-expression/expand.d.ts +1 -1
  51. package/dist/types/compute-engine/boxed-expression/expression-map.d.ts +1 -1
  52. package/dist/types/compute-engine/boxed-expression/factor.d.ts +47 -1
  53. package/dist/types/compute-engine/boxed-expression/flatten.d.ts +1 -1
  54. package/dist/types/compute-engine/boxed-expression/hold.d.ts +1 -1
  55. package/dist/types/compute-engine/boxed-expression/match.d.ts +1 -1
  56. package/dist/types/compute-engine/boxed-expression/negate.d.ts +1 -1
  57. package/dist/types/compute-engine/boxed-expression/numerics.d.ts +1 -1
  58. package/dist/types/compute-engine/boxed-expression/order.d.ts +1 -1
  59. package/dist/types/compute-engine/boxed-expression/polynomials.d.ts +1 -1
  60. package/dist/types/compute-engine/boxed-expression/product.d.ts +1 -1
  61. package/dist/types/compute-engine/boxed-expression/rules.d.ts +1 -1
  62. package/dist/types/compute-engine/boxed-expression/serialize.d.ts +1 -1
  63. package/dist/types/compute-engine/boxed-expression/sgn.d.ts +1 -1
  64. package/dist/types/compute-engine/boxed-expression/simplify.d.ts +1 -1
  65. package/dist/types/compute-engine/boxed-expression/solve-linear-system.d.ts +60 -0
  66. package/dist/types/compute-engine/boxed-expression/solve.d.ts +1 -1
  67. package/dist/types/compute-engine/boxed-expression/terms.d.ts +1 -1
  68. package/dist/types/compute-engine/boxed-expression/trigonometry.d.ts +1 -2
  69. package/dist/types/compute-engine/boxed-expression/utils.d.ts +1 -1
  70. package/dist/types/compute-engine/boxed-expression/validate.d.ts +1 -1
  71. package/dist/types/compute-engine/collection-utils.d.ts +1 -1
  72. package/dist/types/compute-engine/compilation/base-compiler.d.ts +1 -1
  73. package/dist/types/compute-engine/compilation/glsl-target.d.ts +63 -0
  74. package/dist/types/compute-engine/compilation/javascript-target.d.ts +1 -1
  75. package/dist/types/compute-engine/compilation/types.d.ts +58 -1
  76. package/dist/types/compute-engine/cost-function.d.ts +1 -1
  77. package/dist/types/compute-engine/function-utils.d.ts +1 -1
  78. package/dist/types/compute-engine/global-types.d.ts +381 -10
  79. package/dist/types/compute-engine/index.d.ts +186 -3
  80. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-algebra.d.ts +1 -1
  81. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-arithmetic.d.ts +1 -1
  82. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-calculus.d.ts +1 -1
  83. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-complex.d.ts +1 -1
  84. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-core.d.ts +1 -1
  85. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-linear-algebra.d.ts +1 -1
  86. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-logic.d.ts +1 -1
  87. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-other.d.ts +1 -1
  88. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-relational-operators.d.ts +1 -1
  89. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-sets.d.ts +1 -1
  90. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-statistics.d.ts +1 -1
  91. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-symbols.d.ts +1 -1
  92. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-trigonometry.d.ts +1 -1
  93. package/dist/types/compute-engine/latex-syntax/dictionary/definitions.d.ts +10 -1
  94. package/dist/types/compute-engine/latex-syntax/parse-symbol.d.ts +1 -1
  95. package/dist/types/compute-engine/latex-syntax/parse.d.ts +21 -1
  96. package/dist/types/compute-engine/latex-syntax/serialize-number.d.ts +1 -1
  97. package/dist/types/compute-engine/latex-syntax/serializer-style.d.ts +1 -1
  98. package/dist/types/compute-engine/latex-syntax/serializer.d.ts +1 -1
  99. package/dist/types/compute-engine/latex-syntax/tokenizer.d.ts +1 -1
  100. package/dist/types/compute-engine/latex-syntax/types.d.ts +33 -3
  101. package/dist/types/compute-engine/latex-syntax/utils.d.ts +1 -1
  102. package/dist/types/compute-engine/library/arithmetic.d.ts +1 -1
  103. package/dist/types/compute-engine/library/calculus.d.ts +1 -1
  104. package/dist/types/compute-engine/library/collections.d.ts +1 -1
  105. package/dist/types/compute-engine/library/combinatorics.d.ts +1 -1
  106. package/dist/types/compute-engine/library/complex.d.ts +1 -1
  107. package/dist/types/compute-engine/library/control-structures.d.ts +1 -1
  108. package/dist/types/compute-engine/library/core.d.ts +1 -1
  109. package/dist/types/compute-engine/library/invisible-operator.d.ts +1 -1
  110. package/dist/types/compute-engine/library/library.d.ts +1 -1
  111. package/dist/types/compute-engine/library/linear-algebra.d.ts +1 -1
  112. package/dist/types/compute-engine/library/logic-analysis.d.ts +189 -4
  113. package/dist/types/compute-engine/library/logic-utils.d.ts +1 -5
  114. package/dist/types/compute-engine/library/logic.d.ts +1 -1
  115. package/dist/types/compute-engine/library/number-theory.d.ts +1 -1
  116. package/dist/types/compute-engine/library/polynomials.d.ts +1 -1
  117. package/dist/types/compute-engine/library/random-expression.d.ts +1 -1
  118. package/dist/types/compute-engine/library/relational-operator.d.ts +1 -1
  119. package/dist/types/compute-engine/library/sets.d.ts +1 -1
  120. package/dist/types/compute-engine/library/statistics.d.ts +1 -1
  121. package/dist/types/compute-engine/library/trigonometry.d.ts +1 -1
  122. package/dist/types/compute-engine/library/utils.d.ts +60 -2
  123. package/dist/types/compute-engine/numeric-value/big-numeric-value.d.ts +1 -1
  124. package/dist/types/compute-engine/numeric-value/exact-numeric-value.d.ts +1 -1
  125. package/dist/types/compute-engine/numeric-value/machine-numeric-value.d.ts +1 -1
  126. package/dist/types/compute-engine/numeric-value/types.d.ts +1 -1
  127. package/dist/types/compute-engine/numerics/bigint.d.ts +1 -1
  128. package/dist/types/compute-engine/numerics/expression.d.ts +1 -1
  129. package/dist/types/compute-engine/numerics/interval.d.ts +1 -1
  130. package/dist/types/compute-engine/numerics/monte-carlo.d.ts +1 -1
  131. package/dist/types/compute-engine/numerics/numeric-bigint.d.ts +1 -1
  132. package/dist/types/compute-engine/numerics/numeric-bignum.d.ts +1 -1
  133. package/dist/types/compute-engine/numerics/numeric-complex.d.ts +1 -1
  134. package/dist/types/compute-engine/numerics/numeric.d.ts +2 -2
  135. package/dist/types/compute-engine/numerics/primes.d.ts +1 -1
  136. package/dist/types/compute-engine/numerics/rationals.d.ts +1 -1
  137. package/dist/types/compute-engine/numerics/richardson.d.ts +1 -1
  138. package/dist/types/compute-engine/numerics/special-functions.d.ts +1 -1
  139. package/dist/types/compute-engine/numerics/statistics.d.ts +1 -1
  140. package/dist/types/compute-engine/numerics/strings.d.ts +1 -1
  141. package/dist/types/compute-engine/numerics/types.d.ts +2 -1
  142. package/dist/types/compute-engine/oeis.d.ts +85 -0
  143. package/dist/types/compute-engine/sequence.d.ts +120 -0
  144. package/dist/types/compute-engine/symbolic/antiderivative.d.ts +1 -1
  145. package/dist/types/compute-engine/symbolic/derivative.d.ts +17 -2
  146. package/dist/types/compute-engine/symbolic/distribute.d.ts +1 -1
  147. package/dist/types/compute-engine/symbolic/fu-cost.d.ts +33 -0
  148. package/dist/types/compute-engine/symbolic/fu-transforms.d.ts +130 -0
  149. package/dist/types/compute-engine/symbolic/fu.d.ts +48 -0
  150. package/dist/types/compute-engine/symbolic/simplify-abs.d.ts +12 -0
  151. package/dist/types/compute-engine/symbolic/simplify-divide.d.ts +15 -0
  152. package/dist/types/compute-engine/symbolic/simplify-hyperbolic.d.ts +2 -0
  153. package/dist/types/compute-engine/symbolic/simplify-infinity.d.ts +14 -0
  154. package/dist/types/compute-engine/symbolic/simplify-log.d.ts +15 -0
  155. package/dist/types/compute-engine/symbolic/simplify-power.d.ts +15 -0
  156. package/dist/types/compute-engine/symbolic/simplify-product.d.ts +1 -1
  157. package/dist/types/compute-engine/symbolic/simplify-rules.d.ts +1 -11
  158. package/dist/types/compute-engine/symbolic/simplify-sum.d.ts +1 -1
  159. package/dist/types/compute-engine/symbolic/simplify-trig.d.ts +2 -0
  160. package/dist/types/compute-engine/tensor/tensor-fields.d.ts +1 -1
  161. package/dist/types/compute-engine/tensor/tensors.d.ts +3 -3
  162. package/dist/types/compute-engine/types.d.ts +1 -1
  163. package/dist/types/compute-engine.d.ts +5 -1
  164. package/dist/types/math-json/symbols.d.ts +1 -1
  165. package/dist/types/math-json/types.d.ts +1 -1
  166. package/dist/types/math-json/utils.d.ts +1 -1
  167. package/dist/types/math-json.d.ts +2 -2
  168. package/package.json +2 -2
@@ -1,4 +1,4 @@
1
- /** Compute Engine 0.32.1 */
1
+ /** Compute Engine 0.34.0 */
2
2
 
3
3
  // src/math-json/utils.ts
4
4
  function isNumberObject(expr) {
@@ -115,7 +115,7 @@ function expressionToDictionaryValue(expr) {
115
115
  }
116
116
 
117
117
  // src/math-json.ts
118
- var version = "0.32.1";
118
+ var version = "0.34.0";
119
119
  export {
120
120
  dictionaryFromExpression,
121
121
  isFunctionObject,
@@ -1,130 +1,2 @@
1
- /** Compute Engine 0.32.1 */
2
-
3
- // src/math-json/utils.ts
4
- function isNumberObject(expr) {
5
- return expr !== null && typeof expr === "object" && "num" in expr;
6
- }
7
- function isSymbolObject(expr) {
8
- return expr !== null && typeof expr === "object" && "sym" in expr;
9
- }
10
- function isStringObject(expr) {
11
- return expr !== null && typeof expr === "object" && "str" in expr;
12
- }
13
- function isDictionaryObject(expr) {
14
- return expr !== null && typeof expr === "object" && "dict" in expr && typeof expr.dict === "object" && !Array.isArray(expr.dict) && expr.dict !== null;
15
- }
16
- function isFunctionObject(expr) {
17
- return expr !== null && typeof expr === "object" && "fn" in expr && Array.isArray(expr.fn) && expr.fn.length > 0 && typeof expr.fn[0] === "string";
18
- }
19
- function stringValue(expr) {
20
- if (expr === null || expr === void 0) return null;
21
- if (typeof expr === "object" && "str" in expr) return expr.str;
22
- if (typeof expr !== "string") return null;
23
- if (expr.length >= 2 && expr.at(0) === "'" && expr.at(-1) === "'")
24
- return expr.substring(1, expr.length - 1);
25
- if (matchesNumber(expr) || matchesSymbol(expr)) return null;
26
- return expr;
27
- }
28
- function operator(expr) {
29
- if (Array.isArray(expr)) return expr[0];
30
- if (expr === null || expr === void 0) return "";
31
- if (isFunctionObject(expr)) return expr.fn[0];
32
- return "";
33
- }
34
- function operands(expr) {
35
- if (Array.isArray(expr)) return expr.slice(1);
36
- if (expr !== void 0 && isFunctionObject(expr)) return expr.fn.slice(1);
37
- return [];
38
- }
39
- function operand(expr, n) {
40
- if (Array.isArray(expr)) return expr[n] ?? null;
41
- if (expr === null || !isFunctionObject(expr)) return null;
42
- return expr.fn[n] ?? null;
43
- }
44
- function nops(expr) {
45
- if (expr === null || expr === void 0) return 0;
46
- if (Array.isArray(expr)) return Math.max(0, expr.length - 1);
47
- if (isFunctionObject(expr)) return Math.max(0, expr.fn.length - 1);
48
- return 0;
49
- }
50
- function symbol(expr) {
51
- if (typeof expr === "string" && matchesSymbol(expr)) {
52
- if (expr.length >= 2 && expr.at(0) === "`" && expr.at(-1) === "`")
53
- return expr.slice(1, -1);
54
- return expr;
55
- }
56
- if (expr === null || expr === void 0) return null;
57
- if (isSymbolObject(expr)) return expr.sym;
58
- return null;
59
- }
60
- function keyValuePair(expr) {
61
- const h = operator(expr);
62
- if (h === "KeyValuePair" || h === "Tuple" || h === "Pair") {
63
- const [k, v] = operands(expr);
64
- const key = stringValue(k);
65
- if (!key) return null;
66
- return [key, v ?? "Nothing"];
67
- }
68
- return null;
69
- }
70
- function dictionaryFromExpression(expr) {
71
- if (expr === null) return null;
72
- if (isDictionaryObject(expr)) return expr;
73
- const kv = keyValuePair(expr);
74
- if (kv) return { [kv[0]]: kv[1] };
75
- if (operator(expr) === "Dictionary") {
76
- const dict = {};
77
- const ops = operands(expr);
78
- for (let i = 1; i < nops(expr); i++) {
79
- const kv2 = keyValuePair(ops[i]);
80
- if (kv2) {
81
- dict[kv2[0]] = expressionToDictionaryValue(kv2[1]) ?? "Nothing";
82
- }
83
- }
84
- return { dict };
85
- }
86
- return null;
87
- }
88
- function mapArgs(expr, fn) {
89
- let args = null;
90
- if (Array.isArray(expr)) args = expr;
91
- if (isFunctionObject(expr)) args = expr.fn;
92
- if (args === null) return [];
93
- let i = 1;
94
- const result = [];
95
- while (i < args.length) {
96
- result.push(fn(args[i]));
97
- i += 1;
98
- }
99
- return result;
100
- }
101
- function matchesNumber(s) {
102
- return /^(nan|oo|\+oo|-oo|infinity|\+infinity|-infinity)$/i.test(s) || /^[+-]?(0|[1-9][0-9]*)(\.[0-9]+)?(\([0-9]+\))?([eE][+-]?[0-9]+)?$/.test(s);
103
- }
104
- function matchesSymbol(s) {
105
- return /^[a-zA-Z_][a-zA-Z0-9_]*$/.test(s) || s.length >= 2 && s[0] === "`" && s[s.length - 1] === "`";
106
- }
107
- function expressionToDictionaryValue(expr) {
108
- if (expr === null || expr === void 0) return null;
109
- if (isStringObject(expr)) return expr.str;
110
- if (isNumberObject(expr)) return parseFloat(expr.num);
111
- if (isSymbolObject(expr)) return expr.sym;
112
- if (typeof expr === "string" || typeof expr === "number") return expr;
113
- if (Array.isArray(expr)) return { fn: expr };
114
- return expr;
115
- }
116
-
117
- // src/math-json.ts
118
- var version = "0.32.1";
119
- export {
120
- dictionaryFromExpression,
121
- isFunctionObject,
122
- isStringObject,
123
- isSymbolObject,
124
- mapArgs,
125
- operand,
126
- operator,
127
- stringValue,
128
- symbol,
129
- version
130
- };
1
+ /** Compute Engine 0.34.0 */
2
+ function d(n){return n!==null&&typeof n=="object"&&"num"in n}function s(n){return n!==null&&typeof n=="object"&&"sym"in n}function a(n){return n!==null&&typeof n=="object"&&"str"in n}function m(n){return n!==null&&typeof n=="object"&&"dict"in n&&typeof n.dict=="object"&&!Array.isArray(n.dict)&&n.dict!==null}function u(n){return n!==null&&typeof n=="object"&&"fn"in n&&Array.isArray(n.fn)&&n.fn.length>0&&typeof n.fn[0]=="string"}function c(n){return n==null?null:typeof n=="object"&&"str"in n?n.str:typeof n!="string"?null:n.length>=2&&n.at(0)==="'"&&n.at(-1)==="'"?n.substring(1,n.length-1):M(n)||b(n)?null:n}function l(n){return Array.isArray(n)?n[0]:n==null?"":u(n)?n.fn[0]:""}function y(n){return Array.isArray(n)?n.slice(1):n!==void 0&&u(n)?n.fn.slice(1):[]}function E(n,t){return Array.isArray(n)?n[t]??null:n===null||!u(n)?null:n.fn[t]??null}function h(n){return n==null?0:Array.isArray(n)?Math.max(0,n.length-1):u(n)?Math.max(0,n.fn.length-1):0}function g(n){return typeof n=="string"&&b(n)?n.length>=2&&n.at(0)==="`"&&n.at(-1)==="`"?n.slice(1,-1):n:n==null?null:s(n)?n.sym:null}function f(n){let t=l(n);if(t==="KeyValuePair"||t==="Tuple"||t==="Pair"){let[i,r]=y(n),e=c(i);return e?[e,r??"Nothing"]:null}return null}function j(n){if(n===null)return null;if(m(n))return n;let t=f(n);if(t)return{[t[0]]:t[1]};if(l(n)==="Dictionary"){let i={},r=y(n);for(let e=1;e<h(n);e++){let o=f(r[e]);o&&(i[o[0]]=A(o[1])??"Nothing")}return{dict:i}}return null}function O(n,t){let i=null;if(Array.isArray(n)&&(i=n),u(n)&&(i=n.fn),i===null)return[];let r=1,e=[];for(;r<i.length;)e.push(t(i[r])),r+=1;return e}function M(n){return/^(nan|oo|\+oo|-oo|infinity|\+infinity|-infinity)$/i.test(n)||/^[+-]?(0|[1-9][0-9]*)(\.[0-9]+)?(\([0-9]+\))?([eE][+-]?[0-9]+)?$/.test(n)}function b(n){return/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(n)||n.length>=2&&n[0]==="`"&&n[n.length-1]==="`"}function A(n){return n==null?null:a(n)?n.str:d(n)?parseFloat(n.num):s(n)?n.sym:typeof n=="string"||typeof n=="number"?n:Array.isArray(n)?{fn:n}:n}var S="0.34.0";export{j as dictionaryFromExpression,u as isFunctionObject,a as isStringObject,s as isSymbolObject,O as mapArgs,E as operand,l as operator,c as stringValue,g as symbol,S as version};
@@ -1,4 +1,4 @@
1
- /** MathJSON 0.32.1 */
1
+ /** MathJSON 0.34.0 */
2
2
  (function(global,factory){typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : typeof define === 'function' && define.amd ? define(['exports'],factory):(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.MathJson = {}));})(this, (function (exports) { 'use strict';
3
- var MathJson=(()=>{var f=Object.defineProperty;var j=Object.getOwnPropertyDescriptor;var O=Object.getOwnPropertyNames;var M=Object.prototype.hasOwnProperty;var A=(n,t)=>{for(var i in t)f(n,i,{get:t[i],enumerable:!0})},J=(n,t,i,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let e of O(t))!M.call(n,e)&&e!==i&&f(n,e,{get:()=>t[e],enumerable:!(r=j(t,e))||r.enumerable});return n};var S=n=>J(f({},"__esModule",{value:!0}),n);var T={};A(T,{dictionaryFromExpression:()=>E,isFunctionObject:()=>u,isStringObject:()=>a,isSymbolObject:()=>o,mapArgs:()=>h,operand:()=>d,operator:()=>s,stringValue:()=>c,symbol:()=>m,version:()=>V});function N(n){return n!==null&&typeof n=="object"&&"num"in n}function o(n){return n!==null&&typeof n=="object"&&"sym"in n}function a(n){return n!==null&&typeof n=="object"&&"str"in n}function p(n){return n!==null&&typeof n=="object"&&"dict"in n&&typeof n.dict=="object"&&!Array.isArray(n.dict)&&n.dict!==null}function u(n){return n!==null&&typeof n=="object"&&"fn"in n&&Array.isArray(n.fn)&&n.fn.length>0&&typeof n.fn[0]=="string"}function c(n){return n==null?null:typeof n=="object"&&"str"in n?n.str:typeof n!="string"?null:n.length>=2&&n.at(0)==="'"&&n.at(-1)==="'"?n.substring(1,n.length-1):k(n)||g(n)?null:n}function s(n){return Array.isArray(n)?n[0]:n==null?"":u(n)?n.fn[0]:""}function b(n){return Array.isArray(n)?n.slice(1):n!==void 0&&u(n)?n.fn.slice(1):[]}function d(n,t){return Array.isArray(n)?n[t]??null:n===null||!u(n)?null:n.fn[t]??null}function D(n){return n==null?0:Array.isArray(n)?Math.max(0,n.length-1):u(n)?Math.max(0,n.fn.length-1):0}function m(n){return typeof n=="string"&&g(n)?n.length>=2&&n.at(0)==="`"&&n.at(-1)==="`"?n.slice(1,-1):n:n==null?null:o(n)?n.sym:null}function y(n){let t=s(n);if(t==="KeyValuePair"||t==="Tuple"||t==="Pair"){let[i,r]=b(n),e=c(i);return e?[e,r??"Nothing"]:null}return null}function E(n){if(n===null)return null;if(p(n))return n;let t=y(n);if(t)return{[t[0]]:t[1]};if(s(n)==="Dictionary"){let i={},r=b(n);for(let e=1;e<D(n);e++){let l=y(r[e]);l&&(i[l[0]]=F(l[1])??"Nothing")}return{dict:i}}return null}function h(n,t){let i=null;if(Array.isArray(n)&&(i=n),u(n)&&(i=n.fn),i===null)return[];let r=1,e=[];for(;r<i.length;)e.push(t(i[r])),r+=1;return e}function k(n){return/^(nan|oo|\+oo|-oo|infinity|\+infinity|-infinity)$/i.test(n)||/^[+-]?(0|[1-9][0-9]*)(\.[0-9]+)?(\([0-9]+\))?([eE][+-]?[0-9]+)?$/.test(n)}function g(n){return/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(n)||n.length>=2&&n[0]==="`"&&n[n.length-1]==="`"}function F(n){return n==null?null:a(n)?n.str:N(n)?parseFloat(n.num):o(n)?n.sym:typeof n=="string"||typeof n=="number"?n:Array.isArray(n)?{fn:n}:n}var V="0.32.1";return S(T);})();
3
+ var MathJson=(()=>{var f=Object.defineProperty;var j=Object.getOwnPropertyDescriptor;var O=Object.getOwnPropertyNames;var M=Object.prototype.hasOwnProperty;var A=(n,t)=>{for(var i in t)f(n,i,{get:t[i],enumerable:!0})},J=(n,t,i,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let e of O(t))!M.call(n,e)&&e!==i&&f(n,e,{get:()=>t[e],enumerable:!(r=j(t,e))||r.enumerable});return n};var S=n=>J(f({},"__esModule",{value:!0}),n);var T={};A(T,{dictionaryFromExpression:()=>E,isFunctionObject:()=>u,isStringObject:()=>a,isSymbolObject:()=>o,mapArgs:()=>h,operand:()=>d,operator:()=>s,stringValue:()=>c,symbol:()=>m,version:()=>V});function N(n){return n!==null&&typeof n=="object"&&"num"in n}function o(n){return n!==null&&typeof n=="object"&&"sym"in n}function a(n){return n!==null&&typeof n=="object"&&"str"in n}function p(n){return n!==null&&typeof n=="object"&&"dict"in n&&typeof n.dict=="object"&&!Array.isArray(n.dict)&&n.dict!==null}function u(n){return n!==null&&typeof n=="object"&&"fn"in n&&Array.isArray(n.fn)&&n.fn.length>0&&typeof n.fn[0]=="string"}function c(n){return n==null?null:typeof n=="object"&&"str"in n?n.str:typeof n!="string"?null:n.length>=2&&n.at(0)==="'"&&n.at(-1)==="'"?n.substring(1,n.length-1):k(n)||g(n)?null:n}function s(n){return Array.isArray(n)?n[0]:n==null?"":u(n)?n.fn[0]:""}function b(n){return Array.isArray(n)?n.slice(1):n!==void 0&&u(n)?n.fn.slice(1):[]}function d(n,t){return Array.isArray(n)?n[t]??null:n===null||!u(n)?null:n.fn[t]??null}function D(n){return n==null?0:Array.isArray(n)?Math.max(0,n.length-1):u(n)?Math.max(0,n.fn.length-1):0}function m(n){return typeof n=="string"&&g(n)?n.length>=2&&n.at(0)==="`"&&n.at(-1)==="`"?n.slice(1,-1):n:n==null?null:o(n)?n.sym:null}function y(n){let t=s(n);if(t==="KeyValuePair"||t==="Tuple"||t==="Pair"){let[i,r]=b(n),e=c(i);return e?[e,r??"Nothing"]:null}return null}function E(n){if(n===null)return null;if(p(n))return n;let t=y(n);if(t)return{[t[0]]:t[1]};if(s(n)==="Dictionary"){let i={},r=b(n);for(let e=1;e<D(n);e++){let l=y(r[e]);l&&(i[l[0]]=F(l[1])??"Nothing")}return{dict:i}}return null}function h(n,t){let i=null;if(Array.isArray(n)&&(i=n),u(n)&&(i=n.fn),i===null)return[];let r=1,e=[];for(;r<i.length;)e.push(t(i[r])),r+=1;return e}function k(n){return/^(nan|oo|\+oo|-oo|infinity|\+infinity|-infinity)$/i.test(n)||/^[+-]?(0|[1-9][0-9]*)(\.[0-9]+)?(\([0-9]+\))?([eE][+-]?[0-9]+)?$/.test(n)}function g(n){return/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(n)||n.length>=2&&n[0]==="`"&&n[n.length-1]==="`"}function F(n){return n==null?null:a(n)?n.str:N(n)?parseFloat(n.num):o(n)?n.sym:typeof n=="string"||typeof n=="number"?n:Array.isArray(n)?{fn:n}:n}var V="0.34.0";return S(T);})();
4
4
  Object.assign(exports, MathJson); Object.defineProperty(exports, '__esModule', { value: true });}));
@@ -1,4 +1,4 @@
1
- /** MathJSON 0.32.1 */
1
+ /** MathJSON 0.34.0 */
2
2
  (function(global,factory){typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : typeof define === 'function' && define.amd ? define(['exports'],factory):(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.MathJson = {}));})(this, (function (exports) { 'use strict';
3
3
  var MathJson = (() => {
4
4
  var __defProp = Object.defineProperty;
@@ -149,7 +149,7 @@ var MathJson = (() => {
149
149
  }
150
150
 
151
151
  // src/math-json.ts
152
- var version = "0.32.1";
152
+ var version = "0.34.0";
153
153
  return __toCommonJS(math_json_exports);
154
154
  })();
155
155
  Object.assign(exports, MathJson); Object.defineProperty(exports, '__esModule', { value: true });}));
@@ -1,4 +1,4 @@
1
- /* 0.32.1 */
1
+ /* 0.34.0 */
2
2
  export declare const DEFAULT_COLOR = "\u001B[39m";
3
3
  export declare const DEFAULT_BG = "\u001B[49m";
4
4
  export declare const WHITE_BG = "\u001B[47m";
@@ -1,4 +1,4 @@
1
- /* 0.32.1 */
1
+ /* 0.34.0 */
2
2
  private _listeners;
3
3
  private _pending;
4
4
  private _version;
@@ -1,2 +1,2 @@
1
- /* 0.32.1 */
1
+ /* 0.34.0 */
2
2
  export declare function fuzzyStringMatch(invalidWord: string, validWords: string[]): string | null;
@@ -1,4 +1,4 @@
1
- /* 0.32.1 */
1
+ /* 0.34.0 */
2
2
  /**
3
3
  * Return a string or an array of graphemes.
4
4
  *
@@ -1,4 +1,4 @@
1
- /* 0.32.1 */
1
+ /* 0.34.0 */
2
2
  cause: unknown;
3
3
  value: T;
4
4
  constructor({ message, value, cause, }?: {
@@ -1,9 +1,10 @@
1
- /* 0.32.1 */
1
+ /* 0.34.0 */
2
2
  infer Head,
3
3
  ...infer Rem
4
4
  ] ? MergeTypes<Rem, Res & Head> : Res;
5
5
  /** @internal */
6
6
  export type OneOf<TypesArray extends any[], Res = never, AllProperties = MergeTypes<TypesArray>> = TypesArray extends [infer Head, ...infer Rem] ? OneOf<Rem, Res | OnlyFirst<Head, AllProperties>, AllProperties> : Res;
7
+ /** @internal */
7
8
  type OnlyFirst<F, S> = F & {
8
9
  [Key in keyof Omit<S, keyof F>]?: never;
9
10
  };
@@ -1,4 +1,4 @@
1
- /* 0.32.1 */
1
+ /* 0.34.0 */
2
2
  export type RuntimeSignalCode = 'timeout' | 'out-of-memory' | 'recursion-depth-exceeded' | 'iteration-limit-exceeded';
3
3
  /** @category Error Handling */
4
4
  export type SignalCode = RuntimeSignalCode | ('invalid-name' | 'expected-predicate' | 'expected-symbol' | 'operator-requires-one-operand' | 'postfix-operator-requires-one-operand' | 'prefix-operator-requires-one-operand' | 'unbalanced-symbols' | 'expected-argument' | 'unexpected-command' | 'cyclic-definition' | 'invalid-supersets' | 'expected-supersets' | 'unknown-domain' | 'duplicate-wikidata' | 'invalid-dictionary-entry' | 'syntax-error');
@@ -1,4 +1,4 @@
1
- /* 0.32.1 */
1
+ /* 0.34.0 */
2
2
  kind: string;
3
3
  position: number;
4
4
  line: number;
@@ -1,4 +1,4 @@
1
- /* 0.32.1 */
1
+ /* 0.34.0 */
2
2
  /** @category Type */
3
3
  export declare class BoxedType {
4
4
  static unknown: BoxedType;
@@ -1,4 +1,4 @@
1
- /* 0.32.1 */
1
+ /* 0.34.0 */
2
2
  export interface Token {
3
3
  type: TokenType;
4
4
  value: string;
@@ -1,4 +1,4 @@
1
- /* 0.32.1 */
1
+ /* 0.34.0 */
2
2
  /**
3
3
  * BNF grammar for the type parser:
4
4
  *
@@ -1,4 +1,4 @@
1
- /* 0.32.1 */
1
+ /* 0.34.0 */
2
2
  import { TypeNode } from './ast-nodes';
3
3
  import { TypeResolver } from './types';
4
4
  export declare class Parser {
@@ -1,4 +1,4 @@
1
- /* 0.32.1 */
1
+ /* 0.34.0 */
2
2
  /** All the types representing numeric values */
3
3
  export declare const NUMERIC_TYPES: NumericPrimitiveType[];
4
4
  export declare const INDEXED_COLLECTION_TYPES: PrimitiveType[];
@@ -0,0 +1,12 @@
1
+ /* 0.34.0 */
2
+ /**
3
+ * Reduce the input type
4
+ *
5
+ * For example:
6
+ * - `number | integer` -> `number`
7
+ * - `set<any>` -> `set`
8
+ *
9
+ * @param type
10
+ * @returns
11
+ */
12
+ export declare function reduceType(type: Type): Type;
@@ -1,2 +1,2 @@
1
- /* 0.32.1 */
1
+ /* 0.34.0 */
2
2
  export declare function typeToString(type: Type, precedence?: number): string;
@@ -1,4 +1,4 @@
1
- /* 0.32.1 */
1
+ /* 0.34.0 */
2
2
  /** Return true if lhs is a subtype of rhs */
3
3
  export declare function isPrimitiveSubtype(lhs: PrimitiveType, rhs: PrimitiveType): boolean;
4
4
  /** Return true if lhs is a subtype of rhs */
@@ -1,4 +1,4 @@
1
- /* 0.32.1 */
1
+ /* 0.34.0 */
2
2
  import { Type, TypeResolver } from './types';
3
3
  export declare class TypeBuilder implements ASTVisitor<Type> {
4
4
  private typeResolver;
@@ -1,4 +1,4 @@
1
- /* 0.32.1 */
1
+ /* 0.34.0 */
2
2
  * A primitive type is a simple type that represents a concrete value.
3
3
  *
4
4
  * - `any`: the top type
@@ -1,4 +1,4 @@
1
- /* 0.32.1 */
1
+ /* 0.34.0 */
2
2
  /** Convert two or more types into a more specific type that is a subtype of
3
3
  * all the input types. The resulting type is usually more constrained and
4
4
  * only encompasses values that belong to both input types.
@@ -1,4 +1,4 @@
1
- /* 0.32.1 */
1
+ /* 0.34.0 */
2
2
  *
3
3
  * <!--
4
4
  * !@consider?
@@ -1,4 +1,4 @@
1
- /* 0.32.1 */
1
+ /* 0.34.0 */
2
2
  /**
3
3
  * Add an assumption, in the form of a predicate, for example:
4
4
  *
@@ -24,3 +24,39 @@
24
24
  *
25
25
  */
26
26
  export declare function assume(proposition: BoxedExpression): AssumeResult;
27
+ /**
28
+ * Query assumptions to determine the sign of a symbol.
29
+ *
30
+ * Examines inequality assumptions in the current context to determine
31
+ * if a symbol's sign can be inferred. Assumptions are stored in normalized
32
+ * form (Less or LessEqual with lhs-rhs compared to 0), so:
33
+ * - `x > 0` is stored as `Less(-x, 0)` meaning `-x < 0`
34
+ * - `x >= 0` is stored as `LessEqual(-x, 0)` meaning `-x <= 0`
35
+ * - `x < 0` is stored as `Less(x, 0)` meaning `x < 0`
36
+ * - `x <= 0` is stored as `LessEqual(x, 0)` meaning `x <= 0`
37
+ *
38
+ * @param ce - The compute engine instance
39
+ * @param symbol - The symbol name to query
40
+ * @returns The inferred sign, or undefined if no relevant assumptions found
41
+ */
42
+ export declare function getSignFromAssumptions(ce: ComputeEngine, symbol: string): Sign | undefined;
43
+ /**
44
+ * Get inequality bounds for a symbol from the assumption database.
45
+ *
46
+ * For example, if `x > 4` is assumed, this returns `{ lowerBound: 4, lowerStrict: true }`.
47
+ * If `x <= 10` is assumed, this returns `{ upperBound: 10, upperStrict: false }`.
48
+ *
49
+ * Note: Assumptions are normalized to forms like:
50
+ * - `x > 4` becomes `Less(Add(Negate(x), 4), 0)` i.e., `4 - x < 0`
51
+ * - `x > 0` becomes `Less(Negate(x), 0)` i.e., `-x < 0`
52
+ *
53
+ * @param ce - The compute engine instance
54
+ * @param symbol - The symbol name to query
55
+ * @returns An object with lowerBound, upperBound, and strictness flags
56
+ */
57
+ export declare function getInequalityBoundsFromAssumptions(ce: ComputeEngine, symbol: string): {
58
+ lowerBound?: BoxedExpression;
59
+ lowerStrict?: boolean;
60
+ upperBound?: BoxedExpression;
61
+ upperStrict?: boolean;
62
+ };
@@ -1,4 +1,4 @@
1
- /* 0.32.1 */
1
+ /* 0.34.0 */
2
2
  import type { Expression, MathJsonSymbol } from '../../math-json/types';
3
3
  import type { Type, TypeString } from '../../common/type/types';
4
4
  import { BoxedType } from '../../common/type/boxed-type';
@@ -113,7 +113,7 @@ export declare abstract class _BoxedExpression implements BoxedExpression {
113
113
  canonical: CanonicalOptions;
114
114
  recursive?: boolean;
115
115
  }): BoxedExpression;
116
- solve(_vars?: Iterable<string> | string | BoxedExpression | Iterable<BoxedExpression>): null | ReadonlyArray<BoxedExpression>;
116
+ solve(_vars?: Iterable<string> | string | BoxedExpression | Iterable<BoxedExpression>): null | ReadonlyArray<BoxedExpression> | Record<string, BoxedExpression> | Array<Record<string, BoxedExpression>>;
117
117
  replace(_rules: BoxedRuleSet | Rule | Rule[]): null | BoxedExpression;
118
118
  has(_v: string | string[]): boolean;
119
119
  get description(): string[] | undefined;
@@ -135,12 +135,15 @@ export declare abstract class _BoxedExpression implements BoxedExpression {
135
135
  get isRational(): boolean | undefined;
136
136
  get isReal(): boolean | undefined;
137
137
  simplify(_options?: Partial<SimplifyOptions>): BoxedExpression;
138
+ trigSimplify(): BoxedExpression;
138
139
  expand(): BoxedExpression;
139
140
  evaluate(_options?: Partial<EvaluateOptions>): BoxedExpression;
140
141
  evaluateAsync(_options?: Partial<EvaluateOptions>): Promise<BoxedExpression>;
141
142
  N(): BoxedExpression;
142
143
  compile(options?: {
143
- to?: 'javascript' | 'wgsl' | 'python' | 'webassembly';
144
+ to?: string;
145
+ target?: any;
146
+ operators?: Partial<Record<MathJsonSymbol, [op: string, prec: number]>> | ((op: MathJsonSymbol) => [op: string, prec: number] | undefined);
144
147
  functions?: Record<MathJsonSymbol, string | ((...any: any[]) => any)>;
145
148
  vars?: Record<MathJsonSymbol, string>;
146
149
  imports?: ((...any: any[]) => any)[];
@@ -1,4 +1,4 @@
1
- /* 0.32.1 */
1
+ /* 0.34.0 */
2
2
  import { Decimal } from 'decimal.js';
3
3
  import type { BoxedExpression } from '../global-types';
4
4
  export declare function apply(expr: BoxedExpression, fn: (x: number) => number | Complex, bigFn?: (x: Decimal) => Decimal | Complex | number, complexFn?: (x: Complex) => number | Complex): BoxedExpression | undefined;
@@ -1,4 +1,4 @@
1
- /* 0.32.1 */
1
+ /* 0.34.0 */
2
2
  import { BoxedType } from '../../common/type/boxed-type';
3
3
  import type { BoxedExpression, ComputeEngine } from '../global-types';
4
4
  /**
@@ -1,4 +1,4 @@
1
- /* 0.32.1 */
1
+ /* 0.34.0 */
2
2
  /**
3
3
  * Canonical form of 'Divide' (and 'Rational')
4
4
  * - remove denominator of 1
@@ -1,4 +1,4 @@
1
- /* 0.32.1 */
1
+ /* 0.34.0 */
2
2
  import type { Rational } from '../numerics/types';
3
3
  export declare function asRadical(expr: BoxedExpression): Rational | null;
4
4
  /**
@@ -1,4 +1,4 @@
1
- /* 0.32.1 */
1
+ /* 0.34.0 */
2
2
  export type AsciiMathSerializer = (expr: BoxedExpression, precedence?: number) => string;
3
3
  export type AsciiMathOptions = {
4
4
  symbols: Record<string, string>;
@@ -1,4 +1,4 @@
1
- /* 0.32.1 */
1
+ /* 0.34.0 */
2
2
  import { MathJsonSymbol } from '../../math-json/types';
3
3
  import { NumericValue } from '../numeric-value/types';
4
4
  /**
@@ -1,4 +1,4 @@
1
- /* 0.32.1 */
1
+ /* 0.34.0 */
2
2
  import { _BoxedExpression } from './abstract-boxed-expression';
3
3
  import { BoxedType } from '../../common/type/boxed-type';
4
4
  import { DictionaryValue, Expression } from '../../math-json/types';
@@ -1,4 +1,4 @@
1
- /* 0.32.1 */
1
+ /* 0.34.0 */
2
2
  import type { SimplifyOptions, ReplaceOptions, PatternMatchOptions, BoxedExpression, BoxedBaseDefinition, BoxedOperatorDefinition, BoxedRuleSet, BoxedSubstitution, CanonicalOptions, EvaluateOptions, ComputeEngine, Metadata, Rule, Sign, Substitution, Scope, BoxedValueDefinition } from '../global-types';
3
3
  import { Type } from '../../common/type/types';
4
4
  import { BoxedType } from '../../common/type/boxed-type';
@@ -114,11 +114,15 @@ export declare class BoxedFunction extends _BoxedExpression {
114
114
  get isFunctionExpression(): boolean;
115
115
  /** The type of the value of the function */
116
116
  get type(): BoxedType;
117
+ /** The shape of the tensor (dimensions), derived from the type */
118
+ get shape(): number[];
119
+ /** The rank of the tensor (number of dimensions), derived from the type */
120
+ get rank(): number;
117
121
  simplify(options?: Partial<SimplifyOptions>): BoxedExpression;
118
122
  evaluate(options?: Partial<EvaluateOptions>): BoxedExpression;
119
123
  evaluateAsync(options?: Partial<EvaluateOptions>): Promise<BoxedExpression>;
120
124
  N(): BoxedExpression;
121
- solve(vars?: Iterable<string> | string | BoxedExpression | Iterable<BoxedExpression>): null | ReadonlyArray<BoxedExpression>;
125
+ solve(vars?: Iterable<string> | string | BoxedExpression | Iterable<BoxedExpression>): null | ReadonlyArray<BoxedExpression> | Record<string, BoxedExpression> | Array<Record<string, BoxedExpression>>;
122
126
  get isCollection(): boolean;
123
127
  get isIndexedCollection(): boolean;
124
128
  get isLazyCollection(): boolean;
@@ -1,4 +1,4 @@
1
- /* 0.32.1 */
1
+ /* 0.34.0 */
2
2
  import { Decimal } from 'decimal.js';
3
3
  import type { Expression, MathJsonNumberObject } from '../../math-json';
4
4
  import type { Rational, SmallInteger } from '../numerics/types';
@@ -1,4 +1,4 @@
1
- /* 0.32.1 */
1
+ /* 0.34.0 */
2
2
  import { BoxedType } from '../../common/type/boxed-type';
3
3
  import type { OperatorDefinition, BoxedExpression, BoxedOperatorDefinition, CollectionHandlers, CompiledExpression, EvaluateOptions, ComputeEngine, Sign } from '../global-types';
4
4
  export declare class _BoxedOperatorDefinition implements BoxedOperatorDefinition {
@@ -1,4 +1,4 @@
1
- /* 0.32.1 */
1
+ /* 0.34.0 */
2
2
  * # Pattern Matching Wildcards
3
3
  *
4
4
  * Patterns can contain wildcards that match parts of expressions. There are
@@ -1,4 +1,4 @@
1
- /* 0.32.1 */
1
+ /* 0.34.0 */
2
2
  import { _BoxedExpression } from './abstract-boxed-expression';
3
3
  import { BoxedType } from '../../common/type/boxed-type';
4
4
  /**
@@ -1,4 +1,4 @@
1
- /* 0.32.1 */
1
+ /* 0.34.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';
@@ -128,6 +128,10 @@ export declare class BoxedSymbol extends _BoxedExpression {
128
128
  set type(t: Type | TypeString | BoxedType);
129
129
  has(x: MathJsonSymbol | MathJsonSymbol[]): boolean;
130
130
  match(pattern: BoxedExpression, options?: PatternMatchOptions): BoxedSubstitution | null;
131
+ /** The shape of the tensor (dimensions), derived from the type */
132
+ get shape(): number[];
133
+ /** The rank of the tensor (number of dimensions), derived from the type */
134
+ get rank(): number;
131
135
  get sgn(): Sign | undefined;
132
136
  get isOdd(): boolean | undefined;
133
137
  get isEven(): boolean | undefined;
@@ -1,4 +1,4 @@
1
- /* 0.32.1 */
1
+ /* 0.34.0 */
2
2
  import type { ComputeEngine, TensorDataType, Metadata, BoxedBaseDefinition, BoxedOperatorDefinition, BoxedSubstitution, EvaluateOptions, BoxedExpression, SimplifyOptions, PatternMatchOptions, Tensor } from '../global-types';
3
3
  import { BoxedType } from '../../common/type/boxed-type';
4
4
  import { NumericValue } from '../numeric-value/types';
@@ -75,6 +75,7 @@ export declare class BoxedTensor<T extends TensorDataType> extends _BoxedExpress
75
75
  evaluate(options?: Partial<EvaluateOptions>): BoxedExpression;
76
76
  simplify(options?: Partial<SimplifyOptions>): BoxedExpression;
77
77
  N(): BoxedExpression;
78
+ solve(vars?: Iterable<string> | string | BoxedExpression | Iterable<BoxedExpression>): null | ReadonlyArray<BoxedExpression> | Record<string, BoxedExpression> | Array<Record<string, BoxedExpression>>;
78
79
  }
79
80
  export declare function isBoxedTensor(val: unknown): val is BoxedTensor<any>;
80
81
  export declare function expressionTensorInfo(operator: string, rows: ReadonlyArray<BoxedExpression>): {
@@ -1,4 +1,4 @@
1
- /* 0.32.1 */
1
+ /* 0.34.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';
@@ -35,6 +35,10 @@ export declare class _BoxedValueDefinition implements BoxedValueDefinition, Conf
35
35
  neq?: (a: BoxedExpression) => boolean | undefined;
36
36
  cmp?: (a: BoxedExpression) => '=' | '>' | '<' | undefined;
37
37
  collection?: CollectionHandlers;
38
+ subscriptEvaluate?: (subscript: BoxedExpression, options: {
39
+ engine: ComputeEngine;
40
+ numericApproximation?: boolean;
41
+ }) => BoxedExpression | undefined;
38
42
  constructor(ce: ComputeEngine, name: string, def: Partial<ValueDefinition>);
39
43
  /** For debugging */
40
44
  toJSON(): any;
@@ -1,4 +1,4 @@
1
- /* 0.32.1 */
1
+ /* 0.34.0 */
2
2
  value: T | null;
3
3
  generation: number | undefined;
4
4
  };
@@ -1,4 +1,4 @@
1
- /* 0.32.1 */
1
+ /* 0.34.0 */
2
2
  /**
3
3
  * Ensure all expressions in the array are in canonical form
4
4
  */
@@ -1,2 +1,2 @@
1
- /* 0.32.1 */
1
+ /* 0.34.0 */
2
2
  export declare function canonicalForm(expr: BoxedExpression, forms: CanonicalOptions, scope?: Scope): BoxedExpression;
@@ -1,4 +1,4 @@
1
- /* 0.32.1 */
1
+ /* 0.34.0 */
2
2
  /**
3
3
  * Structural equality of boxed expressions.
4
4
  */
@@ -1,4 +1,4 @@
1
- /* 0.32.1 */
1
+ /* 0.34.0 */
2
2
  export declare function expandProducts(ce: ComputeEngine, ops: ReadonlyArray<BoxedExpression>): BoxedExpression | null;
3
3
  export declare function choose(n: number, k: number): number;
4
4
  /** Attempt to transform the expression (h, ops) into a sum */
@@ -1,4 +1,4 @@
1
- /* 0.32.1 */
1
+ /* 0.34.0 */
2
2
  export declare class ExpressionMap<U> implements ExpressionMapInterface<U> {
3
3
  readonly _items: Map<BoxedExpression, U>;
4
4
  constructor(source?: ExpressionMapInterface<U> | readonly (readonly [BoxedExpression, U])[]);