@cortex-js/compute-engine 0.35.6 → 0.50.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +121 -5
- package/dist/compute-engine.esm.js +55594 -51135
- package/dist/compute-engine.min.esm.js +1081 -78
- package/dist/compute-engine.min.umd.js +1081 -78
- package/dist/compute-engine.umd.js +53638 -49162
- 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 +66 -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 +7 -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/init-lazy-refs.d.ts +1 -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/product.d.ts +1 -66
- package/dist/types/compute-engine/boxed-expression/rules.d.ts +51 -51
- package/dist/types/compute-engine/boxed-expression/serialize.d.ts +6 -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 +38 -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 +156 -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/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.1 */
|
|
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.1";
|
|
119
119
|
export {
|
|
120
120
|
dictionaryFromExpression,
|
|
121
121
|
isFunctionObject,
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/** Compute Engine 0.
|
|
2
|
-
function
|
|
1
|
+
/** Compute Engine 0.50.1 */
|
|
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.1";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.1 */
|
|
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.1";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.1 */
|
|
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.1";
|
|
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.1 */
|
|
2
2
|
export declare function fuzzyStringMatch(invalidWord: string, validWords: string[]): string | null;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.50.1 */
|
|
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.1 */
|
|
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.1 */
|
|
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.1 */
|
|
2
2
|
export declare function typeToString(type: Type, precedence?: number): string;
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.50.1 */
|
|
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.1 */
|
|
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,21 +1,25 @@
|
|
|
1
|
-
/* 0.
|
|
2
|
-
import type {
|
|
1
|
+
/* 0.50.1 */
|
|
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';
|
|
9
|
+
import type { serializeJson as _SerializeJsonFn } from './serialize';
|
|
10
|
+
/** @internal */
|
|
11
|
+
export declare function _setSerializeJson(fn: typeof _SerializeJsonFn): void;
|
|
9
12
|
/**
|
|
10
13
|
* _BoxedExpression
|
|
11
14
|
*
|
|
12
15
|
* @internal
|
|
13
16
|
*/
|
|
14
|
-
export declare abstract class _BoxedExpression implements
|
|
17
|
+
export declare abstract class _BoxedExpression implements Expression {
|
|
18
|
+
readonly _kind: string;
|
|
15
19
|
abstract readonly hash: number;
|
|
16
|
-
abstract readonly json:
|
|
20
|
+
abstract readonly json: MathJsonExpression;
|
|
17
21
|
abstract isCanonical: boolean;
|
|
18
|
-
abstract match(pattern:
|
|
22
|
+
abstract match(pattern: Expression, options?: PatternMatchOptions): BoxedSubstitution | null;
|
|
19
23
|
readonly engine: ComputeEngine;
|
|
20
24
|
/** Verbatim LaTeX, obtained from a source, i.e. from parsing,
|
|
21
25
|
* not generated synthetically
|
|
@@ -40,18 +44,18 @@ export declare abstract class _BoxedExpression implements BoxedExpression {
|
|
|
40
44
|
* Note: this is a standard method of JavaScript objects.
|
|
41
45
|
*
|
|
42
46
|
*/
|
|
43
|
-
toJSON():
|
|
44
|
-
toMathJson(options?: Readonly<Partial<JsonSerializationOptions>>):
|
|
47
|
+
toJSON(): MathJsonExpression;
|
|
48
|
+
toMathJson(options?: Readonly<Partial<JsonSerializationOptions>>): MathJsonExpression;
|
|
45
49
|
print(): void;
|
|
46
50
|
get isStructural(): boolean;
|
|
47
|
-
get canonical():
|
|
48
|
-
get structural():
|
|
51
|
+
get canonical(): Expression;
|
|
52
|
+
get structural(): Expression;
|
|
49
53
|
get isValid(): boolean;
|
|
50
54
|
get isPure(): boolean;
|
|
51
55
|
get isConstant(): boolean;
|
|
52
56
|
get isNumberLiteral(): boolean;
|
|
53
|
-
get numericValue(): number | NumericValue |
|
|
54
|
-
toNumericValue(): [NumericValue,
|
|
57
|
+
get numericValue(): number | NumericValue | undefined;
|
|
58
|
+
toNumericValue(): [NumericValue, Expression];
|
|
55
59
|
get isEven(): boolean | undefined;
|
|
56
60
|
get isOdd(): boolean | undefined;
|
|
57
61
|
get re(): number;
|
|
@@ -63,44 +67,44 @@ export declare abstract class _BoxedExpression implements BoxedExpression {
|
|
|
63
67
|
get isNonNegative(): boolean | undefined;
|
|
64
68
|
get isNegative(): boolean | undefined;
|
|
65
69
|
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<
|
|
70
|
+
neg(): Expression;
|
|
71
|
+
inv(): Expression;
|
|
72
|
+
abs(): Expression;
|
|
73
|
+
add(_rhs: number | Expression): Expression;
|
|
74
|
+
sub(rhs: Expression): Expression;
|
|
75
|
+
mul(_rhs: NumericValue | number | Expression): Expression;
|
|
76
|
+
div(_rhs: number | Expression): Expression;
|
|
77
|
+
pow(_exp: number | Expression): Expression;
|
|
78
|
+
root(_exp: number | Expression): Expression;
|
|
79
|
+
sqrt(): Expression;
|
|
80
|
+
ln(_base?: number | Expression): Expression;
|
|
81
|
+
get numerator(): Expression;
|
|
82
|
+
get denominator(): Expression;
|
|
83
|
+
get numeratorDenominator(): [Expression, Expression];
|
|
84
|
+
is(other: Expression | number | bigint | boolean | string): boolean;
|
|
85
|
+
isSame(other: Expression): boolean;
|
|
86
|
+
isEqual(other: number | Expression): boolean | undefined;
|
|
87
|
+
isLess(other: number | Expression): boolean | undefined;
|
|
88
|
+
isLessEqual(other: number | Expression): boolean | undefined;
|
|
89
|
+
isGreater(other: number | Expression): boolean | undefined;
|
|
90
|
+
isGreaterEqual(other: number | Expression): boolean | undefined;
|
|
91
|
+
get symbol(): string | undefined;
|
|
92
|
+
get tensor(): Tensor<TensorDataType> | undefined;
|
|
93
|
+
get string(): string | undefined;
|
|
94
|
+
getSubexpressions(operator: MathJsonSymbol): ReadonlyArray<Expression>;
|
|
95
|
+
get subexpressions(): ReadonlyArray<Expression>;
|
|
92
96
|
get symbols(): ReadonlyArray<string>;
|
|
93
97
|
get unknowns(): ReadonlyArray<string>;
|
|
94
|
-
get errors(): ReadonlyArray<
|
|
98
|
+
get errors(): ReadonlyArray<Expression>;
|
|
95
99
|
get isFunctionExpression(): boolean;
|
|
96
|
-
get ops():
|
|
100
|
+
get ops(): ReadonlyArray<Expression> | undefined;
|
|
97
101
|
get isScoped(): boolean;
|
|
98
102
|
get localScope(): Scope | undefined;
|
|
99
103
|
abstract readonly operator: string;
|
|
100
104
|
get nops(): SmallInteger;
|
|
101
|
-
get op1():
|
|
102
|
-
get op2():
|
|
103
|
-
get op3():
|
|
105
|
+
get op1(): Expression;
|
|
106
|
+
get op2(): Expression;
|
|
107
|
+
get op3(): Expression;
|
|
104
108
|
get isNaN(): boolean | undefined;
|
|
105
109
|
get isInfinity(): boolean | undefined;
|
|
106
110
|
get isFinite(): boolean | undefined;
|
|
@@ -108,13 +112,13 @@ export declare abstract class _BoxedExpression implements BoxedExpression {
|
|
|
108
112
|
get rank(): number;
|
|
109
113
|
subs(_sub: Substitution, options?: {
|
|
110
114
|
canonical?: CanonicalOptions;
|
|
111
|
-
}):
|
|
112
|
-
map(fn: (x:
|
|
115
|
+
}): Expression;
|
|
116
|
+
map(fn: (x: Expression) => Expression, options?: {
|
|
113
117
|
canonical: CanonicalOptions;
|
|
114
118
|
recursive?: boolean;
|
|
115
|
-
}):
|
|
116
|
-
solve(_vars?: Iterable<string> | string |
|
|
117
|
-
replace(_rules: BoxedRuleSet | Rule | Rule[]): null |
|
|
119
|
+
}): Expression;
|
|
120
|
+
solve(_vars?: Iterable<string> | string | Expression | Iterable<Expression>): null | ReadonlyArray<Expression> | Record<string, Expression> | Array<Record<string, Expression>>;
|
|
121
|
+
replace(_rules: BoxedRuleSet | Rule | Rule[]): null | Expression;
|
|
118
122
|
has(_v: string | string[]): boolean;
|
|
119
123
|
get description(): string[] | undefined;
|
|
120
124
|
get url(): string | undefined;
|
|
@@ -123,46 +127,32 @@ export declare abstract class _BoxedExpression implements BoxedExpression {
|
|
|
123
127
|
get baseDefinition(): BoxedBaseDefinition | undefined;
|
|
124
128
|
get valueDefinition(): BoxedValueDefinition | undefined;
|
|
125
129
|
get operatorDefinition(): BoxedOperatorDefinition | undefined;
|
|
126
|
-
infer(
|
|
130
|
+
infer(_t: Type, _inferenceMode?: 'narrow' | 'widen'): boolean;
|
|
127
131
|
bind(): void;
|
|
128
132
|
reset(): void;
|
|
129
|
-
get value():
|
|
130
|
-
set value(_value:
|
|
133
|
+
get value(): Expression | undefined;
|
|
134
|
+
set value(_value: unknown);
|
|
131
135
|
get type(): BoxedType;
|
|
132
136
|
set type(_type: Type | TypeString | BoxedType);
|
|
133
137
|
get isNumber(): boolean | undefined;
|
|
134
138
|
get isInteger(): boolean | undefined;
|
|
135
139
|
get isRational(): boolean | undefined;
|
|
136
140
|
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
|
-
};
|
|
141
|
+
simplify(_options?: Partial<SimplifyOptions>): Expression;
|
|
142
|
+
evaluate(_options?: Partial<EvaluateOptions>): Expression;
|
|
143
|
+
evaluateAsync(_options?: Partial<EvaluateOptions>): Promise<Expression>;
|
|
144
|
+
N(): Expression;
|
|
155
145
|
get isCollection(): boolean;
|
|
156
146
|
get isIndexedCollection(): boolean;
|
|
157
147
|
get isLazyCollection(): boolean;
|
|
158
|
-
contains(_rhs:
|
|
159
|
-
subsetOf(_target:
|
|
148
|
+
contains(_rhs: Expression): boolean | undefined;
|
|
149
|
+
subsetOf(_target: Expression, _strict: boolean): boolean | undefined;
|
|
160
150
|
get count(): number | undefined;
|
|
161
151
|
get isEmptyCollection(): boolean | undefined;
|
|
162
152
|
get isFiniteCollection(): boolean | undefined;
|
|
163
|
-
each(): Generator<
|
|
164
|
-
at(_index: number):
|
|
165
|
-
get(_key: string |
|
|
166
|
-
indexWhere(_predicate: (element:
|
|
153
|
+
each(): Generator<Expression>;
|
|
154
|
+
at(_index: number): Expression | undefined;
|
|
155
|
+
get(_key: string | Expression): Expression | undefined;
|
|
156
|
+
indexWhere(_predicate: (element: Expression) => boolean): number | undefined;
|
|
167
157
|
}
|
|
168
|
-
export declare function getSubexpressions(expr:
|
|
158
|
+
export declare function getSubexpressions(expr: Expression, name: MathJsonSymbol): ReadonlyArray<Expression>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.50.1 */
|
|
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.1 */
|
|
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.1 */
|
|
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;
|