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,5 +1,4 @@
|
|
|
1
1
|
import { factory } from '../../utils/factory.js';
|
|
2
|
-
import { deepMap } from '../../utils/collection.js';
|
|
3
2
|
import { sinhNumber } from '../../plain/number/index.js';
|
|
4
3
|
var name = 'sinh';
|
|
5
4
|
var dependencies = ['typed'];
|
|
@@ -12,7 +11,8 @@ export var createSinh = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
12
11
|
* Calculate the hyperbolic sine of a value,
|
|
13
12
|
* defined as `sinh(x) = 1/2 * (exp(x) - exp(-x))`.
|
|
14
13
|
*
|
|
15
|
-
*
|
|
14
|
+
* To avoid confusion with the matrix hyperbolic sine, this function does
|
|
15
|
+
* not apply to matrices.
|
|
16
16
|
*
|
|
17
17
|
* Syntax:
|
|
18
18
|
*
|
|
@@ -26,27 +26,11 @@ export var createSinh = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
26
26
|
*
|
|
27
27
|
* cosh, tanh
|
|
28
28
|
*
|
|
29
|
-
* @param {number | BigNumber | Complex
|
|
30
|
-
* @return {number | BigNumber | Complex
|
|
29
|
+
* @param {number | BigNumber | Complex} x Function input
|
|
30
|
+
* @return {number | BigNumber | Complex} Hyperbolic sine of x
|
|
31
31
|
*/
|
|
32
32
|
return typed(name, {
|
|
33
33
|
number: sinhNumber,
|
|
34
|
-
Complex:
|
|
35
|
-
return x.sinh();
|
|
36
|
-
},
|
|
37
|
-
BigNumber: function BigNumber(x) {
|
|
38
|
-
return x.sinh();
|
|
39
|
-
},
|
|
40
|
-
Unit: function Unit(x) {
|
|
41
|
-
if (!x.hasBase(x.constructor.BASE_UNITS.ANGLE)) {
|
|
42
|
-
throw new TypeError('Unit in function sinh is no angle');
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
return this(x.value);
|
|
46
|
-
},
|
|
47
|
-
'Array | Matrix': function ArrayMatrix(x) {
|
|
48
|
-
// deep map collection, skip zeros since sinh(0) = 0
|
|
49
|
-
return deepMap(x, this, true);
|
|
50
|
-
}
|
|
34
|
+
'Complex | BigNumber': x => x.sinh()
|
|
51
35
|
});
|
|
52
36
|
});
|
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
import { factory } from '../../utils/factory.js';
|
|
2
|
-
import {
|
|
2
|
+
import { createTrigUnit } from './trigUnit.js';
|
|
3
3
|
var name = 'tan';
|
|
4
4
|
var dependencies = ['typed'];
|
|
5
5
|
export var createTan = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
6
6
|
var {
|
|
7
7
|
typed
|
|
8
8
|
} = _ref;
|
|
9
|
-
|
|
9
|
+
var trigUnit = createTrigUnit({
|
|
10
|
+
typed
|
|
11
|
+
});
|
|
10
12
|
/**
|
|
11
13
|
* Calculate the tangent of a value. `tan(x)` is equal to `sin(x) / cos(x)`.
|
|
12
14
|
*
|
|
13
|
-
*
|
|
15
|
+
* To avoid confusion with the matrix tangent, this function does not apply
|
|
16
|
+
* to matrices.
|
|
14
17
|
*
|
|
15
18
|
* Syntax:
|
|
16
19
|
*
|
|
@@ -27,27 +30,12 @@ export var createTan = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
27
30
|
*
|
|
28
31
|
* atan, sin, cos
|
|
29
32
|
*
|
|
30
|
-
* @param {number | BigNumber | Complex | Unit
|
|
31
|
-
* @return {number | BigNumber | Complex
|
|
33
|
+
* @param {number | BigNumber | Complex | Unit} x Function input
|
|
34
|
+
* @return {number | BigNumber | Complex} Tangent of x
|
|
32
35
|
*/
|
|
36
|
+
|
|
33
37
|
return typed(name, {
|
|
34
38
|
number: Math.tan,
|
|
35
|
-
Complex:
|
|
36
|
-
|
|
37
|
-
},
|
|
38
|
-
BigNumber: function BigNumber(x) {
|
|
39
|
-
return x.tan();
|
|
40
|
-
},
|
|
41
|
-
Unit: function Unit(x) {
|
|
42
|
-
if (!x.hasBase(x.constructor.BASE_UNITS.ANGLE)) {
|
|
43
|
-
throw new TypeError('Unit in function tan is no angle');
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
return this(x.value);
|
|
47
|
-
},
|
|
48
|
-
'Array | Matrix': function ArrayMatrix(x) {
|
|
49
|
-
// deep map collection, skip zeros since tan(0) = 0
|
|
50
|
-
return deepMap(x, this, true);
|
|
51
|
-
}
|
|
52
|
-
});
|
|
39
|
+
'Complex | BigNumber': x => x.tan()
|
|
40
|
+
}, trigUnit);
|
|
53
41
|
});
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { factory } from '../../utils/factory.js';
|
|
2
|
-
import { deepMap } from '../../utils/collection.js';
|
|
3
2
|
import { tanh as _tanh } from '../../utils/number.js';
|
|
4
3
|
var name = 'tanh';
|
|
5
4
|
var dependencies = ['typed'];
|
|
@@ -12,7 +11,8 @@ export var createTanh = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
12
11
|
* Calculate the hyperbolic tangent of a value,
|
|
13
12
|
* defined as `tanh(x) = (exp(2 * x) - 1) / (exp(2 * x) + 1)`.
|
|
14
13
|
*
|
|
15
|
-
*
|
|
14
|
+
* To avoid confusion with matrix hyperbolic tangent, this function does
|
|
15
|
+
* not apply to matrices.
|
|
16
16
|
*
|
|
17
17
|
* Syntax:
|
|
18
18
|
*
|
|
@@ -29,27 +29,11 @@ export var createTanh = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
29
29
|
*
|
|
30
30
|
* sinh, cosh, coth
|
|
31
31
|
*
|
|
32
|
-
* @param {number | BigNumber | Complex
|
|
33
|
-
* @return {number | BigNumber | Complex
|
|
32
|
+
* @param {number | BigNumber | Complex} x Function input
|
|
33
|
+
* @return {number | BigNumber | Complex} Hyperbolic tangent of x
|
|
34
34
|
*/
|
|
35
35
|
return typed('tanh', {
|
|
36
36
|
number: _tanh,
|
|
37
|
-
Complex:
|
|
38
|
-
return x.tanh();
|
|
39
|
-
},
|
|
40
|
-
BigNumber: function BigNumber(x) {
|
|
41
|
-
return x.tanh();
|
|
42
|
-
},
|
|
43
|
-
Unit: function Unit(x) {
|
|
44
|
-
if (!x.hasBase(x.constructor.BASE_UNITS.ANGLE)) {
|
|
45
|
-
throw new TypeError('Unit in function tanh is no angle');
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
return this(x.value);
|
|
49
|
-
},
|
|
50
|
-
'Array | Matrix': function ArrayMatrix(x) {
|
|
51
|
-
// deep map collection, skip zeros since tanh(0) = 0
|
|
52
|
-
return deepMap(x, this, true);
|
|
53
|
-
}
|
|
37
|
+
'Complex | BigNumber': x => x.tanh()
|
|
54
38
|
});
|
|
55
39
|
});
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { factory } from '../../utils/factory.js';
|
|
2
|
+
export var createTrigUnit = /* #__PURE__ */factory('trigUnit', ['typed'], _ref => {
|
|
3
|
+
var {
|
|
4
|
+
typed
|
|
5
|
+
} = _ref;
|
|
6
|
+
return {
|
|
7
|
+
Unit: typed.referToSelf(self => x => {
|
|
8
|
+
if (!x.hasBase(x.constructor.BASE_UNITS.ANGLE)) {
|
|
9
|
+
throw new TypeError('Unit in function cot is no angle');
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
return typed.find(self, x.valueType())(x.value);
|
|
13
|
+
})
|
|
14
|
+
};
|
|
15
|
+
});
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { factory } from '../../utils/factory.js';
|
|
2
|
-
import {
|
|
3
|
-
import { createAlgorithm14 } from '../../type/matrix/utils/algorithm14.js';
|
|
2
|
+
import { createMatrixAlgorithmSuite } from '../../type/matrix/utils/matrixAlgorithmSuite.js';
|
|
4
3
|
var name = 'to';
|
|
5
4
|
var dependencies = ['typed', 'matrix'];
|
|
6
5
|
export var createTo = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
@@ -8,11 +7,9 @@ export var createTo = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
8
7
|
typed,
|
|
9
8
|
matrix
|
|
10
9
|
} = _ref;
|
|
11
|
-
var
|
|
12
|
-
typed
|
|
13
|
-
|
|
14
|
-
var algorithm14 = createAlgorithm14({
|
|
15
|
-
typed
|
|
10
|
+
var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
|
|
11
|
+
typed,
|
|
12
|
+
matrix
|
|
16
13
|
});
|
|
17
14
|
/**
|
|
18
15
|
* Change the unit of a value.
|
|
@@ -40,40 +37,8 @@ export var createTo = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
40
37
|
*/
|
|
41
38
|
|
|
42
39
|
return typed(name, {
|
|
43
|
-
'Unit, Unit | string':
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
// SparseMatrix does not support Units
|
|
48
|
-
return algorithm13(x, y, this);
|
|
49
|
-
},
|
|
50
|
-
'Array, Array': function ArrayArray(x, y) {
|
|
51
|
-
// use matrix implementation
|
|
52
|
-
return this(matrix(x), matrix(y)).valueOf();
|
|
53
|
-
},
|
|
54
|
-
'Array, Matrix': function ArrayMatrix(x, y) {
|
|
55
|
-
// use matrix implementation
|
|
56
|
-
return this(matrix(x), y);
|
|
57
|
-
},
|
|
58
|
-
'Matrix, Array': function MatrixArray(x, y) {
|
|
59
|
-
// use matrix implementation
|
|
60
|
-
return this(x, matrix(y));
|
|
61
|
-
},
|
|
62
|
-
'Matrix, any': function MatrixAny(x, y) {
|
|
63
|
-
// SparseMatrix does not support Units
|
|
64
|
-
return algorithm14(x, y, this, false);
|
|
65
|
-
},
|
|
66
|
-
'any, Matrix': function anyMatrix(x, y) {
|
|
67
|
-
// SparseMatrix does not support Units
|
|
68
|
-
return algorithm14(y, x, this, true);
|
|
69
|
-
},
|
|
70
|
-
'Array, any': function ArrayAny(x, y) {
|
|
71
|
-
// use matrix implementation
|
|
72
|
-
return algorithm14(matrix(x), y, this, false).valueOf();
|
|
73
|
-
},
|
|
74
|
-
'any, Array': function anyArray(x, y) {
|
|
75
|
-
// use matrix implementation
|
|
76
|
-
return algorithm14(matrix(y), x, this, true).valueOf();
|
|
77
|
-
}
|
|
78
|
-
});
|
|
40
|
+
'Unit, Unit | string': (x, unit) => x.to(unit)
|
|
41
|
+
}, matrixAlgorithmSuite({
|
|
42
|
+
Ds: true
|
|
43
|
+
}));
|
|
79
44
|
});
|
|
@@ -25,6 +25,7 @@ export var createHasNumericValue = /* #__PURE__ */factory(name, dependencies, _r
|
|
|
25
25
|
* math.hasNumericValue(math.bignumber(500)) // returns true
|
|
26
26
|
* math.hasNumericValue(math.fraction(4)) // returns true
|
|
27
27
|
* math.hasNumericValue(math.complex('2-4i') // returns false
|
|
28
|
+
* math.hasNumericValue(false) // returns true
|
|
28
29
|
* math.hasNumericValue([2.3, 'foo', false]) // returns [true, false, true]
|
|
29
30
|
*
|
|
30
31
|
* See also:
|
|
@@ -37,6 +38,7 @@ export var createHasNumericValue = /* #__PURE__ */factory(name, dependencies, _r
|
|
|
37
38
|
* Throws an error in case of unknown types.
|
|
38
39
|
*/
|
|
39
40
|
return typed(name, {
|
|
41
|
+
boolean: () => true,
|
|
40
42
|
string: function string(x) {
|
|
41
43
|
return x.trim().length > 0 && !isNaN(Number(x));
|
|
42
44
|
},
|
|
@@ -46,8 +46,6 @@ export var createIsInteger = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
|
46
46
|
Fraction: function Fraction(x) {
|
|
47
47
|
return x.d === 1 && isFinite(x.n);
|
|
48
48
|
},
|
|
49
|
-
'Array | Matrix':
|
|
50
|
-
return deepMap(x, this);
|
|
51
|
-
}
|
|
49
|
+
'Array | Matrix': typed.referToSelf(self => x => deepMap(x, self))
|
|
52
50
|
});
|
|
53
51
|
});
|
|
@@ -45,11 +45,7 @@ export var createIsNegative = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
|
45
45
|
Fraction: function Fraction(x) {
|
|
46
46
|
return x.s < 0; // It's enough to decide on the sign
|
|
47
47
|
},
|
|
48
|
-
Unit:
|
|
49
|
-
|
|
50
|
-
},
|
|
51
|
-
'Array | Matrix': function ArrayMatrix(x) {
|
|
52
|
-
return deepMap(x, this);
|
|
53
|
-
}
|
|
48
|
+
Unit: typed.referToSelf(self => x => typed.find(self, x.valueType())(x.value)),
|
|
49
|
+
'Array | Matrix': typed.referToSelf(self => x => deepMap(x, self))
|
|
54
50
|
});
|
|
55
51
|
});
|
|
@@ -37,14 +37,8 @@ export var createIsNumeric = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
|
37
37
|
* Throws an error in case of unknown types.
|
|
38
38
|
*/
|
|
39
39
|
return typed(name, {
|
|
40
|
-
'number | BigNumber | Fraction | boolean':
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
'Complex | Unit | string | null | undefined | Node': function ComplexUnitStringNullUndefinedNode() {
|
|
44
|
-
return false;
|
|
45
|
-
},
|
|
46
|
-
'Array | Matrix': function ArrayMatrix(x) {
|
|
47
|
-
return deepMap(x, this);
|
|
48
|
-
}
|
|
40
|
+
'number | BigNumber | Fraction | boolean': () => true,
|
|
41
|
+
'Complex | Unit | string | null | undefined | Node': () => false,
|
|
42
|
+
'Array | Matrix': typed.referToSelf(self => x => deepMap(x, self))
|
|
49
43
|
});
|
|
50
44
|
});
|
|
@@ -47,11 +47,7 @@ export var createIsPositive = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
|
47
47
|
Fraction: function Fraction(x) {
|
|
48
48
|
return x.s > 0 && x.n > 0;
|
|
49
49
|
},
|
|
50
|
-
Unit:
|
|
51
|
-
|
|
52
|
-
},
|
|
53
|
-
'Array | Matrix': function ArrayMatrix(x) {
|
|
54
|
-
return deepMap(x, this);
|
|
55
|
-
}
|
|
50
|
+
Unit: typed.referToSelf(self => x => typed.find(self, x.valueType())(x.value)),
|
|
51
|
+
'Array | Matrix': typed.referToSelf(self => x => deepMap(x, self))
|
|
56
52
|
});
|
|
57
53
|
});
|
|
@@ -135,8 +135,6 @@ export var createIsPrime = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
135
135
|
|
|
136
136
|
return true;
|
|
137
137
|
},
|
|
138
|
-
'Array | Matrix':
|
|
139
|
-
return deepMap(x, this);
|
|
140
|
-
}
|
|
138
|
+
'Array | Matrix': typed.referToSelf(self => x => deepMap(x, self))
|
|
141
139
|
});
|
|
142
140
|
});
|
|
@@ -52,11 +52,7 @@ export var createIsZero = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
52
52
|
Fraction: function Fraction(x) {
|
|
53
53
|
return x.d === 1 && x.n === 0;
|
|
54
54
|
},
|
|
55
|
-
Unit:
|
|
56
|
-
|
|
57
|
-
},
|
|
58
|
-
'Array | Matrix': function ArrayMatrix(x) {
|
|
59
|
-
return deepMap(x, this);
|
|
60
|
-
}
|
|
55
|
+
Unit: typed.referToSelf(self => x => typed.find(self, x.valueType())(x.value)),
|
|
56
|
+
'Array | Matrix': typed.referToSelf(self => x => deepMap(x, self))
|
|
61
57
|
});
|
|
62
58
|
});
|
|
@@ -30,12 +30,12 @@ export var createNumeric = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
30
30
|
*
|
|
31
31
|
* Examples:
|
|
32
32
|
*
|
|
33
|
-
* math.numeric('4') // returns
|
|
34
|
-
* math.numeric('4', 'number') // returns
|
|
33
|
+
* math.numeric('4') // returns 4
|
|
34
|
+
* math.numeric('4', 'number') // returns 4
|
|
35
35
|
* math.numeric('4', 'BigNumber') // returns BigNumber 4
|
|
36
36
|
* math.numeric('4', 'Fraction') // returns Fraction 4
|
|
37
37
|
* math.numeric(4, 'Fraction') // returns Fraction 4
|
|
38
|
-
* math.numeric(math.fraction(2, 5), 'number') // returns
|
|
38
|
+
* math.numeric(math.fraction(2, 5), 'number') // returns 0.4
|
|
39
39
|
*
|
|
40
40
|
* See also:
|
|
41
41
|
*
|
|
@@ -50,7 +50,14 @@ export var createNumeric = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
50
50
|
* Returns an instance of the numeric in the requested type
|
|
51
51
|
*/
|
|
52
52
|
|
|
53
|
-
return function numeric(value
|
|
53
|
+
return function numeric(value) {
|
|
54
|
+
var outputType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'number';
|
|
55
|
+
var check = arguments.length > 2 ? arguments[2] : undefined;
|
|
56
|
+
|
|
57
|
+
if (check !== undefined) {
|
|
58
|
+
throw new SyntaxError('numeric() takes one or two arguments');
|
|
59
|
+
}
|
|
60
|
+
|
|
54
61
|
var inputType = typeOf(value);
|
|
55
62
|
|
|
56
63
|
if (!(inputType in validInputTypes)) {
|
|
@@ -8,46 +8,7 @@ export var createTypeOf = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
8
8
|
} = _ref;
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
|
-
* Determine the type of
|
|
12
|
-
*
|
|
13
|
-
* Function `typeOf` recognizes the following types of objects:
|
|
14
|
-
*
|
|
15
|
-
* Object | Returns | Example
|
|
16
|
-
* ---------------------- | ------------- | ------------------------------------------
|
|
17
|
-
* null | `'null'` | `math.typeOf(null)`
|
|
18
|
-
* number | `'number'` | `math.typeOf(3.5)`
|
|
19
|
-
* boolean | `'boolean'` | `math.typeOf(true)`
|
|
20
|
-
* string | `'string'` | `math.typeOf('hello world')`
|
|
21
|
-
* Array | `'Array'` | `math.typeOf([1, 2, 3])`
|
|
22
|
-
* Date | `'Date'` | `math.typeOf(new Date())`
|
|
23
|
-
* Function | `'Function'` | `math.typeOf(function () {})`
|
|
24
|
-
* Object | `'Object'` | `math.typeOf({a: 2, b: 3})`
|
|
25
|
-
* RegExp | `'RegExp'` | `math.typeOf(/a regexp/)`
|
|
26
|
-
* undefined | `'undefined'` | `math.typeOf(undefined)`
|
|
27
|
-
* math.BigNumber | `'BigNumber'` | `math.typeOf(math.bignumber('2.3e500'))`
|
|
28
|
-
* math.Chain | `'Chain'` | `math.typeOf(math.chain(2))`
|
|
29
|
-
* math.Complex | `'Complex'` | `math.typeOf(math.complex(2, 3))`
|
|
30
|
-
* math.Fraction | `'Fraction'` | `math.typeOf(math.fraction(1, 3))`
|
|
31
|
-
* math.Help | `'Help'` | `math.typeOf(math.help('sqrt'))`
|
|
32
|
-
* math.Help | `'Help'` | `math.typeOf(math.help('sqrt'))`
|
|
33
|
-
* math.Index | `'Index'` | `math.typeOf(math.index(1, 3))`
|
|
34
|
-
* math.Matrix | `'Matrix'` | `math.typeOf(math.matrix([[1,2], [3, 4]]))`
|
|
35
|
-
* math.Range | `'Range'` | `math.typeOf(math.range(0, 10))`
|
|
36
|
-
* math.ResultSet | `'ResultSet'` | `math.typeOf(math.evaluate('a=2\nb=3'))`
|
|
37
|
-
* math.Unit | `'Unit'` | `math.typeOf(math.unit('45 deg'))`
|
|
38
|
-
* math.AccessorNode | `'AccessorNode'` | `math.typeOf(math.parse('A[2]'))`
|
|
39
|
-
* math.ArrayNode | `'ArrayNode'` | `math.typeOf(math.parse('[1,2,3]'))`
|
|
40
|
-
* math.AssignmentNode | `'AssignmentNode'` | `math.typeOf(math.parse('x=2'))`
|
|
41
|
-
* math.BlockNode | `'BlockNode'` | `math.typeOf(math.parse('a=2; b=3'))`
|
|
42
|
-
* math.ConditionalNode | `'ConditionalNode'` | `math.typeOf(math.parse('x<0 ? -x : x'))`
|
|
43
|
-
* math.ConstantNode | `'ConstantNode'` | `math.typeOf(math.parse('2.3'))`
|
|
44
|
-
* math.FunctionAssignmentNode | `'FunctionAssignmentNode'` | `math.typeOf(math.parse('f(x)=x^2'))`
|
|
45
|
-
* math.FunctionNode | `'FunctionNode'` | `math.typeOf(math.parse('sqrt(4)'))`
|
|
46
|
-
* math.IndexNode | `'IndexNode'` | `math.typeOf(math.parse('A[2]').index)`
|
|
47
|
-
* math.ObjectNode | `'ObjectNode'` | `math.typeOf(math.parse('{a:2}'))`
|
|
48
|
-
* math.ParenthesisNode | `'ParenthesisNode'` | `math.typeOf(math.parse('(2+3)'))`
|
|
49
|
-
* math.RangeNode | `'RangeNode'` | `math.typeOf(math.parse('1:10'))`
|
|
50
|
-
* math.SymbolNode | `'SymbolNode'` | `math.typeOf(math.parse('x'))`
|
|
11
|
+
* Determine the type of an entity.
|
|
51
12
|
*
|
|
52
13
|
* Syntax:
|
|
53
14
|
*
|
|
@@ -55,10 +16,43 @@ export var createTypeOf = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
55
16
|
*
|
|
56
17
|
* Examples:
|
|
57
18
|
*
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
* math.typeOf(
|
|
61
|
-
* math.typeOf('
|
|
19
|
+
* // This list is intended to include all relevant types, for testing
|
|
20
|
+
* // purposes:
|
|
21
|
+
* math.typeOf(3.5) // returns 'number'
|
|
22
|
+
* math.typeOf(math.complex('2-4i')) // returns 'Complex'
|
|
23
|
+
* math.typeOf(math.unit('45 deg')) // returns 'Unit'
|
|
24
|
+
* math.typeOf('hello world') // returns 'string'
|
|
25
|
+
* math.typeOf(null) // returns 'null'
|
|
26
|
+
* math.typeOf(true) // returns 'boolean'
|
|
27
|
+
* math.typeOf([1, 2, 3]) // returns 'Array'
|
|
28
|
+
* math.typeOf(new Date()) // returns 'Date'
|
|
29
|
+
* math.typeOf(function () {}) // returns 'function'
|
|
30
|
+
* math.typeOf({a: 2, b: 3}) // returns 'Object'
|
|
31
|
+
* math.typeOf(/a regexp/) // returns 'RegExp'
|
|
32
|
+
* math.typeOf(undefined) // returns 'undefined'
|
|
33
|
+
* math.typeOf(math.bignumber('23e99')) // returns 'BigNumber'
|
|
34
|
+
* math.typeOf(math.chain(2)) // returns 'Chain'
|
|
35
|
+
* math.typeOf(math.fraction(1, 3)) // returns 'Fraction'
|
|
36
|
+
* math.typeOf(math.help('sqrt')) // returns 'Help'
|
|
37
|
+
* math.typeOf(math.index(1, 3)) // returns 'Index'
|
|
38
|
+
* math.typeOf(math.matrix([[1],[3]])) // returns 'DenseMatrix'
|
|
39
|
+
* math.typeOf(math.matrix([],'sparse')) // returns 'SparseMatrix'
|
|
40
|
+
* math.typeOf(new math.Range(0, 10)) // returns 'Range'
|
|
41
|
+
* math.typeOf(math.evaluate('a=2\na')) // returns 'ResultSet'
|
|
42
|
+
* math.typeOf(math.parse('A[2]')) // returns 'AccessorNode'
|
|
43
|
+
* math.typeOf(math.parse('[1,2,3]')) // returns 'ArrayNode'
|
|
44
|
+
* math.typeOf(math.parse('x=2')) // returns 'AssignmentNode'
|
|
45
|
+
* math.typeOf(math.parse('a=2; b=3')) // returns 'BlockNode'
|
|
46
|
+
* math.typeOf(math.parse('x<0?-1:1')) // returns 'ConditionalNode'
|
|
47
|
+
* math.typeOf(math.parse('2.3')) // returns 'ConstantNode'
|
|
48
|
+
* math.typeOf(math.parse('f(x)=x^2')) // returns 'FunctionAssignmentNode'
|
|
49
|
+
* math.typeOf(math.parse('sqrt(4)')) // returns 'FunctionNode'
|
|
50
|
+
* math.typeOf(math.parse('A[2]').index) // returns 'IndexNode'
|
|
51
|
+
* math.typeOf(math.parse('{a:2}')) // returns 'ObjectNode'
|
|
52
|
+
* math.typeOf(math.parse('(2+3)')) // returns 'ParenthesisNode'
|
|
53
|
+
* math.typeOf(math.parse('1:10')) // returns 'RangeNode'
|
|
54
|
+
* math.typeOf(math.parse('a<b<c')) // returns 'RelationalNode'
|
|
55
|
+
* math.typeOf(math.parse('x')) // returns 'SymbolNode'
|
|
62
56
|
*
|
|
63
57
|
* @param {*} x The variable for which to test the type.
|
|
64
58
|
* @return {string} Returns the name of the type. Primitive types are lower case,
|
|
@@ -75,8 +75,6 @@ export var createBignumber = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
|
75
75
|
null: function _null(x) {
|
|
76
76
|
return new BigNumber(0);
|
|
77
77
|
},
|
|
78
|
-
'Array | Matrix':
|
|
79
|
-
return deepMap(x, this);
|
|
80
|
-
}
|
|
78
|
+
'Array | Matrix': typed.referToSelf(self => x => deepMap(x, self))
|
|
81
79
|
});
|
|
82
80
|
});
|
package/lib/esm/type/boolean.js
CHANGED
|
@@ -69,8 +69,6 @@ export var createBoolean = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
69
69
|
|
|
70
70
|
throw new Error('Cannot convert "' + x + '" to a boolean');
|
|
71
71
|
},
|
|
72
|
-
'Array | Matrix':
|
|
73
|
-
return deepMap(x, this);
|
|
74
|
-
}
|
|
72
|
+
'Array | Matrix': typed.referToSelf(self => x => deepMap(x, self))
|
|
75
73
|
});
|
|
76
74
|
});
|
|
@@ -3,11 +3,12 @@ import { format } from '../../utils/string.js';
|
|
|
3
3
|
import { hasOwnProperty, lazy } from '../../utils/object.js';
|
|
4
4
|
import { factory } from '../../utils/factory.js';
|
|
5
5
|
var name = 'Chain';
|
|
6
|
-
var dependencies = ['?on', 'math'];
|
|
6
|
+
var dependencies = ['?on', 'math', 'typed'];
|
|
7
7
|
export var createChainClass = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
8
8
|
var {
|
|
9
9
|
on,
|
|
10
|
-
math
|
|
10
|
+
math,
|
|
11
|
+
typed
|
|
11
12
|
} = _ref;
|
|
12
13
|
|
|
13
14
|
/**
|
|
@@ -142,12 +143,31 @@ export var createChainClass = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
|
142
143
|
|
|
143
144
|
function chainify(fn) {
|
|
144
145
|
return function () {
|
|
145
|
-
|
|
146
|
+
// Here, `this` will be the context of a Chain instance
|
|
147
|
+
if (arguments.length === 0) {
|
|
148
|
+
return new Chain(fn(this.value));
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
var args = [this.value];
|
|
146
152
|
|
|
147
153
|
for (var i = 0; i < arguments.length; i++) {
|
|
148
154
|
args[i + 1] = arguments[i];
|
|
149
155
|
}
|
|
150
156
|
|
|
157
|
+
if (typed.isTypedFunction(fn)) {
|
|
158
|
+
var sigObject = typed.resolve(fn, args); // We want to detect if a rest parameter has matched across the
|
|
159
|
+
// value in the chain and the current arguments of this call.
|
|
160
|
+
// That is the case if and only if the matching signature has
|
|
161
|
+
// exactly one parameter (which then must be a rest parameter
|
|
162
|
+
// as it is matching at least two actual arguments).
|
|
163
|
+
|
|
164
|
+
if (sigObject.params.length === 1) {
|
|
165
|
+
throw new Error('chain function ' + fn.name + ' cannot match rest parameter between chain value and additional arguments.');
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
return new Chain(sigObject.implementation.apply(fn, args));
|
|
169
|
+
}
|
|
170
|
+
|
|
151
171
|
return new Chain(fn.apply(fn, args));
|
|
152
172
|
};
|
|
153
173
|
}
|
|
@@ -8,6 +8,10 @@ export var createComplexClass = /* #__PURE__ */factory(name, dependencies, () =>
|
|
|
8
8
|
/**
|
|
9
9
|
* Attach type information
|
|
10
10
|
*/
|
|
11
|
+
Object.defineProperty(Complex, 'name', {
|
|
12
|
+
value: 'Complex'
|
|
13
|
+
});
|
|
14
|
+
Complex.prototype.constructor = Complex;
|
|
11
15
|
Complex.prototype.type = 'Complex';
|
|
12
16
|
Complex.prototype.isComplex = true;
|
|
13
17
|
/**
|
|
@@ -83,8 +83,6 @@ export var createComplex = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
83
83
|
|
|
84
84
|
throw new Error('Expected object with properties (re and im) or (r and phi) or (abs and arg)');
|
|
85
85
|
},
|
|
86
|
-
'Array | Matrix':
|
|
87
|
-
return deepMap(x, this);
|
|
88
|
-
}
|
|
86
|
+
'Array | Matrix': typed.referToSelf(self => x => deepMap(x, self))
|
|
89
87
|
});
|
|
90
88
|
});
|
|
@@ -6,6 +6,10 @@ export var createFractionClass = /* #__PURE__ */factory(name, dependencies, () =
|
|
|
6
6
|
/**
|
|
7
7
|
* Attach type information
|
|
8
8
|
*/
|
|
9
|
+
Object.defineProperty(Fraction, 'name', {
|
|
10
|
+
value: 'Fraction'
|
|
11
|
+
});
|
|
12
|
+
Fraction.prototype.constructor = Fraction;
|
|
9
13
|
Fraction.prototype.type = 'Fraction';
|
|
10
14
|
Fraction.prototype.isFraction = true;
|
|
11
15
|
/**
|
|
@@ -71,8 +71,6 @@ export var createFraction = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
71
71
|
Object: function Object(x) {
|
|
72
72
|
return new Fraction(x);
|
|
73
73
|
},
|
|
74
|
-
'Array | Matrix':
|
|
75
|
-
return deepMap(x, this);
|
|
76
|
-
}
|
|
74
|
+
'Array | Matrix': typed.referToSelf(self => x => deepMap(x, self))
|
|
77
75
|
});
|
|
78
76
|
});
|
|
@@ -5,6 +5,7 @@ import { isInteger } from '../../utils/number.js';
|
|
|
5
5
|
import { clone, deepStrictEqual } from '../../utils/object.js';
|
|
6
6
|
import { DimensionError } from '../../error/DimensionError.js';
|
|
7
7
|
import { factory } from '../../utils/factory.js';
|
|
8
|
+
import { maxArgumentCount } from '../../utils/function.js';
|
|
8
9
|
var name = 'DenseMatrix';
|
|
9
10
|
var dependencies = ['Matrix'];
|
|
10
11
|
export var createDenseMatrixClass = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
@@ -79,6 +80,10 @@ export var createDenseMatrixClass = /* #__PURE__ */factory(name, dependencies, _
|
|
|
79
80
|
*/
|
|
80
81
|
|
|
81
82
|
|
|
83
|
+
Object.defineProperty(DenseMatrix, 'name', {
|
|
84
|
+
value: 'DenseMatrix'
|
|
85
|
+
});
|
|
86
|
+
DenseMatrix.prototype.constructor = DenseMatrix;
|
|
82
87
|
DenseMatrix.prototype.type = 'DenseMatrix';
|
|
83
88
|
DenseMatrix.prototype.isDenseMatrix = true;
|
|
84
89
|
/**
|
|
@@ -576,6 +581,7 @@ export var createDenseMatrixClass = /* #__PURE__ */factory(name, dependencies, _
|
|
|
576
581
|
DenseMatrix.prototype.map = function (callback) {
|
|
577
582
|
// matrix instance
|
|
578
583
|
var me = this;
|
|
584
|
+
var args = maxArgumentCount(callback);
|
|
579
585
|
|
|
580
586
|
var recurse = function recurse(value, index) {
|
|
581
587
|
if (isArray(value)) {
|
|
@@ -583,7 +589,15 @@ export var createDenseMatrixClass = /* #__PURE__ */factory(name, dependencies, _
|
|
|
583
589
|
return recurse(child, index.concat(i));
|
|
584
590
|
});
|
|
585
591
|
} else {
|
|
586
|
-
|
|
592
|
+
// invoke the callback function with the right number of arguments
|
|
593
|
+
if (args === 1) {
|
|
594
|
+
return callback(value);
|
|
595
|
+
} else if (args === 2) {
|
|
596
|
+
return callback(value, index);
|
|
597
|
+
} else {
|
|
598
|
+
// 3 or -1
|
|
599
|
+
return callback(value, index, me);
|
|
600
|
+
}
|
|
587
601
|
}
|
|
588
602
|
}; // determine the new datatype when the original matrix has datatype defined
|
|
589
603
|
// TODO: should be done in matrix constructor instead
|