mathjs 10.6.4 → 11.1.0
Sign up to get free protection for your applications and to get access to all the features.
- package/HISTORY.md +79 -1
- package/README.md +1 -1
- package/lib/browser/math.js +2 -41
- package/lib/browser/math.js.LICENSE.txt +43 -0
- package/lib/browser/math.js.map +1 -1
- package/lib/cjs/core/create.js +6 -5
- package/lib/cjs/core/function/import.js +4 -14
- package/lib/cjs/core/function/typed.js +54 -12
- package/lib/cjs/defaultInstance.js +3 -3
- package/lib/cjs/entry/allFactoriesAny.js +1 -1
- package/lib/cjs/entry/allFactoriesNumber.js +1 -1
- package/lib/cjs/entry/configReadonly.js +1 -1
- package/lib/cjs/entry/dependenciesAny/dependenciesChainClass.generated.js +3 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesKldivergence.generated.js +3 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesRationalize.generated.js +3 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesResolve.generated.js +3 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesSimplify.generated.js +3 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesSimplifyConstant.generated.js +56 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesSimplifyCore.generated.js +6 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesSqrtm.generated.js +3 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesStd.generated.js +3 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesStdTransform.generated.js +3 -0
- package/lib/cjs/entry/dependenciesAny.generated.js +8 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesChainClass.generated.js +3 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesRationalize.generated.js +3 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesResolve.generated.js +3 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesSimplify.generated.js +3 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesSimplifyConstant.generated.js +50 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesSimplifyCore.generated.js +6 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesStd.generated.js +3 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesStdTransform.generated.js +3 -0
- package/lib/cjs/entry/dependenciesNumber.generated.js +8 -0
- package/lib/cjs/entry/impureFunctionsAny.generated.js +87 -61
- package/lib/cjs/entry/impureFunctionsNumber.generated.js +93 -69
- package/lib/cjs/entry/pureFunctionsAny.generated.js +50 -45
- package/lib/cjs/entry/pureFunctionsNumber.generated.js +22 -19
- package/lib/cjs/expression/Parser.js +1 -1
- package/lib/cjs/expression/embeddedDocs/construction/index.js +1 -1
- package/lib/cjs/expression/embeddedDocs/embeddedDocs.js +8 -5
- package/lib/cjs/expression/embeddedDocs/function/algebra/simplifyConstant.js +15 -0
- package/lib/cjs/expression/embeddedDocs/function/algebra/simplifyCore.js +1 -1
- package/lib/cjs/expression/node/AccessorNode.js +216 -173
- package/lib/cjs/expression/node/ArrayNode.js +206 -160
- package/lib/cjs/expression/node/AssignmentNode.js +321 -270
- package/lib/cjs/expression/node/BlockNode.js +223 -172
- package/lib/cjs/expression/node/ConditionalNode.js +253 -193
- package/lib/cjs/expression/node/ConstantNode.js +216 -171
- package/lib/cjs/expression/node/FunctionAssignmentNode.js +258 -196
- package/lib/cjs/expression/node/FunctionNode.js +456 -416
- package/lib/cjs/expression/node/IndexNode.js +256 -210
- package/lib/cjs/expression/node/Node.js +411 -378
- package/lib/cjs/expression/node/ObjectNode.js +223 -178
- package/lib/cjs/expression/node/OperatorNode.js +474 -397
- package/lib/cjs/expression/node/ParenthesisNode.js +189 -143
- package/lib/cjs/expression/node/RangeNode.js +272 -224
- package/lib/cjs/expression/node/RelationalNode.js +246 -195
- package/lib/cjs/expression/node/SymbolNode.js +219 -172
- package/lib/cjs/expression/node/utils/access.js +1 -1
- package/lib/cjs/expression/node/utils/assign.js +1 -1
- package/lib/cjs/expression/operators.js +117 -23
- package/lib/cjs/expression/parse.js +37 -19
- package/lib/cjs/expression/transform/std.transform.js +3 -1
- package/lib/cjs/factoriesAny.js +8 -0
- package/lib/cjs/factoriesNumber.js +10 -1
- package/lib/cjs/function/algebra/decomposition/qr.js +1 -1
- package/lib/cjs/function/algebra/derivative.js +25 -33
- package/lib/cjs/function/algebra/leafCount.js +0 -3
- package/lib/cjs/function/algebra/rationalize.js +78 -108
- package/lib/cjs/function/algebra/resolve.js +53 -16
- package/lib/cjs/function/algebra/simplify/util.js +1 -1
- package/lib/cjs/function/algebra/simplify.js +90 -115
- package/lib/cjs/function/algebra/{simplify/simplifyConstant.js → simplifyConstant.js} +44 -10
- package/lib/cjs/function/algebra/simplifyCore.js +196 -93
- package/lib/cjs/function/algebra/solver/lsolveAll.js +2 -2
- package/lib/cjs/function/algebra/solver/usolveAll.js +2 -2
- package/lib/cjs/function/algebra/symbolicEqual.js +14 -32
- package/lib/cjs/function/arithmetic/abs.js +7 -14
- package/lib/cjs/function/arithmetic/add.js +26 -70
- package/lib/cjs/function/arithmetic/addScalar.js +17 -9
- package/lib/cjs/function/arithmetic/cbrt.js +7 -11
- package/lib/cjs/function/arithmetic/ceil.js +50 -40
- package/lib/cjs/function/arithmetic/cube.js +5 -10
- package/lib/cjs/function/arithmetic/divide.js +7 -7
- package/lib/cjs/function/arithmetic/divideScalar.js +4 -18
- package/lib/cjs/function/arithmetic/dotDivide.js +22 -65
- package/lib/cjs/function/arithmetic/dotMultiply.js +16 -61
- package/lib/cjs/function/arithmetic/dotPow.js +30 -63
- package/lib/cjs/function/arithmetic/exp.js +8 -12
- package/lib/cjs/function/arithmetic/expm1.js +10 -10
- package/lib/cjs/function/arithmetic/fix.js +34 -28
- package/lib/cjs/function/arithmetic/floor.js +51 -41
- package/lib/cjs/function/arithmetic/gcd.js +27 -68
- package/lib/cjs/function/arithmetic/hypot.js +9 -5
- package/lib/cjs/function/arithmetic/invmod.js +2 -2
- package/lib/cjs/function/arithmetic/lcm.js +27 -68
- package/lib/cjs/function/arithmetic/log.js +10 -12
- package/lib/cjs/function/arithmetic/log10.js +5 -3
- package/lib/cjs/function/arithmetic/log1p.js +11 -7
- package/lib/cjs/function/arithmetic/log2.js +5 -3
- package/lib/cjs/function/arithmetic/mod.js +22 -64
- package/lib/cjs/function/arithmetic/multiply.js +40 -35
- package/lib/cjs/function/arithmetic/multiplyScalar.js +2 -9
- package/lib/cjs/function/arithmetic/norm.js +1 -5
- package/lib/cjs/function/arithmetic/nthRoot.js +83 -95
- package/lib/cjs/function/arithmetic/nthRoots.js +2 -2
- package/lib/cjs/function/arithmetic/round.js +56 -42
- package/lib/cjs/function/arithmetic/sign.js +14 -10
- package/lib/cjs/function/arithmetic/sqrt.js +5 -9
- package/lib/cjs/function/arithmetic/square.js +6 -10
- package/lib/cjs/function/arithmetic/subtract.js +44 -100
- package/lib/cjs/function/arithmetic/unaryMinus.js +14 -16
- package/lib/cjs/function/arithmetic/unaryPlus.js +6 -4
- package/lib/cjs/function/bitwise/bitAnd.js +17 -61
- package/lib/cjs/function/bitwise/bitNot.js +6 -4
- package/lib/cjs/function/bitwise/bitOr.js +16 -60
- package/lib/cjs/function/bitwise/bitXor.js +17 -61
- package/lib/cjs/function/bitwise/leftShift.js +69 -82
- package/lib/cjs/function/bitwise/rightArithShift.js +69 -82
- package/lib/cjs/function/bitwise/rightLogShift.js +69 -82
- package/lib/cjs/function/bitwise/useMatrixForArrayScalar.js +36 -0
- package/lib/cjs/function/complex/arg.js +5 -3
- package/lib/cjs/function/complex/conj.js +6 -7
- package/lib/cjs/function/complex/im.js +7 -8
- package/lib/cjs/function/complex/re.js +6 -10
- package/lib/cjs/function/geometry/distance.js +2 -2
- package/lib/cjs/function/logical/and.js +74 -80
- package/lib/cjs/function/logical/not.js +13 -6
- package/lib/cjs/function/logical/or.js +21 -63
- package/lib/cjs/function/logical/xor.js +21 -63
- package/lib/cjs/function/matrix/diff.js +11 -8
- package/lib/cjs/function/matrix/eigs/complexEigs.js +5 -5
- package/lib/cjs/function/matrix/fft.js +2 -2
- package/lib/cjs/function/matrix/matrixFromColumns.js +1 -1
- package/lib/cjs/function/matrix/matrixFromRows.js +1 -1
- package/lib/cjs/function/matrix/ones.js +2 -1
- package/lib/cjs/function/matrix/rotate.js +5 -5
- package/lib/cjs/function/matrix/sqrtm.js +3 -2
- package/lib/cjs/function/matrix/transpose.js +47 -48
- package/lib/cjs/function/matrix/zeros.js +2 -1
- package/lib/cjs/function/probability/factorial.js +5 -3
- package/lib/cjs/function/probability/gamma.js +38 -40
- package/lib/cjs/function/probability/kldivergence.js +5 -2
- package/lib/cjs/function/probability/lgamma.js +30 -30
- package/lib/cjs/function/probability/util/seededRNG.js +2 -2
- package/lib/cjs/function/relational/compare.js +21 -67
- package/lib/cjs/function/relational/compareNatural.js +59 -54
- package/lib/cjs/function/relational/compareText.js +10 -43
- package/lib/cjs/function/relational/compareUnits.js +24 -0
- package/lib/cjs/function/relational/equal.js +19 -80
- package/lib/cjs/function/relational/equalScalar.js +7 -9
- package/lib/cjs/function/relational/larger.js +21 -67
- package/lib/cjs/function/relational/largerEq.js +21 -67
- package/lib/cjs/function/relational/smaller.js +21 -67
- package/lib/cjs/function/relational/smallerEq.js +21 -67
- package/lib/cjs/function/relational/unequal.js +19 -80
- package/lib/cjs/function/special/erf.js +5 -3
- package/lib/cjs/function/statistics/std.js +11 -2
- package/lib/cjs/function/string/format.js +2 -2
- package/lib/cjs/function/string/hex.js +1 -2
- package/lib/cjs/function/trigonometry/acos.js +4 -8
- package/lib/cjs/function/trigonometry/acosh.js +2 -7
- package/lib/cjs/function/trigonometry/acot.js +6 -11
- package/lib/cjs/function/trigonometry/acoth.js +4 -8
- package/lib/cjs/function/trigonometry/acsc.js +6 -11
- package/lib/cjs/function/trigonometry/acsch.js +4 -8
- package/lib/cjs/function/trigonometry/asec.js +6 -10
- package/lib/cjs/function/trigonometry/asech.js +4 -8
- package/lib/cjs/function/trigonometry/asin.js +5 -10
- package/lib/cjs/function/trigonometry/asinh.js +4 -9
- package/lib/cjs/function/trigonometry/atan.js +5 -11
- package/lib/cjs/function/trigonometry/atan2.js +25 -63
- package/lib/cjs/function/trigonometry/atanh.js +4 -9
- package/lib/cjs/function/trigonometry/cos.js +11 -20
- package/lib/cjs/function/trigonometry/cosh.js +5 -19
- package/lib/cjs/function/trigonometry/cot.js +9 -15
- package/lib/cjs/function/trigonometry/coth.js +4 -15
- package/lib/cjs/function/trigonometry/csc.js +11 -17
- package/lib/cjs/function/trigonometry/csch.js +4 -15
- package/lib/cjs/function/trigonometry/sec.js +11 -17
- package/lib/cjs/function/trigonometry/sech.js +4 -15
- package/lib/cjs/function/trigonometry/sin.js +11 -21
- package/lib/cjs/function/trigonometry/sinh.js +5 -20
- package/lib/cjs/function/trigonometry/tan.js +11 -21
- package/lib/cjs/function/trigonometry/tanh.js +5 -20
- package/lib/cjs/function/trigonometry/trigUnit.js +24 -0
- package/lib/cjs/function/unit/to.js +7 -41
- package/lib/cjs/function/utils/clone.js +1 -1
- package/lib/cjs/function/utils/hasNumericValue.js +5 -1
- package/lib/cjs/function/utils/isInteger.js +6 -4
- package/lib/cjs/function/utils/isNaN.js +1 -1
- package/lib/cjs/function/utils/isNegative.js +11 -7
- package/lib/cjs/function/utils/isNumeric.js +6 -4
- package/lib/cjs/function/utils/isPositive.js +11 -7
- package/lib/cjs/function/utils/isPrime.js +5 -3
- package/lib/cjs/function/utils/isZero.js +21 -17
- package/lib/cjs/function/utils/numeric.js +11 -4
- package/lib/cjs/function/utils/typeOf.js +38 -44
- package/lib/cjs/header.js +2 -2
- package/lib/cjs/plain/bignumber/index.js +1 -1
- package/lib/cjs/type/bignumber/BigNumber.js +2 -2
- package/lib/cjs/type/bignumber/function/bignumber.js +6 -4
- package/lib/cjs/type/boolean.js +7 -5
- package/lib/cjs/type/chain/Chain.js +23 -3
- package/lib/cjs/type/complex/Complex.js +18 -14
- package/lib/cjs/type/complex/function/complex.js +6 -4
- package/lib/cjs/type/fraction/Fraction.js +10 -6
- package/lib/cjs/type/fraction/function/fraction.js +6 -4
- package/lib/cjs/type/matrix/DenseMatrix.js +21 -6
- package/lib/cjs/type/matrix/SparseMatrix.js +12 -2
- package/lib/cjs/type/matrix/utils/{algorithm01.js → matAlgo01xDSid.js} +4 -4
- package/lib/cjs/type/matrix/utils/{algorithm02.js → matAlgo02xDS0.js} +5 -5
- package/lib/cjs/type/matrix/utils/{algorithm03.js → matAlgo03xDSf.js} +5 -5
- package/lib/cjs/type/matrix/utils/{algorithm04.js → matAlgo04xSidSid.js} +7 -7
- package/lib/cjs/type/matrix/utils/{algorithm05.js → matAlgo05xSfSf.js} +5 -5
- package/lib/cjs/type/matrix/utils/{algorithm06.js → matAlgo06xS0S0.js} +5 -5
- package/lib/cjs/type/matrix/utils/{algorithm07.js → matAlgo07xSSf.js} +5 -5
- package/lib/cjs/type/matrix/utils/{algorithm08.js → matAlgo08xS0Sid.js} +6 -6
- package/lib/cjs/type/matrix/utils/{algorithm09.js → matAlgo09xS0Sf.js} +5 -5
- package/lib/cjs/type/matrix/utils/{algorithm10.js → matAlgo10xSids.js} +5 -5
- package/lib/cjs/type/matrix/utils/{algorithm11.js → matAlgo11xS0s.js} +5 -5
- package/lib/cjs/type/matrix/utils/{algorithm12.js → matAlgo12xSfs.js} +5 -5
- package/lib/cjs/type/matrix/utils/{algorithm13.js → matAlgo13xDD.js} +5 -5
- package/lib/cjs/type/matrix/utils/{algorithm14.js → matAlgo14xDs.js} +5 -5
- package/lib/cjs/type/matrix/utils/matrixAlgorithmSuite.js +238 -0
- package/lib/cjs/type/number.js +6 -4
- package/lib/cjs/type/string.js +7 -5
- package/lib/cjs/type/unit/Unit.js +98 -45
- package/lib/cjs/type/unit/function/createUnit.js +2 -1
- package/lib/cjs/type/unit/function/unit.js +14 -5
- package/lib/cjs/utils/customs.js +2 -2
- package/lib/cjs/utils/emitter.js +1 -1
- package/lib/cjs/utils/function.js +2 -2
- package/lib/cjs/utils/is.js +27 -25
- package/lib/cjs/utils/latex.js +3 -3
- package/lib/cjs/utils/lruQueue.js +1 -1
- package/lib/cjs/utils/map.js +3 -3
- package/lib/cjs/utils/object.js +2 -2
- package/lib/cjs/utils/snapshot.js +30 -57
- package/lib/cjs/utils/string.js +3 -3
- package/lib/cjs/version.js +1 -1
- package/lib/esm/core/create.js +2 -1
- package/lib/esm/core/function/import.js +2 -12
- package/lib/esm/core/function/typed.js +47 -11
- package/lib/esm/entry/dependenciesAny/dependenciesChainClass.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesKldivergence.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesRationalize.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesResolve.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesSimplify.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesSimplifyConstant.generated.js +34 -0
- package/lib/esm/entry/dependenciesAny/dependenciesSimplifyCore.generated.js +4 -0
- package/lib/esm/entry/dependenciesAny/dependenciesSqrtm.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesStd.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesStdTransform.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny.generated.js +1 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesChainClass.generated.js +2 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesRationalize.generated.js +2 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesResolve.generated.js +2 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesSimplify.generated.js +2 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesSimplifyConstant.generated.js +30 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesSimplifyCore.generated.js +4 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesStd.generated.js +2 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesStdTransform.generated.js +2 -0
- package/lib/esm/entry/dependenciesNumber.generated.js +1 -0
- package/lib/esm/entry/impureFunctionsAny.generated.js +73 -48
- package/lib/esm/entry/impureFunctionsNumber.generated.js +81 -58
- package/lib/esm/entry/pureFunctionsAny.generated.js +39 -36
- package/lib/esm/entry/pureFunctionsNumber.generated.js +14 -13
- package/lib/esm/expression/embeddedDocs/construction/index.js +1 -1
- package/lib/esm/expression/embeddedDocs/embeddedDocs.js +2 -0
- package/lib/esm/expression/embeddedDocs/function/algebra/simplifyConstant.js +8 -0
- package/lib/esm/expression/embeddedDocs/function/algebra/simplifyCore.js +1 -1
- package/lib/esm/expression/node/AccessorNode.js +158 -153
- package/lib/esm/expression/node/ArrayNode.js +162 -154
- package/lib/esm/expression/node/AssignmentNode.js +257 -245
- package/lib/esm/expression/node/BlockNode.js +177 -163
- package/lib/esm/expression/node/ConditionalNode.js +197 -174
- package/lib/esm/expression/node/ConstantNode.js +171 -163
- package/lib/esm/expression/node/FunctionAssignmentNode.js +205 -180
- package/lib/esm/expression/node/FunctionNode.js +407 -407
- package/lib/esm/expression/node/IndexNode.js +206 -198
- package/lib/esm/expression/node/Node.js +325 -325
- package/lib/esm/expression/node/ObjectNode.js +166 -157
- package/lib/esm/expression/node/OperatorNode.js +414 -377
- package/lib/esm/expression/node/ParenthesisNode.js +146 -138
- package/lib/esm/expression/node/RangeNode.js +221 -212
- package/lib/esm/expression/node/RelationalNode.js +190 -176
- package/lib/esm/expression/node/SymbolNode.js +161 -152
- package/lib/esm/expression/operators.js +96 -4
- package/lib/esm/expression/parse.js +25 -7
- package/lib/esm/expression/transform/std.transform.js +3 -1
- package/lib/esm/factoriesAny.js +1 -0
- package/lib/esm/factoriesNumber.js +1 -0
- package/lib/esm/function/algebra/derivative.js +25 -33
- package/lib/esm/function/algebra/leafCount.js +0 -3
- package/lib/esm/function/algebra/rationalize.js +83 -114
- package/lib/esm/function/algebra/resolve.js +25 -16
- package/lib/esm/function/algebra/simplify.js +85 -113
- package/lib/esm/function/algebra/{simplify/simplifyConstant.js → simplifyConstant.js} +39 -9
- package/lib/esm/function/algebra/simplifyCore.js +192 -91
- package/lib/esm/function/algebra/symbolicEqual.js +14 -32
- package/lib/esm/function/arithmetic/abs.js +3 -16
- package/lib/esm/function/arithmetic/add.js +21 -65
- package/lib/esm/function/arithmetic/addScalar.js +11 -5
- package/lib/esm/function/arithmetic/cbrt.js +7 -10
- package/lib/esm/function/arithmetic/ceil.js +25 -25
- package/lib/esm/function/arithmetic/cube.js +5 -9
- package/lib/esm/function/arithmetic/divide.js +7 -7
- package/lib/esm/function/arithmetic/divideScalar.js +2 -19
- package/lib/esm/function/arithmetic/dotDivide.js +22 -64
- package/lib/esm/function/arithmetic/dotMultiply.js +16 -60
- package/lib/esm/function/arithmetic/dotPow.js +30 -62
- package/lib/esm/function/arithmetic/exp.js +8 -11
- package/lib/esm/function/arithmetic/expm1.js +10 -9
- package/lib/esm/function/arithmetic/fix.js +18 -18
- package/lib/esm/function/arithmetic/floor.js +26 -26
- package/lib/esm/function/arithmetic/gcd.js +26 -70
- package/lib/esm/function/arithmetic/hypot.js +7 -6
- package/lib/esm/function/arithmetic/invmod.js +1 -1
- package/lib/esm/function/arithmetic/lcm.js +26 -70
- package/lib/esm/function/arithmetic/log.js +7 -10
- package/lib/esm/function/arithmetic/log10.js +1 -3
- package/lib/esm/function/arithmetic/log1p.js +4 -6
- package/lib/esm/function/arithmetic/log2.js +1 -3
- package/lib/esm/function/arithmetic/mod.js +21 -62
- package/lib/esm/function/arithmetic/multiply.js +23 -27
- package/lib/esm/function/arithmetic/multiplyScalar.js +2 -13
- package/lib/esm/function/arithmetic/norm.js +0 -4
- package/lib/esm/function/arithmetic/nthRoot.js +41 -76
- package/lib/esm/function/arithmetic/nthRoots.js +2 -2
- package/lib/esm/function/arithmetic/round.js +26 -28
- package/lib/esm/function/arithmetic/sign.js +5 -7
- package/lib/esm/function/arithmetic/sqrt.js +5 -8
- package/lib/esm/function/arithmetic/square.js +6 -9
- package/lib/esm/function/arithmetic/subtract.js +31 -95
- package/lib/esm/function/arithmetic/unaryMinus.js +6 -16
- package/lib/esm/function/arithmetic/unaryPlus.js +2 -4
- package/lib/esm/function/bitwise/bitAnd.js +16 -59
- package/lib/esm/function/bitwise/bitNot.js +2 -4
- package/lib/esm/function/bitwise/bitOr.js +16 -59
- package/lib/esm/function/bitwise/bitXor.js +16 -59
- package/lib/esm/function/bitwise/leftShift.js +39 -61
- package/lib/esm/function/bitwise/rightArithShift.js +39 -61
- package/lib/esm/function/bitwise/rightLogShift.js +39 -61
- package/lib/esm/function/bitwise/useMatrixForArrayScalar.js +13 -0
- package/lib/esm/function/complex/arg.js +1 -3
- package/lib/esm/function/complex/conj.js +3 -12
- package/lib/esm/function/complex/im.js +4 -15
- package/lib/esm/function/complex/re.js +3 -15
- package/lib/esm/function/geometry/distance.js +2 -2
- package/lib/esm/function/logical/and.js +35 -57
- package/lib/esm/function/logical/not.js +3 -6
- package/lib/esm/function/logical/or.js +16 -61
- package/lib/esm/function/logical/xor.js +16 -61
- package/lib/esm/function/matrix/diff.js +3 -8
- package/lib/esm/function/matrix/ones.js +2 -1
- package/lib/esm/function/matrix/rotate.js +5 -5
- package/lib/esm/function/matrix/sqrtm.js +3 -2
- package/lib/esm/function/matrix/transpose.js +47 -50
- package/lib/esm/function/matrix/zeros.js +2 -1
- package/lib/esm/function/probability/factorial.js +1 -3
- package/lib/esm/function/probability/gamma.js +38 -39
- package/lib/esm/function/probability/kldivergence.js +3 -2
- package/lib/esm/function/probability/lgamma.js +29 -29
- package/lib/esm/function/relational/compare.js +21 -67
- package/lib/esm/function/relational/compareNatural.js +54 -49
- package/lib/esm/function/relational/compareText.js +10 -42
- package/lib/esm/function/relational/compareUnits.js +15 -0
- package/lib/esm/function/relational/equal.js +19 -79
- package/lib/esm/function/relational/equalScalar.js +6 -9
- package/lib/esm/function/relational/larger.js +23 -73
- package/lib/esm/function/relational/largerEq.js +23 -73
- package/lib/esm/function/relational/smaller.js +23 -73
- package/lib/esm/function/relational/smallerEq.js +23 -73
- package/lib/esm/function/relational/unequal.js +19 -79
- package/lib/esm/function/special/erf.js +1 -3
- package/lib/esm/function/statistics/std.js +10 -2
- package/lib/esm/function/string/format.js +2 -2
- package/lib/esm/function/string/hex.js +1 -2
- package/lib/esm/function/trigonometry/acos.js +4 -7
- package/lib/esm/function/trigonometry/acosh.js +2 -6
- package/lib/esm/function/trigonometry/acot.js +6 -10
- package/lib/esm/function/trigonometry/acoth.js +4 -7
- package/lib/esm/function/trigonometry/acsc.js +6 -10
- package/lib/esm/function/trigonometry/acsch.js +4 -7
- package/lib/esm/function/trigonometry/asec.js +6 -9
- package/lib/esm/function/trigonometry/asech.js +4 -7
- package/lib/esm/function/trigonometry/asin.js +5 -9
- package/lib/esm/function/trigonometry/asinh.js +4 -8
- package/lib/esm/function/trigonometry/atan.js +5 -10
- package/lib/esm/function/trigonometry/atan2.js +26 -65
- package/lib/esm/function/trigonometry/atanh.js +4 -8
- package/lib/esm/function/trigonometry/cos.js +11 -22
- package/lib/esm/function/trigonometry/cosh.js +5 -20
- package/lib/esm/function/trigonometry/cot.js +10 -20
- package/lib/esm/function/trigonometry/coth.js +6 -20
- package/lib/esm/function/trigonometry/csc.js +12 -22
- package/lib/esm/function/trigonometry/csch.js +6 -20
- package/lib/esm/function/trigonometry/sec.js +12 -22
- package/lib/esm/function/trigonometry/sech.js +6 -20
- package/lib/esm/function/trigonometry/sin.js +11 -23
- package/lib/esm/function/trigonometry/sinh.js +5 -21
- package/lib/esm/function/trigonometry/tan.js +11 -23
- package/lib/esm/function/trigonometry/tanh.js +5 -21
- package/lib/esm/function/trigonometry/trigUnit.js +15 -0
- package/lib/esm/function/unit/to.js +8 -43
- package/lib/esm/function/utils/clone.js +1 -1
- package/lib/esm/function/utils/hasNumericValue.js +3 -1
- package/lib/esm/function/utils/isInteger.js +2 -4
- package/lib/esm/function/utils/isNaN.js +1 -1
- package/lib/esm/function/utils/isNegative.js +3 -7
- package/lib/esm/function/utils/isNumeric.js +4 -10
- package/lib/esm/function/utils/isPositive.js +3 -7
- package/lib/esm/function/utils/isPrime.js +1 -3
- package/lib/esm/function/utils/isZero.js +13 -17
- package/lib/esm/function/utils/numeric.js +11 -4
- package/lib/esm/function/utils/typeOf.js +38 -44
- package/lib/esm/type/bignumber/function/bignumber.js +1 -3
- package/lib/esm/type/boolean.js +1 -3
- package/lib/esm/type/chain/Chain.js +23 -3
- package/lib/esm/type/complex/Complex.js +4 -0
- package/lib/esm/type/complex/function/complex.js +1 -3
- package/lib/esm/type/fraction/Fraction.js +4 -0
- package/lib/esm/type/fraction/function/fraction.js +1 -3
- package/lib/esm/type/matrix/DenseMatrix.js +15 -1
- package/lib/esm/type/matrix/SparseMatrix.js +9 -0
- package/lib/esm/type/matrix/utils/{algorithm01.js → matAlgo01xDSid.js} +2 -2
- package/lib/esm/type/matrix/utils/{algorithm02.js → matAlgo02xDS0.js} +3 -3
- package/lib/esm/type/matrix/utils/{algorithm03.js → matAlgo03xDSf.js} +3 -3
- package/lib/esm/type/matrix/utils/{algorithm04.js → matAlgo04xSidSid.js} +5 -5
- package/lib/esm/type/matrix/utils/{algorithm05.js → matAlgo05xSfSf.js} +3 -3
- package/lib/esm/type/matrix/utils/{algorithm06.js → matAlgo06xS0S0.js} +3 -3
- package/lib/esm/type/matrix/utils/{algorithm07.js → matAlgo07xSSf.js} +3 -3
- package/lib/esm/type/matrix/utils/{algorithm08.js → matAlgo08xS0Sid.js} +4 -4
- package/lib/esm/type/matrix/utils/{algorithm09.js → matAlgo09xS0Sf.js} +3 -3
- package/lib/esm/type/matrix/utils/{algorithm10.js → matAlgo10xSids.js} +3 -3
- package/lib/esm/type/matrix/utils/{algorithm11.js → matAlgo11xS0s.js} +3 -3
- package/lib/esm/type/matrix/utils/{algorithm12.js → matAlgo12xSfs.js} +3 -3
- package/lib/esm/type/matrix/utils/{algorithm13.js → matAlgo13xDD.js} +3 -3
- package/lib/esm/type/matrix/utils/{algorithm14.js → matAlgo14xDs.js} +3 -3
- package/lib/esm/type/matrix/utils/matrixAlgorithmSuite.js +168 -0
- package/lib/esm/type/number.js +1 -3
- package/lib/esm/type/string.js +1 -3
- package/lib/esm/type/unit/Unit.js +85 -36
- package/lib/esm/type/unit/function/createUnit.js +2 -1
- package/lib/esm/type/unit/function/unit.js +10 -5
- package/lib/esm/utils/is.js +18 -18
- package/lib/esm/utils/snapshot.js +22 -48
- package/lib/esm/version.js +1 -1
- package/package.json +22 -25
- package/types/index.d.ts +211 -180
- package/types/index.ts +358 -144
- package/types/tsconfig.json +4 -1
- package/lib/cjs/utils/polyfills.js +0 -14
- package/lib/esm/utils/polyfills.js +0 -12
@@ -1,11 +1,10 @@
|
|
1
1
|
import { isConstantNode, isParenthesisNode } from '../../utils/is.js';
|
2
2
|
import { factory } from '../../utils/factory.js';
|
3
3
|
import { createUtil } from './simplify/util.js';
|
4
|
-
import { createSimplifyConstant } from './simplify/simplifyConstant.js';
|
5
4
|
import { hasOwnProperty } from '../../utils/object.js';
|
6
5
|
import { createEmptyMap, createMap } from '../../utils/map.js';
|
7
6
|
var name = 'simplify';
|
8
|
-
var dependencies = ['config', 'typed', 'parse', 'add', 'subtract', 'multiply', 'divide', 'pow', 'isZero', 'equal', 'resolve', 'simplifyCore', '?fraction', '?bignumber', 'mathWithTransform', 'matrix', 'AccessorNode', 'ArrayNode', 'ConstantNode', 'FunctionNode', 'IndexNode', 'ObjectNode', 'OperatorNode', 'ParenthesisNode', 'SymbolNode'];
|
7
|
+
var dependencies = ['config', 'typed', 'parse', 'add', 'subtract', 'multiply', 'divide', 'pow', 'isZero', 'equal', 'resolve', 'simplifyConstant', 'simplifyCore', '?fraction', '?bignumber', 'mathWithTransform', 'matrix', 'AccessorNode', 'ArrayNode', 'ConstantNode', 'FunctionNode', 'IndexNode', 'ObjectNode', 'OperatorNode', 'ParenthesisNode', 'SymbolNode'];
|
9
8
|
export var createSimplify = /* #__PURE__ */factory(name, dependencies, _ref => {
|
10
9
|
var {
|
11
10
|
config,
|
@@ -19,6 +18,7 @@ export var createSimplify = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
19
18
|
isZero,
|
20
19
|
equal,
|
21
20
|
resolve,
|
21
|
+
simplifyConstant,
|
22
22
|
simplifyCore,
|
23
23
|
fraction,
|
24
24
|
bignumber,
|
@@ -34,22 +34,6 @@ export var createSimplify = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
34
34
|
ParenthesisNode,
|
35
35
|
SymbolNode
|
36
36
|
} = _ref;
|
37
|
-
var simplifyConstant = createSimplifyConstant({
|
38
|
-
typed,
|
39
|
-
config,
|
40
|
-
mathWithTransform,
|
41
|
-
matrix,
|
42
|
-
fraction,
|
43
|
-
bignumber,
|
44
|
-
AccessorNode,
|
45
|
-
ArrayNode,
|
46
|
-
ConstantNode,
|
47
|
-
FunctionNode,
|
48
|
-
IndexNode,
|
49
|
-
ObjectNode,
|
50
|
-
OperatorNode,
|
51
|
-
SymbolNode
|
52
|
-
});
|
53
37
|
var {
|
54
38
|
hasProperty,
|
55
39
|
isCommutative,
|
@@ -95,7 +79,10 @@ export var createSimplify = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
95
79
|
* - 'v' - matches any Node that is not a ConstantNode
|
96
80
|
*
|
97
81
|
* The default list of rules is exposed on the function as `simplify.rules`
|
98
|
-
* and can be used as a basis to built a set of custom rules.
|
82
|
+
* and can be used as a basis to built a set of custom rules. Note that since
|
83
|
+
* the `simplifyCore` function is in the default list of rules, by default
|
84
|
+
* simplify will convert any function calls in the expression that have
|
85
|
+
* operator equivalents to their operator forms.
|
99
86
|
*
|
100
87
|
* To specify a rule as a string, separate the left and right pattern by '->'
|
101
88
|
* When specifying a rule as an object, the following keys are meaningful:
|
@@ -166,105 +153,30 @@ export var createSimplify = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
166
153
|
*
|
167
154
|
* @param {Node | string} expr
|
168
155
|
* The expression to be simplified
|
169
|
-
* @param {
|
156
|
+
* @param {SimplifyRule[]} [rules]
|
170
157
|
* Optional list with custom rules
|
158
|
+
* @param {Object} [scope] Optional scope with variables
|
159
|
+
* @param {SimplifyOptions} [options] Optional configuration settings
|
171
160
|
* @return {Node} Returns the simplified form of `expr`
|
172
161
|
*/
|
173
162
|
|
163
|
+
typed.addConversion({
|
164
|
+
from: 'Object',
|
165
|
+
to: 'Map',
|
166
|
+
convert: createMap
|
167
|
+
});
|
174
168
|
var simplify = typed('simplify', {
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
'
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
},
|
187
|
-
'string, Array, Map | Object': function stringArrayMapObject(expr, rules, scope) {
|
188
|
-
return this(parse(expr), rules, scope, {});
|
189
|
-
},
|
190
|
-
'string, Array, Map | Object, Object': function stringArrayMapObjectObject(expr, rules, scope, options) {
|
191
|
-
return this(parse(expr), rules, scope, options);
|
192
|
-
},
|
193
|
-
'Node, Map | Object': function NodeMapObject(expr, scope) {
|
194
|
-
return this(expr, this.rules, scope, {});
|
195
|
-
},
|
196
|
-
'Node, Map | Object, Object': function NodeMapObjectObject(expr, scope, options) {
|
197
|
-
return this(expr, this.rules, scope, options);
|
198
|
-
},
|
199
|
-
Node: function Node(expr) {
|
200
|
-
return this(expr, this.rules, createEmptyMap(), {});
|
201
|
-
},
|
202
|
-
'Node, Array': function NodeArray(expr, rules) {
|
203
|
-
return this(expr, rules, createEmptyMap(), {});
|
204
|
-
},
|
205
|
-
'Node, Array, Map | Object': function NodeArrayMapObject(expr, rules, scope) {
|
206
|
-
return this(expr, rules, scope, {});
|
207
|
-
},
|
208
|
-
'Node, Array, Object, Object': function NodeArrayObjectObject(expr, rules, scope, options) {
|
209
|
-
return this(expr, rules, createMap(scope), options);
|
210
|
-
},
|
211
|
-
'Node, Array, Map, Object': function NodeArrayMapObject(expr, rules, scope, options) {
|
212
|
-
var debug = options.consoleDebug;
|
213
|
-
rules = _buildRules(rules, options.context);
|
214
|
-
var res = resolve(expr, scope);
|
215
|
-
res = removeParens(res);
|
216
|
-
var visited = {};
|
217
|
-
var str = res.toString({
|
218
|
-
parenthesis: 'all'
|
219
|
-
});
|
220
|
-
|
221
|
-
while (!visited[str]) {
|
222
|
-
visited[str] = true;
|
223
|
-
_lastsym = 0; // counter for placeholder symbols
|
224
|
-
|
225
|
-
var laststr = str;
|
226
|
-
if (debug) console.log('Working on: ', str);
|
227
|
-
|
228
|
-
for (var i = 0; i < rules.length; i++) {
|
229
|
-
var rulestr = '';
|
230
|
-
|
231
|
-
if (typeof rules[i] === 'function') {
|
232
|
-
res = rules[i](res, options);
|
233
|
-
if (debug) rulestr = rules[i].name;
|
234
|
-
} else {
|
235
|
-
flatten(res, options.context);
|
236
|
-
res = applyRule(res, rules[i], options.context);
|
237
|
-
|
238
|
-
if (debug) {
|
239
|
-
rulestr = "".concat(rules[i].l.toString(), " -> ").concat(rules[i].r.toString());
|
240
|
-
}
|
241
|
-
}
|
242
|
-
|
243
|
-
if (debug) {
|
244
|
-
var newstr = res.toString({
|
245
|
-
parenthesis: 'all'
|
246
|
-
});
|
247
|
-
|
248
|
-
if (newstr !== laststr) {
|
249
|
-
console.log('Applying', rulestr, 'produced', newstr);
|
250
|
-
laststr = newstr;
|
251
|
-
}
|
252
|
-
}
|
253
|
-
/* Use left-heavy binary tree internally,
|
254
|
-
* since custom rule functions may expect it
|
255
|
-
*/
|
256
|
-
|
257
|
-
|
258
|
-
unflattenl(res, options.context);
|
259
|
-
}
|
260
|
-
|
261
|
-
str = res.toString({
|
262
|
-
parenthesis: 'all'
|
263
|
-
});
|
264
|
-
}
|
265
|
-
|
266
|
-
return res;
|
267
|
-
}
|
169
|
+
Node: _simplify,
|
170
|
+
'Node, Map': (expr, scope) => _simplify(expr, false, scope),
|
171
|
+
'Node, Map, Object': (expr, scope, options) => _simplify(expr, false, scope, options),
|
172
|
+
'Node, Array': _simplify,
|
173
|
+
'Node, Array, Map': _simplify,
|
174
|
+
'Node, Array, Map, Object': _simplify
|
175
|
+
});
|
176
|
+
typed.removeConversion({
|
177
|
+
from: 'Object',
|
178
|
+
to: 'Map',
|
179
|
+
convert: createMap
|
268
180
|
});
|
269
181
|
simplify.defaultContext = defaultContext;
|
270
182
|
simplify.realContext = realContext;
|
@@ -757,6 +669,66 @@ export var createSimplify = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
757
669
|
return new SymbolNode('_p' + _lastsym++);
|
758
670
|
}
|
759
671
|
|
672
|
+
function _simplify(expr, rules) {
|
673
|
+
var scope = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : createEmptyMap();
|
674
|
+
var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
|
675
|
+
var debug = options.consoleDebug;
|
676
|
+
rules = _buildRules(rules || simplify.rules, options.context);
|
677
|
+
var res = resolve(expr, scope);
|
678
|
+
res = removeParens(res);
|
679
|
+
var visited = {};
|
680
|
+
var str = res.toString({
|
681
|
+
parenthesis: 'all'
|
682
|
+
});
|
683
|
+
|
684
|
+
while (!visited[str]) {
|
685
|
+
visited[str] = true;
|
686
|
+
_lastsym = 0; // counter for placeholder symbols
|
687
|
+
|
688
|
+
var laststr = str;
|
689
|
+
if (debug) console.log('Working on: ', str);
|
690
|
+
|
691
|
+
for (var i = 0; i < rules.length; i++) {
|
692
|
+
var rulestr = '';
|
693
|
+
|
694
|
+
if (typeof rules[i] === 'function') {
|
695
|
+
res = rules[i](res, options);
|
696
|
+
if (debug) rulestr = rules[i].name;
|
697
|
+
} else {
|
698
|
+
flatten(res, options.context);
|
699
|
+
res = applyRule(res, rules[i], options.context);
|
700
|
+
|
701
|
+
if (debug) {
|
702
|
+
rulestr = "".concat(rules[i].l.toString(), " -> ").concat(rules[i].r.toString());
|
703
|
+
}
|
704
|
+
}
|
705
|
+
|
706
|
+
if (debug) {
|
707
|
+
var newstr = res.toString({
|
708
|
+
parenthesis: 'all'
|
709
|
+
});
|
710
|
+
|
711
|
+
if (newstr !== laststr) {
|
712
|
+
console.log('Applying', rulestr, 'produced', newstr);
|
713
|
+
laststr = newstr;
|
714
|
+
}
|
715
|
+
}
|
716
|
+
/* Use left-heavy binary tree internally,
|
717
|
+
* since custom rule functions may expect it
|
718
|
+
*/
|
719
|
+
|
720
|
+
|
721
|
+
unflattenl(res, options.context);
|
722
|
+
}
|
723
|
+
|
724
|
+
str = res.toString({
|
725
|
+
parenthesis: 'all'
|
726
|
+
});
|
727
|
+
}
|
728
|
+
|
729
|
+
return res;
|
730
|
+
}
|
731
|
+
|
760
732
|
function mapRule(nodes, rule, context) {
|
761
733
|
var resNodes = nodes;
|
762
734
|
|
@@ -1,13 +1,13 @@
|
|
1
|
-
|
2
|
-
import {
|
3
|
-
import {
|
4
|
-
import {
|
5
|
-
import { noBignumber, noFraction } from '../../../utils/noop.js';
|
1
|
+
import { isFraction, isMatrix, isNode, isArrayNode, isConstantNode, isIndexNode, isObjectNode, isOperatorNode } from '../../utils/is.js';
|
2
|
+
import { factory } from '../../utils/factory.js';
|
3
|
+
import { createUtil } from './simplify/util.js';
|
4
|
+
import { noBignumber, noFraction } from '../../utils/noop.js';
|
6
5
|
var name = 'simplifyConstant';
|
7
|
-
var dependencies = ['typed', 'config', 'mathWithTransform', 'matrix', '?fraction', '?bignumber', 'AccessorNode', 'ArrayNode', 'ConstantNode', 'FunctionNode', 'IndexNode', 'ObjectNode', 'OperatorNode', 'SymbolNode'];
|
6
|
+
var dependencies = ['typed', 'parse', 'config', 'mathWithTransform', 'matrix', '?fraction', '?bignumber', 'AccessorNode', 'ArrayNode', 'ConstantNode', 'FunctionNode', 'IndexNode', 'ObjectNode', 'OperatorNode', 'SymbolNode'];
|
8
7
|
export var createSimplifyConstant = /* #__PURE__ */factory(name, dependencies, _ref => {
|
9
8
|
var {
|
10
9
|
typed,
|
10
|
+
parse,
|
11
11
|
config,
|
12
12
|
mathWithTransform,
|
13
13
|
matrix,
|
@@ -32,10 +32,40 @@ export var createSimplifyConstant = /* #__PURE__ */factory(name, dependencies, _
|
|
32
32
|
OperatorNode,
|
33
33
|
SymbolNode
|
34
34
|
});
|
35
|
+
/**
|
36
|
+
* simplifyConstant() takes a mathjs expression (either a Node representing
|
37
|
+
* a parse tree or a string which it parses to produce a node), and replaces
|
38
|
+
* any subexpression of it consisting entirely of constants with the computed
|
39
|
+
* value of that subexpression.
|
40
|
+
*
|
41
|
+
* Syntax:
|
42
|
+
*
|
43
|
+
* simplifyConstant(expr)
|
44
|
+
* simplifyConstant(expr, options)
|
45
|
+
*
|
46
|
+
* Examples:
|
47
|
+
*
|
48
|
+
* math.simplifyConstant('x + 4*3/6') // Node "x + 2"
|
49
|
+
* math.simplifyConstant('z cos(0)') // Node "z 1"
|
50
|
+
* math.simplifyConstant('(5.2 + 1.08)t', {exactFractions: false}) // Node "6.28 t"
|
51
|
+
*
|
52
|
+
* See also:
|
53
|
+
*
|
54
|
+
* simplify, simplifyCore, resolve, derivative
|
55
|
+
*
|
56
|
+
* @param {Node | string} node
|
57
|
+
* The expression to be simplified
|
58
|
+
* @param {Object} options
|
59
|
+
* Simplification options, as per simplify()
|
60
|
+
* @return {Node} Returns expression with constant subexpressions evaluated
|
61
|
+
*/
|
35
62
|
|
36
|
-
|
37
|
-
|
38
|
-
|
63
|
+
var simplifyConstant = typed('simplifyConstant', {
|
64
|
+
Node: node => _ensureNode(foldFraction(node, {})),
|
65
|
+
'Node, Object': function NodeObject(expr, options) {
|
66
|
+
return _ensureNode(foldFraction(expr, options));
|
67
|
+
}
|
68
|
+
});
|
39
69
|
|
40
70
|
function _removeFractions(thing) {
|
41
71
|
if (isFraction(thing)) {
|