@cortex-js/compute-engine 0.20.2 → 0.22.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 (107) hide show
  1. package/README.md +6 -3
  2. package/dist/compute-engine.esm.js +6744 -4603
  3. package/dist/compute-engine.js +6744 -4603
  4. package/dist/compute-engine.min.esm.js +10 -10
  5. package/dist/compute-engine.min.js +10 -10
  6. package/dist/math-json.esm.js +2 -2
  7. package/dist/math-json.js +2 -2
  8. package/dist/math-json.min.esm.js +2 -2
  9. package/dist/math-json.min.js +2 -2
  10. package/dist/types/common/ansi-codes.d.ts +1 -1
  11. package/dist/types/common/grapheme-splitter.d.ts +1 -1
  12. package/dist/types/common/signals.d.ts +1 -1
  13. package/dist/types/common/utils.d.ts +1 -1
  14. package/dist/types/compute-engine/assume.d.ts +1 -1
  15. package/dist/types/compute-engine/boxed-expression/abstract-boxed-expression.d.ts +4 -1
  16. package/dist/types/compute-engine/boxed-expression/box.d.ts +3 -3
  17. package/dist/types/compute-engine/boxed-expression/boxed-dictionary.d.ts +1 -1
  18. package/dist/types/compute-engine/boxed-expression/boxed-domain.d.ts +1 -1
  19. package/dist/types/compute-engine/boxed-expression/boxed-function-definition.d.ts +1 -1
  20. package/dist/types/compute-engine/boxed-expression/boxed-function.d.ts +11 -3
  21. package/dist/types/compute-engine/boxed-expression/boxed-number.d.ts +1 -1
  22. package/dist/types/compute-engine/boxed-expression/boxed-patterns.d.ts +1 -1
  23. package/dist/types/compute-engine/boxed-expression/boxed-string.d.ts +1 -1
  24. package/dist/types/compute-engine/boxed-expression/boxed-symbol-definition.d.ts +1 -1
  25. package/dist/types/compute-engine/boxed-expression/boxed-symbol.d.ts +2 -1
  26. package/dist/types/compute-engine/boxed-expression/boxed-tensor.d.ts +69 -0
  27. package/dist/types/compute-engine/boxed-expression/canonical.d.ts +2 -0
  28. package/dist/types/compute-engine/boxed-expression/expression-map.d.ts +1 -1
  29. package/dist/types/compute-engine/boxed-expression/order.d.ts +8 -2
  30. package/dist/types/compute-engine/boxed-expression/serialize.d.ts +1 -1
  31. package/dist/types/compute-engine/boxed-expression/utils.d.ts +1 -1
  32. package/dist/types/compute-engine/boxed-expression/validate.d.ts +1 -1
  33. package/dist/types/compute-engine/collection-utils.d.ts +1 -1
  34. package/dist/types/compute-engine/compile.d.ts +1 -1
  35. package/dist/types/compute-engine/compute-engine.d.ts +270 -33
  36. package/dist/types/compute-engine/cost-function.d.ts +1 -1
  37. package/dist/types/compute-engine/domain-utils.d.ts +1 -1
  38. package/dist/types/compute-engine/function-utils.d.ts +1 -1
  39. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-algebra.d.ts +1 -1
  40. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-arithmetic.d.ts +1 -1
  41. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-calculus.d.ts +1 -1
  42. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-complex.d.ts +1 -1
  43. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-core.d.ts +2 -1
  44. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-linear-algebra.d.ts +1 -1
  45. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-logic.d.ts +1 -1
  46. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-other.d.ts +1 -1
  47. package/dist/types/compute-engine/latex-syntax/dictionary/{definitions-inequalities.d.ts → definitions-relational-operators.d.ts} +1 -1
  48. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-sets.d.ts +1 -1
  49. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-statistics.d.ts +1 -1
  50. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-symbols.d.ts +1 -1
  51. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-trigonometry.d.ts +1 -1
  52. package/dist/types/compute-engine/latex-syntax/dictionary/definitions.d.ts +1 -1
  53. package/dist/types/compute-engine/latex-syntax/latex-syntax.d.ts +1 -1
  54. package/dist/types/compute-engine/latex-syntax/parse-identifier.d.ts +1 -1
  55. package/dist/types/compute-engine/latex-syntax/parse.d.ts +2 -2
  56. package/dist/types/compute-engine/latex-syntax/public.d.ts +5 -2
  57. package/dist/types/compute-engine/latex-syntax/serialize-number.d.ts +1 -1
  58. package/dist/types/compute-engine/latex-syntax/serializer-style.d.ts +1 -1
  59. package/dist/types/compute-engine/latex-syntax/serializer.d.ts +1 -1
  60. package/dist/types/compute-engine/latex-syntax/tokenizer.d.ts +1 -1
  61. package/dist/types/compute-engine/library/arithmetic-add.d.ts +3 -3
  62. package/dist/types/compute-engine/library/arithmetic-divide.d.ts +1 -1
  63. package/dist/types/compute-engine/library/arithmetic-multiply.d.ts +3 -3
  64. package/dist/types/compute-engine/library/arithmetic-power.d.ts +1 -1
  65. package/dist/types/compute-engine/library/arithmetic.d.ts +1 -1
  66. package/dist/types/compute-engine/library/calculus.d.ts +1 -1
  67. package/dist/types/compute-engine/library/collections.d.ts +1 -1
  68. package/dist/types/compute-engine/library/complex.d.ts +1 -1
  69. package/dist/types/compute-engine/library/control-structures.d.ts +1 -1
  70. package/dist/types/compute-engine/library/core.d.ts +2 -1
  71. package/dist/types/compute-engine/library/domains.d.ts +1 -1
  72. package/dist/types/compute-engine/library/library.d.ts +1 -1
  73. package/dist/types/compute-engine/library/linear-algebra.d.ts +1 -1
  74. package/dist/types/compute-engine/library/logic.d.ts +1 -1
  75. package/dist/types/compute-engine/library/polynomials.d.ts +1 -1
  76. package/dist/types/compute-engine/library/random-expression.d.ts +1 -1
  77. package/dist/types/compute-engine/library/relational-operator.d.ts +1 -1
  78. package/dist/types/compute-engine/library/sets.d.ts +1 -1
  79. package/dist/types/compute-engine/library/statistics.d.ts +1 -1
  80. package/dist/types/compute-engine/library/trigonometry.d.ts +1 -1
  81. package/dist/types/compute-engine/library/utils.d.ts +5 -5
  82. package/dist/types/compute-engine/numerics/numeric-bigint.d.ts +1 -1
  83. package/dist/types/compute-engine/numerics/numeric-bignum.d.ts +1 -1
  84. package/dist/types/compute-engine/numerics/numeric-complex.d.ts +1 -1
  85. package/dist/types/compute-engine/numerics/numeric.d.ts +3 -3
  86. package/dist/types/compute-engine/numerics/primes.d.ts +1 -1
  87. package/dist/types/compute-engine/numerics/rationals.d.ts +1 -1
  88. package/dist/types/compute-engine/numerics/richardson.d.ts +1 -1
  89. package/dist/types/compute-engine/public.d.ts +68 -286
  90. package/dist/types/compute-engine/rules.d.ts +9 -13
  91. package/dist/types/compute-engine/simplify-rules.d.ts +1 -1
  92. package/dist/types/compute-engine/solve.d.ts +2 -1
  93. package/dist/types/compute-engine/symbolic/derivative.d.ts +1 -1
  94. package/dist/types/compute-engine/symbolic/expand.d.ts +1 -1
  95. package/dist/types/compute-engine/symbolic/flatten.d.ts +2 -1
  96. package/dist/types/compute-engine/symbolic/negate.d.ts +1 -1
  97. package/dist/types/compute-engine/symbolic/polynomials.d.ts +1 -1
  98. package/dist/types/compute-engine/symbolic/product.d.ts +1 -1
  99. package/dist/types/compute-engine/symbolic/sum.d.ts +1 -1
  100. package/dist/types/compute-engine/symbolic/tensor-fields.d.ts +168 -0
  101. package/dist/types/compute-engine/symbolic/tensors.d.ts +103 -0
  102. package/dist/types/compute-engine/symbolic/utils.d.ts +1 -1
  103. package/dist/types/compute-engine.d.ts +2 -2
  104. package/dist/types/math-json/math-json-format.d.ts +1 -1
  105. package/dist/types/math-json/utils.d.ts +1 -1
  106. package/dist/types/math-json.d.ts +2 -2
  107. package/package.json +2 -1
