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
|
@@ -9,13 +9,11 @@ var _factory = require("../../utils/factory.js");
|
|
|
9
9
|
|
|
10
10
|
var _is = require("../../utils/is.js");
|
|
11
11
|
|
|
12
|
-
var _object = require("../../utils/object.js");
|
|
13
|
-
|
|
14
12
|
var _array = require("../../utils/array.js");
|
|
15
13
|
|
|
16
|
-
var
|
|
14
|
+
var _matAlgo11xS0s = require("../../type/matrix/utils/matAlgo11xS0s.js");
|
|
17
15
|
|
|
18
|
-
var
|
|
16
|
+
var _matAlgo14xDs = require("../../type/matrix/utils/matAlgo14xDs.js");
|
|
19
17
|
|
|
20
18
|
var name = 'multiply';
|
|
21
19
|
var dependencies = ['typed', 'matrix', 'addScalar', 'multiplyScalar', 'equalScalar', 'dot'];
|
|
@@ -26,11 +24,11 @@ var createMultiply = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fu
|
|
|
26
24
|
multiplyScalar = _ref.multiplyScalar,
|
|
27
25
|
equalScalar = _ref.equalScalar,
|
|
28
26
|
dot = _ref.dot;
|
|
29
|
-
var
|
|
27
|
+
var matAlgo11xS0s = (0, _matAlgo11xS0s.createMatAlgo11xS0s)({
|
|
30
28
|
typed: typed,
|
|
31
29
|
equalScalar: equalScalar
|
|
32
30
|
});
|
|
33
|
-
var
|
|
31
|
+
var matAlgo14xDs = (0, _matAlgo14xDs.createMatAlgo14xDs)({
|
|
34
32
|
typed: typed
|
|
35
33
|
});
|
|
36
34
|
|
|
@@ -830,17 +828,19 @@ var createMultiply = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fu
|
|
|
830
828
|
*/
|
|
831
829
|
|
|
832
830
|
|
|
833
|
-
return typed(name,
|
|
831
|
+
return typed(name, multiplyScalar, {
|
|
834
832
|
// we extend the signatures of multiplyScalar with signatures dealing with matrices
|
|
835
|
-
'Array, Array': function
|
|
836
|
-
|
|
837
|
-
|
|
833
|
+
'Array, Array': typed.referTo('Matrix, Matrix', function (selfMM) {
|
|
834
|
+
return function (x, y) {
|
|
835
|
+
// check dimensions
|
|
836
|
+
_validateMatrixDimensions((0, _array.arraySize)(x), (0, _array.arraySize)(y)); // use dense matrix implementation
|
|
838
837
|
|
|
839
838
|
|
|
840
|
-
|
|
839
|
+
var m = selfMM(matrix(x), matrix(y)); // return array or scalar
|
|
841
840
|
|
|
842
|
-
|
|
843
|
-
|
|
841
|
+
return (0, _is.isMatrix)(m) ? m.valueOf() : m;
|
|
842
|
+
};
|
|
843
|
+
}),
|
|
844
844
|
'Matrix, Matrix': function MatrixMatrix(x, y) {
|
|
845
845
|
// dimensions
|
|
846
846
|
var xsize = x.size();
|
|
@@ -869,44 +869,49 @@ var createMultiply = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fu
|
|
|
869
869
|
|
|
870
870
|
return _multiplyMatrixMatrix(x, y);
|
|
871
871
|
},
|
|
872
|
-
'Matrix, Array': function
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
return
|
|
879
|
-
|
|
872
|
+
'Matrix, Array': typed.referTo('Matrix,Matrix', function (selfMM) {
|
|
873
|
+
return function (x, y) {
|
|
874
|
+
return selfMM(x, matrix(y));
|
|
875
|
+
};
|
|
876
|
+
}),
|
|
877
|
+
'Array, Matrix': typed.referToSelf(function (self) {
|
|
878
|
+
return function (x, y) {
|
|
879
|
+
// use Matrix * Matrix implementation
|
|
880
|
+
return self(matrix(x, y.storage()), y);
|
|
881
|
+
};
|
|
882
|
+
}),
|
|
880
883
|
'SparseMatrix, any': function SparseMatrixAny(x, y) {
|
|
881
|
-
return
|
|
884
|
+
return matAlgo11xS0s(x, y, multiplyScalar, false);
|
|
882
885
|
},
|
|
883
886
|
'DenseMatrix, any': function DenseMatrixAny(x, y) {
|
|
884
|
-
return
|
|
887
|
+
return matAlgo14xDs(x, y, multiplyScalar, false);
|
|
885
888
|
},
|
|
886
889
|
'any, SparseMatrix': function anySparseMatrix(x, y) {
|
|
887
|
-
return
|
|
890
|
+
return matAlgo11xS0s(y, x, multiplyScalar, true);
|
|
888
891
|
},
|
|
889
892
|
'any, DenseMatrix': function anyDenseMatrix(x, y) {
|
|
890
|
-
return
|
|
893
|
+
return matAlgo14xDs(y, x, multiplyScalar, true);
|
|
891
894
|
},
|
|
892
895
|
'Array, any': function ArrayAny(x, y) {
|
|
893
896
|
// use matrix implementation
|
|
894
|
-
return
|
|
897
|
+
return matAlgo14xDs(matrix(x), y, multiplyScalar, false).valueOf();
|
|
895
898
|
},
|
|
896
899
|
'any, Array': function anyArray(x, y) {
|
|
897
900
|
// use matrix implementation
|
|
898
|
-
return
|
|
901
|
+
return matAlgo14xDs(matrix(y), x, multiplyScalar, true).valueOf();
|
|
899
902
|
},
|
|
900
903
|
'any, any': multiplyScalar,
|
|
901
|
-
'any, any, ...any': function
|
|
902
|
-
|
|
904
|
+
'any, any, ...any': typed.referToSelf(function (self) {
|
|
905
|
+
return function (x, y, rest) {
|
|
906
|
+
var result = self(x, y);
|
|
903
907
|
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
908
|
+
for (var i = 0; i < rest.length; i++) {
|
|
909
|
+
result = self(result, rest[i]);
|
|
910
|
+
}
|
|
907
911
|
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
912
|
+
return result;
|
|
913
|
+
};
|
|
914
|
+
})
|
|
915
|
+
});
|
|
911
916
|
});
|
|
912
917
|
exports.createMultiply = createMultiply;
|
|
@@ -38,16 +38,9 @@ var createMultiplyScalar = /* #__PURE__ */(0, _factory.factory)(name, dependenci
|
|
|
38
38
|
return x.mul(y);
|
|
39
39
|
},
|
|
40
40
|
'number | Fraction | BigNumber | Complex, Unit': function numberFractionBigNumberComplexUnit(x, y) {
|
|
41
|
-
|
|
42
|
-
res.value = res.value === null ? res._normalize(x) : this(res.value, x);
|
|
43
|
-
return res;
|
|
41
|
+
return y.multiply(x);
|
|
44
42
|
},
|
|
45
|
-
'Unit, number | Fraction | BigNumber | Complex': function
|
|
46
|
-
var res = x.clone();
|
|
47
|
-
res.value = res.value === null ? res._normalize(y) : this(res.value, y);
|
|
48
|
-
return res;
|
|
49
|
-
},
|
|
50
|
-
'Unit, Unit': function UnitUnit(x, y) {
|
|
43
|
+
'Unit, number | Fraction | BigNumber | Complex | Unit': function UnitNumberFractionBigNumberComplexUnit(x, y) {
|
|
51
44
|
return x.multiply(y);
|
|
52
45
|
}
|
|
53
46
|
});
|
|
@@ -71,7 +71,7 @@ var createNorm = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functi
|
|
|
71
71
|
// norm(x) = abs(x)
|
|
72
72
|
return x.abs();
|
|
73
73
|
},
|
|
74
|
-
boolean: function boolean(x) {
|
|
74
|
+
"boolean": function boolean(x) {
|
|
75
75
|
// norm(x) = abs(x)
|
|
76
76
|
return Math.abs(x);
|
|
77
77
|
},
|
|
@@ -81,10 +81,6 @@ var createNorm = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functi
|
|
|
81
81
|
Matrix: function Matrix(x) {
|
|
82
82
|
return _norm(x, 2);
|
|
83
83
|
},
|
|
84
|
-
'number | Complex | BigNumber | boolean, number | BigNumber | string': function numberComplexBigNumberBooleanNumberBigNumberString(x) {
|
|
85
|
-
// ignore second parameter, TODO: remove the option of second parameter for these types
|
|
86
|
-
return this(x);
|
|
87
|
-
},
|
|
88
84
|
'Array, number | BigNumber | string': function ArrayNumberBigNumberString(x, p) {
|
|
89
85
|
return _norm(matrix(x), p);
|
|
90
86
|
},
|
|
@@ -7,17 +7,15 @@ exports.createNthRootNumber = exports.createNthRoot = void 0;
|
|
|
7
7
|
|
|
8
8
|
var _factory = require("../../utils/factory.js");
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _matAlgo01xDSid = require("../../type/matrix/utils/matAlgo01xDSid.js");
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _matAlgo02xDS = require("../../type/matrix/utils/matAlgo02xDS0.js");
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _matAlgo06xS0S = require("../../type/matrix/utils/matAlgo06xS0S0.js");
|
|
15
15
|
|
|
16
|
-
var
|
|
16
|
+
var _matAlgo11xS0s = require("../../type/matrix/utils/matAlgo11xS0s.js");
|
|
17
17
|
|
|
18
|
-
var
|
|
19
|
-
|
|
20
|
-
var _algorithm6 = require("../../type/matrix/utils/algorithm14.js");
|
|
18
|
+
var _matrixAlgorithmSuite = require("../../type/matrix/utils/matrixAlgorithmSuite.js");
|
|
21
19
|
|
|
22
20
|
var _index = require("../../plain/number/index.js");
|
|
23
21
|
|
|
@@ -28,26 +26,24 @@ var createNthRoot = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fun
|
|
|
28
26
|
matrix = _ref.matrix,
|
|
29
27
|
equalScalar = _ref.equalScalar,
|
|
30
28
|
_BigNumber = _ref.BigNumber;
|
|
31
|
-
var
|
|
29
|
+
var matAlgo01xDSid = (0, _matAlgo01xDSid.createMatAlgo01xDSid)({
|
|
32
30
|
typed: typed
|
|
33
31
|
});
|
|
34
|
-
var
|
|
32
|
+
var matAlgo02xDS0 = (0, _matAlgo02xDS.createMatAlgo02xDS0)({
|
|
35
33
|
typed: typed,
|
|
36
34
|
equalScalar: equalScalar
|
|
37
35
|
});
|
|
38
|
-
var
|
|
36
|
+
var matAlgo06xS0S0 = (0, _matAlgo06xS0S.createMatAlgo06xS0S0)({
|
|
39
37
|
typed: typed,
|
|
40
38
|
equalScalar: equalScalar
|
|
41
39
|
});
|
|
42
|
-
var
|
|
40
|
+
var matAlgo11xS0s = (0, _matAlgo11xS0s.createMatAlgo11xS0s)({
|
|
43
41
|
typed: typed,
|
|
44
42
|
equalScalar: equalScalar
|
|
45
43
|
});
|
|
46
|
-
var
|
|
47
|
-
typed: typed
|
|
48
|
-
|
|
49
|
-
var algorithm14 = (0, _algorithm6.createAlgorithm14)({
|
|
50
|
-
typed: typed
|
|
44
|
+
var matrixAlgorithmSuite = (0, _matrixAlgorithmSuite.createMatrixAlgorithmSuite)({
|
|
45
|
+
typed: typed,
|
|
46
|
+
matrix: matrix
|
|
51
47
|
});
|
|
52
48
|
/**
|
|
53
49
|
* Calculate the nth root of a value.
|
|
@@ -79,89 +75,81 @@ var createNthRoot = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fun
|
|
|
79
75
|
* @return {number | Complex | Array | Matrix} Returns the nth root of `a`
|
|
80
76
|
*/
|
|
81
77
|
|
|
82
|
-
|
|
78
|
+
function complexErr() {
|
|
79
|
+
throw new Error('Complex number not supported in function nthRoot. Use nthRoots instead.');
|
|
80
|
+
}
|
|
81
|
+
|
|
83
82
|
return typed(name, {
|
|
84
83
|
number: _index.nthRootNumber,
|
|
85
84
|
'number, number': _index.nthRootNumber,
|
|
86
85
|
BigNumber: function BigNumber(x) {
|
|
87
86
|
return _bigNthRoot(x, new _BigNumber(2));
|
|
88
87
|
},
|
|
89
|
-
Complex: function Complex(x) {
|
|
90
|
-
throw new Error(complexErr);
|
|
91
|
-
},
|
|
92
|
-
'Complex, number': function ComplexNumber(x, y) {
|
|
93
|
-
throw new Error(complexErr);
|
|
94
|
-
},
|
|
95
88
|
'BigNumber, BigNumber': _bigNthRoot,
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
//
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
},
|
|
125
|
-
'
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
},
|
|
137
|
-
'
|
|
138
|
-
return
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
'number | BigNumber, Array': function numberBigNumberArray(x, y) {
|
|
161
|
-
// use matrix implementation
|
|
162
|
-
return this(x, matrix(y)).valueOf();
|
|
163
|
-
}
|
|
164
|
-
});
|
|
89
|
+
Complex: complexErr,
|
|
90
|
+
'Complex, number': complexErr,
|
|
91
|
+
Array: typed.referTo('DenseMatrix,number', function (selfDn) {
|
|
92
|
+
return function (x) {
|
|
93
|
+
return selfDn(matrix(x), 2).valueOf();
|
|
94
|
+
};
|
|
95
|
+
}),
|
|
96
|
+
DenseMatrix: typed.referTo('DenseMatrix,number', function (selfDn) {
|
|
97
|
+
return function (x) {
|
|
98
|
+
return selfDn(x, 2);
|
|
99
|
+
};
|
|
100
|
+
}),
|
|
101
|
+
SparseMatrix: typed.referTo('SparseMatrix,number', function (selfSn) {
|
|
102
|
+
return function (x) {
|
|
103
|
+
return selfSn(x, 2);
|
|
104
|
+
};
|
|
105
|
+
}),
|
|
106
|
+
'SparseMatrix, SparseMatrix': typed.referToSelf(function (self) {
|
|
107
|
+
return function (x, y) {
|
|
108
|
+
// density must be one (no zeros in matrix)
|
|
109
|
+
if (y.density() === 1) {
|
|
110
|
+
// sparse + sparse
|
|
111
|
+
return matAlgo06xS0S0(x, y, self);
|
|
112
|
+
} else {
|
|
113
|
+
// throw exception
|
|
114
|
+
throw new Error('Root must be non-zero');
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
}),
|
|
118
|
+
'DenseMatrix, SparseMatrix': typed.referToSelf(function (self) {
|
|
119
|
+
return function (x, y) {
|
|
120
|
+
// density must be one (no zeros in matrix)
|
|
121
|
+
if (y.density() === 1) {
|
|
122
|
+
// dense + sparse
|
|
123
|
+
return matAlgo01xDSid(x, y, self, false);
|
|
124
|
+
} else {
|
|
125
|
+
// throw exception
|
|
126
|
+
throw new Error('Root must be non-zero');
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
}),
|
|
130
|
+
'Array, SparseMatrix': typed.referTo('DenseMatrix,SparseMatrix', function (selfDS) {
|
|
131
|
+
return function (x, y) {
|
|
132
|
+
return selfDS(matrix(x), y);
|
|
133
|
+
};
|
|
134
|
+
}),
|
|
135
|
+
'number | BigNumber, SparseMatrix': typed.referToSelf(function (self) {
|
|
136
|
+
return function (x, y) {
|
|
137
|
+
// density must be one (no zeros in matrix)
|
|
138
|
+
if (y.density() === 1) {
|
|
139
|
+
// sparse - scalar
|
|
140
|
+
return matAlgo11xS0s(y, x, self, true);
|
|
141
|
+
} else {
|
|
142
|
+
// throw exception
|
|
143
|
+
throw new Error('Root must be non-zero');
|
|
144
|
+
}
|
|
145
|
+
};
|
|
146
|
+
})
|
|
147
|
+
}, matrixAlgorithmSuite({
|
|
148
|
+
scalar: 'number | BigNumber',
|
|
149
|
+
SD: matAlgo02xDS0,
|
|
150
|
+
Ss: matAlgo11xS0s,
|
|
151
|
+
sS: false
|
|
152
|
+
}));
|
|
165
153
|
/**
|
|
166
154
|
* Calculate the nth root of a for BigNumbers, solve x^root == a
|
|
167
155
|
* https://rosettacode.org/wiki/Nth_root#JavaScript
|
|
@@ -9,11 +9,11 @@ var _factory = require("../../utils/factory.js");
|
|
|
9
9
|
|
|
10
10
|
var _collection = require("../../utils/collection.js");
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _matAlgo11xS0s = require("../../type/matrix/utils/matAlgo11xS0s.js");
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _matAlgo12xSfs = require("../../type/matrix/utils/matAlgo12xSfs.js");
|
|
15
15
|
|
|
16
|
-
var
|
|
16
|
+
var _matAlgo14xDs = require("../../type/matrix/utils/matAlgo14xDs.js");
|
|
17
17
|
|
|
18
18
|
var _index = require("../../plain/number/index.js");
|
|
19
19
|
|
|
@@ -27,15 +27,15 @@ var createRound = /* #__PURE__ */(0, _factory.factory)(name, dependencies, funct
|
|
|
27
27
|
zeros = _ref.zeros,
|
|
28
28
|
BigNumber = _ref.BigNumber,
|
|
29
29
|
DenseMatrix = _ref.DenseMatrix;
|
|
30
|
-
var
|
|
30
|
+
var matAlgo11xS0s = (0, _matAlgo11xS0s.createMatAlgo11xS0s)({
|
|
31
31
|
typed: typed,
|
|
32
32
|
equalScalar: equalScalar
|
|
33
33
|
});
|
|
34
|
-
var
|
|
34
|
+
var matAlgo12xSfs = (0, _matAlgo12xSfs.createMatAlgo12xSfs)({
|
|
35
35
|
typed: typed,
|
|
36
36
|
DenseMatrix: DenseMatrix
|
|
37
37
|
});
|
|
38
|
-
var
|
|
38
|
+
var matAlgo14xDs = (0, _matAlgo14xDs.createMatAlgo14xDs)({
|
|
39
39
|
typed: typed
|
|
40
40
|
});
|
|
41
41
|
/**
|
|
@@ -130,42 +130,56 @@ var createRound = /* #__PURE__ */(0, _factory.factory)(name, dependencies, funct
|
|
|
130
130
|
|
|
131
131
|
return x.round(n.toNumber());
|
|
132
132
|
},
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
return
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
return
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
return
|
|
168
|
-
|
|
133
|
+
// deep map collection, skip zeros since round(0) = 0
|
|
134
|
+
'Array | Matrix': typed.referToSelf(function (self) {
|
|
135
|
+
return function (x) {
|
|
136
|
+
return (0, _collection.deepMap)(x, self, true);
|
|
137
|
+
};
|
|
138
|
+
}),
|
|
139
|
+
'SparseMatrix, number | BigNumber': typed.referToSelf(function (self) {
|
|
140
|
+
return function (x, y) {
|
|
141
|
+
return matAlgo11xS0s(x, y, self, false);
|
|
142
|
+
};
|
|
143
|
+
}),
|
|
144
|
+
'DenseMatrix, number | BigNumber': typed.referToSelf(function (self) {
|
|
145
|
+
return function (x, y) {
|
|
146
|
+
return matAlgo14xDs(x, y, self, false);
|
|
147
|
+
};
|
|
148
|
+
}),
|
|
149
|
+
'Array, number | BigNumber': typed.referToSelf(function (self) {
|
|
150
|
+
return function (x, y) {
|
|
151
|
+
// use matrix implementation
|
|
152
|
+
return matAlgo14xDs(matrix(x), y, self, false).valueOf();
|
|
153
|
+
};
|
|
154
|
+
}),
|
|
155
|
+
'number | Complex | BigNumber | Fraction, SparseMatrix': typed.referToSelf(function (self) {
|
|
156
|
+
return function (x, y) {
|
|
157
|
+
// check scalar is zero
|
|
158
|
+
if (equalScalar(x, 0)) {
|
|
159
|
+
// do not execute algorithm, result will be a zero matrix
|
|
160
|
+
return zeros(y.size(), y.storage());
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
return matAlgo12xSfs(y, x, self, true);
|
|
164
|
+
};
|
|
165
|
+
}),
|
|
166
|
+
'number | Complex | BigNumber | Fraction, DenseMatrix': typed.referToSelf(function (self) {
|
|
167
|
+
return function (x, y) {
|
|
168
|
+
// check scalar is zero
|
|
169
|
+
if (equalScalar(x, 0)) {
|
|
170
|
+
// do not execute algorithm, result will be a zero matrix
|
|
171
|
+
return zeros(y.size(), y.storage());
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
return matAlgo14xDs(y, x, self, true);
|
|
175
|
+
};
|
|
176
|
+
}),
|
|
177
|
+
'number | Complex | BigNumber | Fraction, Array': typed.referToSelf(function (self) {
|
|
178
|
+
return function (x, y) {
|
|
179
|
+
// use matrix implementation
|
|
180
|
+
return matAlgo14xDs(matrix(y), x, self, true).valueOf();
|
|
181
|
+
};
|
|
182
|
+
})
|
|
169
183
|
});
|
|
170
184
|
});
|
|
171
185
|
exports.createRound = createRound;
|
|
@@ -60,17 +60,21 @@ var createSign = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functi
|
|
|
60
60
|
Fraction: function Fraction(x) {
|
|
61
61
|
return new _Fraction(x.s, 1);
|
|
62
62
|
},
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
return
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
63
|
+
// deep map collection, skip zeros since sign(0) = 0
|
|
64
|
+
'Array | Matrix': typed.referToSelf(function (self) {
|
|
65
|
+
return function (x) {
|
|
66
|
+
return (0, _collection.deepMap)(x, self, true);
|
|
67
|
+
};
|
|
68
|
+
}),
|
|
69
|
+
Unit: typed.referToSelf(function (self) {
|
|
70
|
+
return function (x) {
|
|
71
|
+
if (!x._isDerived() && x.units[0].unit.offset !== 0) {
|
|
72
|
+
throw new TypeError('sign is ambiguous for units with offset');
|
|
73
|
+
}
|
|
71
74
|
|
|
72
|
-
|
|
73
|
-
|
|
75
|
+
return typed.find(self, x.valueType())(x.value);
|
|
76
|
+
};
|
|
77
|
+
})
|
|
74
78
|
});
|
|
75
79
|
});
|
|
76
80
|
exports.createSign = createSign;
|
|
@@ -7,8 +7,6 @@ exports.createSqrt = void 0;
|
|
|
7
7
|
|
|
8
8
|
var _factory = require("../../utils/factory.js");
|
|
9
9
|
|
|
10
|
-
var _collection = require("../../utils/collection.js");
|
|
11
|
-
|
|
12
10
|
var name = 'sqrt';
|
|
13
11
|
var dependencies = ['config', 'typed', 'Complex'];
|
|
14
12
|
var createSqrt = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
|
|
@@ -19,7 +17,9 @@ var createSqrt = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functi
|
|
|
19
17
|
/**
|
|
20
18
|
* Calculate the square root of a value.
|
|
21
19
|
*
|
|
22
|
-
* For matrices, the
|
|
20
|
+
* For matrices, if you want the matrix square root of a square matrix,
|
|
21
|
+
* use the `sqrtm` function. If you wish to apply `sqrt` elementwise to
|
|
22
|
+
* a matrix M, use `math.map(M, math.sqrt)`.
|
|
23
23
|
*
|
|
24
24
|
* Syntax:
|
|
25
25
|
*
|
|
@@ -35,9 +35,9 @@ var createSqrt = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functi
|
|
|
35
35
|
*
|
|
36
36
|
* square, multiply, cube, cbrt, sqrtm
|
|
37
37
|
*
|
|
38
|
-
* @param {number | BigNumber | Complex |
|
|
38
|
+
* @param {number | BigNumber | Complex | Unit} x
|
|
39
39
|
* Value for which to calculate the square root.
|
|
40
|
-
* @return {number | BigNumber | Complex |
|
|
40
|
+
* @return {number | BigNumber | Complex | Unit}
|
|
41
41
|
* Returns the square root of `x`
|
|
42
42
|
*/
|
|
43
43
|
return typed('sqrt', {
|
|
@@ -53,10 +53,6 @@ var createSqrt = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functi
|
|
|
53
53
|
return _sqrtNumber(x.toNumber());
|
|
54
54
|
}
|
|
55
55
|
},
|
|
56
|
-
'Array | Matrix': function ArrayMatrix(x) {
|
|
57
|
-
// deep map collection, skip zeros since sqrt(0) = 0
|
|
58
|
-
return (0, _collection.deepMap)(x, this, true);
|
|
59
|
-
},
|
|
60
56
|
Unit: function Unit(x) {
|
|
61
57
|
// Someday will work for complex units when they are implemented
|
|
62
58
|
return x.pow(0.5);
|
|
@@ -7,8 +7,6 @@ exports.createSquare = void 0;
|
|
|
7
7
|
|
|
8
8
|
var _factory = require("../../utils/factory.js");
|
|
9
9
|
|
|
10
|
-
var _collection = require("../../utils/collection.js");
|
|
11
|
-
|
|
12
10
|
var _index = require("../../plain/number/index.js");
|
|
13
11
|
|
|
14
12
|
var name = 'square';
|
|
@@ -18,7 +16,9 @@ var createSquare = /* #__PURE__ */(0, _factory.factory)(name, dependencies, func
|
|
|
18
16
|
|
|
19
17
|
/**
|
|
20
18
|
* Compute the square of a value, `x * x`.
|
|
21
|
-
*
|
|
19
|
+
* To avoid confusion with multiplying a square matrix by itself,
|
|
20
|
+
* this function does not apply to matrices. If you wish to square
|
|
21
|
+
* every element of a matrix, see the examples.
|
|
22
22
|
*
|
|
23
23
|
* Syntax:
|
|
24
24
|
*
|
|
@@ -31,15 +31,15 @@ var createSquare = /* #__PURE__ */(0, _factory.factory)(name, dependencies, func
|
|
|
31
31
|
* math.pow(3, 2) // returns number 9
|
|
32
32
|
* math.multiply(3, 3) // returns number 9
|
|
33
33
|
*
|
|
34
|
-
* math.
|
|
34
|
+
* math.map([1, 2, 3, 4], math.square) // returns Array [1, 4, 9, 16]
|
|
35
35
|
*
|
|
36
36
|
* See also:
|
|
37
37
|
*
|
|
38
38
|
* multiply, cube, sqrt, pow
|
|
39
39
|
*
|
|
40
|
-
* @param {number | BigNumber | Fraction | Complex |
|
|
40
|
+
* @param {number | BigNumber | Fraction | Complex | Unit} x
|
|
41
41
|
* Number for which to calculate the square
|
|
42
|
-
* @return {number | BigNumber | Fraction | Complex |
|
|
42
|
+
* @return {number | BigNumber | Fraction | Complex | Unit}
|
|
43
43
|
* Squared value
|
|
44
44
|
*/
|
|
45
45
|
return typed(name, {
|
|
@@ -53,10 +53,6 @@ var createSquare = /* #__PURE__ */(0, _factory.factory)(name, dependencies, func
|
|
|
53
53
|
Fraction: function Fraction(x) {
|
|
54
54
|
return x.mul(x);
|
|
55
55
|
},
|
|
56
|
-
'Array | Matrix': function ArrayMatrix(x) {
|
|
57
|
-
// deep map collection, skip zeros since square(0) = 0
|
|
58
|
-
return (0, _collection.deepMap)(x, this, true);
|
|
59
|
-
},
|
|
60
56
|
Unit: function Unit(x) {
|
|
61
57
|
return x.pow(2);
|
|
62
58
|
}
|