@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.
- package/README.md +121 -5
- package/dist/compute-engine.esm.js +50435 -44944
- package/dist/compute-engine.min.esm.js +1072 -69
- package/dist/compute-engine.min.umd.js +1072 -69
- package/dist/compute-engine.umd.js +50540 -45049
- package/dist/math-json.esm.js +2 -2
- package/dist/math-json.min.esm.js +2 -2
- package/dist/math-json.min.umd.js +2 -2
- package/dist/math-json.umd.js +2 -2
- package/dist/types/common/ansi-codes.d.ts +1 -1
- package/dist/types/common/configuration-change.d.ts +1 -1
- package/dist/types/common/fuzzy-string-match.d.ts +1 -1
- package/dist/types/common/grapheme-splitter.d.ts +1 -1
- package/dist/types/common/interruptible.d.ts +1 -1
- package/dist/types/common/one-of.d.ts +1 -1
- package/dist/types/common/signals.d.ts +1 -1
- package/dist/types/common/type/ast-nodes.d.ts +1 -1
- package/dist/types/common/type/boxed-type.d.ts +1 -1
- package/dist/types/common/type/lexer.d.ts +1 -1
- package/dist/types/common/type/parse.d.ts +1 -1
- package/dist/types/common/type/parser.d.ts +8 -1
- package/dist/types/common/type/primitive.d.ts +2 -1
- package/dist/types/common/type/reduce.d.ts +1 -1
- package/dist/types/common/type/serialize.d.ts +1 -1
- package/dist/types/common/type/subtype.d.ts +1 -1
- package/dist/types/common/type/type-builder.d.ts +1 -1
- package/dist/types/common/type/types.d.ts +1 -1
- package/dist/types/common/type/utils.d.ts +3 -2
- package/dist/types/common/utils.d.ts +1 -1
- package/dist/types/compute-engine/assume.d.ts +4 -22
- package/dist/types/compute-engine/boxed-expression/abstract-boxed-expression.d.ts +63 -76
- package/dist/types/compute-engine/boxed-expression/apply.d.ts +4 -4
- package/dist/types/compute-engine/boxed-expression/arithmetic-add.d.ts +15 -6
- package/dist/types/compute-engine/boxed-expression/arithmetic-mul-div.d.ts +72 -6
- package/dist/types/compute-engine/boxed-expression/arithmetic-power.d.ts +8 -8
- package/dist/types/compute-engine/boxed-expression/ascii-math.d.ts +5 -8
- package/dist/types/compute-engine/boxed-expression/box.d.ts +63 -8
- package/dist/types/compute-engine/boxed-expression/boxed-dictionary.d.ts +13 -12
- package/dist/types/compute-engine/boxed-expression/boxed-function.d.ts +44 -43
- package/dist/types/compute-engine/boxed-expression/boxed-number.d.ts +31 -30
- package/dist/types/compute-engine/boxed-expression/boxed-operator-definition.d.ts +18 -18
- package/dist/types/compute-engine/boxed-expression/boxed-patterns.d.ts +5 -37
- package/dist/types/compute-engine/boxed-expression/boxed-string.d.ts +5 -4
- package/dist/types/compute-engine/boxed-expression/boxed-symbol.d.ts +34 -33
- package/dist/types/compute-engine/boxed-expression/boxed-tensor.d.ts +34 -33
- package/dist/types/compute-engine/boxed-expression/boxed-value-definition.d.ts +8 -8
- package/dist/types/compute-engine/boxed-expression/cache.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/canonical-utils.d.ts +2 -2
- package/dist/types/compute-engine/boxed-expression/canonical.d.ts +2 -2
- package/dist/types/compute-engine/boxed-expression/compare.d.ts +4 -4
- package/dist/types/compute-engine/boxed-expression/constants.d.ts +6 -0
- package/dist/types/compute-engine/boxed-expression/expand.d.ts +4 -5
- package/dist/types/compute-engine/boxed-expression/expression-map.d.ts +9 -9
- package/dist/types/compute-engine/boxed-expression/factor.d.ts +7 -7
- package/dist/types/compute-engine/boxed-expression/flatten.d.ts +4 -13
- package/dist/types/compute-engine/boxed-expression/hold.d.ts +3 -3
- package/dist/types/compute-engine/boxed-expression/inequality-bounds.d.ts +21 -0
- package/dist/types/compute-engine/boxed-expression/invisible-operator.d.ts +4 -0
- package/dist/types/compute-engine/boxed-expression/match.d.ts +2 -2
- package/dist/types/compute-engine/boxed-expression/negate.d.ts +4 -4
- package/dist/types/compute-engine/boxed-expression/numerics.d.ts +8 -8
- package/dist/types/compute-engine/boxed-expression/order.d.ts +14 -14
- package/dist/types/compute-engine/boxed-expression/pattern-utils.d.ts +41 -0
- package/dist/types/compute-engine/boxed-expression/polynomial-degree.d.ts +18 -0
- package/dist/types/compute-engine/boxed-expression/polynomials.d.ts +12 -35
- package/dist/types/compute-engine/boxed-expression/predicates.d.ts +2 -0
- package/dist/types/compute-engine/boxed-expression/rules.d.ts +51 -51
- package/dist/types/compute-engine/boxed-expression/serialize.d.ts +3 -3
- package/dist/types/compute-engine/boxed-expression/sgn.d.ts +2 -2
- package/dist/types/compute-engine/boxed-expression/simplify.d.ts +2 -2
- package/dist/types/compute-engine/boxed-expression/solve-linear-system.d.ts +8 -8
- package/dist/types/compute-engine/boxed-expression/solve.d.ts +3 -11
- package/dist/types/compute-engine/boxed-expression/trigonometry.d.ts +7 -7
- package/dist/types/compute-engine/boxed-expression/type-guards.d.ts +31 -0
- package/dist/types/compute-engine/boxed-expression/utils.d.ts +13 -13
- package/dist/types/compute-engine/boxed-expression/validate.d.ts +10 -10
- package/dist/types/compute-engine/collection-utils.d.ts +4 -4
- package/dist/types/compute-engine/compilation/base-compiler.d.ts +3 -3
- package/dist/types/compute-engine/compilation/compile-expression.d.ts +25 -0
- package/dist/types/compute-engine/compilation/glsl-target.d.ts +12 -41
- package/dist/types/compute-engine/compilation/gpu-target.d.ts +50 -0
- package/dist/types/compute-engine/compilation/interval-glsl-target.d.ts +11 -11
- package/dist/types/compute-engine/compilation/interval-javascript-target.d.ts +7 -7
- package/dist/types/compute-engine/compilation/interval-wgsl-target.d.ts +54 -0
- package/dist/types/compute-engine/compilation/javascript-target.d.ts +6 -6
- package/dist/types/compute-engine/compilation/python-target.d.ts +61 -0
- package/dist/types/compute-engine/compilation/types.d.ts +27 -22
- package/dist/types/compute-engine/compilation/wgsl-target.d.ts +41 -0
- package/dist/types/compute-engine/cost-function.d.ts +3 -3
- package/dist/types/compute-engine/engine-assumptions.d.ts +6 -0
- package/dist/types/compute-engine/engine-cache.d.ts +6 -0
- package/dist/types/compute-engine/engine-common-symbols.d.ts +6 -0
- package/dist/types/compute-engine/engine-compilation-targets.d.ts +17 -0
- package/dist/types/compute-engine/engine-configuration-lifecycle.d.ts +15 -0
- package/dist/types/compute-engine/engine-declarations.d.ts +19 -0
- package/dist/types/compute-engine/engine-expression-entrypoints.d.ts +44 -0
- package/dist/types/compute-engine/engine-extension-contracts.d.ts +9 -0
- package/dist/types/compute-engine/engine-latex-dictionary-state.d.ts +13 -0
- package/dist/types/compute-engine/engine-library-bootstrap.d.ts +6 -0
- package/dist/types/compute-engine/engine-numeric-configuration.d.ts +34 -0
- package/dist/types/compute-engine/engine-parse-entrypoint.d.ts +7 -0
- package/dist/types/compute-engine/engine-runtime-state.d.ts +19 -0
- package/dist/types/compute-engine/engine-scope.d.ts +13 -0
- package/dist/types/compute-engine/engine-sequences.d.ts +14 -0
- package/dist/types/compute-engine/engine-simplification-rules.d.ts +15 -0
- package/dist/types/compute-engine/engine-startup-coordinator.d.ts +28 -0
- package/dist/types/compute-engine/engine-type-resolver.d.ts +12 -0
- package/dist/types/compute-engine/engine-validation-entrypoints.d.ts +13 -0
- package/dist/types/compute-engine/free-functions.d.ts +20 -0
- package/dist/types/compute-engine/function-utils.d.ts +10 -10
- package/dist/types/compute-engine/global-types.d.ts +5 -3301
- package/dist/types/compute-engine/index.d.ts +155 -112
- package/dist/types/compute-engine/interval/arithmetic.d.ts +1 -1
- package/dist/types/compute-engine/interval/comparison.d.ts +1 -1
- package/dist/types/compute-engine/interval/elementary.d.ts +1 -1
- package/dist/types/compute-engine/interval/index.d.ts +1 -1
- package/dist/types/compute-engine/interval/trigonometric.d.ts +1 -1
- package/dist/types/compute-engine/interval/types.d.ts +1 -1
- package/dist/types/compute-engine/interval/util.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-algebra.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-arithmetic.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-calculus.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-complex.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-core.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-linear-algebra.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-logic.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-other.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-relational-operators.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-sets.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-statistics.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-symbols.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-trigonometry.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions.d.ts +4 -80
- package/dist/types/compute-engine/latex-syntax/dictionary/indexed-types.d.ts +83 -0
- package/dist/types/compute-engine/latex-syntax/parse-number.d.ts +28 -0
- package/dist/types/compute-engine/latex-syntax/parse-symbol.d.ts +2 -2
- package/dist/types/compute-engine/latex-syntax/parse.d.ts +23 -33
- package/dist/types/compute-engine/latex-syntax/serialize-number.d.ts +2 -2
- package/dist/types/compute-engine/latex-syntax/serializer-style.d.ts +8 -8
- package/dist/types/compute-engine/latex-syntax/serializer.d.ts +15 -15
- package/dist/types/compute-engine/latex-syntax/tokenizer.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/types.d.ts +73 -53
- package/dist/types/compute-engine/latex-syntax/utils.d.ts +1 -1
- package/dist/types/compute-engine/library/arithmetic.d.ts +1 -2
- package/dist/types/compute-engine/library/calculus.d.ts +1 -1
- package/dist/types/compute-engine/library/collections.d.ts +4 -4
- package/dist/types/compute-engine/library/combinatorics.d.ts +1 -1
- package/dist/types/compute-engine/library/complex.d.ts +1 -1
- package/dist/types/compute-engine/library/control-structures.d.ts +1 -1
- package/dist/types/compute-engine/library/core.d.ts +1 -1
- package/dist/types/compute-engine/library/library.d.ts +19 -6
- package/dist/types/compute-engine/library/linear-algebra.d.ts +1 -1
- package/dist/types/compute-engine/library/logic-analysis.d.ts +19 -32
- package/dist/types/compute-engine/library/logic.d.ts +1 -5
- package/dist/types/compute-engine/library/number-theory.d.ts +1 -1
- package/dist/types/compute-engine/library/polynomials.d.ts +1 -1
- package/dist/types/compute-engine/library/random-expression.d.ts +2 -2
- package/dist/types/compute-engine/library/relational-operator.d.ts +1 -1
- package/dist/types/compute-engine/library/sets.d.ts +1 -1
- package/dist/types/compute-engine/library/statistics.d.ts +1 -1
- package/dist/types/compute-engine/library/trigonometry.d.ts +1 -1
- package/dist/types/compute-engine/library/type-handlers.d.ts +4 -0
- package/dist/types/compute-engine/library/utils.d.ts +12 -12
- package/dist/types/compute-engine/numeric-value/big-numeric-value.d.ts +5 -5
- package/dist/types/compute-engine/numeric-value/exact-numeric-value.d.ts +5 -5
- package/dist/types/compute-engine/numeric-value/machine-numeric-value.d.ts +5 -5
- package/dist/types/compute-engine/numeric-value/types.d.ts +2 -3
- package/dist/types/compute-engine/numerics/bigint.d.ts +1 -1
- package/dist/types/compute-engine/numerics/expression.d.ts +3 -3
- package/dist/types/compute-engine/numerics/interval.d.ts +2 -2
- package/dist/types/compute-engine/numerics/monte-carlo.d.ts +1 -1
- package/dist/types/compute-engine/numerics/numeric-bigint.d.ts +1 -1
- package/dist/types/compute-engine/numerics/numeric-bignum.d.ts +1 -1
- package/dist/types/compute-engine/numerics/numeric-complex.d.ts +1 -1
- package/dist/types/compute-engine/numerics/numeric.d.ts +1 -1
- package/dist/types/compute-engine/numerics/primes.d.ts +1 -1
- package/dist/types/compute-engine/numerics/rationals.d.ts +4 -4
- package/dist/types/compute-engine/numerics/richardson.d.ts +1 -1
- package/dist/types/compute-engine/numerics/special-functions.d.ts +120 -1
- package/dist/types/compute-engine/numerics/statistics.d.ts +1 -2
- package/dist/types/compute-engine/numerics/strings.d.ts +1 -1
- package/dist/types/compute-engine/numerics/types.d.ts +3 -1
- package/dist/types/compute-engine/oeis.d.ts +3 -3
- package/dist/types/compute-engine/sequence.d.ts +13 -13
- package/dist/types/compute-engine/symbolic/antiderivative.d.ts +2 -2
- package/dist/types/compute-engine/symbolic/derivative.d.ts +3 -3
- package/dist/types/compute-engine/symbolic/distribute.d.ts +2 -2
- package/dist/types/compute-engine/symbolic/fu-cost.d.ts +6 -6
- package/dist/types/compute-engine/symbolic/fu-transforms.d.ts +46 -46
- package/dist/types/compute-engine/symbolic/fu.d.ts +4 -4
- package/dist/types/compute-engine/symbolic/logic-utils.d.ts +54 -0
- package/dist/types/compute-engine/symbolic/simplify-abs.d.ts +4 -4
- package/dist/types/compute-engine/symbolic/simplify-divide.d.ts +2 -2
- package/dist/types/compute-engine/symbolic/simplify-hyperbolic.d.ts +2 -2
- package/dist/types/compute-engine/symbolic/simplify-infinity.d.ts +2 -2
- package/dist/types/compute-engine/symbolic/simplify-log.d.ts +2 -2
- package/dist/types/compute-engine/symbolic/simplify-logic.d.ts +5 -0
- package/dist/types/compute-engine/symbolic/simplify-power.d.ts +2 -2
- package/dist/types/compute-engine/symbolic/simplify-product.d.ts +2 -2
- package/dist/types/compute-engine/symbolic/simplify-rules.d.ts +65 -4
- package/dist/types/compute-engine/symbolic/simplify-sum.d.ts +2 -2
- package/dist/types/compute-engine/symbolic/simplify-trig.d.ts +2 -2
- package/dist/types/compute-engine/tensor/tensor-fields.d.ts +42 -42
- package/dist/types/compute-engine/tensor/tensors.d.ts +4 -4
- package/dist/types/compute-engine/types-definitions.d.ts +900 -0
- package/dist/types/compute-engine/types-engine.d.ts +375 -0
- package/dist/types/compute-engine/types-evaluation.d.ts +67 -0
- package/dist/types/compute-engine/types-expression.d.ts +1655 -0
- package/dist/types/compute-engine/types-kernel-evaluation.d.ts +164 -0
- package/dist/types/compute-engine/types-kernel-serialization.d.ts +147 -0
- package/dist/types/compute-engine/types-serialization.d.ts +23 -0
- package/dist/types/compute-engine/types.d.ts +2 -2
- package/dist/types/compute-engine.d.ts +16 -3
- package/dist/types/math-json/symbols.d.ts +1 -1
- package/dist/types/math-json/types.d.ts +3 -3
- package/dist/types/math-json/utils.d.ts +31 -31
- package/dist/types/math-json.d.ts +2 -2
- package/package.json +8 -1
- package/dist/types/compute-engine/boxed-expression/product.d.ts +0 -66
- package/dist/types/compute-engine/boxed-expression/terms.d.ts +0 -10
- package/dist/types/compute-engine/library/invisible-operator.d.ts +0 -4
- package/dist/types/compute-engine/library/logic-utils.d.ts +0 -54
package/dist/math-json.esm.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** Compute Engine 0.
|
|
1
|
+
/** Compute Engine 0.50.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.
|
|
118
|
+
var version = "0.50.0";
|
|
119
119
|
export {
|
|
120
120
|
dictionaryFromExpression,
|
|
121
121
|
isFunctionObject,
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/** Compute Engine 0.
|
|
2
|
-
function
|
|
1
|
+
/** Compute Engine 0.50.0 */
|
|
2
|
+
function b(n){return n!==null&&typeof n=="object"&&"num"in n}function s(n){return n!==null&&typeof n=="object"&&"sym"in n}function f(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 r(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):j(n)||y(n)?null:n}function l(n){return Array.isArray(n)?n[0]:n==null?"":r(n)?n.fn[0]:""}function h(n){return Array.isArray(n)?n.slice(1):n!==void 0&&r(n)?n.fn.slice(1):[]}function d(n,t){return Array.isArray(n)?n[t]??null:n===null||!r(n)?null:n.fn[t]??null}function J(n){return n==null?0:Array.isArray(n)?Math.max(0,n.length-1):r(n)?Math.max(0,n.fn.length-1):0}function m(n){return typeof n=="string"&&y(n)?n.length>=2&&n.at(0)==="`"&&n.at(-1)==="`"?n.slice(1,-1):n:n==null?null:s(n)?n.sym:null}function a(n){let t=l(n);if(t==="KeyValuePair"||t==="Tuple"||t==="Pair"){let[i,o]=h(n),e=c(i);return e?[e,o??"Nothing"]:null}return null}function E(n){if(n===null)return null;if(M(n))return n;let t=a(n);if(t)return{[t[0]]:t[1]};if(l(n)==="Dictionary"){let i={},o=h(n);for(let e=1;e<J(n);e++){let u=a(o[e]);u&&(i[u[0]]=O(u[1])??"Nothing")}return{dict:i}}return null}function g(n,t){let i=null;if(Array.isArray(n)&&(i=n),r(n)&&(i=n.fn),i===null)return[];let o=1,e=[];for(;o<i.length;)e.push(t(i[o])),o+=1;return e}function j(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 y(n){return/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(n)||n.length>=2&&n[0]==="`"&&n[n.length-1]==="`"}function O(n){return n==null?null:f(n)?n.str:b(n)?parseFloat(n.num):s(n)?n.sym:typeof n=="string"||typeof n=="number"?n:Array.isArray(n)?{fn:n}:n}var S="0.50.0";export{E as dictionaryFromExpression,r as isFunctionObject,f as isStringObject,s as isSymbolObject,g as mapArgs,d as operand,l as operator,c as stringValue,m as symbol,S as version};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** MathJSON 0.
|
|
1
|
+
/** MathJSON 0.50.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
|
|
3
|
+
var MathJson=(()=>{var a=Object.defineProperty;var E=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var j=Object.prototype.hasOwnProperty;var O=(n,t)=>{for(var i in t)a(n,i,{get:t[i],enumerable:!0})},A=(n,t,i,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let e of g(t))!j.call(n,e)&&e!==i&&a(n,e,{get:()=>t[e],enumerable:!(o=E(t,e))||o.enumerable});return n};var S=n=>A(a({},"__esModule",{value:!0}),n);var T={};O(T,{dictionaryFromExpression:()=>d,isFunctionObject:()=>r,isStringObject:()=>f,isSymbolObject:()=>u,mapArgs:()=>J,operand:()=>b,operator:()=>s,stringValue:()=>c,symbol:()=>M,version:()=>V});function N(n){return n!==null&&typeof n=="object"&&"num"in n}function u(n){return n!==null&&typeof n=="object"&&"sym"in n}function f(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 r(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)||m(n)?null:n}function s(n){return Array.isArray(n)?n[0]:n==null?"":r(n)?n.fn[0]:""}function y(n){return Array.isArray(n)?n.slice(1):n!==void 0&&r(n)?n.fn.slice(1):[]}function b(n,t){return Array.isArray(n)?n[t]??null:n===null||!r(n)?null:n.fn[t]??null}function D(n){return n==null?0:Array.isArray(n)?Math.max(0,n.length-1):r(n)?Math.max(0,n.fn.length-1):0}function M(n){return typeof n=="string"&&m(n)?n.length>=2&&n.at(0)==="`"&&n.at(-1)==="`"?n.slice(1,-1):n:n==null?null:u(n)?n.sym:null}function h(n){let t=s(n);if(t==="KeyValuePair"||t==="Tuple"||t==="Pair"){let[i,o]=y(n),e=c(i);return e?[e,o??"Nothing"]:null}return null}function d(n){if(n===null)return null;if(p(n))return n;let t=h(n);if(t)return{[t[0]]:t[1]};if(s(n)==="Dictionary"){let i={},o=y(n);for(let e=1;e<D(n);e++){let l=h(o[e]);l&&(i[l[0]]=F(l[1])??"Nothing")}return{dict:i}}return null}function J(n,t){let i=null;if(Array.isArray(n)&&(i=n),r(n)&&(i=n.fn),i===null)return[];let o=1,e=[];for(;o<i.length;)e.push(t(i[o])),o+=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 m(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:f(n)?n.str:N(n)?parseFloat(n.num):u(n)?n.sym:typeof n=="string"||typeof n=="number"?n:Array.isArray(n)?{fn:n}:n}var V="0.50.0";return S(T);})();
|
|
4
4
|
Object.assign(exports, MathJson); Object.defineProperty(exports, '__esModule', { value: true });}));
|
package/dist/math-json.umd.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** MathJSON 0.
|
|
1
|
+
/** MathJSON 0.50.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.
|
|
152
|
+
var version = "0.50.0";
|
|
153
153
|
return __toCommonJS(math_json_exports);
|
|
154
154
|
})();
|
|
155
155
|
Object.assign(exports, MathJson); Object.defineProperty(exports, '__esModule', { value: true });}));
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.50.0 */
|
|
2
2
|
export declare function fuzzyStringMatch(invalidWord: string, validWords: string[]): string | null;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.50.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.
|
|
1
|
+
/* 0.50.0 */
|
|
2
2
|
import { TypeNode } from './ast-nodes';
|
|
3
3
|
import { TypeResolver } from './types';
|
|
4
4
|
export declare class Parser {
|
|
@@ -19,6 +19,13 @@ export declare class Parser {
|
|
|
19
19
|
private parseUnionType;
|
|
20
20
|
private parseIntersectionType;
|
|
21
21
|
private parsePrimaryType;
|
|
22
|
+
/**
|
|
23
|
+
* Scan forward from the current '(' to determine if this is a function
|
|
24
|
+
* signature (i.e. `(...) ->`) without consuming any tokens. Tracks
|
|
25
|
+
* parenthesis depth so nested parens like `((string|number), expr?)` are
|
|
26
|
+
* handled correctly.
|
|
27
|
+
*/
|
|
28
|
+
private isFunctionSignature;
|
|
22
29
|
private parseFunctionSignature;
|
|
23
30
|
private parseArgument;
|
|
24
31
|
private parseNamedElement;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.50.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[];
|
|
@@ -8,3 +8,4 @@ export declare const VALUE_TYPES: PrimitiveType[];
|
|
|
8
8
|
export declare const EXPRESSION_TYPES: PrimitiveType[];
|
|
9
9
|
export declare const PRIMITIVE_TYPES: PrimitiveType[];
|
|
10
10
|
export declare function isValidPrimitiveType(s: any): s is PrimitiveType;
|
|
11
|
+
export declare function isValidType(t: any): t is Readonly<Type>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.50.0 */
|
|
2
2
|
export declare function typeToString(type: Type, precedence?: number): string;
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.50.0 */
|
|
2
|
+
export { isValidType };
|
|
3
|
+
import type { Type, FunctionSignature, TypeString } from './types';
|
|
2
4
|
/** Convert two or more types into a more specific type that is a subtype of
|
|
3
5
|
* all the input types. The resulting type is usually more constrained and
|
|
4
6
|
* only encompasses values that belong to both input types.
|
|
@@ -33,4 +35,3 @@ export declare function functionSignature(type: Readonly<Type>): Type | undefine
|
|
|
33
35
|
export declare function functionResult(type: Readonly<Type> | undefined): Type | undefined;
|
|
34
36
|
export declare function collectionElementType(type: Readonly<Type>): Type | undefined;
|
|
35
37
|
export declare function isValidTypeName(name: string): boolean;
|
|
36
|
-
export declare function isValidType(t: any): t is Readonly<Type>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.50.0 */
|
|
2
2
|
/**
|
|
3
3
|
* Add an assumption, in the form of a predicate, for example:
|
|
4
4
|
*
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
* `forget` about any symbols in the new assumption.
|
|
24
24
|
*
|
|
25
25
|
*/
|
|
26
|
-
export declare function assume(proposition:
|
|
26
|
+
export declare function assume(proposition: Expression): AssumeResult;
|
|
27
27
|
/**
|
|
28
28
|
* Query assumptions to determine the sign of a symbol.
|
|
29
29
|
*
|
|
@@ -40,23 +40,5 @@ export declare function assume(proposition: BoxedExpression): AssumeResult;
|
|
|
40
40
|
* @returns The inferred sign, or undefined if no relevant assumptions found
|
|
41
41
|
*/
|
|
42
42
|
export declare function getSignFromAssumptions(ce: ComputeEngine, symbol: string): Sign | undefined;
|
|
43
|
-
|
|
44
|
-
|
|
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
|
-
};
|
|
43
|
+
import { getInequalityBoundsFromAssumptions } from './boxed-expression/inequality-bounds';
|
|
44
|
+
export { getInequalityBoundsFromAssumptions };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
/* 0.
|
|
2
|
-
import type {
|
|
1
|
+
/* 0.50.0 */
|
|
2
|
+
import type { MathJsonExpression, MathJsonSymbol } from '../../math-json/types';
|
|
3
3
|
import type { Type, TypeString } from '../../common/type/types';
|
|
4
4
|
import { BoxedType } from '../../common/type/boxed-type';
|
|
5
|
-
import type { BoxedSubstitution, Metadata, Substitution, CanonicalOptions, BoxedRuleSet, Rule, BoxedBaseDefinition, BoxedValueDefinition, BoxedOperatorDefinition, EvaluateOptions, Sign,
|
|
5
|
+
import type { BoxedSubstitution, Metadata, Substitution, CanonicalOptions, BoxedRuleSet, Rule, BoxedBaseDefinition, BoxedValueDefinition, BoxedOperatorDefinition, EvaluateOptions, Sign, Expression, JsonSerializationOptions, PatternMatchOptions, SimplifyOptions, IComputeEngine as ComputeEngine, Scope, Tensor, TensorDataType } from '../global-types';
|
|
6
6
|
import type { NumericValue } from '../numeric-value/types';
|
|
7
7
|
import type { SmallInteger } from '../numerics/types';
|
|
8
8
|
import type { LatexString, SerializeLatexOptions } from '../latex-syntax/types';
|
|
@@ -11,11 +11,12 @@ import type { LatexString, SerializeLatexOptions } from '../latex-syntax/types';
|
|
|
11
11
|
*
|
|
12
12
|
* @internal
|
|
13
13
|
*/
|
|
14
|
-
export declare abstract class _BoxedExpression implements
|
|
14
|
+
export declare abstract class _BoxedExpression implements Expression {
|
|
15
|
+
readonly _kind: string;
|
|
15
16
|
abstract readonly hash: number;
|
|
16
|
-
abstract readonly json:
|
|
17
|
+
abstract readonly json: MathJsonExpression;
|
|
17
18
|
abstract isCanonical: boolean;
|
|
18
|
-
abstract match(pattern:
|
|
19
|
+
abstract match(pattern: Expression, options?: PatternMatchOptions): BoxedSubstitution | null;
|
|
19
20
|
readonly engine: ComputeEngine;
|
|
20
21
|
/** Verbatim LaTeX, obtained from a source, i.e. from parsing,
|
|
21
22
|
* not generated synthetically
|
|
@@ -40,18 +41,18 @@ export declare abstract class _BoxedExpression implements BoxedExpression {
|
|
|
40
41
|
* Note: this is a standard method of JavaScript objects.
|
|
41
42
|
*
|
|
42
43
|
*/
|
|
43
|
-
toJSON():
|
|
44
|
-
toMathJson(options?: Readonly<Partial<JsonSerializationOptions>>):
|
|
44
|
+
toJSON(): MathJsonExpression;
|
|
45
|
+
toMathJson(options?: Readonly<Partial<JsonSerializationOptions>>): MathJsonExpression;
|
|
45
46
|
print(): void;
|
|
46
47
|
get isStructural(): boolean;
|
|
47
|
-
get canonical():
|
|
48
|
-
get structural():
|
|
48
|
+
get canonical(): Expression;
|
|
49
|
+
get structural(): Expression;
|
|
49
50
|
get isValid(): boolean;
|
|
50
51
|
get isPure(): boolean;
|
|
51
52
|
get isConstant(): boolean;
|
|
52
53
|
get isNumberLiteral(): boolean;
|
|
53
|
-
get numericValue(): number | NumericValue |
|
|
54
|
-
toNumericValue(): [NumericValue,
|
|
54
|
+
get numericValue(): number | NumericValue | undefined;
|
|
55
|
+
toNumericValue(): [NumericValue, Expression];
|
|
55
56
|
get isEven(): boolean | undefined;
|
|
56
57
|
get isOdd(): boolean | undefined;
|
|
57
58
|
get re(): number;
|
|
@@ -63,44 +64,44 @@ export declare abstract class _BoxedExpression implements BoxedExpression {
|
|
|
63
64
|
get isNonNegative(): boolean | undefined;
|
|
64
65
|
get isNegative(): boolean | undefined;
|
|
65
66
|
get isNonPositive(): boolean | undefined;
|
|
66
|
-
neg():
|
|
67
|
-
inv():
|
|
68
|
-
abs():
|
|
69
|
-
add(
|
|
70
|
-
sub(rhs:
|
|
71
|
-
mul(
|
|
72
|
-
div(
|
|
73
|
-
pow(
|
|
74
|
-
root(
|
|
75
|
-
sqrt():
|
|
76
|
-
ln(
|
|
77
|
-
get numerator():
|
|
78
|
-
get denominator():
|
|
79
|
-
get numeratorDenominator(): [
|
|
80
|
-
is(other:
|
|
81
|
-
isSame(other:
|
|
82
|
-
isEqual(other: number |
|
|
83
|
-
isLess(other: number |
|
|
84
|
-
isLessEqual(other: number |
|
|
85
|
-
isGreater(other: number |
|
|
86
|
-
isGreaterEqual(other: number |
|
|
87
|
-
get symbol(): string |
|
|
88
|
-
get tensor():
|
|
89
|
-
get string(): string |
|
|
90
|
-
getSubexpressions(operator: MathJsonSymbol): ReadonlyArray<
|
|
91
|
-
get subexpressions(): ReadonlyArray<
|
|
67
|
+
neg(): Expression;
|
|
68
|
+
inv(): Expression;
|
|
69
|
+
abs(): Expression;
|
|
70
|
+
add(_rhs: number | Expression): Expression;
|
|
71
|
+
sub(rhs: Expression): Expression;
|
|
72
|
+
mul(_rhs: NumericValue | number | Expression): Expression;
|
|
73
|
+
div(_rhs: number | Expression): Expression;
|
|
74
|
+
pow(_exp: number | Expression): Expression;
|
|
75
|
+
root(_exp: number | Expression): Expression;
|
|
76
|
+
sqrt(): Expression;
|
|
77
|
+
ln(_base?: number | Expression): Expression;
|
|
78
|
+
get numerator(): Expression;
|
|
79
|
+
get denominator(): Expression;
|
|
80
|
+
get numeratorDenominator(): [Expression, Expression];
|
|
81
|
+
is(other: Expression | number | bigint | boolean | string): boolean;
|
|
82
|
+
isSame(other: Expression): boolean;
|
|
83
|
+
isEqual(other: number | Expression): boolean | undefined;
|
|
84
|
+
isLess(other: number | Expression): boolean | undefined;
|
|
85
|
+
isLessEqual(other: number | Expression): boolean | undefined;
|
|
86
|
+
isGreater(other: number | Expression): boolean | undefined;
|
|
87
|
+
isGreaterEqual(other: number | Expression): boolean | undefined;
|
|
88
|
+
get symbol(): string | undefined;
|
|
89
|
+
get tensor(): Tensor<TensorDataType> | undefined;
|
|
90
|
+
get string(): string | undefined;
|
|
91
|
+
getSubexpressions(operator: MathJsonSymbol): ReadonlyArray<Expression>;
|
|
92
|
+
get subexpressions(): ReadonlyArray<Expression>;
|
|
92
93
|
get symbols(): ReadonlyArray<string>;
|
|
93
94
|
get unknowns(): ReadonlyArray<string>;
|
|
94
|
-
get errors(): ReadonlyArray<
|
|
95
|
+
get errors(): ReadonlyArray<Expression>;
|
|
95
96
|
get isFunctionExpression(): boolean;
|
|
96
|
-
get ops():
|
|
97
|
+
get ops(): ReadonlyArray<Expression> | undefined;
|
|
97
98
|
get isScoped(): boolean;
|
|
98
99
|
get localScope(): Scope | undefined;
|
|
99
100
|
abstract readonly operator: string;
|
|
100
101
|
get nops(): SmallInteger;
|
|
101
|
-
get op1():
|
|
102
|
-
get op2():
|
|
103
|
-
get op3():
|
|
102
|
+
get op1(): Expression;
|
|
103
|
+
get op2(): Expression;
|
|
104
|
+
get op3(): Expression;
|
|
104
105
|
get isNaN(): boolean | undefined;
|
|
105
106
|
get isInfinity(): boolean | undefined;
|
|
106
107
|
get isFinite(): boolean | undefined;
|
|
@@ -108,13 +109,13 @@ export declare abstract class _BoxedExpression implements BoxedExpression {
|
|
|
108
109
|
get rank(): number;
|
|
109
110
|
subs(_sub: Substitution, options?: {
|
|
110
111
|
canonical?: CanonicalOptions;
|
|
111
|
-
}):
|
|
112
|
-
map(fn: (x:
|
|
112
|
+
}): Expression;
|
|
113
|
+
map(fn: (x: Expression) => Expression, options?: {
|
|
113
114
|
canonical: CanonicalOptions;
|
|
114
115
|
recursive?: boolean;
|
|
115
|
-
}):
|
|
116
|
-
solve(_vars?: Iterable<string> | string |
|
|
117
|
-
replace(_rules: BoxedRuleSet | Rule | Rule[]): null |
|
|
116
|
+
}): Expression;
|
|
117
|
+
solve(_vars?: Iterable<string> | string | Expression | Iterable<Expression>): null | ReadonlyArray<Expression> | Record<string, Expression> | Array<Record<string, Expression>>;
|
|
118
|
+
replace(_rules: BoxedRuleSet | Rule | Rule[]): null | Expression;
|
|
118
119
|
has(_v: string | string[]): boolean;
|
|
119
120
|
get description(): string[] | undefined;
|
|
120
121
|
get url(): string | undefined;
|
|
@@ -123,46 +124,32 @@ export declare abstract class _BoxedExpression implements BoxedExpression {
|
|
|
123
124
|
get baseDefinition(): BoxedBaseDefinition | undefined;
|
|
124
125
|
get valueDefinition(): BoxedValueDefinition | undefined;
|
|
125
126
|
get operatorDefinition(): BoxedOperatorDefinition | undefined;
|
|
126
|
-
infer(
|
|
127
|
+
infer(_t: Type, _inferenceMode?: 'narrow' | 'widen'): boolean;
|
|
127
128
|
bind(): void;
|
|
128
129
|
reset(): void;
|
|
129
|
-
get value():
|
|
130
|
-
set value(_value:
|
|
130
|
+
get value(): Expression | undefined;
|
|
131
|
+
set value(_value: unknown);
|
|
131
132
|
get type(): BoxedType;
|
|
132
133
|
set type(_type: Type | TypeString | BoxedType);
|
|
133
134
|
get isNumber(): boolean | undefined;
|
|
134
135
|
get isInteger(): boolean | undefined;
|
|
135
136
|
get isRational(): boolean | undefined;
|
|
136
137
|
get isReal(): boolean | undefined;
|
|
137
|
-
simplify(_options?: Partial<SimplifyOptions>):
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
evaluateAsync(_options?: Partial<EvaluateOptions>): Promise<BoxedExpression>;
|
|
142
|
-
N(): BoxedExpression;
|
|
143
|
-
compile(options?: {
|
|
144
|
-
to?: string;
|
|
145
|
-
target?: any;
|
|
146
|
-
operators?: Partial<Record<MathJsonSymbol, [op: string, prec: number]>> | ((op: MathJsonSymbol) => [op: string, prec: number] | undefined);
|
|
147
|
-
functions?: Record<MathJsonSymbol, string | ((...any: any[]) => any)>;
|
|
148
|
-
vars?: Record<MathJsonSymbol, string>;
|
|
149
|
-
imports?: ((...any: any[]) => any)[];
|
|
150
|
-
preamble?: string;
|
|
151
|
-
fallback?: boolean;
|
|
152
|
-
}): ((...args: any[]) => any) & {
|
|
153
|
-
isCompiled?: boolean;
|
|
154
|
-
};
|
|
138
|
+
simplify(_options?: Partial<SimplifyOptions>): Expression;
|
|
139
|
+
evaluate(_options?: Partial<EvaluateOptions>): Expression;
|
|
140
|
+
evaluateAsync(_options?: Partial<EvaluateOptions>): Promise<Expression>;
|
|
141
|
+
N(): Expression;
|
|
155
142
|
get isCollection(): boolean;
|
|
156
143
|
get isIndexedCollection(): boolean;
|
|
157
144
|
get isLazyCollection(): boolean;
|
|
158
|
-
contains(_rhs:
|
|
159
|
-
subsetOf(_target:
|
|
145
|
+
contains(_rhs: Expression): boolean | undefined;
|
|
146
|
+
subsetOf(_target: Expression, _strict: boolean): boolean | undefined;
|
|
160
147
|
get count(): number | undefined;
|
|
161
148
|
get isEmptyCollection(): boolean | undefined;
|
|
162
149
|
get isFiniteCollection(): boolean | undefined;
|
|
163
|
-
each(): Generator<
|
|
164
|
-
at(_index: number):
|
|
165
|
-
get(_key: string |
|
|
166
|
-
indexWhere(_predicate: (element:
|
|
150
|
+
each(): Generator<Expression>;
|
|
151
|
+
at(_index: number): Expression | undefined;
|
|
152
|
+
get(_key: string | Expression): Expression | undefined;
|
|
153
|
+
indexWhere(_predicate: (element: Expression) => boolean): number | undefined;
|
|
167
154
|
}
|
|
168
|
-
export declare function getSubexpressions(expr:
|
|
155
|
+
export declare function getSubexpressions(expr: Expression, name: MathJsonSymbol): ReadonlyArray<Expression>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.50.0 */
|
|
2
2
|
import { Decimal } from 'decimal.js';
|
|
3
|
-
import type {
|
|
4
|
-
export declare function apply(expr:
|
|
5
|
-
export declare function apply2(expr1:
|
|
3
|
+
import type { Expression } from '../global-types';
|
|
4
|
+
export declare function apply(expr: Expression, fn: (x: number) => number | Complex, bigFn?: (x: Decimal) => Decimal | Complex | number, complexFn?: (x: Complex) => number | Complex): Expression | undefined;
|
|
5
|
+
export declare function apply2(expr1: Expression, expr2: Expression, fn: (x1: number, x2: number) => number | Complex, bigFn?: (x1: Decimal, x2: Decimal) => Decimal | Complex | number, complexFn?: (x1: Complex, x2: number | Complex) => Complex | number): Expression | undefined;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.50.0 */
|
|
2
2
|
import { BoxedType } from '../../common/type/boxed-type';
|
|
3
|
-
import type {
|
|
3
|
+
import type { Expression, IComputeEngine as ComputeEngine } from '../global-types';
|
|
4
4
|
/**
|
|
5
5
|
*
|
|
6
6
|
* The canonical form of `Add`:
|
|
@@ -10,7 +10,16 @@ import type { BoxedExpression, ComputeEngine } from '../global-types';
|
|
|
10
10
|
* - sort the terms
|
|
11
11
|
*
|
|
12
12
|
*/
|
|
13
|
-
export declare function canonicalAdd(ce: ComputeEngine, ops: ReadonlyArray<
|
|
14
|
-
export declare function addType(args: ReadonlyArray<
|
|
15
|
-
export declare function add(...xs: ReadonlyArray<
|
|
16
|
-
export declare function addN(...xs: ReadonlyArray<
|
|
13
|
+
export declare function canonicalAdd(ce: ComputeEngine, ops: ReadonlyArray<Expression>): Expression;
|
|
14
|
+
export declare function addType(args: ReadonlyArray<Expression>): Type | BoxedType;
|
|
15
|
+
export declare function add(...xs: ReadonlyArray<Expression>): Expression;
|
|
16
|
+
export declare function addN(...xs: ReadonlyArray<Expression>): Expression;
|
|
17
|
+
export declare class Terms {
|
|
18
|
+
private engine;
|
|
19
|
+
private terms;
|
|
20
|
+
constructor(ce: ComputeEngine, terms: ReadonlyArray<Expression>);
|
|
21
|
+
private _add;
|
|
22
|
+
private find;
|
|
23
|
+
N(): Expression;
|
|
24
|
+
asExpression(): Expression;
|
|
25
|
+
}
|
|
@@ -1,4 +1,69 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.50.0 */
|
|
2
|
+
import { NumericValue } from '../numeric-value/types';
|
|
3
|
+
import type { Rational } from '../numerics/types';
|
|
4
|
+
/**
|
|
5
|
+
* Group terms in a product by common term.
|
|
6
|
+
*
|
|
7
|
+
* All the terms should be canonical.
|
|
8
|
+
* - the arguments should have been flattened for `Multiply`
|
|
9
|
+
*
|
|
10
|
+
* - any argument of power been distributed, i.e.
|
|
11
|
+
* (ab)^2 -> a^2 b^2
|
|
12
|
+
* *
|
|
13
|
+
* 3 + √5 + √(x+1) + x^2 + (a+b)^2 + d
|
|
14
|
+
* -> [ [[3, "d"], [1, 1]],
|
|
15
|
+
* [[5, "x+1"], [1, 2]],
|
|
16
|
+
* [[1, "a+b"], [2, 1]]
|
|
17
|
+
* ]
|
|
18
|
+
*
|
|
19
|
+
*/
|
|
20
|
+
export declare class Product {
|
|
21
|
+
readonly options?: {
|
|
22
|
+
canonical?: boolean;
|
|
23
|
+
};
|
|
24
|
+
engine: ComputeEngine;
|
|
25
|
+
coefficient: NumericValue;
|
|
26
|
+
terms: {
|
|
27
|
+
term: Expression;
|
|
28
|
+
exponent: Rational;
|
|
29
|
+
}[];
|
|
30
|
+
private _isCanonical;
|
|
31
|
+
static from(expr: Expression): Product;
|
|
32
|
+
constructor(ce: ComputeEngine, xs?: ReadonlyArray<Expression>, options?: {
|
|
33
|
+
canonical?: boolean;
|
|
34
|
+
});
|
|
35
|
+
/**
|
|
36
|
+
* Add a term to the product.
|
|
37
|
+
*
|
|
38
|
+
* If `this._isCanonical` a running product of exact terms is kept.
|
|
39
|
+
* Otherwise, terms and their exponent are tallied.
|
|
40
|
+
*/
|
|
41
|
+
mul(term: Expression, exp?: Rational): void;
|
|
42
|
+
/** Divide the product by a term of coefficient */
|
|
43
|
+
div(term: NumericValue | Expression): void;
|
|
44
|
+
/** The terms of the product, grouped by degrees.
|
|
45
|
+
*
|
|
46
|
+
* If `mode` is `rational`, rationals are split into separate numerator and
|
|
47
|
+
* denominator, so that a rational expression can be created later
|
|
48
|
+
* If `mode` is `expression`, a boxed expression is returned, without
|
|
49
|
+
* splitting rationals
|
|
50
|
+
* If `mode` is `numeric`, the literals are combined into one expression
|
|
51
|
+
*
|
|
52
|
+
*/
|
|
53
|
+
groupedByDegrees(options?: {
|
|
54
|
+
mode?: 'rational' | 'expression' | 'numeric';
|
|
55
|
+
}): {
|
|
56
|
+
exponent: Rational;
|
|
57
|
+
terms: Expression[];
|
|
58
|
+
}[] | null;
|
|
59
|
+
asExpression(options?: {
|
|
60
|
+
numericApproximation: boolean;
|
|
61
|
+
}): Expression;
|
|
62
|
+
/** The product, expressed as a numerator and denominator */
|
|
63
|
+
asNumeratorDenominator(): [Expression, Expression];
|
|
64
|
+
asRationalExpression(): Expression;
|
|
65
|
+
}
|
|
66
|
+
export declare function commonTerms(lhs: Product, rhs: Product): [NumericValue, Expression];
|
|
2
67
|
/**
|
|
3
68
|
* Canonical form of 'Divide' (and 'Rational')
|
|
4
69
|
* - remove denominator of 1
|
|
@@ -8,8 +73,8 @@
|
|
|
8
73
|
* or Rational expression
|
|
9
74
|
* - evaluate number literals
|
|
10
75
|
*/
|
|
11
|
-
export declare function canonicalDivide(op1:
|
|
12
|
-
export declare function div(num:
|
|
76
|
+
export declare function canonicalDivide(op1: Expression, op2: Expression): Expression;
|
|
77
|
+
export declare function div(num: Expression, denom: number | Expression): Expression;
|
|
13
78
|
/**
|
|
14
79
|
* The canonical form of `Multiply`:
|
|
15
80
|
* - removes `1` and `-1`
|
|
@@ -22,6 +87,7 @@ export declare function div(num: BoxedExpression, denom: number | BoxedExpressio
|
|
|
22
87
|
*
|
|
23
88
|
* The input ops may not be canonical, the result is canonical.
|
|
24
89
|
*/
|
|
25
|
-
export declare function canonicalMultiply(ce: ComputeEngine, ops: ReadonlyArray<
|
|
26
|
-
export declare function
|
|
27
|
-
export declare function
|
|
90
|
+
export declare function canonicalMultiply(ce: ComputeEngine, ops: ReadonlyArray<Expression>): Expression;
|
|
91
|
+
export declare function expandProducts(ce: ComputeEngine, ops: ReadonlyArray<Expression>): Expression | null;
|
|
92
|
+
export declare function mul(...xs: ReadonlyArray<Expression>): Expression;
|
|
93
|
+
export declare function mulN(...xs: ReadonlyArray<Expression>): Expression;
|