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
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { factory } from '../../utils/factory.js';
|
|
2
2
|
import { isMatrix } from '../../utils/is.js';
|
|
3
|
-
import { extend } from '../../utils/object.js';
|
|
4
3
|
import { arraySize } from '../../utils/array.js';
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
4
|
+
import { createMatAlgo11xS0s } from '../../type/matrix/utils/matAlgo11xS0s.js';
|
|
5
|
+
import { createMatAlgo14xDs } from '../../type/matrix/utils/matAlgo14xDs.js';
|
|
7
6
|
var name = 'multiply';
|
|
8
7
|
var dependencies = ['typed', 'matrix', 'addScalar', 'multiplyScalar', 'equalScalar', 'dot'];
|
|
9
8
|
export var createMultiply = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
@@ -15,11 +14,11 @@ export var createMultiply = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
15
14
|
equalScalar,
|
|
16
15
|
dot
|
|
17
16
|
} = _ref;
|
|
18
|
-
var
|
|
17
|
+
var matAlgo11xS0s = createMatAlgo11xS0s({
|
|
19
18
|
typed,
|
|
20
19
|
equalScalar
|
|
21
20
|
});
|
|
22
|
-
var
|
|
21
|
+
var matAlgo14xDs = createMatAlgo14xDs({
|
|
23
22
|
typed
|
|
24
23
|
});
|
|
25
24
|
|
|
@@ -819,17 +818,17 @@ export var createMultiply = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
819
818
|
*/
|
|
820
819
|
|
|
821
820
|
|
|
822
|
-
return typed(name,
|
|
821
|
+
return typed(name, multiplyScalar, {
|
|
823
822
|
// we extend the signatures of multiplyScalar with signatures dealing with matrices
|
|
824
|
-
'Array, Array':
|
|
823
|
+
'Array, Array': typed.referTo('Matrix, Matrix', selfMM => (x, y) => {
|
|
825
824
|
// check dimensions
|
|
826
825
|
_validateMatrixDimensions(arraySize(x), arraySize(y)); // use dense matrix implementation
|
|
827
826
|
|
|
828
827
|
|
|
829
|
-
var m =
|
|
828
|
+
var m = selfMM(matrix(x), matrix(y)); // return array or scalar
|
|
830
829
|
|
|
831
830
|
return isMatrix(m) ? m.valueOf() : m;
|
|
832
|
-
},
|
|
831
|
+
}),
|
|
833
832
|
'Matrix, Matrix': function MatrixMatrix(x, y) {
|
|
834
833
|
// dimensions
|
|
835
834
|
var xsize = x.size();
|
|
@@ -858,43 +857,40 @@ export var createMultiply = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
858
857
|
|
|
859
858
|
return _multiplyMatrixMatrix(x, y);
|
|
860
859
|
},
|
|
861
|
-
'Matrix, Array':
|
|
862
|
-
|
|
863
|
-
return this(x, matrix(y));
|
|
864
|
-
},
|
|
865
|
-
'Array, Matrix': function ArrayMatrix(x, y) {
|
|
860
|
+
'Matrix, Array': typed.referTo('Matrix,Matrix', selfMM => (x, y) => selfMM(x, matrix(y))),
|
|
861
|
+
'Array, Matrix': typed.referToSelf(self => (x, y) => {
|
|
866
862
|
// use Matrix * Matrix implementation
|
|
867
|
-
return
|
|
868
|
-
},
|
|
863
|
+
return self(matrix(x, y.storage()), y);
|
|
864
|
+
}),
|
|
869
865
|
'SparseMatrix, any': function SparseMatrixAny(x, y) {
|
|
870
|
-
return
|
|
866
|
+
return matAlgo11xS0s(x, y, multiplyScalar, false);
|
|
871
867
|
},
|
|
872
868
|
'DenseMatrix, any': function DenseMatrixAny(x, y) {
|
|
873
|
-
return
|
|
869
|
+
return matAlgo14xDs(x, y, multiplyScalar, false);
|
|
874
870
|
},
|
|
875
871
|
'any, SparseMatrix': function anySparseMatrix(x, y) {
|
|
876
|
-
return
|
|
872
|
+
return matAlgo11xS0s(y, x, multiplyScalar, true);
|
|
877
873
|
},
|
|
878
874
|
'any, DenseMatrix': function anyDenseMatrix(x, y) {
|
|
879
|
-
return
|
|
875
|
+
return matAlgo14xDs(y, x, multiplyScalar, true);
|
|
880
876
|
},
|
|
881
877
|
'Array, any': function ArrayAny(x, y) {
|
|
882
878
|
// use matrix implementation
|
|
883
|
-
return
|
|
879
|
+
return matAlgo14xDs(matrix(x), y, multiplyScalar, false).valueOf();
|
|
884
880
|
},
|
|
885
881
|
'any, Array': function anyArray(x, y) {
|
|
886
882
|
// use matrix implementation
|
|
887
|
-
return
|
|
883
|
+
return matAlgo14xDs(matrix(y), x, multiplyScalar, true).valueOf();
|
|
888
884
|
},
|
|
889
885
|
'any, any': multiplyScalar,
|
|
890
|
-
'any, any, ...any':
|
|
891
|
-
var result =
|
|
886
|
+
'any, any, ...any': typed.referToSelf(self => (x, y, rest) => {
|
|
887
|
+
var result = self(x, y);
|
|
892
888
|
|
|
893
889
|
for (var i = 0; i < rest.length; i++) {
|
|
894
|
-
result =
|
|
890
|
+
result = self(result, rest[i]);
|
|
895
891
|
}
|
|
896
892
|
|
|
897
893
|
return result;
|
|
898
|
-
}
|
|
899
|
-
}
|
|
894
|
+
})
|
|
895
|
+
});
|
|
900
896
|
});
|
|
@@ -30,18 +30,7 @@ export var createMultiplyScalar = /* #__PURE__ */factory(name, dependencies, _re
|
|
|
30
30
|
'Fraction, Fraction': function FractionFraction(x, y) {
|
|
31
31
|
return x.mul(y);
|
|
32
32
|
},
|
|
33
|
-
'number | Fraction | BigNumber | Complex, Unit':
|
|
34
|
-
|
|
35
|
-
res.value = res.value === null ? res._normalize(x) : this(res.value, x);
|
|
36
|
-
return res;
|
|
37
|
-
},
|
|
38
|
-
'Unit, number | Fraction | BigNumber | Complex': function UnitNumberFractionBigNumberComplex(x, y) {
|
|
39
|
-
var res = x.clone();
|
|
40
|
-
res.value = res.value === null ? res._normalize(y) : this(res.value, y);
|
|
41
|
-
return res;
|
|
42
|
-
},
|
|
43
|
-
'Unit, Unit': function UnitUnit(x, y) {
|
|
44
|
-
return x.multiply(y);
|
|
45
|
-
}
|
|
33
|
+
'number | Fraction | BigNumber | Complex, Unit': (x, y) => y.multiply(x),
|
|
34
|
+
'Unit, number | Fraction | BigNumber | Complex | Unit': (x, y) => x.multiply(y)
|
|
46
35
|
});
|
|
47
36
|
});
|
|
@@ -75,10 +75,6 @@ export var createNorm = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
75
75
|
Matrix: function Matrix(x) {
|
|
76
76
|
return _norm(x, 2);
|
|
77
77
|
},
|
|
78
|
-
'number | Complex | BigNumber | boolean, number | BigNumber | string': function numberComplexBigNumberBooleanNumberBigNumberString(x) {
|
|
79
|
-
// ignore second parameter, TODO: remove the option of second parameter for these types
|
|
80
|
-
return this(x);
|
|
81
|
-
},
|
|
82
78
|
'Array, number | BigNumber | string': function ArrayNumberBigNumberString(x, p) {
|
|
83
79
|
return _norm(matrix(x), p);
|
|
84
80
|
},
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { factory } from '../../utils/factory.js';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import { createAlgorithm14 } from '../../type/matrix/utils/algorithm14.js';
|
|
2
|
+
import { createMatAlgo01xDSid } from '../../type/matrix/utils/matAlgo01xDSid.js';
|
|
3
|
+
import { createMatAlgo02xDS0 } from '../../type/matrix/utils/matAlgo02xDS0.js';
|
|
4
|
+
import { createMatAlgo06xS0S0 } from '../../type/matrix/utils/matAlgo06xS0S0.js';
|
|
5
|
+
import { createMatAlgo11xS0s } from '../../type/matrix/utils/matAlgo11xS0s.js';
|
|
6
|
+
import { createMatrixAlgorithmSuite } from '../../type/matrix/utils/matrixAlgorithmSuite.js';
|
|
8
7
|
import { nthRootNumber } from '../../plain/number/index.js';
|
|
9
8
|
var name = 'nthRoot';
|
|
10
9
|
var dependencies = ['typed', 'matrix', 'equalScalar', 'BigNumber'];
|
|
@@ -15,26 +14,24 @@ export var createNthRoot = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
15
14
|
equalScalar,
|
|
16
15
|
BigNumber: _BigNumber
|
|
17
16
|
} = _ref;
|
|
18
|
-
var
|
|
17
|
+
var matAlgo01xDSid = createMatAlgo01xDSid({
|
|
19
18
|
typed
|
|
20
19
|
});
|
|
21
|
-
var
|
|
20
|
+
var matAlgo02xDS0 = createMatAlgo02xDS0({
|
|
22
21
|
typed,
|
|
23
22
|
equalScalar
|
|
24
23
|
});
|
|
25
|
-
var
|
|
24
|
+
var matAlgo06xS0S0 = createMatAlgo06xS0S0({
|
|
26
25
|
typed,
|
|
27
26
|
equalScalar
|
|
28
27
|
});
|
|
29
|
-
var
|
|
28
|
+
var matAlgo11xS0s = createMatAlgo11xS0s({
|
|
30
29
|
typed,
|
|
31
30
|
equalScalar
|
|
32
31
|
});
|
|
33
|
-
var
|
|
34
|
-
typed
|
|
35
|
-
|
|
36
|
-
var algorithm14 = createAlgorithm14({
|
|
37
|
-
typed
|
|
32
|
+
var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
|
|
33
|
+
typed,
|
|
34
|
+
matrix
|
|
38
35
|
});
|
|
39
36
|
/**
|
|
40
37
|
* Calculate the nth root of a value.
|
|
@@ -66,89 +63,57 @@ export var createNthRoot = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
66
63
|
* @return {number | Complex | Array | Matrix} Returns the nth root of `a`
|
|
67
64
|
*/
|
|
68
65
|
|
|
69
|
-
|
|
66
|
+
function complexErr() {
|
|
67
|
+
throw new Error('Complex number not supported in function nthRoot. Use nthRoots instead.');
|
|
68
|
+
}
|
|
69
|
+
|
|
70
70
|
return typed(name, {
|
|
71
71
|
number: nthRootNumber,
|
|
72
72
|
'number, number': nthRootNumber,
|
|
73
|
-
BigNumber:
|
|
74
|
-
return _bigNthRoot(x, new _BigNumber(2));
|
|
75
|
-
},
|
|
76
|
-
Complex: function Complex(x) {
|
|
77
|
-
throw new Error(complexErr);
|
|
78
|
-
},
|
|
79
|
-
'Complex, number': function ComplexNumber(x, y) {
|
|
80
|
-
throw new Error(complexErr);
|
|
81
|
-
},
|
|
73
|
+
BigNumber: x => _bigNthRoot(x, new _BigNumber(2)),
|
|
82
74
|
'BigNumber, BigNumber': _bigNthRoot,
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
'
|
|
75
|
+
Complex: complexErr,
|
|
76
|
+
'Complex, number': complexErr,
|
|
77
|
+
Array: typed.referTo('DenseMatrix,number', selfDn => x => selfDn(matrix(x), 2).valueOf()),
|
|
78
|
+
DenseMatrix: typed.referTo('DenseMatrix,number', selfDn => x => selfDn(x, 2)),
|
|
79
|
+
SparseMatrix: typed.referTo('SparseMatrix,number', selfSn => x => selfSn(x, 2)),
|
|
80
|
+
'SparseMatrix, SparseMatrix': typed.referToSelf(self => (x, y) => {
|
|
87
81
|
// density must be one (no zeros in matrix)
|
|
88
82
|
if (y.density() === 1) {
|
|
89
83
|
// sparse + sparse
|
|
90
|
-
return
|
|
84
|
+
return matAlgo06xS0S0(x, y, self);
|
|
91
85
|
} else {
|
|
92
86
|
// throw exception
|
|
93
87
|
throw new Error('Root must be non-zero');
|
|
94
88
|
}
|
|
95
|
-
},
|
|
96
|
-
'
|
|
97
|
-
return algorithm02(y, x, this, true);
|
|
98
|
-
},
|
|
99
|
-
'DenseMatrix, SparseMatrix': function DenseMatrixSparseMatrix(x, y) {
|
|
89
|
+
}),
|
|
90
|
+
'DenseMatrix, SparseMatrix': typed.referToSelf(self => (x, y) => {
|
|
100
91
|
// density must be one (no zeros in matrix)
|
|
101
92
|
if (y.density() === 1) {
|
|
102
93
|
// dense + sparse
|
|
103
|
-
return
|
|
94
|
+
return matAlgo01xDSid(x, y, self, false);
|
|
104
95
|
} else {
|
|
105
96
|
// throw exception
|
|
106
97
|
throw new Error('Root must be non-zero');
|
|
107
98
|
}
|
|
108
|
-
},
|
|
109
|
-
'
|
|
110
|
-
|
|
111
|
-
},
|
|
112
|
-
'Array, Array': function ArrayArray(x, y) {
|
|
113
|
-
// use matrix implementation
|
|
114
|
-
return this(matrix(x), matrix(y)).valueOf();
|
|
115
|
-
},
|
|
116
|
-
'Array, Matrix': function ArrayMatrix(x, y) {
|
|
117
|
-
// use matrix implementation
|
|
118
|
-
return this(matrix(x), y);
|
|
119
|
-
},
|
|
120
|
-
'Matrix, Array': function MatrixArray(x, y) {
|
|
121
|
-
// use matrix implementation
|
|
122
|
-
return this(x, matrix(y));
|
|
123
|
-
},
|
|
124
|
-
'SparseMatrix, number | BigNumber': function SparseMatrixNumberBigNumber(x, y) {
|
|
125
|
-
return algorithm11(x, y, this, false);
|
|
126
|
-
},
|
|
127
|
-
'DenseMatrix, number | BigNumber': function DenseMatrixNumberBigNumber(x, y) {
|
|
128
|
-
return algorithm14(x, y, this, false);
|
|
129
|
-
},
|
|
130
|
-
'number | BigNumber, SparseMatrix': function numberBigNumberSparseMatrix(x, y) {
|
|
99
|
+
}),
|
|
100
|
+
'Array, SparseMatrix': typed.referTo('DenseMatrix,SparseMatrix', selfDS => (x, y) => selfDS(matrix(x), y)),
|
|
101
|
+
'number | BigNumber, SparseMatrix': typed.referToSelf(self => (x, y) => {
|
|
131
102
|
// density must be one (no zeros in matrix)
|
|
132
103
|
if (y.density() === 1) {
|
|
133
104
|
// sparse - scalar
|
|
134
|
-
return
|
|
105
|
+
return matAlgo11xS0s(y, x, self, true);
|
|
135
106
|
} else {
|
|
136
107
|
// throw exception
|
|
137
108
|
throw new Error('Root must be non-zero');
|
|
138
109
|
}
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
},
|
|
147
|
-
'number | BigNumber, Array': function numberBigNumberArray(x, y) {
|
|
148
|
-
// use matrix implementation
|
|
149
|
-
return this(x, matrix(y)).valueOf();
|
|
150
|
-
}
|
|
151
|
-
});
|
|
110
|
+
})
|
|
111
|
+
}, matrixAlgorithmSuite({
|
|
112
|
+
scalar: 'number | BigNumber',
|
|
113
|
+
SD: matAlgo02xDS0,
|
|
114
|
+
Ss: matAlgo11xS0s,
|
|
115
|
+
sS: false
|
|
116
|
+
}));
|
|
152
117
|
/**
|
|
153
118
|
* Calculate the nth root of a for BigNumbers, solve x^root == a
|
|
154
119
|
* https://rosettacode.org/wiki/Nth_root#JavaScript
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { factory } from '../../utils/factory.js';
|
|
2
2
|
import { deepMap } from '../../utils/collection.js';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
3
|
+
import { createMatAlgo11xS0s } from '../../type/matrix/utils/matAlgo11xS0s.js';
|
|
4
|
+
import { createMatAlgo12xSfs } from '../../type/matrix/utils/matAlgo12xSfs.js';
|
|
5
|
+
import { createMatAlgo14xDs } from '../../type/matrix/utils/matAlgo14xDs.js';
|
|
6
6
|
import { roundNumber } from '../../plain/number/index.js';
|
|
7
7
|
var NO_INT = 'Number of decimals in function round must be an integer';
|
|
8
8
|
var name = 'round';
|
|
@@ -16,15 +16,15 @@ export var createRound = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
16
16
|
BigNumber,
|
|
17
17
|
DenseMatrix
|
|
18
18
|
} = _ref;
|
|
19
|
-
var
|
|
19
|
+
var matAlgo11xS0s = createMatAlgo11xS0s({
|
|
20
20
|
typed,
|
|
21
21
|
equalScalar
|
|
22
22
|
});
|
|
23
|
-
var
|
|
23
|
+
var matAlgo12xSfs = createMatAlgo12xSfs({
|
|
24
24
|
typed,
|
|
25
25
|
DenseMatrix
|
|
26
26
|
});
|
|
27
|
-
var
|
|
27
|
+
var matAlgo14xDs = createMatAlgo14xDs({
|
|
28
28
|
typed
|
|
29
29
|
});
|
|
30
30
|
/**
|
|
@@ -119,41 +119,39 @@ export var createRound = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
119
119
|
|
|
120
120
|
return x.round(n.toNumber());
|
|
121
121
|
},
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
},
|
|
132
|
-
'Array, number | BigNumber': function ArrayNumberBigNumber(x, y) {
|
|
122
|
+
// deep map collection, skip zeros since round(0) = 0
|
|
123
|
+
'Array | Matrix': typed.referToSelf(self => x => deepMap(x, self, true)),
|
|
124
|
+
'SparseMatrix, number | BigNumber': typed.referToSelf(self => (x, y) => {
|
|
125
|
+
return matAlgo11xS0s(x, y, self, false);
|
|
126
|
+
}),
|
|
127
|
+
'DenseMatrix, number | BigNumber': typed.referToSelf(self => (x, y) => {
|
|
128
|
+
return matAlgo14xDs(x, y, self, false);
|
|
129
|
+
}),
|
|
130
|
+
'Array, number | BigNumber': typed.referToSelf(self => (x, y) => {
|
|
133
131
|
// use matrix implementation
|
|
134
|
-
return
|
|
135
|
-
},
|
|
136
|
-
'number | Complex | BigNumber | Fraction, SparseMatrix':
|
|
132
|
+
return matAlgo14xDs(matrix(x), y, self, false).valueOf();
|
|
133
|
+
}),
|
|
134
|
+
'number | Complex | BigNumber | Fraction, SparseMatrix': typed.referToSelf(self => (x, y) => {
|
|
137
135
|
// check scalar is zero
|
|
138
136
|
if (equalScalar(x, 0)) {
|
|
139
137
|
// do not execute algorithm, result will be a zero matrix
|
|
140
138
|
return zeros(y.size(), y.storage());
|
|
141
139
|
}
|
|
142
140
|
|
|
143
|
-
return
|
|
144
|
-
},
|
|
145
|
-
'number | Complex | BigNumber | Fraction, DenseMatrix':
|
|
141
|
+
return matAlgo12xSfs(y, x, self, true);
|
|
142
|
+
}),
|
|
143
|
+
'number | Complex | BigNumber | Fraction, DenseMatrix': typed.referToSelf(self => (x, y) => {
|
|
146
144
|
// check scalar is zero
|
|
147
145
|
if (equalScalar(x, 0)) {
|
|
148
146
|
// do not execute algorithm, result will be a zero matrix
|
|
149
147
|
return zeros(y.size(), y.storage());
|
|
150
148
|
}
|
|
151
149
|
|
|
152
|
-
return
|
|
153
|
-
},
|
|
154
|
-
'number | Complex | BigNumber | Fraction, Array':
|
|
150
|
+
return matAlgo14xDs(y, x, self, true);
|
|
151
|
+
}),
|
|
152
|
+
'number | Complex | BigNumber | Fraction, Array': typed.referToSelf(self => (x, y) => {
|
|
155
153
|
// use matrix implementation
|
|
156
|
-
return
|
|
157
|
-
}
|
|
154
|
+
return matAlgo14xDs(matrix(y), x, self, true).valueOf();
|
|
155
|
+
})
|
|
158
156
|
});
|
|
159
157
|
});
|
|
@@ -52,16 +52,14 @@ export var createSign = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
52
52
|
Fraction: function Fraction(x) {
|
|
53
53
|
return new _Fraction(x.s, 1);
|
|
54
54
|
},
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
},
|
|
59
|
-
Unit: function Unit(x) {
|
|
55
|
+
// deep map collection, skip zeros since sign(0) = 0
|
|
56
|
+
'Array | Matrix': typed.referToSelf(self => x => deepMap(x, self, true)),
|
|
57
|
+
Unit: typed.referToSelf(self => x => {
|
|
60
58
|
if (!x._isDerived() && x.units[0].unit.offset !== 0) {
|
|
61
59
|
throw new TypeError('sign is ambiguous for units with offset');
|
|
62
60
|
}
|
|
63
61
|
|
|
64
|
-
return
|
|
65
|
-
}
|
|
62
|
+
return typed.find(self, x.valueType())(x.value);
|
|
63
|
+
})
|
|
66
64
|
});
|
|
67
65
|
});
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { factory } from '../../utils/factory.js';
|
|
2
|
-
import { deepMap } from '../../utils/collection.js';
|
|
3
2
|
var name = 'sqrt';
|
|
4
3
|
var dependencies = ['config', 'typed', 'Complex'];
|
|
5
4
|
export var createSqrt = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
@@ -12,7 +11,9 @@ export var createSqrt = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
12
11
|
/**
|
|
13
12
|
* Calculate the square root of a value.
|
|
14
13
|
*
|
|
15
|
-
* For matrices, the
|
|
14
|
+
* For matrices, if you want the matrix square root of a square matrix,
|
|
15
|
+
* use the `sqrtm` function. If you wish to apply `sqrt` elementwise to
|
|
16
|
+
* a matrix M, use `math.map(M, math.sqrt)`.
|
|
16
17
|
*
|
|
17
18
|
* Syntax:
|
|
18
19
|
*
|
|
@@ -28,9 +29,9 @@ export var createSqrt = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
28
29
|
*
|
|
29
30
|
* square, multiply, cube, cbrt, sqrtm
|
|
30
31
|
*
|
|
31
|
-
* @param {number | BigNumber | Complex |
|
|
32
|
+
* @param {number | BigNumber | Complex | Unit} x
|
|
32
33
|
* Value for which to calculate the square root.
|
|
33
|
-
* @return {number | BigNumber | Complex |
|
|
34
|
+
* @return {number | BigNumber | Complex | Unit}
|
|
34
35
|
* Returns the square root of `x`
|
|
35
36
|
*/
|
|
36
37
|
return typed('sqrt', {
|
|
@@ -46,10 +47,6 @@ export var createSqrt = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
46
47
|
return _sqrtNumber(x.toNumber());
|
|
47
48
|
}
|
|
48
49
|
},
|
|
49
|
-
'Array | Matrix': function ArrayMatrix(x) {
|
|
50
|
-
// deep map collection, skip zeros since sqrt(0) = 0
|
|
51
|
-
return deepMap(x, this, true);
|
|
52
|
-
},
|
|
53
50
|
Unit: function Unit(x) {
|
|
54
51
|
// Someday will work for complex units when they are implemented
|
|
55
52
|
return x.pow(0.5);
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { factory } from '../../utils/factory.js';
|
|
2
|
-
import { deepMap } from '../../utils/collection.js';
|
|
3
2
|
import { squareNumber } from '../../plain/number/index.js';
|
|
4
3
|
var name = 'square';
|
|
5
4
|
var dependencies = ['typed'];
|
|
@@ -10,7 +9,9 @@ export var createSquare = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
10
9
|
|
|
11
10
|
/**
|
|
12
11
|
* Compute the square of a value, `x * x`.
|
|
13
|
-
*
|
|
12
|
+
* To avoid confusion with multiplying a square matrix by itself,
|
|
13
|
+
* this function does not apply to matrices. If you wish to square
|
|
14
|
+
* every element of a matrix, see the examples.
|
|
14
15
|
*
|
|
15
16
|
* Syntax:
|
|
16
17
|
*
|
|
@@ -23,15 +24,15 @@ export var createSquare = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
23
24
|
* math.pow(3, 2) // returns number 9
|
|
24
25
|
* math.multiply(3, 3) // returns number 9
|
|
25
26
|
*
|
|
26
|
-
* math.
|
|
27
|
+
* math.map([1, 2, 3, 4], math.square) // returns Array [1, 4, 9, 16]
|
|
27
28
|
*
|
|
28
29
|
* See also:
|
|
29
30
|
*
|
|
30
31
|
* multiply, cube, sqrt, pow
|
|
31
32
|
*
|
|
32
|
-
* @param {number | BigNumber | Fraction | Complex |
|
|
33
|
+
* @param {number | BigNumber | Fraction | Complex | Unit} x
|
|
33
34
|
* Number for which to calculate the square
|
|
34
|
-
* @return {number | BigNumber | Fraction | Complex |
|
|
35
|
+
* @return {number | BigNumber | Fraction | Complex | Unit}
|
|
35
36
|
* Squared value
|
|
36
37
|
*/
|
|
37
38
|
return typed(name, {
|
|
@@ -45,10 +46,6 @@ export var createSquare = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
45
46
|
Fraction: function Fraction(x) {
|
|
46
47
|
return x.mul(x);
|
|
47
48
|
},
|
|
48
|
-
'Array | Matrix': function ArrayMatrix(x) {
|
|
49
|
-
// deep map collection, skip zeros since square(0) = 0
|
|
50
|
-
return deepMap(x, this, true);
|
|
51
|
-
},
|
|
52
49
|
Unit: function Unit(x) {
|
|
53
50
|
return x.pow(2);
|
|
54
51
|
}
|