mathjs 10.6.2 → 11.0.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/HISTORY.md +74 -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/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 +22 -30
- 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 +87 -114
- 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 +9 -26
- 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 +56 -46
- 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 +33 -27
- package/lib/cjs/function/arithmetic/floor.js +56 -46
- 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 +1 -1
- 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 +80 -92
- 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 +5 -3
- 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 +68 -81
- package/lib/cjs/function/bitwise/rightArithShift.js +68 -81
- package/lib/cjs/function/bitwise/rightLogShift.js +68 -81
- 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/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 +10 -7
- 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/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/trigonometry/acos.js +4 -8
- package/lib/cjs/function/trigonometry/acosh.js +2 -7
- package/lib/cjs/function/trigonometry/acot.js +4 -8
- package/lib/cjs/function/trigonometry/acoth.js +4 -8
- package/lib/cjs/function/trigonometry/acsc.js +4 -8
- package/lib/cjs/function/trigonometry/acsch.js +4 -8
- package/lib/cjs/function/trigonometry/asec.js +4 -8
- package/lib/cjs/function/trigonometry/asech.js +4 -8
- package/lib/cjs/function/trigonometry/asin.js +4 -9
- package/lib/cjs/function/trigonometry/asinh.js +4 -9
- package/lib/cjs/function/trigonometry/atan.js +4 -9
- package/lib/cjs/function/trigonometry/atan2.js +24 -62
- 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/hasNumericValue.js +4 -0
- package/lib/cjs/function/utils/isInteger.js +5 -3
- package/lib/cjs/function/utils/isNegative.js +10 -6
- package/lib/cjs/function/utils/isNumeric.js +5 -3
- package/lib/cjs/function/utils/isPositive.js +10 -6
- package/lib/cjs/function/utils/isPrime.js +5 -3
- package/lib/cjs/function/utils/isZero.js +10 -6
- 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 +69 -21
- package/lib/cjs/type/unit/function/createUnit.js +2 -1
- package/lib/cjs/type/unit/function/unit.js +9 -3
- 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/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 +22 -30
- 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 +82 -112
- 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 +9 -26
- 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 +17 -17
- package/lib/esm/function/arithmetic/floor.js +25 -25
- package/lib/esm/function/arithmetic/gcd.js +26 -70
- package/lib/esm/function/arithmetic/hypot.js +7 -6
- 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 +38 -73
- 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 +1 -3
- 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 +38 -60
- package/lib/esm/function/bitwise/rightArithShift.js +38 -60
- package/lib/esm/function/bitwise/rightLogShift.js +38 -60
- 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/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 +2 -7
- package/lib/esm/function/matrix/ones.js +2 -1
- 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/trigonometry/acos.js +4 -7
- package/lib/esm/function/trigonometry/acosh.js +2 -6
- package/lib/esm/function/trigonometry/acot.js +4 -7
- package/lib/esm/function/trigonometry/acoth.js +4 -7
- package/lib/esm/function/trigonometry/acsc.js +4 -7
- package/lib/esm/function/trigonometry/acsch.js +4 -7
- package/lib/esm/function/trigonometry/asec.js +4 -7
- package/lib/esm/function/trigonometry/asech.js +4 -7
- package/lib/esm/function/trigonometry/asin.js +4 -8
- package/lib/esm/function/trigonometry/asinh.js +4 -8
- package/lib/esm/function/trigonometry/atan.js +4 -8
- package/lib/esm/function/trigonometry/atan2.js +25 -64
- 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/hasNumericValue.js +2 -0
- package/lib/esm/function/utils/isInteger.js +1 -3
- package/lib/esm/function/utils/isNegative.js +2 -6
- package/lib/esm/function/utils/isNumeric.js +3 -9
- package/lib/esm/function/utils/isPositive.js +2 -6
- package/lib/esm/function/utils/isPrime.js +1 -3
- package/lib/esm/function/utils/isZero.js +2 -6
- 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 +61 -13
- package/lib/esm/type/unit/function/createUnit.js +2 -1
- package/lib/esm/type/unit/function/unit.js +5 -3
- 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 +21 -24
- package/types/index.d.ts +202 -181
- package/types/index.ts +264 -57
- package/lib/cjs/utils/polyfills.js +0 -14
- package/lib/esm/utils/polyfills.js +0 -12
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createMatrixAlgorithmSuite = void 0;
|
|
7
|
+
|
|
8
|
+
var _factory = require("../../../utils/factory.js");
|
|
9
|
+
|
|
10
|
+
var _object = require("../../../utils/object.js");
|
|
11
|
+
|
|
12
|
+
var _matAlgo13xDD = require("./matAlgo13xDD.js");
|
|
13
|
+
|
|
14
|
+
var _matAlgo14xDs = require("./matAlgo14xDs.js");
|
|
15
|
+
|
|
16
|
+
var name = 'matrixAlgorithmSuite';
|
|
17
|
+
var dependencies = ['typed', 'matrix'];
|
|
18
|
+
var createMatrixAlgorithmSuite = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
|
|
19
|
+
var typed = _ref.typed,
|
|
20
|
+
matrix = _ref.matrix;
|
|
21
|
+
var matAlgo13xDD = (0, _matAlgo13xDD.createMatAlgo13xDD)({
|
|
22
|
+
typed: typed
|
|
23
|
+
});
|
|
24
|
+
var matAlgo14xDs = (0, _matAlgo14xDs.createMatAlgo14xDs)({
|
|
25
|
+
typed: typed
|
|
26
|
+
});
|
|
27
|
+
/**
|
|
28
|
+
* Return a signatures object with the usual boilerplate of
|
|
29
|
+
* matrix algorithms, based on a plain options object with the
|
|
30
|
+
* following properties:
|
|
31
|
+
* elop: function -- the elementwise operation to use, defaults to self
|
|
32
|
+
* SS: function -- the algorithm to apply for two sparse matrices
|
|
33
|
+
* DS: function -- the algorithm to apply for a dense and a sparse matrix
|
|
34
|
+
* SD: function -- algo for a sparse and a dense; defaults to SD flipped
|
|
35
|
+
* Ss: function -- the algorithm to apply for a sparse matrix and scalar
|
|
36
|
+
* sS: function -- algo for scalar and sparse; defaults to Ss flipped
|
|
37
|
+
* scalar: string -- typed-function type for scalars, defaults to 'any'
|
|
38
|
+
*
|
|
39
|
+
* If Ss is not specified, no matrix-scalar signatures are generated.
|
|
40
|
+
*
|
|
41
|
+
* @param {object} options
|
|
42
|
+
* @return {Object<string, function>} signatures
|
|
43
|
+
*/
|
|
44
|
+
|
|
45
|
+
return function matrixAlgorithmSuite(options) {
|
|
46
|
+
var elop = options.elop;
|
|
47
|
+
var SD = options.SD || options.DS;
|
|
48
|
+
var matrixSignatures;
|
|
49
|
+
|
|
50
|
+
if (elop) {
|
|
51
|
+
// First the dense ones
|
|
52
|
+
matrixSignatures = {
|
|
53
|
+
'DenseMatrix, DenseMatrix': function DenseMatrixDenseMatrix(x, y) {
|
|
54
|
+
return matAlgo13xDD(x, y, elop);
|
|
55
|
+
},
|
|
56
|
+
'Array, Array': function ArrayArray(x, y) {
|
|
57
|
+
return matAlgo13xDD(matrix(x), matrix(y), elop).valueOf();
|
|
58
|
+
},
|
|
59
|
+
'Array, DenseMatrix': function ArrayDenseMatrix(x, y) {
|
|
60
|
+
return matAlgo13xDD(matrix(x), y, elop);
|
|
61
|
+
},
|
|
62
|
+
'DenseMatrix, Array': function DenseMatrixArray(x, y) {
|
|
63
|
+
return matAlgo13xDD(x, matrix(y), elop);
|
|
64
|
+
}
|
|
65
|
+
}; // Now incorporate sparse matrices
|
|
66
|
+
|
|
67
|
+
if (options.SS) {
|
|
68
|
+
matrixSignatures['SparseMatrix, SparseMatrix'] = function (x, y) {
|
|
69
|
+
return options.SS(x, y, elop, false);
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
if (options.DS) {
|
|
74
|
+
matrixSignatures['DenseMatrix, SparseMatrix'] = function (x, y) {
|
|
75
|
+
return options.DS(x, y, elop, false);
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
matrixSignatures['Array, SparseMatrix'] = function (x, y) {
|
|
79
|
+
return options.DS(matrix(x), y, elop, false);
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
if (SD) {
|
|
84
|
+
matrixSignatures['SparseMatrix, DenseMatrix'] = function (x, y) {
|
|
85
|
+
return SD(y, x, elop, true);
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
matrixSignatures['SparseMatrix, Array'] = function (x, y) {
|
|
89
|
+
return SD(matrix(y), x, elop, true);
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
} else {
|
|
93
|
+
// No elop, use this
|
|
94
|
+
// First the dense ones
|
|
95
|
+
matrixSignatures = {
|
|
96
|
+
'DenseMatrix, DenseMatrix': typed.referToSelf(function (self) {
|
|
97
|
+
return function (x, y) {
|
|
98
|
+
return matAlgo13xDD(x, y, self);
|
|
99
|
+
};
|
|
100
|
+
}),
|
|
101
|
+
'Array, Array': typed.referToSelf(function (self) {
|
|
102
|
+
return function (x, y) {
|
|
103
|
+
return matAlgo13xDD(matrix(x), matrix(y), self).valueOf();
|
|
104
|
+
};
|
|
105
|
+
}),
|
|
106
|
+
'Array, DenseMatrix': typed.referToSelf(function (self) {
|
|
107
|
+
return function (x, y) {
|
|
108
|
+
return matAlgo13xDD(matrix(x), y, self);
|
|
109
|
+
};
|
|
110
|
+
}),
|
|
111
|
+
'DenseMatrix, Array': typed.referToSelf(function (self) {
|
|
112
|
+
return function (x, y) {
|
|
113
|
+
return matAlgo13xDD(x, matrix(y), self);
|
|
114
|
+
};
|
|
115
|
+
})
|
|
116
|
+
}; // Now incorporate sparse matrices
|
|
117
|
+
|
|
118
|
+
if (options.SS) {
|
|
119
|
+
matrixSignatures['SparseMatrix, SparseMatrix'] = typed.referToSelf(function (self) {
|
|
120
|
+
return function (x, y) {
|
|
121
|
+
return options.SS(x, y, self, false);
|
|
122
|
+
};
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
if (options.DS) {
|
|
127
|
+
matrixSignatures['DenseMatrix, SparseMatrix'] = typed.referToSelf(function (self) {
|
|
128
|
+
return function (x, y) {
|
|
129
|
+
return options.DS(x, y, self, false);
|
|
130
|
+
};
|
|
131
|
+
});
|
|
132
|
+
matrixSignatures['Array, SparseMatrix'] = typed.referToSelf(function (self) {
|
|
133
|
+
return function (x, y) {
|
|
134
|
+
return options.DS(matrix(x), y, self, false);
|
|
135
|
+
};
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
if (SD) {
|
|
140
|
+
matrixSignatures['SparseMatrix, DenseMatrix'] = typed.referToSelf(function (self) {
|
|
141
|
+
return function (x, y) {
|
|
142
|
+
return SD(y, x, self, true);
|
|
143
|
+
};
|
|
144
|
+
});
|
|
145
|
+
matrixSignatures['SparseMatrix, Array'] = typed.referToSelf(function (self) {
|
|
146
|
+
return function (x, y) {
|
|
147
|
+
return SD(matrix(y), x, self, true);
|
|
148
|
+
};
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
} // Now add the scalars
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
var scalar = options.scalar || 'any';
|
|
155
|
+
var Ds = options.Ds || options.Ss;
|
|
156
|
+
|
|
157
|
+
if (Ds) {
|
|
158
|
+
if (elop) {
|
|
159
|
+
matrixSignatures['DenseMatrix,' + scalar] = function (x, y) {
|
|
160
|
+
return matAlgo14xDs(x, y, elop, false);
|
|
161
|
+
};
|
|
162
|
+
|
|
163
|
+
matrixSignatures[scalar + ', DenseMatrix'] = function (x, y) {
|
|
164
|
+
return matAlgo14xDs(y, x, elop, true);
|
|
165
|
+
};
|
|
166
|
+
|
|
167
|
+
matrixSignatures['Array,' + scalar] = function (x, y) {
|
|
168
|
+
return matAlgo14xDs(matrix(x), y, elop, false).valueOf();
|
|
169
|
+
};
|
|
170
|
+
|
|
171
|
+
matrixSignatures[scalar + ', Array'] = function (x, y) {
|
|
172
|
+
return matAlgo14xDs(matrix(y), x, elop, true).valueOf();
|
|
173
|
+
};
|
|
174
|
+
} else {
|
|
175
|
+
matrixSignatures['DenseMatrix,' + scalar] = typed.referToSelf(function (self) {
|
|
176
|
+
return function (x, y) {
|
|
177
|
+
return matAlgo14xDs(x, y, self, false);
|
|
178
|
+
};
|
|
179
|
+
});
|
|
180
|
+
matrixSignatures[scalar + ', DenseMatrix'] = typed.referToSelf(function (self) {
|
|
181
|
+
return function (x, y) {
|
|
182
|
+
return matAlgo14xDs(y, x, self, true);
|
|
183
|
+
};
|
|
184
|
+
});
|
|
185
|
+
matrixSignatures['Array,' + scalar] = typed.referToSelf(function (self) {
|
|
186
|
+
return function (x, y) {
|
|
187
|
+
return matAlgo14xDs(matrix(x), y, self, false).valueOf();
|
|
188
|
+
};
|
|
189
|
+
});
|
|
190
|
+
matrixSignatures[scalar + ', Array'] = typed.referToSelf(function (self) {
|
|
191
|
+
return function (x, y) {
|
|
192
|
+
return matAlgo14xDs(matrix(y), x, self, true).valueOf();
|
|
193
|
+
};
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
var sS = options.sS !== undefined ? options.sS : options.Ss;
|
|
199
|
+
|
|
200
|
+
if (elop) {
|
|
201
|
+
if (options.Ss) {
|
|
202
|
+
matrixSignatures['SparseMatrix,' + scalar] = function (x, y) {
|
|
203
|
+
return options.Ss(x, y, elop, false);
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
if (sS) {
|
|
208
|
+
matrixSignatures[scalar + ', SparseMatrix'] = function (x, y) {
|
|
209
|
+
return sS(y, x, elop, true);
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
} else {
|
|
213
|
+
if (options.Ss) {
|
|
214
|
+
matrixSignatures['SparseMatrix,' + scalar] = typed.referToSelf(function (self) {
|
|
215
|
+
return function (x, y) {
|
|
216
|
+
return options.Ss(x, y, self, false);
|
|
217
|
+
};
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
if (sS) {
|
|
222
|
+
matrixSignatures[scalar + ', SparseMatrix'] = typed.referToSelf(function (self) {
|
|
223
|
+
return function (x, y) {
|
|
224
|
+
return sS(y, x, self, true);
|
|
225
|
+
};
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
} // Also pull in the scalar signatures if the operator is a typed function
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
if (elop && elop.signatures) {
|
|
232
|
+
(0, _object.extend)(matrixSignatures, elop.signatures);
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
return matrixSignatures;
|
|
236
|
+
};
|
|
237
|
+
});
|
|
238
|
+
exports.createMatrixAlgorithmSuite = createMatrixAlgorithmSuite;
|
package/lib/cjs/type/number.js
CHANGED
|
@@ -147,15 +147,17 @@ var createNumber = /* #__PURE__ */(0, _factory.factory)(name, dependencies, func
|
|
|
147
147
|
Unit: function Unit(x) {
|
|
148
148
|
throw new Error('Second argument with valueless unit expected');
|
|
149
149
|
},
|
|
150
|
-
null: function _null(x) {
|
|
150
|
+
"null": function _null(x) {
|
|
151
151
|
return 0;
|
|
152
152
|
},
|
|
153
153
|
'Unit, string | Unit': function UnitStringUnit(unit, valuelessUnit) {
|
|
154
154
|
return unit.toNumber(valuelessUnit);
|
|
155
155
|
},
|
|
156
|
-
'Array | Matrix': function
|
|
157
|
-
return
|
|
158
|
-
|
|
156
|
+
'Array | Matrix': typed.referToSelf(function (self) {
|
|
157
|
+
return function (x) {
|
|
158
|
+
return (0, _collection.deepMap)(x, self);
|
|
159
|
+
};
|
|
160
|
+
})
|
|
159
161
|
}); // reviver function to parse a JSON object like:
|
|
160
162
|
//
|
|
161
163
|
// {"mathjs":"number","value":"2.3"}
|
package/lib/cjs/type/string.js
CHANGED
|
@@ -46,18 +46,20 @@ var createString = /* #__PURE__ */(0, _factory.factory)(name, dependencies, func
|
|
|
46
46
|
return '';
|
|
47
47
|
},
|
|
48
48
|
number: _number.format,
|
|
49
|
-
null: function _null(x) {
|
|
49
|
+
"null": function _null(x) {
|
|
50
50
|
return 'null';
|
|
51
51
|
},
|
|
52
|
-
boolean: function boolean(x) {
|
|
52
|
+
"boolean": function boolean(x) {
|
|
53
53
|
return x + '';
|
|
54
54
|
},
|
|
55
55
|
string: function string(x) {
|
|
56
56
|
return x;
|
|
57
57
|
},
|
|
58
|
-
'Array | Matrix': function
|
|
59
|
-
return
|
|
60
|
-
|
|
58
|
+
'Array | Matrix': typed.referToSelf(function (self) {
|
|
59
|
+
return function (x) {
|
|
60
|
+
return (0, _collection.deepMap)(x, self);
|
|
61
|
+
};
|
|
62
|
+
}),
|
|
61
63
|
any: function any(x) {
|
|
62
64
|
return String(x);
|
|
63
65
|
}
|
|
@@ -27,7 +27,7 @@ var _constants = require("../../utils/bignumber/constants.js");
|
|
|
27
27
|
|
|
28
28
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
29
29
|
|
|
30
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2
|
|
30
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
31
31
|
|
|
32
32
|
var name = 'Unit';
|
|
33
33
|
var dependencies = ['?on', 'config', 'addScalar', 'subtract', 'multiplyScalar', 'divideScalar', 'pow', 'abs', 'fix', 'round', 'equal', 'isNumeric', 'format', 'number', 'Complex', 'BigNumber', 'Fraction'];
|
|
@@ -88,12 +88,7 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
|
|
|
88
88
|
this.units = u.units;
|
|
89
89
|
this.dimensions = u.dimensions;
|
|
90
90
|
} else {
|
|
91
|
-
this.units = [
|
|
92
|
-
unit: UNIT_NONE,
|
|
93
|
-
prefix: PREFIXES.NONE,
|
|
94
|
-
// link to a list with supported prefixes
|
|
95
|
-
power: 0
|
|
96
|
-
}];
|
|
91
|
+
this.units = [];
|
|
97
92
|
this.dimensions = [];
|
|
98
93
|
|
|
99
94
|
for (var i = 0; i < BASE_DIMENSIONS.length; i++) {
|
|
@@ -115,6 +110,10 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
|
|
|
115
110
|
*/
|
|
116
111
|
|
|
117
112
|
|
|
113
|
+
Object.defineProperty(Unit, 'name', {
|
|
114
|
+
value: 'Unit'
|
|
115
|
+
});
|
|
116
|
+
Unit.prototype.constructor = Unit;
|
|
118
117
|
Unit.prototype.type = 'Unit';
|
|
119
118
|
Unit.prototype.isUnit = true; // private variables and functions for the Unit parser
|
|
120
119
|
|
|
@@ -477,6 +476,17 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
|
|
|
477
476
|
|
|
478
477
|
return unit;
|
|
479
478
|
};
|
|
479
|
+
/**
|
|
480
|
+
* Return the type of the value of this unit
|
|
481
|
+
*
|
|
482
|
+
* @memberof Unit
|
|
483
|
+
* @ return {string} type of the value of the unit
|
|
484
|
+
*/
|
|
485
|
+
|
|
486
|
+
|
|
487
|
+
Unit.prototype.valueType = function () {
|
|
488
|
+
return (0, _is.typeOf)(this.value);
|
|
489
|
+
};
|
|
480
490
|
/**
|
|
481
491
|
* Return whether the unit is derived (such as m/s, or cm^2, but not N)
|
|
482
492
|
* @memberof Unit
|
|
@@ -666,15 +676,16 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
|
|
|
666
676
|
return this.equalBase(other) && equal(this.value, other.value);
|
|
667
677
|
};
|
|
668
678
|
/**
|
|
669
|
-
* Multiply this unit with another one
|
|
679
|
+
* Multiply this unit with another one or with a scalar
|
|
670
680
|
* @memberof Unit
|
|
671
681
|
* @param {Unit} other
|
|
672
682
|
* @return {Unit} product of this unit and the other unit
|
|
673
683
|
*/
|
|
674
684
|
|
|
675
685
|
|
|
676
|
-
Unit.prototype.multiply = function (
|
|
686
|
+
Unit.prototype.multiply = function (_other) {
|
|
677
687
|
var res = this.clone();
|
|
688
|
+
var other = (0, _is.isUnit)(_other) ? _other : new Unit(_other);
|
|
678
689
|
|
|
679
690
|
for (var i = 0; i < BASE_DIMENSIONS.length; i++) {
|
|
680
691
|
// Dimensions arrays may be of different lengths. Default to 0.
|
|
@@ -698,19 +709,35 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
|
|
|
698
709
|
res.value = null;
|
|
699
710
|
}
|
|
700
711
|
|
|
701
|
-
|
|
712
|
+
if ((0, _is.isUnit)(_other)) {
|
|
713
|
+
res.skipAutomaticSimplification = false;
|
|
714
|
+
}
|
|
715
|
+
|
|
702
716
|
return getNumericIfUnitless(res);
|
|
703
717
|
};
|
|
718
|
+
/**
|
|
719
|
+
* Divide a number by this unit
|
|
720
|
+
*
|
|
721
|
+
* @memberof Unit
|
|
722
|
+
* @param {numeric} numerator
|
|
723
|
+
* @param {unit} result of dividing numerator by this unit
|
|
724
|
+
*/
|
|
725
|
+
|
|
726
|
+
|
|
727
|
+
Unit.prototype.divideInto = function (numerator) {
|
|
728
|
+
return new Unit(numerator).divide(this);
|
|
729
|
+
};
|
|
704
730
|
/**
|
|
705
731
|
* Divide this unit by another one
|
|
706
732
|
* @memberof Unit
|
|
707
|
-
* @param {Unit} other
|
|
733
|
+
* @param {Unit | numeric} other
|
|
708
734
|
* @return {Unit} result of dividing this unit by the other unit
|
|
709
735
|
*/
|
|
710
736
|
|
|
711
737
|
|
|
712
|
-
Unit.prototype.divide = function (
|
|
738
|
+
Unit.prototype.divide = function (_other) {
|
|
713
739
|
var res = this.clone();
|
|
740
|
+
var other = (0, _is.isUnit)(_other) ? _other : new Unit(_other);
|
|
714
741
|
|
|
715
742
|
for (var i = 0; i < BASE_DIMENSIONS.length; i++) {
|
|
716
743
|
// Dimensions arrays may be of different lengths. Default to 0.
|
|
@@ -736,7 +763,10 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
|
|
|
736
763
|
res.value = null;
|
|
737
764
|
}
|
|
738
765
|
|
|
739
|
-
|
|
766
|
+
if ((0, _is.isUnit)(_other)) {
|
|
767
|
+
res.skipAutomaticSimplification = false;
|
|
768
|
+
}
|
|
769
|
+
|
|
740
770
|
return getNumericIfUnitless(res);
|
|
741
771
|
};
|
|
742
772
|
/**
|
|
@@ -805,7 +835,7 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
|
|
|
805
835
|
// To give the correct, but unexpected, results for units with an offset.
|
|
806
836
|
// For example, abs(-283.15 degC) = -263.15 degC !!!
|
|
807
837
|
// We must take the offset into consideration here
|
|
808
|
-
var convert =
|
|
838
|
+
var convert = ret._numberConverter(); // convert to Fraction or BigNumber if needed
|
|
809
839
|
|
|
810
840
|
|
|
811
841
|
var unitValue = convert(ret.units[0].unit.value);
|
|
@@ -1939,9 +1969,9 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
|
|
|
1939
1969
|
}
|
|
1940
1970
|
}
|
|
1941
1971
|
};
|
|
1942
|
-
PREFIXES.SHORTLONG = (0, _extends2
|
|
1943
|
-
PREFIXES.BINARY_SHORT = (0, _extends2
|
|
1944
|
-
PREFIXES.BINARY_LONG = (0, _extends2
|
|
1972
|
+
PREFIXES.SHORTLONG = (0, _extends2["default"])({}, PREFIXES.SHORT, PREFIXES.LONG);
|
|
1973
|
+
PREFIXES.BINARY_SHORT = (0, _extends2["default"])({}, PREFIXES.BINARY_SHORT_SI, PREFIXES.BINARY_SHORT_IEC);
|
|
1974
|
+
PREFIXES.BINARY_LONG = (0, _extends2["default"])({}, PREFIXES.BINARY_LONG_SI, PREFIXES.BINARY_LONG_IEC);
|
|
1945
1975
|
/* Internally, each unit is represented by a value and a dimension array. The elements of the dimensions array have the following meaning:
|
|
1946
1976
|
* Index Dimension
|
|
1947
1977
|
* ----- ---------
|
|
@@ -2125,7 +2155,7 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
|
|
|
2125
2155
|
value: 1,
|
|
2126
2156
|
offset: 0
|
|
2127
2157
|
},
|
|
2128
|
-
in: {
|
|
2158
|
+
"in": {
|
|
2129
2159
|
name: 'in',
|
|
2130
2160
|
base: BASE_UNITS.LENGTH,
|
|
2131
2161
|
prefixes: PREFIXES.NONE,
|
|
@@ -3389,7 +3419,7 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
|
|
|
3389
3419
|
electronvolts: 'electronvolt',
|
|
3390
3420
|
moles: 'mole',
|
|
3391
3421
|
bit: 'bits',
|
|
3392
|
-
byte: 'bytes'
|
|
3422
|
+
"byte": 'bytes'
|
|
3393
3423
|
};
|
|
3394
3424
|
/**
|
|
3395
3425
|
* Calculate the values for the angle units.
|
|
@@ -3647,6 +3677,23 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
|
|
|
3647
3677
|
return x;
|
|
3648
3678
|
}
|
|
3649
3679
|
};
|
|
3680
|
+
/**
|
|
3681
|
+
* Retrieve the right converter function corresponding with this unit's
|
|
3682
|
+
* value
|
|
3683
|
+
*
|
|
3684
|
+
* @memberof Unit
|
|
3685
|
+
* @return {Function}
|
|
3686
|
+
*/
|
|
3687
|
+
|
|
3688
|
+
Unit.prototype._numberConverter = function () {
|
|
3689
|
+
var convert = Unit.typeConverters[this.valueType()];
|
|
3690
|
+
|
|
3691
|
+
if (convert) {
|
|
3692
|
+
return convert;
|
|
3693
|
+
}
|
|
3694
|
+
|
|
3695
|
+
throw new TypeError('Unsupported Unit value type "' + this.valueType() + '"');
|
|
3696
|
+
};
|
|
3650
3697
|
/**
|
|
3651
3698
|
* Retrieve the right convertor function corresponding with the type
|
|
3652
3699
|
* of provided exampleValue.
|
|
@@ -3656,6 +3703,7 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
|
|
|
3656
3703
|
* @return {Function}
|
|
3657
3704
|
*/
|
|
3658
3705
|
|
|
3706
|
+
|
|
3659
3707
|
Unit._getNumberConverter = function (type) {
|
|
3660
3708
|
if (!Unit.typeConverters[type]) {
|
|
3661
3709
|
throw new TypeError('Unsupported type "' + type + '"');
|
|
@@ -3733,7 +3781,7 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
|
|
|
3733
3781
|
|
|
3734
3782
|
|
|
3735
3783
|
Unit.createUnit = function (obj, options) {
|
|
3736
|
-
if ((0, _typeof2
|
|
3784
|
+
if ((0, _typeof2["default"])(obj) !== 'object') {
|
|
3737
3785
|
throw new TypeError("createUnit expects first parameter to be of type 'Object'");
|
|
3738
3786
|
} // Remove all units and aliases we are overriding
|
|
3739
3787
|
|
|
@@ -3823,7 +3871,7 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
|
|
|
3823
3871
|
if (obj !== '') {
|
|
3824
3872
|
definition = obj;
|
|
3825
3873
|
}
|
|
3826
|
-
} else if ((0, _typeof2
|
|
3874
|
+
} else if ((0, _typeof2["default"])(obj) === 'object') {
|
|
3827
3875
|
definition = obj.definition;
|
|
3828
3876
|
prefixes = obj.prefixes;
|
|
3829
3877
|
offset = obj.offset;
|
|
@@ -40,9 +40,10 @@ var createCreateUnit = /* #__PURE__ */(0, _factory.factory)(name, dependencies,
|
|
|
40
40
|
* math.createUnit('foo')
|
|
41
41
|
* math.createUnit('knot', {definition: '0.514444444 m/s', aliases: ['knots', 'kt', 'kts']})
|
|
42
42
|
* math.createUnit('mph', '1 mile/hour')
|
|
43
|
+
* math.createUnit('km', math.unit(1000, 'm'))
|
|
43
44
|
*
|
|
44
45
|
* @param {string} name The name of the new unit. Must be unique. Example: 'knot'
|
|
45
|
-
* @param {string, Unit} definition Definition of the unit in terms of existing units. For example, '0.514444444 m / s'.
|
|
46
|
+
* @param {string, UnitDefinition, Unit} definition Definition of the unit in terms of existing units. For example, '0.514444444 m / s'.
|
|
46
47
|
* @param {Object} options (optional) An object containing any of the following properties:
|
|
47
48
|
* - `prefixes {string}` "none", "short", "long", "binary_short", or "binary_long". The default is "none".
|
|
48
49
|
* - `aliases {Array}` Array of strings. Example: ['knots', 'kt', 'kts']
|
|
@@ -55,9 +55,15 @@ var createUnitFunction = /* #__PURE__ */(0, _factory.factory)(name, dependencies
|
|
|
55
55
|
'number | BigNumber | Fraction | Complex, string': function numberBigNumberFractionComplexString(value, unit) {
|
|
56
56
|
return new Unit(value, unit);
|
|
57
57
|
},
|
|
58
|
-
'
|
|
59
|
-
|
|
60
|
-
|
|
58
|
+
'number | BigNumber | Fraction': function numberBigNumberFraction(value) {
|
|
59
|
+
// dimensionless
|
|
60
|
+
return new Unit(value);
|
|
61
|
+
},
|
|
62
|
+
'Array | Matrix': typed.referToSelf(function (self) {
|
|
63
|
+
return function (x) {
|
|
64
|
+
return (0, _collection.deepMap)(x, self);
|
|
65
|
+
};
|
|
66
|
+
})
|
|
61
67
|
});
|
|
62
68
|
});
|
|
63
69
|
exports.createUnitFunction = createUnitFunction;
|
package/lib/cjs/utils/customs.js
CHANGED
|
@@ -78,7 +78,7 @@ function hasSafeProperty(object, prop) {
|
|
|
78
78
|
|
|
79
79
|
|
|
80
80
|
function isSafeProperty(object, prop) {
|
|
81
|
-
if (!object || (0, _typeof2
|
|
81
|
+
if (!object || (0, _typeof2["default"])(object) !== 'object') {
|
|
82
82
|
return false;
|
|
83
83
|
} // SAFE: whitelisted
|
|
84
84
|
// e.g length
|
|
@@ -171,7 +171,7 @@ function isSafeMethod(object, method) {
|
|
|
171
171
|
}
|
|
172
172
|
|
|
173
173
|
function isPlainObject(object) {
|
|
174
|
-
return (0, _typeof2
|
|
174
|
+
return (0, _typeof2["default"])(object) === 'object' && object && object.constructor === Object;
|
|
175
175
|
}
|
|
176
176
|
|
|
177
177
|
var safeNativeProperties = {
|
package/lib/cjs/utils/emitter.js
CHANGED
|
@@ -16,7 +16,7 @@ var _tinyEmitter = _interopRequireDefault(require("tiny-emitter"));
|
|
|
16
16
|
*/
|
|
17
17
|
function mixin(obj) {
|
|
18
18
|
// create event emitter
|
|
19
|
-
var emitter = new _tinyEmitter
|
|
19
|
+
var emitter = new _tinyEmitter["default"](); // bind methods to obj (we don't want to expose the emitter.e Array...)
|
|
20
20
|
|
|
21
21
|
obj.on = emitter.on.bind(emitter);
|
|
22
22
|
obj.off = emitter.off.bind(emitter);
|
|
@@ -38,7 +38,7 @@ function memoize(fn) {
|
|
|
38
38
|
limit = limit == null ? Number.POSITIVE_INFINITY : limit;
|
|
39
39
|
hasher = hasher == null ? JSON.stringify : hasher;
|
|
40
40
|
return function memoize() {
|
|
41
|
-
if ((0, _typeof2
|
|
41
|
+
if ((0, _typeof2["default"])(memoize.cache) !== 'object') {
|
|
42
42
|
memoize.cache = {
|
|
43
43
|
values: new Map(),
|
|
44
44
|
lru: (0, _lruQueue.lruQueue)(limit || Number.POSITIVE_INFINITY)
|
|
@@ -60,7 +60,7 @@ function memoize(fn) {
|
|
|
60
60
|
|
|
61
61
|
var newVal = fn.apply(fn, args);
|
|
62
62
|
memoize.cache.values.set(hash, newVal);
|
|
63
|
-
memoize.cache.values
|
|
63
|
+
memoize.cache.values["delete"](memoize.cache.lru.hit(hash));
|
|
64
64
|
return newVal;
|
|
65
65
|
};
|
|
66
66
|
}
|
package/lib/cjs/utils/is.js
CHANGED
|
@@ -43,6 +43,7 @@ exports.isString = isString;
|
|
|
43
43
|
exports.isSymbolNode = isSymbolNode;
|
|
44
44
|
exports.isUndefined = isUndefined;
|
|
45
45
|
exports.isUnit = isUnit;
|
|
46
|
+
exports.rule2Node = rule2Node;
|
|
46
47
|
exports.typeOf = typeOf;
|
|
47
48
|
|
|
48
49
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
@@ -65,11 +66,11 @@ function isNumber(x) {
|
|
|
65
66
|
}
|
|
66
67
|
|
|
67
68
|
function isBigNumber(x) {
|
|
68
|
-
if (!x || (0, _typeof2
|
|
69
|
+
if (!x || (0, _typeof2["default"])(x) !== 'object' || typeof x.constructor !== 'function') {
|
|
69
70
|
return false;
|
|
70
71
|
}
|
|
71
72
|
|
|
72
|
-
if (x.isBigNumber === true && (0, _typeof2
|
|
73
|
+
if (x.isBigNumber === true && (0, _typeof2["default"])(x.constructor.prototype) === 'object' && x.constructor.prototype.isBigNumber === true) {
|
|
73
74
|
return true;
|
|
74
75
|
}
|
|
75
76
|
|
|
@@ -81,11 +82,11 @@ function isBigNumber(x) {
|
|
|
81
82
|
}
|
|
82
83
|
|
|
83
84
|
function isComplex(x) {
|
|
84
|
-
return x && (0, _typeof2
|
|
85
|
+
return x && (0, _typeof2["default"])(x) === 'object' && Object.getPrototypeOf(x).isComplex === true || false;
|
|
85
86
|
}
|
|
86
87
|
|
|
87
88
|
function isFraction(x) {
|
|
88
|
-
return x && (0, _typeof2
|
|
89
|
+
return x && (0, _typeof2["default"])(x) === 'object' && Object.getPrototypeOf(x).isFraction === true || false;
|
|
89
90
|
}
|
|
90
91
|
|
|
91
92
|
function isUnit(x) {
|
|
@@ -154,7 +155,7 @@ function isRegExp(x) {
|
|
|
154
155
|
}
|
|
155
156
|
|
|
156
157
|
function isObject(x) {
|
|
157
|
-
return !!(x && (0, _typeof2
|
|
158
|
+
return !!(x && (0, _typeof2["default"])(x) === 'object' && x.constructor === Object && !isComplex(x) && !isFraction(x));
|
|
158
159
|
}
|
|
159
160
|
|
|
160
161
|
function isNull(x) {
|
|
@@ -188,6 +189,21 @@ function isConditionalNode(x) {
|
|
|
188
189
|
function isConstantNode(x) {
|
|
189
190
|
return x && x.isConstantNode === true && x.constructor.prototype.isNode === true || false;
|
|
190
191
|
}
|
|
192
|
+
/* Very specialized: returns true for those nodes which in the numerator of
|
|
193
|
+
a fraction means that the division in that fraction has precedence over implicit
|
|
194
|
+
multiplication, e.g. -2/3 x parses as (-2/3) x and 3/4 x parses as (3/4) x but
|
|
195
|
+
6!/8 x parses as 6! / (8x). It is located here because it is shared between
|
|
196
|
+
parse.js and OperatorNode.js (for parsing and printing, respectively).
|
|
197
|
+
|
|
198
|
+
This should *not* be exported from mathjs, unlike most of the tests here.
|
|
199
|
+
Its name does not start with 'is' to prevent utils/snapshot.js from thinking
|
|
200
|
+
it should be exported.
|
|
201
|
+
*/
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
function rule2Node(node) {
|
|
205
|
+
return isConstantNode(node) || isOperatorNode(node) && node.args.length === 1 && isConstantNode(node.args[0]) && '-+~'.includes(node.op);
|
|
206
|
+
}
|
|
191
207
|
|
|
192
208
|
function isFunctionAssignmentNode(x) {
|
|
193
209
|
return x && x.isFunctionAssignmentNode === true && x.constructor.prototype.isNode === true || false;
|
|
@@ -230,29 +246,15 @@ function isChain(x) {
|
|
|
230
246
|
}
|
|
231
247
|
|
|
232
248
|
function typeOf(x) {
|
|
233
|
-
var t = (0, _typeof2
|
|
249
|
+
var t = (0, _typeof2["default"])(x);
|
|
234
250
|
|
|
235
251
|
if (t === 'object') {
|
|
236
|
-
// JavaScript types
|
|
237
252
|
if (x === null) return 'null';
|
|
238
|
-
if (
|
|
239
|
-
|
|
240
|
-
if (x
|
|
241
|
-
|
|
242
|
-
if (isBigNumber(x)) return 'BigNumber';
|
|
243
|
-
if (isComplex(x)) return 'Complex';
|
|
244
|
-
if (isFraction(x)) return 'Fraction';
|
|
245
|
-
if (isMatrix(x)) return 'Matrix';
|
|
246
|
-
if (isUnit(x)) return 'Unit';
|
|
247
|
-
if (isIndex(x)) return 'Index';
|
|
248
|
-
if (isRange(x)) return 'Range';
|
|
249
|
-
if (isResultSet(x)) return 'ResultSet';
|
|
250
|
-
if (isNode(x)) return x.type;
|
|
251
|
-
if (isChain(x)) return 'Chain';
|
|
252
|
-
if (isHelp(x)) return 'Help';
|
|
253
|
-
return 'Object';
|
|
253
|
+
if (isBigNumber(x)) return 'BigNumber'; // Special: weird mashup with Decimal
|
|
254
|
+
|
|
255
|
+
if (x.constructor && x.constructor.name) return x.constructor.name;
|
|
256
|
+
return 'Object'; // just in case
|
|
254
257
|
}
|
|
255
258
|
|
|
256
|
-
|
|
257
|
-
return t; // can be 'string', 'number', 'boolean', ...
|
|
259
|
+
return t; // can be 'string', 'number', 'boolean', 'function', 'bigint', ...
|
|
258
260
|
}
|