mathjs 10.6.4 → 11.1.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 +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
|
@@ -9,10 +9,10 @@ exports.createUnitClass = void 0;
|
|
|
9
9
|
|
|
10
10
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
11
11
|
|
|
12
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
|
-
|
|
14
12
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
13
|
|
|
14
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
15
|
+
|
|
16
16
|
var _is = require("../../utils/is.js");
|
|
17
17
|
|
|
18
18
|
var _factory = require("../../utils/factory.js");
|
|
@@ -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'];
|
|
@@ -53,8 +53,8 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
|
|
|
53
53
|
/**
|
|
54
54
|
* A unit can be constructed in the following ways:
|
|
55
55
|
*
|
|
56
|
-
* const a = new Unit(value,
|
|
57
|
-
* const b = new Unit(null,
|
|
56
|
+
* const a = new Unit(value, valuelessUnit)
|
|
57
|
+
* const b = new Unit(null, valuelessUnit)
|
|
58
58
|
* const c = Unit.parse(str)
|
|
59
59
|
*
|
|
60
60
|
* Example usage:
|
|
@@ -67,10 +67,10 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
|
|
|
67
67
|
* @class Unit
|
|
68
68
|
* @constructor Unit
|
|
69
69
|
* @param {number | BigNumber | Fraction | Complex | boolean} [value] A value like 5.2
|
|
70
|
-
* @param {string}
|
|
70
|
+
* @param {string | Unit} valuelessUnit A unit without value. Can have prefix, like "cm"
|
|
71
71
|
*/
|
|
72
72
|
|
|
73
|
-
function Unit(value,
|
|
73
|
+
function Unit(value, valuelessUnit) {
|
|
74
74
|
if (!(this instanceof Unit)) {
|
|
75
75
|
throw new Error('Constructor must be called with the new operator');
|
|
76
76
|
}
|
|
@@ -79,42 +79,46 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
|
|
|
79
79
|
throw new TypeError('First parameter in Unit constructor must be number, BigNumber, Fraction, Complex, or undefined');
|
|
80
80
|
}
|
|
81
81
|
|
|
82
|
-
if (name !== undefined && (typeof name !== 'string' || name === '')) {
|
|
83
|
-
throw new TypeError('Second parameter in Unit constructor must be a string');
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
if (name !== undefined) {
|
|
87
|
-
var u = Unit.parse(name);
|
|
88
|
-
this.units = u.units;
|
|
89
|
-
this.dimensions = u.dimensions;
|
|
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
|
-
}];
|
|
97
|
-
this.dimensions = [];
|
|
98
|
-
|
|
99
|
-
for (var i = 0; i < BASE_DIMENSIONS.length; i++) {
|
|
100
|
-
this.dimensions[i] = 0;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
this.value = value !== undefined && value !== null ? this._normalize(value) : null;
|
|
105
82
|
this.fixPrefix = false; // if true, function format will not search for the
|
|
106
83
|
// best prefix but leave it as initially provided.
|
|
107
84
|
// fixPrefix is set true by the method Unit.to
|
|
108
85
|
// The justification behind this is that if the constructor is explicitly called,
|
|
109
|
-
// the caller wishes the units to be returned exactly as
|
|
86
|
+
// the caller wishes the units to be returned exactly as supplied.
|
|
110
87
|
|
|
111
88
|
this.skipAutomaticSimplification = true;
|
|
89
|
+
|
|
90
|
+
if (valuelessUnit === undefined) {
|
|
91
|
+
this.units = [];
|
|
92
|
+
this.dimensions = BASE_DIMENSIONS.map(function (x) {
|
|
93
|
+
return 0;
|
|
94
|
+
});
|
|
95
|
+
} else if (typeof valuelessUnit === 'string') {
|
|
96
|
+
var u = Unit.parse(valuelessUnit);
|
|
97
|
+
this.units = u.units;
|
|
98
|
+
this.dimensions = u.dimensions;
|
|
99
|
+
} else if ((0, _is.isUnit)(valuelessUnit) && valuelessUnit.value === null) {
|
|
100
|
+
// clone from valuelessUnit
|
|
101
|
+
this.fixPrefix = valuelessUnit.fixPrefix;
|
|
102
|
+
this.skipAutomaticSimplification = valuelessUnit.skipAutomaticSimplification;
|
|
103
|
+
this.dimensions = valuelessUnit.dimensions.slice(0);
|
|
104
|
+
this.units = valuelessUnit.units.map(function (u) {
|
|
105
|
+
return (0, _extends2["default"])({}, u);
|
|
106
|
+
});
|
|
107
|
+
} else {
|
|
108
|
+
throw new TypeError('Second parameter in Unit constructor must be a string or valueless Unit');
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
this.value = this._normalize(value);
|
|
112
112
|
}
|
|
113
113
|
/**
|
|
114
114
|
* Attach type information
|
|
115
115
|
*/
|
|
116
116
|
|
|
117
117
|
|
|
118
|
+
Object.defineProperty(Unit, 'name', {
|
|
119
|
+
value: 'Unit'
|
|
120
|
+
});
|
|
121
|
+
Unit.prototype.constructor = Unit;
|
|
118
122
|
Unit.prototype.type = 'Unit';
|
|
119
123
|
Unit.prototype.isUnit = true; // private variables and functions for the Unit parser
|
|
120
124
|
|
|
@@ -477,6 +481,17 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
|
|
|
477
481
|
|
|
478
482
|
return unit;
|
|
479
483
|
};
|
|
484
|
+
/**
|
|
485
|
+
* Return the type of the value of this unit
|
|
486
|
+
*
|
|
487
|
+
* @memberof Unit
|
|
488
|
+
* @ return {string} type of the value of the unit
|
|
489
|
+
*/
|
|
490
|
+
|
|
491
|
+
|
|
492
|
+
Unit.prototype.valueType = function () {
|
|
493
|
+
return (0, _is.typeOf)(this.value);
|
|
494
|
+
};
|
|
480
495
|
/**
|
|
481
496
|
* Return whether the unit is derived (such as m/s, or cm^2, but not N)
|
|
482
497
|
* @memberof Unit
|
|
@@ -666,15 +681,16 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
|
|
|
666
681
|
return this.equalBase(other) && equal(this.value, other.value);
|
|
667
682
|
};
|
|
668
683
|
/**
|
|
669
|
-
* Multiply this unit with another one
|
|
684
|
+
* Multiply this unit with another one or with a scalar
|
|
670
685
|
* @memberof Unit
|
|
671
686
|
* @param {Unit} other
|
|
672
687
|
* @return {Unit} product of this unit and the other unit
|
|
673
688
|
*/
|
|
674
689
|
|
|
675
690
|
|
|
676
|
-
Unit.prototype.multiply = function (
|
|
691
|
+
Unit.prototype.multiply = function (_other) {
|
|
677
692
|
var res = this.clone();
|
|
693
|
+
var other = (0, _is.isUnit)(_other) ? _other : new Unit(_other);
|
|
678
694
|
|
|
679
695
|
for (var i = 0; i < BASE_DIMENSIONS.length; i++) {
|
|
680
696
|
// Dimensions arrays may be of different lengths. Default to 0.
|
|
@@ -698,19 +714,35 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
|
|
|
698
714
|
res.value = null;
|
|
699
715
|
}
|
|
700
716
|
|
|
701
|
-
|
|
717
|
+
if ((0, _is.isUnit)(_other)) {
|
|
718
|
+
res.skipAutomaticSimplification = false;
|
|
719
|
+
}
|
|
720
|
+
|
|
702
721
|
return getNumericIfUnitless(res);
|
|
703
722
|
};
|
|
723
|
+
/**
|
|
724
|
+
* Divide a number by this unit
|
|
725
|
+
*
|
|
726
|
+
* @memberof Unit
|
|
727
|
+
* @param {numeric} numerator
|
|
728
|
+
* @param {unit} result of dividing numerator by this unit
|
|
729
|
+
*/
|
|
730
|
+
|
|
731
|
+
|
|
732
|
+
Unit.prototype.divideInto = function (numerator) {
|
|
733
|
+
return new Unit(numerator).divide(this);
|
|
734
|
+
};
|
|
704
735
|
/**
|
|
705
736
|
* Divide this unit by another one
|
|
706
737
|
* @memberof Unit
|
|
707
|
-
* @param {Unit} other
|
|
738
|
+
* @param {Unit | numeric} other
|
|
708
739
|
* @return {Unit} result of dividing this unit by the other unit
|
|
709
740
|
*/
|
|
710
741
|
|
|
711
742
|
|
|
712
|
-
Unit.prototype.divide = function (
|
|
743
|
+
Unit.prototype.divide = function (_other) {
|
|
713
744
|
var res = this.clone();
|
|
745
|
+
var other = (0, _is.isUnit)(_other) ? _other : new Unit(_other);
|
|
714
746
|
|
|
715
747
|
for (var i = 0; i < BASE_DIMENSIONS.length; i++) {
|
|
716
748
|
// Dimensions arrays may be of different lengths. Default to 0.
|
|
@@ -736,7 +768,10 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
|
|
|
736
768
|
res.value = null;
|
|
737
769
|
}
|
|
738
770
|
|
|
739
|
-
|
|
771
|
+
if ((0, _is.isUnit)(_other)) {
|
|
772
|
+
res.skipAutomaticSimplification = false;
|
|
773
|
+
}
|
|
774
|
+
|
|
740
775
|
return getNumericIfUnitless(res);
|
|
741
776
|
};
|
|
742
777
|
/**
|
|
@@ -805,7 +840,7 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
|
|
|
805
840
|
// To give the correct, but unexpected, results for units with an offset.
|
|
806
841
|
// For example, abs(-283.15 degC) = -263.15 degC !!!
|
|
807
842
|
// We must take the offset into consideration here
|
|
808
|
-
var convert =
|
|
843
|
+
var convert = ret._numberConverter(); // convert to Fraction or BigNumber if needed
|
|
809
844
|
|
|
810
845
|
|
|
811
846
|
var unitValue = convert(ret.units[0].unit.value);
|
|
@@ -1939,9 +1974,9 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
|
|
|
1939
1974
|
}
|
|
1940
1975
|
}
|
|
1941
1976
|
};
|
|
1942
|
-
PREFIXES.SHORTLONG = (0, _extends2
|
|
1943
|
-
PREFIXES.BINARY_SHORT = (0, _extends2
|
|
1944
|
-
PREFIXES.BINARY_LONG = (0, _extends2
|
|
1977
|
+
PREFIXES.SHORTLONG = (0, _extends2["default"])({}, PREFIXES.SHORT, PREFIXES.LONG);
|
|
1978
|
+
PREFIXES.BINARY_SHORT = (0, _extends2["default"])({}, PREFIXES.BINARY_SHORT_SI, PREFIXES.BINARY_SHORT_IEC);
|
|
1979
|
+
PREFIXES.BINARY_LONG = (0, _extends2["default"])({}, PREFIXES.BINARY_LONG_SI, PREFIXES.BINARY_LONG_IEC);
|
|
1945
1980
|
/* Internally, each unit is represented by a value and a dimension array. The elements of the dimensions array have the following meaning:
|
|
1946
1981
|
* Index Dimension
|
|
1947
1982
|
* ----- ---------
|
|
@@ -2125,7 +2160,7 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
|
|
|
2125
2160
|
value: 1,
|
|
2126
2161
|
offset: 0
|
|
2127
2162
|
},
|
|
2128
|
-
in: {
|
|
2163
|
+
"in": {
|
|
2129
2164
|
name: 'in',
|
|
2130
2165
|
base: BASE_UNITS.LENGTH,
|
|
2131
2166
|
prefixes: PREFIXES.NONE,
|
|
@@ -3389,7 +3424,7 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
|
|
|
3389
3424
|
electronvolts: 'electronvolt',
|
|
3390
3425
|
moles: 'mole',
|
|
3391
3426
|
bit: 'bits',
|
|
3392
|
-
byte: 'bytes'
|
|
3427
|
+
"byte": 'bytes'
|
|
3393
3428
|
};
|
|
3394
3429
|
/**
|
|
3395
3430
|
* Calculate the values for the angle units.
|
|
@@ -3647,6 +3682,23 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
|
|
|
3647
3682
|
return x;
|
|
3648
3683
|
}
|
|
3649
3684
|
};
|
|
3685
|
+
/**
|
|
3686
|
+
* Retrieve the right converter function corresponding with this unit's
|
|
3687
|
+
* value
|
|
3688
|
+
*
|
|
3689
|
+
* @memberof Unit
|
|
3690
|
+
* @return {Function}
|
|
3691
|
+
*/
|
|
3692
|
+
|
|
3693
|
+
Unit.prototype._numberConverter = function () {
|
|
3694
|
+
var convert = Unit.typeConverters[this.valueType()];
|
|
3695
|
+
|
|
3696
|
+
if (convert) {
|
|
3697
|
+
return convert;
|
|
3698
|
+
}
|
|
3699
|
+
|
|
3700
|
+
throw new TypeError('Unsupported Unit value type "' + this.valueType() + '"');
|
|
3701
|
+
};
|
|
3650
3702
|
/**
|
|
3651
3703
|
* Retrieve the right convertor function corresponding with the type
|
|
3652
3704
|
* of provided exampleValue.
|
|
@@ -3656,6 +3708,7 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
|
|
|
3656
3708
|
* @return {Function}
|
|
3657
3709
|
*/
|
|
3658
3710
|
|
|
3711
|
+
|
|
3659
3712
|
Unit._getNumberConverter = function (type) {
|
|
3660
3713
|
if (!Unit.typeConverters[type]) {
|
|
3661
3714
|
throw new TypeError('Unsupported type "' + type + '"');
|
|
@@ -3733,7 +3786,7 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
|
|
|
3733
3786
|
|
|
3734
3787
|
|
|
3735
3788
|
Unit.createUnit = function (obj, options) {
|
|
3736
|
-
if ((0, _typeof2
|
|
3789
|
+
if ((0, _typeof2["default"])(obj) !== 'object') {
|
|
3737
3790
|
throw new TypeError("createUnit expects first parameter to be of type 'Object'");
|
|
3738
3791
|
} // Remove all units and aliases we are overriding
|
|
3739
3792
|
|
|
@@ -3823,7 +3876,7 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
|
|
|
3823
3876
|
if (obj !== '') {
|
|
3824
3877
|
definition = obj;
|
|
3825
3878
|
}
|
|
3826
|
-
} else if ((0, _typeof2
|
|
3879
|
+
} else if ((0, _typeof2["default"])(obj) === 'object') {
|
|
3827
3880
|
definition = obj.definition;
|
|
3828
3881
|
prefixes = obj.prefixes;
|
|
3829
3882
|
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']
|
|
@@ -24,10 +24,13 @@ var createUnitFunction = /* #__PURE__ */(0, _factory.factory)(name, dependencies
|
|
|
24
24
|
* Syntax:
|
|
25
25
|
*
|
|
26
26
|
* math.unit(unit : string)
|
|
27
|
-
* math.unit(value : number,
|
|
27
|
+
* math.unit(value : number, valuelessUnit : Unit)
|
|
28
|
+
* math.unit(value : number, valuelessUnit : string)
|
|
28
29
|
*
|
|
29
30
|
* Examples:
|
|
30
31
|
*
|
|
32
|
+
* const kph = math.unit('km/h') // returns Unit km/h (valueless)
|
|
33
|
+
* const v = math.unit(25, kph) // returns Unit 25 km/h
|
|
31
34
|
* const a = math.unit(5, 'cm') // returns Unit 50 mm
|
|
32
35
|
* const b = math.unit('23 kg') // returns Unit 23 kg
|
|
33
36
|
* a.to('m') // returns Unit 0.05 m
|
|
@@ -52,12 +55,18 @@ var createUnitFunction = /* #__PURE__ */(0, _factory.factory)(name, dependencies
|
|
|
52
55
|
allowNoUnits: true
|
|
53
56
|
}); // a unit with value, like '5cm'
|
|
54
57
|
},
|
|
55
|
-
'number | BigNumber | Fraction | Complex, string': function
|
|
58
|
+
'number | BigNumber | Fraction | Complex, string | Unit': function numberBigNumberFractionComplexStringUnit(value, unit) {
|
|
56
59
|
return new Unit(value, unit);
|
|
57
60
|
},
|
|
58
|
-
'
|
|
59
|
-
|
|
60
|
-
|
|
61
|
+
'number | BigNumber | Fraction': function numberBigNumberFraction(value) {
|
|
62
|
+
// dimensionless
|
|
63
|
+
return new Unit(value);
|
|
64
|
+
},
|
|
65
|
+
'Array | Matrix': typed.referToSelf(function (self) {
|
|
66
|
+
return function (x) {
|
|
67
|
+
return (0, _collection.deepMap)(x, self);
|
|
68
|
+
};
|
|
69
|
+
})
|
|
61
70
|
});
|
|
62
71
|
});
|
|
63
72
|
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
|
}
|
package/lib/cjs/utils/latex.js
CHANGED
|
@@ -73,8 +73,8 @@ var latexSymbols = {
|
|
|
73
73
|
Omega: '\\Omega',
|
|
74
74
|
omega: '\\omega',
|
|
75
75
|
// logic
|
|
76
|
-
true: '\\mathrm{True}',
|
|
77
|
-
false: '\\mathrm{False}',
|
|
76
|
+
"true": '\\mathrm{True}',
|
|
77
|
+
"false": '\\mathrm{False}',
|
|
78
78
|
// other
|
|
79
79
|
i: 'i',
|
|
80
80
|
// TODO use \i ??
|
|
@@ -481,7 +481,7 @@ var latexUnits = {
|
|
|
481
481
|
};
|
|
482
482
|
|
|
483
483
|
function escapeLatex(string) {
|
|
484
|
-
return (0, _escapeLatex
|
|
484
|
+
return (0, _escapeLatex["default"])(string, {
|
|
485
485
|
preserveFormatting: true
|
|
486
486
|
});
|
|
487
487
|
} // @param {string} name
|
package/lib/cjs/utils/map.js
CHANGED
|
@@ -20,7 +20,7 @@ var _customs = require("./customs.js");
|
|
|
20
20
|
|
|
21
21
|
var _is = require("./is.js");
|
|
22
22
|
|
|
23
|
-
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it
|
|
23
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
24
24
|
|
|
25
25
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
26
26
|
|
|
@@ -36,11 +36,11 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
36
36
|
*/
|
|
37
37
|
var ObjectWrappingMap = /*#__PURE__*/function () {
|
|
38
38
|
function ObjectWrappingMap(object) {
|
|
39
|
-
(0, _classCallCheck2
|
|
39
|
+
(0, _classCallCheck2["default"])(this, ObjectWrappingMap);
|
|
40
40
|
this.wrappedObject = object;
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
(0, _createClass2
|
|
43
|
+
(0, _createClass2["default"])(ObjectWrappingMap, [{
|
|
44
44
|
key: "keys",
|
|
45
45
|
value: function keys() {
|
|
46
46
|
return Object.keys(this.wrappedObject);
|
package/lib/cjs/utils/object.js
CHANGED
|
@@ -38,7 +38,7 @@ var _is = require("./is.js");
|
|
|
38
38
|
* @return {*} clone
|
|
39
39
|
*/
|
|
40
40
|
function clone(x) {
|
|
41
|
-
var type = (0, _typeof2
|
|
41
|
+
var type = (0, _typeof2["default"])(x); // immutable primitive types
|
|
42
42
|
|
|
43
43
|
if (type === 'number' || type === 'string' || type === 'boolean' || x === null || x === undefined) {
|
|
44
44
|
return x;
|
|
@@ -213,7 +213,7 @@ function _deepFlatten(nestedObject, flattenedObject) {
|
|
|
213
213
|
if (hasOwnProperty(nestedObject, prop)) {
|
|
214
214
|
var value = nestedObject[prop];
|
|
215
215
|
|
|
216
|
-
if ((0, _typeof2
|
|
216
|
+
if ((0, _typeof2["default"])(value) === 'object' && value !== null) {
|
|
217
217
|
_deepFlatten(value, flattenedObject);
|
|
218
218
|
} else {
|
|
219
219
|
flattenedObject[prop] = value;
|