@@ -1,4 +1,4 @@
1
- /** CortexJS Compute Engine 0.20.2 */
1
+ /** CortexJS Compute Engine 0.22.0 */
2
2
 
3
3
  // src/math-json/utils.ts
4
4
  function isSymbolObject(expr) {
@@ -239,7 +239,7 @@ function mapArgs(expr, fn) {
239
239
  }
240
240
 
241
241
  // src/math-json.ts
242
- var version = "0.20.2";
242
+ var version = "0.22.0";
243
243
  export {
244
244
  applyRecursively,
245
245
  dictionary as getDictionary,
package/dist/math-json.js CHANGED
@@ -1,4 +1,4 @@
1
- /** CortexJS MathJSON 0.20.2 */
1
+ /** CortexJS MathJSON 0.22.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;
@@ -277,7 +277,7 @@ var MathJson = (() => {
277
277
  }
278
278
 
279
279
  // src/math-json.ts
280
- var version = "0.20.2";
280
+ var version = "0.22.0";
281
281
  return __toCommonJS(math_json_exports);
282
282
  })();
283
283
  Object.assign(exports, MathJson); Object.defineProperty(exports, '__esModule', { value: true });}));
@@ -1,4 +1,4 @@
1
- /** CortexJS Compute Engine 0.20.2 */
1
+ /** CortexJS Compute Engine 0.22.0 */
2
2
 
3
3
  // src/math-json/utils.ts
4
4
  function isSymbolObject(expr) {
@@ -239,7 +239,7 @@ function mapArgs(expr, fn) {
239
239
  }
240
240
 
241
241
  // src/math-json.ts
242
- var version = "0.20.2";
242
+ var version = "0.22.0";
243
243
  export {
244
244
  applyRecursively,
245
245
  dictionary as getDictionary,
@@ -1,4 +1,4 @@
1
- /** CortexJS MathJSON 0.20.2 */
1
+ /** CortexJS MathJSON 0.22.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 T=Object.getOwnPropertyDescriptor;var v=Object.getOwnPropertyNames;var k=Object.prototype.hasOwnProperty;var D=(n,t)=>{for(var e in t)f(n,e,{get:t[e],enumerable:!0})},R=(n,t,e,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of v(t))!k.call(n,r)&&r!==e&&f(n,r,{get:()=>t[r],enumerable:!(i=T(t,r))||i.enumerable});return n};var _=n=>R(f({},"__esModule",{value:!0}),n);var z={};D(z,{applyRecursively:()=>J,getDictionary:()=>y,getStringValue:()=>m,head:()=>o,headName:()=>I,isDictionaryObject:()=>M,isFunctionObject:()=>u,isStringObject:()=>S,isSymbolObject:()=>d,mapArgs:()=>$,nops:()=>E,op:()=>s,symbol:()=>A,version:()=>X});function d(n){return n!==null&&typeof n=="object"&&"sym"in n}function S(n){return n!==null&&typeof n=="object"&&"str"in n}function u(n){return n!==null&&typeof n=="object"&&"fn"in n}function M(n){return n!==null&&typeof n=="object"&&"dict"in n}var c;function N(n){if(!c){let e=`^[${["Zyyy","Zinh","Arab","Armn","Beng","Bopo","Cyrl","Deva","Ethi","Geor","Grek","Gujr","Guru","Hang","Hani","Hebr","Hira","Kana","Knda","Khmr","Laoo","Latn","Mlym","Mymr","Orya","Sinh","Taml","Telu","Thaa","Thai","Tibt"].map(i=>`\\p{Script=${i}}`).join("")}]*$`;c=new RegExp(e,"u")}return c.test(n)}function a(n){return/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(n)||O.test(n)?!0:N(n)?/^[\p{XIDS}_]\p{XIDC}*$/u.test(n):!1}var F="\\u{FE0F}",V="\\u{20E3}",L="\\u{200D}",P="\\p{RI}\\p{RI}",w="(?:[\\u{E0020}-\\u{E007E}]+\\u{E007F})",b=`(?:\\p{EMod}|${F}${V}?|${w})`,C="(?:(?=\\P{XIDC})\\p{Emoji})",h=`(?:${C}${b}*|\\p{Emoji}${b}+|${P})`,j=`(?:${h})(${L}${h})*`,G=new RegExp(`(?:${j})+`,"u"),O=new RegExp(`^(?:${j})+$`,"u");function q(n){return typeof n!="string"?"not-a-string":n===""?"empty-string":n.normalize()!==n?"expected-nfc":/[\u200E\u200F\u2066-\u2069\u202A-\u202E]/.test(n)?"unexpected-bidi-marker":O.test(n)?"valid":/\p{XIDC}/u.test(n)&&G.test(n)?"unexpected-mixed-emoji":N(n)?a(n)?"valid":a(n[0])?"invalid-char":"invalid-first-char":"unexpected-script"}function m(n){return n==null?null:typeof n=="object"&&"str"in n?n.str:typeof n!="string"||n.length<2||n[0]!=="'"||n[n.length-1]!=="'"?null:n.substring(1,n.length-1)}function o(n){return n==null?null:Array.isArray(n)?typeof n[0]=="string"&&!a(n[0])?(console.error(`Invalid identifier "${n[0]}": ${q(n[0])}`),null):n[0]:u(n)?n.fn[0]:null}function I(n){let t=o(n);return typeof t=="string"?t:""}function H(n){return n==null?null:Array.isArray(n)?n.slice(1):u(n)?n.fn.slice(1):null}function s(n,t){return n==null?null:Array.isArray(n)?n[t]??null:u(n)?n.fn[t]??null:null}function K(n){return s(n,1)}function Z(n){return s(n,2)}function E(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 A(n){if(n==null||typeof n=="string"&&(/^[+\-\.0-9]/.test(n)||n.length>=2&&n[0]==="'"&&n[n.length-1]==="'"))return null;let t=d(n)?n.sym:n;return typeof t!="string"?null:t}function p(n){let t=o(n);if(t==="KeyValuePair"||t==="Tuple"||t==="Pair"){let e=m(K(n));return e?[e,Z(n)??"Nothing"]:null}return null}function y(n){if(n===null)return null;if(typeof n=="object"&&"dict"in n)return n.dict;let t=p(n);if(t)return{[t[0]]:t[1]};if(o(n)==="Dictionary"){let i={};for(let r=1;r<E(n);r++){let l=p(s(n,r));l&&(i[l[0]]=l[1])}return i}return null}function J(n,t){let e=o(n);if(e!==null)return[t(e),...(H(n)??[]).map(t)];let i=y(n);if(i!==null){let r=Object.keys(i),l={};for(let g of r)l[g]=t(i[g]);return{dict:l}}return t(n)}function $(n,t){let e=null;if(Array.isArray(n)&&(e=n),u(n)&&(e=n.fn),e===null)return[];let i=1,r=[];for(;i<e.length;)r.push(t(e[i])),i+=1;return r}var X="0.20.2";return _(z);})();
3
+ var MathJson=(()=>{var f=Object.defineProperty;var T=Object.getOwnPropertyDescriptor;var v=Object.getOwnPropertyNames;var k=Object.prototype.hasOwnProperty;var D=(n,t)=>{for(var e in t)f(n,e,{get:t[e],enumerable:!0})},R=(n,t,e,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of v(t))!k.call(n,r)&&r!==e&&f(n,r,{get:()=>t[r],enumerable:!(i=T(t,r))||i.enumerable});return n};var _=n=>R(f({},"__esModule",{value:!0}),n);var z={};D(z,{applyRecursively:()=>J,getDictionary:()=>y,getStringValue:()=>m,head:()=>o,headName:()=>I,isDictionaryObject:()=>M,isFunctionObject:()=>u,isStringObject:()=>S,isSymbolObject:()=>d,mapArgs:()=>$,nops:()=>E,op:()=>s,symbol:()=>A,version:()=>X});function d(n){return n!==null&&typeof n=="object"&&"sym"in n}function S(n){return n!==null&&typeof n=="object"&&"str"in n}function u(n){return n!==null&&typeof n=="object"&&"fn"in n}function M(n){return n!==null&&typeof n=="object"&&"dict"in n}var c;function N(n){if(!c){let e=`^[${["Zyyy","Zinh","Arab","Armn","Beng","Bopo","Cyrl","Deva","Ethi","Geor","Grek","Gujr","Guru","Hang","Hani","Hebr","Hira","Kana","Knda","Khmr","Laoo","Latn","Mlym","Mymr","Orya","Sinh","Taml","Telu","Thaa","Thai","Tibt"].map(i=>`\\p{Script=${i}}`).join("")}]*$`;c=new RegExp(e,"u")}return c.test(n)}function a(n){return/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(n)||O.test(n)?!0:N(n)?/^[\p{XIDS}_]\p{XIDC}*$/u.test(n):!1}var F="\\u{FE0F}",V="\\u{20E3}",L="\\u{200D}",P="\\p{RI}\\p{RI}",w="(?:[\\u{E0020}-\\u{E007E}]+\\u{E007F})",b=`(?:\\p{EMod}|${F}${V}?|${w})`,C="(?:(?=\\P{XIDC})\\p{Emoji})",h=`(?:${C}${b}*|\\p{Emoji}${b}+|${P})`,j=`(?:${h})(${L}${h})*`,G=new RegExp(`(?:${j})+`,"u"),O=new RegExp(`^(?:${j})+$`,"u");function q(n){return typeof n!="string"?"not-a-string":n===""?"empty-string":n.normalize()!==n?"expected-nfc":/[\u200E\u200F\u2066-\u2069\u202A-\u202E]/.test(n)?"unexpected-bidi-marker":O.test(n)?"valid":/\p{XIDC}/u.test(n)&&G.test(n)?"unexpected-mixed-emoji":N(n)?a(n)?"valid":a(n[0])?"invalid-char":"invalid-first-char":"unexpected-script"}function m(n){return n==null?null:typeof n=="object"&&"str"in n?n.str:typeof n!="string"||n.length<2||n[0]!=="'"||n[n.length-1]!=="'"?null:n.substring(1,n.length-1)}function o(n){return n==null?null:Array.isArray(n)?typeof n[0]=="string"&&!a(n[0])?(console.error(`Invalid identifier "${n[0]}": ${q(n[0])}`),null):n[0]:u(n)?n.fn[0]:null}function I(n){let t=o(n);return typeof t=="string"?t:""}function H(n){return n==null?null:Array.isArray(n)?n.slice(1):u(n)?n.fn.slice(1):null}function s(n,t){return n==null?null:Array.isArray(n)?n[t]??null:u(n)?n.fn[t]??null:null}function K(n){return s(n,1)}function Z(n){return s(n,2)}function E(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 A(n){if(n==null||typeof n=="string"&&(/^[+\-\.0-9]/.test(n)||n.length>=2&&n[0]==="'"&&n[n.length-1]==="'"))return null;let t=d(n)?n.sym:n;return typeof t!="string"?null:t}function p(n){let t=o(n);if(t==="KeyValuePair"||t==="Tuple"||t==="Pair"){let e=m(K(n));return e?[e,Z(n)??"Nothing"]:null}return null}function y(n){if(n===null)return null;if(typeof n=="object"&&"dict"in n)return n.dict;let t=p(n);if(t)return{[t[0]]:t[1]};if(o(n)==="Dictionary"){let i={};for(let r=1;r<E(n);r++){let l=p(s(n,r));l&&(i[l[0]]=l[1])}return i}return null}function J(n,t){let e=o(n);if(e!==null)return[t(e),...(H(n)??[]).map(t)];let i=y(n);if(i!==null){let r=Object.keys(i),l={};for(let g of r)l[g]=t(i[g]);return{dict:l}}return t(n)}function $(n,t){let e=null;if(Array.isArray(n)&&(e=n),u(n)&&(e=n.fn),e===null)return[];let i=1,r=[];for(;i<e.length;)r.push(t(e[i])),i+=1;return r}var X="0.22.0";return _(z);})();
4
4
  Object.assign(exports, MathJson); Object.defineProperty(exports, '__esModule', { value: true });}));
@@ -1,4 +1,4 @@
1
- /* 0.20.2 */
1
+ /* 0.22.0 */
2
2
  export declare const BLACK = "\u001B[30;1m${s}";
3
3
  export declare const GREY = "\u001B[30;1m${s}";
4
4
  export declare const GREEN = "\u001B[32;1m";
@@ -1,4 +1,4 @@
1
- /* 0.20.2 */
1
+ /* 0.22.0 */
2
2
  /**
3
3
  * Return a string or an array of graphemes.
4
4
  *
@@ -1,4 +1,4 @@
1
- /* 0.20.2 */
1
+ /* 0.22.0 */
2
2
  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');
3
3
  export type SignalMessage = SignalCode | [SignalCode, ...any[]];
4
4
  export type SignalOrigin = {
@@ -1 +1 @@
1
- /* 0.20.2 */
1
+ /* 0.22.0 */
@@ -1,4 +1,4 @@
1
- /* 0.20.2 */
1
+ /* 0.22.0 */
2
2
  /**
3
3
  * Add an assumption, in the form of a predicate, for example:
4
4
  *
@@ -1,4 +1,4 @@
1
- /* 0.20.2 */
1
+ /* 0.22.0 */
2
2
  import type { Decimal } from 'decimal.js';
3
3
  import { Expression } from '../../math-json/math-json-format';
4
4
  import { BoxedExpression, BoxedFunctionDefinition, BoxedRuleSet, BoxedSymbolDefinition, BoxedDomain, EvaluateOptions, IComputeEngine, LatexString, Metadata, NOptions, PatternMatchOptions, SimplifyOptions, Substitution, RuntimeScope, DomainCompatibility, DomainLiteral, BoxedBaseDefinition, Rational, BoxedSubstitution } from '../public';
@@ -28,6 +28,7 @@ export declare abstract class _BoxedExpression implements BoxedExpression {
28
28
  valueOf(): number | any[] | string | boolean;
29
29
  /** Object.toString() */
30
30
  toString(): string;
31
+ print(): void;
31
32
  [Symbol.toPrimitive](hint: 'number' | 'string' | 'default'): number | string | null;
32
33
  /** Called by `JSON.stringify()` when serializing to json */
33
34
  toJSON(): Expression;
@@ -76,6 +77,8 @@ export declare abstract class _BoxedExpression implements BoxedExpression {
76
77
  get isPrime(): boolean | undefined;
77
78
  get isComposite(): boolean | undefined;
78
79
  get numericValue(): number | Decimal | Complex | Rational | null;
80
+ get shape(): number[];
81
+ get rank(): number;
79
82
  get sgn(): -1 | 0 | 1 | undefined | null;
80
83
  isLess(_rhs: BoxedExpression): boolean | undefined;
81
84
  isLessEqual(_rhs: BoxedExpression): boolean | undefined;
@@ -1,6 +1,6 @@
1
- /* 0.20.2 */
1
+ /* 0.22.0 */
2
2
  import { Decimal } from 'decimal.js';
3
- import { IComputeEngine, SemiBoxedExpression, BoxedExpression, Metadata, Rational } from '../public';
3
+ import { IComputeEngine, SemiBoxedExpression, BoxedExpression, Metadata, Rational, CanonicalForm } from '../public';
4
4
  import { MathJsonNumber } from '../../math-json/math-json-format';
5
5
  /**
6
6
  * ## THEORY OF OPERATIONS
@@ -101,5 +101,5 @@ export declare function boxFunction(ce: IComputeEngine, head: string, ops: SemiB
101
101
  *
102
102
  */
103
103
  export declare function box(ce: IComputeEngine, expr: null | undefined | Decimal | Complex | Rational | SemiBoxedExpression, options?: {
104
- canonical?: boolean;
104
+ canonical?: boolean | CanonicalForm | CanonicalForm[];
105
105
  }): BoxedExpression;
@@ -1,4 +1,4 @@
1
- /* 0.20.2 */
1
+ /* 0.22.0 */
2
2
  import { BoxedExpression, IComputeEngine, EvaluateOptions, NOptions, BoxedRuleSet, SemiBoxedExpression, SimplifyOptions, ReplaceOptions, Substitution, Metadata, PatternMatchOptions, BoxedDomain, BoxedSubstitution } from '../public';
3
3
  import { _BoxedExpression } from './abstract-boxed-expression';
4
4
  /**
@@ -1,4 +1,4 @@
1
- /* 0.20.2 */
1
+ /* 0.22.0 */
2
2
  import { BoxedDomain, BoxedExpression, BoxedSubstitution, DomainCompatibility, DomainConstructor, DomainExpression, DomainLiteral, IComputeEngine, Metadata, PatternMatchOptions } from '../public';
3
3
  import { _BoxedExpression } from './abstract-boxed-expression';
4
4
  /**
@@ -1,4 +1,4 @@
1
- /* 0.20.2 */
1
+ /* 0.22.0 */
2
2
  export declare class _BoxedFunctionDefinition implements BoxedFunctionDefinition {
3
3
  engine: IComputeEngine;
4
4
  scope: RuntimeScope;
@@ -1,8 +1,17 @@
1
- /* 0.20.2 */
1
+ /* 0.22.0 */
2
2
  import { Expression } from '../../math-json/math-json-format';
3
3
  import { BoxedExpression, BoxedFunctionDefinition, IComputeEngine, NOptions, BoxedRuleSet, SemiBoxedExpression, SimplifyOptions, Substitution, ReplaceOptions, Metadata, PatternMatchOptions, BoxedDomain, RuntimeScope, BoxedSubstitution, EvaluateOptions, BoxedBaseDefinition, Hold } from '../public';
4
4
  /**
5
- * BoxedFunction
5
+ * A boxed function represent an expression that can be
6
+ * represented by a function call.
7
+ *
8
+ * It is composed of a head (the name of the function) and
9
+ * a list of arguments.
10
+ *
11
+ * It has a definition associated with it, based
12
+ * on the head. The definition contains the signature of the function,
13
+ * and the implementation of the function.
14
+ *
6
15
  */
7
16
  export declare class BoxedFunction extends _BoxedExpression {
8
17
  private readonly _head;
@@ -12,7 +21,6 @@ export declare class BoxedFunction extends _BoxedExpression {
12
21
  private _def;
13
22
  private _isPure;
14
23
  private _result;
15
- private _numericValue;
16
24
  private _hash;
17
25
  constructor(ce: IComputeEngine, head: string | BoxedExpression, ops: BoxedExpression[], options?: {
18
26
  metadata?: Metadata;
@@ -1,4 +1,4 @@
1
- /* 0.20.2 */
1
+ /* 0.22.0 */
2
2
  import { Decimal } from 'decimal.js';
3
3
  import { Expression } from '../../math-json/math-json-format';
4
4
  import { BoxedExpression, BoxedDomain, IComputeEngine, Metadata, NOptions, PatternMatchOptions, Rational, SimplifyOptions, BoxedSubstitution, EvaluateOptions } from '../public';
@@ -1,4 +1,4 @@
1
- /* 0.20.2 */
1
+ /* 0.22.0 */
2
2
  import { _BoxedExpression } from './abstract-boxed-expression';
3
3
  import { BoxedExpression, BoxedSubstitution, BoxedDomain, IComputeEngine, LatexString, Metadata, Pattern, PatternMatchOptions, SemiBoxedExpression, Substitution } from '../public';
4
4
  export declare class BoxedPattern extends _BoxedExpression implements Pattern {
@@ -1,4 +1,4 @@
1
- /* 0.20.2 */
1
+ /* 0.22.0 */
2
2
  import { _BoxedExpression } from './abstract-boxed-expression';
3
3
  import { BoxedExpression, BoxedDomain, IComputeEngine, Metadata, PatternMatchOptions, BoxedSubstitution } from '../public';
4
4
  /**
@@ -1,4 +1,4 @@
1
- /* 0.20.2 */
1
+ /* 0.22.0 */
2
2
  /**
3
3
  * ## THEORY OF OPERATIONS
4
4
  *
@@ -1,4 +1,4 @@
1
- /* 0.20.2 */
1
+ /* 0.22.0 */
2
2
  import { Decimal } from 'decimal.js';
3
3
  import { Expression } from '../../math-json/math-json-format';
4
4
  import { _BoxedExpression } from './abstract-boxed-expression';
@@ -39,6 +39,7 @@ export declare class BoxedSymbol extends _BoxedExpression {
39
39
  get isCanonical(): boolean;
40
40
  set isCanonical(val: boolean);
41
41
  get canonical(): BoxedExpression;
42
+ solve(vars: string[]): null | BoxedExpression[];
42
43
  get complexity(): number;
43
44
  get head(): string;
44
45
  get symbol(): string;
@@ -0,0 +1,69 @@
1
+ /* 0.22.0 */
2
+ import { BoxedExpression, IComputeEngine, EvaluateOptions, NOptions, SimplifyOptions, Metadata, BoxedDomain, BoxedSubstitution, PatternMatchOptions, BoxedBaseDefinition, BoxedFunctionDefinition } from '../public';
3
+ import { DataTypeMap, TensorDataType } from '../symbolic/tensor-fields';
4
+ import { AbstractTensor, TensorData } from '../symbolic/tensors';
5
+ import { _BoxedExpression } from './abstract-boxed-expression';
6
+ /**
7
+ * A boxed tensor represents an expression that can be
8
+ * represented by a tensor. This could be a vector, matrix
9
+ * or multi-dimensional array.
10
+ *
11
+ * The object can be created either from a tensor or from
12
+ * an expression that can be represented as a tensor.
13
+ *
14
+ * The counterpart (expression if input is tensor, or tensor
15
+ * if input is expression) is created lazily.
16
+ *
17
+ */
18
+ export declare class BoxedTensor extends _BoxedExpression {
19
+ private readonly _head?;
20
+ private readonly _ops?;
21
+ private _tensor;
22
+ private _expression;
23
+ constructor(ce: IComputeEngine, input: {
24
+ head?: string;
25
+ ops: BoxedExpression[];
26
+ } | AbstractTensor<'expression'>, options?: {
27
+ canonical?: boolean;
28
+ metadata?: Metadata;
29
+ });
30
+ get expression(): BoxedExpression;
31
+ /** Create the tensor on demand */
32
+ get tensor(): AbstractTensor<'expression'>;
33
+ get baseDefinition(): BoxedBaseDefinition | undefined;
34
+ get functionDefinition(): BoxedFunctionDefinition | undefined;
35
+ bind(): void;
36
+ reset(): void;
37
+ get hash(): number;
38
+ get canonical(): BoxedExpression;
39
+ get isCanonical(): boolean;
40
+ set isCanonical(val: boolean);
41
+ get isPure(): boolean;
42
+ get isValid(): boolean;
43
+ get complexity(): number;
44
+ get head(): string;
45
+ get nops(): number;
46
+ get ops(): BoxedExpression[];
47
+ get op1(): BoxedExpression;
48
+ get op2(): BoxedExpression;
49
+ get op3(): BoxedExpression;
50
+ get shape(): number[];
51
+ get rank(): number;
52
+ get domain(): BoxedDomain | undefined;
53
+ get json(): Expression;
54
+ get rawJson(): Expression;
55
+ /** Structural equality */
56
+ isSame(rhs: BoxedExpression): boolean;
57
+ /** Mathematical equality */
58
+ isEqual(rhs: BoxedExpression): boolean;
59
+ match(rhs: BoxedExpression, options?: PatternMatchOptions): BoxedSubstitution | null;
60
+ evaluate(options?: EvaluateOptions): BoxedExpression;
61
+ simplify(options?: SimplifyOptions): BoxedExpression;
62
+ N(options?: NOptions): BoxedExpression;
63
+ }
64
+ export declare function isBoxedTensor(val: unknown): val is BoxedTensor;
65
+ export declare function expressionTensorInfo(head: string, rows: BoxedExpression[]): {
66
+ shape: number[];
67
+ dtype: keyof DataTypeMap;
68
+ };
69
+ export declare function expressionAsTensor<T extends TensorDataType>(head: string, rows: BoxedExpression[]): TensorData<T> | undefined;
@@ -0,0 +1,2 @@
1
+ /* 0.22.0 */
2
+ export declare function canonicalForm(expr: BoxedExpression, forms: boolean | CanonicalForm | CanonicalForm[]): BoxedExpression;
@@ -1,4 +1,4 @@
1
- /* 0.20.2 */
1
+ /* 0.22.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])[]);
@@ -1,11 +1,11 @@
1
- /* 0.20.2 */
1
+ /* 0.22.0 */
2
2
  export type Order = 'lex' | 'dexlex' | 'grevlex' | 'elim';
3
3
  export declare const DEFAULT_COMPLEXITY = 100000;
4
4
  /**
5
5
  * Sort by higher total degree (sum of degree), if tied, sort by max degree,
6
6
  * if tied,
7
7
  */
8
- export declare function sortAdd(ce: IComputeEngine, ops: BoxedExpression[]): BoxedExpression[];
8
+ export declare function sortAdd(ops: BoxedExpression[]): BoxedExpression[];
9
9
  /**
10
10
  * Given two expressions `a` and `b`, return:
11
11
  * - `-1` if `a` should be ordered before `b`
@@ -41,6 +41,12 @@ export declare function sortAdd(ce: IComputeEngine, ops: BoxedExpression[]): Box
41
41
  *
42
42
  */
43
43
  export declare function order(a: BoxedExpression, b: BoxedExpression): number;
44
+ /** Return a version of the expression with its arguments sorted in
45
+ * canonical order
46
+ */
47
+ export declare function canonicalOrder(expr: BoxedExpression, { recursive }: {
48
+ recursive?: boolean;
49
+ }): BoxedExpression;
44
50
  /**
45
51
  * Sort the terms of a polynomial expression (`Add` expression) according
46
52
  * to the deglex polynomial ordering
@@ -1,4 +1,4 @@
1
- /* 0.20.2 */
1
+ /* 0.22.0 */
2
2
  import { Decimal } from 'decimal.js';
3
3
  import { Expression } from '../../math-json/math-json-format';
4
4
  import { BoxedExpression, IComputeEngine, Metadata, Rational } from '../public';
@@ -1,4 +1,4 @@
1
- /* 0.20.2 */
1
+ /* 0.22.0 */
2
2
  import { Expression } from '../../math-json/math-json-format';
3
3
  import { BoxedExpression, IComputeEngine } from '../public';
4
4
  export declare function isLatexString(s: unknown): s is string;
@@ -1,4 +1,4 @@
1
- /* 0.20.2 */
1
+ /* 0.22.0 */
2
2
  /**
3
3
  * Check that the number of arguments is as expected.
4
4
  *
@@ -1,4 +1,4 @@
1
- /* 0.20.2 */
1
+ /* 0.22.0 */
2
2
  export declare function isCollection(col: BoxedExpression): boolean;
3
3
  export declare function isFiniteCollection(col: BoxedExpression): boolean;
4
4
  export declare function isIndexableCollection(col: BoxedExpression): boolean;
@@ -1,4 +1,4 @@
1
- /* 0.20.2 */
1
+ /* 0.22.0 */
2
2
  import { BoxedExpression } from './public';
3
3
  export type CompiledType = boolean | number | string | object;
4
4
  type JSSource = string;