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,294 +1,342 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
6
8
|
exports.createRangeNode = void 0;
|
|
7
9
|
|
|
8
|
-
var
|
|
9
|
-
|
|
10
|
-
var _factory = require("../../utils/factory.js");
|
|
11
|
-
|
|
12
|
-
var _operators = require("../operators.js");
|
|
13
|
-
|
|
14
|
-
var name = 'RangeNode';
|
|
15
|
-
var dependencies = ['Node'];
|
|
16
|
-
var createRangeNode = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
|
|
17
|
-
var Node = _ref.Node;
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* @constructor RangeNode
|
|
21
|
-
* @extends {Node}
|
|
22
|
-
* create a range
|
|
23
|
-
* @param {Node} start included lower-bound
|
|
24
|
-
* @param {Node} end included upper-bound
|
|
25
|
-
* @param {Node} [step] optional step
|
|
26
|
-
*/
|
|
27
|
-
function RangeNode(start, end, step) {
|
|
28
|
-
if (!(this instanceof RangeNode)) {
|
|
29
|
-
throw new SyntaxError('Constructor must be called with the new operator');
|
|
30
|
-
} // validate inputs
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
if (!(0, _is.isNode)(start)) throw new TypeError('Node expected');
|
|
34
|
-
if (!(0, _is.isNode)(end)) throw new TypeError('Node expected');
|
|
35
|
-
if (step && !(0, _is.isNode)(step)) throw new TypeError('Node expected');
|
|
36
|
-
if (arguments.length > 3) throw new Error('Too many arguments');
|
|
37
|
-
this.start = start; // included lower-bound
|
|
38
|
-
|
|
39
|
-
this.end = end; // included upper-bound
|
|
40
|
-
|
|
41
|
-
this.step = step || null; // optional step
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
RangeNode.prototype = new Node();
|
|
45
|
-
RangeNode.prototype.type = 'RangeNode';
|
|
46
|
-
RangeNode.prototype.isRangeNode = true;
|
|
47
|
-
/**
|
|
48
|
-
* Check whether the RangeNode needs the `end` symbol to be defined.
|
|
49
|
-
* This end is the size of the Matrix in current dimension.
|
|
50
|
-
* @return {boolean}
|
|
51
|
-
*/
|
|
52
|
-
|
|
53
|
-
RangeNode.prototype.needsEnd = function () {
|
|
54
|
-
// find all `end` symbols in this RangeNode
|
|
55
|
-
var endSymbols = this.filter(function (node) {
|
|
56
|
-
return (0, _is.isSymbolNode)(node) && node.name === 'end';
|
|
57
|
-
});
|
|
58
|
-
return endSymbols.length > 0;
|
|
59
|
-
};
|
|
60
|
-
/**
|
|
61
|
-
* Compile a node into a JavaScript function.
|
|
62
|
-
* This basically pre-calculates as much as possible and only leaves open
|
|
63
|
-
* calculations which depend on a dynamic scope with variables.
|
|
64
|
-
* @param {Object} math Math.js namespace with functions and constants.
|
|
65
|
-
* @param {Object} argNames An object with argument names as key and `true`
|
|
66
|
-
* as value. Used in the SymbolNode to optimize
|
|
67
|
-
* for arguments from user assigned functions
|
|
68
|
-
* (see FunctionAssignmentNode) or special symbols
|
|
69
|
-
* like `end` (see IndexNode).
|
|
70
|
-
* @return {function} Returns a function which can be called like:
|
|
71
|
-
* evalNode(scope: Object, args: Object, context: *)
|
|
72
|
-
*/
|
|
10
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
73
11
|
|
|
12
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
74
13
|
|
|
75
|
-
|
|
76
|
-
var range = math.range;
|
|
14
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
77
15
|
|
|
78
|
-
|
|
16
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
79
17
|
|
|
80
|
-
|
|
18
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
81
19
|
|
|
82
|
-
|
|
83
|
-
var evalStep = this.step._compile(math, argNames);
|
|
84
|
-
|
|
85
|
-
return function evalRangeNode(scope, args, context) {
|
|
86
|
-
return range(evalStart(scope, args, context), evalEnd(scope, args, context), evalStep(scope, args, context));
|
|
87
|
-
};
|
|
88
|
-
} else {
|
|
89
|
-
return function evalRangeNode(scope, args, context) {
|
|
90
|
-
return range(evalStart(scope, args, context), evalEnd(scope, args, context));
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
};
|
|
94
|
-
/**
|
|
95
|
-
* Execute a callback for each of the child nodes of this node
|
|
96
|
-
* @param {function(child: Node, path: string, parent: Node)} callback
|
|
97
|
-
*/
|
|
20
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
98
21
|
|
|
22
|
+
var _is = require("../../utils/is.js");
|
|
99
23
|
|
|
100
|
-
|
|
101
|
-
callback(this.start, 'start', this);
|
|
102
|
-
callback(this.end, 'end', this);
|
|
24
|
+
var _factory = require("../../utils/factory.js");
|
|
103
25
|
|
|
104
|
-
|
|
105
|
-
callback(this.step, 'step', this);
|
|
106
|
-
}
|
|
107
|
-
};
|
|
108
|
-
/**
|
|
109
|
-
* Create a new RangeNode having it's childs be the results of calling
|
|
110
|
-
* the provided callback function for each of the childs of the original node.
|
|
111
|
-
* @param {function(child: Node, path: string, parent: Node): Node} callback
|
|
112
|
-
* @returns {RangeNode} Returns a transformed copy of the node
|
|
113
|
-
*/
|
|
26
|
+
var _operators = require("../operators.js");
|
|
114
27
|
|
|
28
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
115
29
|
|
|
116
|
-
|
|
117
|
-
return new RangeNode(this._ifNode(callback(this.start, 'start', this)), this._ifNode(callback(this.end, 'end', this)), this.step && this._ifNode(callback(this.step, 'step', this)));
|
|
118
|
-
};
|
|
119
|
-
/**
|
|
120
|
-
* Create a clone of this node, a shallow copy
|
|
121
|
-
* @return {RangeNode}
|
|
122
|
-
*/
|
|
30
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
123
31
|
|
|
32
|
+
var name = 'RangeNode';
|
|
33
|
+
var dependencies = ['Node'];
|
|
34
|
+
var createRangeNode = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
|
|
35
|
+
var Node = _ref.Node;
|
|
124
36
|
|
|
125
|
-
RangeNode.prototype.clone = function () {
|
|
126
|
-
return new RangeNode(this.start, this.end, this.step && this.step);
|
|
127
|
-
};
|
|
128
37
|
/**
|
|
129
38
|
* Calculate the necessary parentheses
|
|
130
39
|
* @param {Node} node
|
|
131
40
|
* @param {string} parenthesis
|
|
41
|
+
* @param {string} implicit
|
|
132
42
|
* @return {Object} parentheses
|
|
133
43
|
* @private
|
|
134
44
|
*/
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
function calculateNecessaryParentheses(node, parenthesis) {
|
|
138
|
-
var precedence = (0, _operators.getPrecedence)(node, parenthesis);
|
|
45
|
+
function calculateNecessaryParentheses(node, parenthesis, implicit) {
|
|
46
|
+
var precedence = (0, _operators.getPrecedence)(node, parenthesis, implicit);
|
|
139
47
|
var parens = {};
|
|
140
|
-
var startPrecedence = (0, _operators.getPrecedence)(node.start, parenthesis);
|
|
48
|
+
var startPrecedence = (0, _operators.getPrecedence)(node.start, parenthesis, implicit);
|
|
141
49
|
parens.start = startPrecedence !== null && startPrecedence <= precedence || parenthesis === 'all';
|
|
142
50
|
|
|
143
51
|
if (node.step) {
|
|
144
|
-
var stepPrecedence = (0, _operators.getPrecedence)(node.step, parenthesis);
|
|
52
|
+
var stepPrecedence = (0, _operators.getPrecedence)(node.step, parenthesis, implicit);
|
|
145
53
|
parens.step = stepPrecedence !== null && stepPrecedence <= precedence || parenthesis === 'all';
|
|
146
54
|
}
|
|
147
55
|
|
|
148
|
-
var endPrecedence = (0, _operators.getPrecedence)(node.end, parenthesis);
|
|
56
|
+
var endPrecedence = (0, _operators.getPrecedence)(node.end, parenthesis, implicit);
|
|
149
57
|
parens.end = endPrecedence !== null && endPrecedence <= precedence || parenthesis === 'all';
|
|
150
58
|
return parens;
|
|
151
59
|
}
|
|
152
|
-
/**
|
|
153
|
-
* Get string representation
|
|
154
|
-
* @param {Object} options
|
|
155
|
-
* @return {string} str
|
|
156
|
-
*/
|
|
157
60
|
|
|
61
|
+
var RangeNode = /*#__PURE__*/function (_Node) {
|
|
62
|
+
(0, _inherits2["default"])(RangeNode, _Node);
|
|
158
63
|
|
|
159
|
-
|
|
160
|
-
var parenthesis = options && options.parenthesis ? options.parenthesis : 'keep';
|
|
161
|
-
var parens = calculateNecessaryParentheses(this, parenthesis); // format string as start:step:stop
|
|
64
|
+
var _super = _createSuper(RangeNode);
|
|
162
65
|
|
|
163
|
-
|
|
164
|
-
|
|
66
|
+
/**
|
|
67
|
+
* @constructor RangeNode
|
|
68
|
+
* @extends {Node}
|
|
69
|
+
* create a range
|
|
70
|
+
* @param {Node} start included lower-bound
|
|
71
|
+
* @param {Node} end included upper-bound
|
|
72
|
+
* @param {Node} [step] optional step
|
|
73
|
+
*/
|
|
74
|
+
function RangeNode(start, end, step) {
|
|
75
|
+
var _this;
|
|
165
76
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
str = start;
|
|
77
|
+
(0, _classCallCheck2["default"])(this, RangeNode);
|
|
78
|
+
_this = _super.call(this); // validate inputs
|
|
171
79
|
|
|
172
|
-
|
|
173
|
-
|
|
80
|
+
if (!(0, _is.isNode)(start)) throw new TypeError('Node expected');
|
|
81
|
+
if (!(0, _is.isNode)(end)) throw new TypeError('Node expected');
|
|
82
|
+
if (step && !(0, _is.isNode)(step)) throw new TypeError('Node expected');
|
|
83
|
+
if (arguments.length > 3) throw new Error('Too many arguments');
|
|
84
|
+
_this.start = start; // included lower-bound
|
|
174
85
|
|
|
175
|
-
|
|
176
|
-
step = '(' + step + ')';
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
str += ':' + step;
|
|
180
|
-
}
|
|
86
|
+
_this.end = end; // included upper-bound
|
|
181
87
|
|
|
182
|
-
|
|
88
|
+
_this.step = step || null; // optional step
|
|
183
89
|
|
|
184
|
-
|
|
185
|
-
end = '(' + end + ')';
|
|
90
|
+
return _this;
|
|
186
91
|
}
|
|
187
92
|
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
93
|
+
(0, _createClass2["default"])(RangeNode, [{
|
|
94
|
+
key: "type",
|
|
95
|
+
get: function get() {
|
|
96
|
+
return name;
|
|
97
|
+
}
|
|
98
|
+
}, {
|
|
99
|
+
key: "isRangeNode",
|
|
100
|
+
get: function get() {
|
|
101
|
+
return true;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Check whether the RangeNode needs the `end` symbol to be defined.
|
|
105
|
+
* This end is the size of the Matrix in current dimension.
|
|
106
|
+
* @return {boolean}
|
|
107
|
+
*/
|
|
108
|
+
|
|
109
|
+
}, {
|
|
110
|
+
key: "needsEnd",
|
|
111
|
+
value: function needsEnd() {
|
|
112
|
+
// find all `end` symbols in this RangeNode
|
|
113
|
+
var endSymbols = this.filter(function (node) {
|
|
114
|
+
return (0, _is.isSymbolNode)(node) && node.name === 'end';
|
|
115
|
+
});
|
|
116
|
+
return endSymbols.length > 0;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Compile a node into a JavaScript function.
|
|
120
|
+
* This basically pre-calculates as much as possible and only leaves open
|
|
121
|
+
* calculations which depend on a dynamic scope with variables.
|
|
122
|
+
* @param {Object} math Math.js namespace with functions and constants.
|
|
123
|
+
* @param {Object} argNames An object with argument names as key and `true`
|
|
124
|
+
* as value. Used in the SymbolNode to optimize
|
|
125
|
+
* for arguments from user assigned functions
|
|
126
|
+
* (see FunctionAssignmentNode) or special symbols
|
|
127
|
+
* like `end` (see IndexNode).
|
|
128
|
+
* @return {function} Returns a function which can be called like:
|
|
129
|
+
* evalNode(scope: Object, args: Object, context: *)
|
|
130
|
+
*/
|
|
131
|
+
|
|
132
|
+
}, {
|
|
133
|
+
key: "_compile",
|
|
134
|
+
value: function _compile(math, argNames) {
|
|
135
|
+
var range = math.range;
|
|
136
|
+
|
|
137
|
+
var evalStart = this.start._compile(math, argNames);
|
|
138
|
+
|
|
139
|
+
var evalEnd = this.end._compile(math, argNames);
|
|
140
|
+
|
|
141
|
+
if (this.step) {
|
|
142
|
+
var evalStep = this.step._compile(math, argNames);
|
|
143
|
+
|
|
144
|
+
return function evalRangeNode(scope, args, context) {
|
|
145
|
+
return range(evalStart(scope, args, context), evalEnd(scope, args, context), evalStep(scope, args, context));
|
|
146
|
+
};
|
|
147
|
+
} else {
|
|
148
|
+
return function evalRangeNode(scope, args, context) {
|
|
149
|
+
return range(evalStart(scope, args, context), evalEnd(scope, args, context));
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Execute a callback for each of the child nodes of this node
|
|
155
|
+
* @param {function(child: Node, path: string, parent: Node)} callback
|
|
156
|
+
*/
|
|
157
|
+
|
|
158
|
+
}, {
|
|
159
|
+
key: "forEach",
|
|
160
|
+
value: function forEach(callback) {
|
|
161
|
+
callback(this.start, 'start', this);
|
|
162
|
+
callback(this.end, 'end', this);
|
|
163
|
+
|
|
164
|
+
if (this.step) {
|
|
165
|
+
callback(this.step, 'step', this);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Create a new RangeNode whose children are the results of calling
|
|
170
|
+
* the provided callback function for each child of the original node.
|
|
171
|
+
* @param {function(child: Node, path: string, parent: Node): Node} callback
|
|
172
|
+
* @returns {RangeNode} Returns a transformed copy of the node
|
|
173
|
+
*/
|
|
174
|
+
|
|
175
|
+
}, {
|
|
176
|
+
key: "map",
|
|
177
|
+
value: function map(callback) {
|
|
178
|
+
return new RangeNode(this._ifNode(callback(this.start, 'start', this)), this._ifNode(callback(this.end, 'end', this)), this.step && this._ifNode(callback(this.step, 'step', this)));
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Create a clone of this node, a shallow copy
|
|
182
|
+
* @return {RangeNode}
|
|
183
|
+
*/
|
|
184
|
+
|
|
185
|
+
}, {
|
|
186
|
+
key: "clone",
|
|
187
|
+
value: function clone() {
|
|
188
|
+
return new RangeNode(this.start, this.end, this.step && this.step);
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Get string representation
|
|
192
|
+
* @param {Object} options
|
|
193
|
+
* @return {string} str
|
|
194
|
+
*/
|
|
196
195
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
step: this.step
|
|
203
|
-
};
|
|
204
|
-
};
|
|
205
|
-
/**
|
|
206
|
-
* Instantiate an RangeNode from its JSON representation
|
|
207
|
-
* @param {Object} json An object structured like
|
|
208
|
-
* `{"mathjs": "RangeNode", "start": ..., "end": ..., "step": ...}`,
|
|
209
|
-
* where mathjs is optional
|
|
210
|
-
* @returns {RangeNode}
|
|
211
|
-
*/
|
|
196
|
+
}, {
|
|
197
|
+
key: "_toString",
|
|
198
|
+
value: function _toString(options) {
|
|
199
|
+
var parenthesis = options && options.parenthesis ? options.parenthesis : 'keep';
|
|
200
|
+
var parens = calculateNecessaryParentheses(this, parenthesis, options && options.implicit); // format string as start:step:stop
|
|
212
201
|
|
|
202
|
+
var str;
|
|
203
|
+
var start = this.start.toString(options);
|
|
213
204
|
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
/**
|
|
218
|
-
* Get HTML representation
|
|
219
|
-
* @param {Object} options
|
|
220
|
-
* @return {string} str
|
|
221
|
-
*/
|
|
205
|
+
if (parens.start) {
|
|
206
|
+
start = '(' + start + ')';
|
|
207
|
+
}
|
|
222
208
|
|
|
209
|
+
str = start;
|
|
223
210
|
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
var parens = calculateNecessaryParentheses(this, parenthesis); // format string as start:step:stop
|
|
211
|
+
if (this.step) {
|
|
212
|
+
var step = this.step.toString(options);
|
|
227
213
|
|
|
228
|
-
|
|
229
|
-
|
|
214
|
+
if (parens.step) {
|
|
215
|
+
step = '(' + step + ')';
|
|
216
|
+
}
|
|
230
217
|
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
}
|
|
218
|
+
str += ':' + step;
|
|
219
|
+
}
|
|
234
220
|
|
|
235
|
-
|
|
221
|
+
var end = this.end.toString(options);
|
|
236
222
|
|
|
237
|
-
|
|
238
|
-
|
|
223
|
+
if (parens.end) {
|
|
224
|
+
end = '(' + end + ')';
|
|
225
|
+
}
|
|
239
226
|
|
|
240
|
-
|
|
241
|
-
|
|
227
|
+
str += ':' + end;
|
|
228
|
+
return str;
|
|
242
229
|
}
|
|
230
|
+
/**
|
|
231
|
+
* Get a JSON representation of the node
|
|
232
|
+
* @returns {Object}
|
|
233
|
+
*/
|
|
234
|
+
|
|
235
|
+
}, {
|
|
236
|
+
key: "toJSON",
|
|
237
|
+
value: function toJSON() {
|
|
238
|
+
return {
|
|
239
|
+
mathjs: name,
|
|
240
|
+
start: this.start,
|
|
241
|
+
end: this.end,
|
|
242
|
+
step: this.step
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Instantiate an RangeNode from its JSON representation
|
|
247
|
+
* @param {Object} json
|
|
248
|
+
* An object structured like
|
|
249
|
+
* `{"mathjs": "RangeNode", "start": ..., "end": ..., "step": ...}`,
|
|
250
|
+
* where mathjs is optional
|
|
251
|
+
* @returns {RangeNode}
|
|
252
|
+
*/
|
|
253
|
+
|
|
254
|
+
}, {
|
|
255
|
+
key: "toHTML",
|
|
256
|
+
value:
|
|
257
|
+
/**
|
|
258
|
+
* Get HTML representation
|
|
259
|
+
* @param {Object} options
|
|
260
|
+
* @return {string} str
|
|
261
|
+
*/
|
|
262
|
+
function toHTML(options) {
|
|
263
|
+
var parenthesis = options && options.parenthesis ? options.parenthesis : 'keep';
|
|
264
|
+
var parens = calculateNecessaryParentheses(this, parenthesis, options && options.implicit); // format string as start:step:stop
|
|
265
|
+
|
|
266
|
+
var str;
|
|
267
|
+
var start = this.start.toHTML(options);
|
|
268
|
+
|
|
269
|
+
if (parens.start) {
|
|
270
|
+
start = '<span class="math-parenthesis math-round-parenthesis">(</span>' + start + '<span class="math-parenthesis math-round-parenthesis">)</span>';
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
str = start;
|
|
274
|
+
|
|
275
|
+
if (this.step) {
|
|
276
|
+
var step = this.step.toHTML(options);
|
|
277
|
+
|
|
278
|
+
if (parens.step) {
|
|
279
|
+
step = '<span class="math-parenthesis math-round-parenthesis">(</span>' + step + '<span class="math-parenthesis math-round-parenthesis">)</span>';
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
str += '<span class="math-operator math-range-operator">:</span>' + step;
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
var end = this.end.toHTML(options);
|
|
286
|
+
|
|
287
|
+
if (parens.end) {
|
|
288
|
+
end = '<span class="math-parenthesis math-round-parenthesis">(</span>' + end + '<span class="math-parenthesis math-round-parenthesis">)</span>';
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
str += '<span class="math-operator math-range-operator">:</span>' + end;
|
|
292
|
+
return str;
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* Get LaTeX representation
|
|
296
|
+
* @params {Object} options
|
|
297
|
+
* @return {string} str
|
|
298
|
+
*/
|
|
243
299
|
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
300
|
+
}, {
|
|
301
|
+
key: "_toTex",
|
|
302
|
+
value: function _toTex(options) {
|
|
303
|
+
var parenthesis = options && options.parenthesis ? options.parenthesis : 'keep';
|
|
304
|
+
var parens = calculateNecessaryParentheses(this, parenthesis, options && options.implicit);
|
|
305
|
+
var str = this.start.toTex(options);
|
|
248
306
|
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
307
|
+
if (parens.start) {
|
|
308
|
+
str = "\\left(".concat(str, "\\right)");
|
|
309
|
+
}
|
|
252
310
|
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
};
|
|
256
|
-
/**
|
|
257
|
-
* Get LaTeX representation
|
|
258
|
-
* @params {Object} options
|
|
259
|
-
* @return {string} str
|
|
260
|
-
*/
|
|
311
|
+
if (this.step) {
|
|
312
|
+
var step = this.step.toTex(options);
|
|
261
313
|
|
|
314
|
+
if (parens.step) {
|
|
315
|
+
step = "\\left(".concat(step, "\\right)");
|
|
316
|
+
}
|
|
262
317
|
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
var parens = calculateNecessaryParentheses(this, parenthesis);
|
|
266
|
-
var str = this.start.toTex(options);
|
|
318
|
+
str += ':' + step;
|
|
319
|
+
}
|
|
267
320
|
|
|
268
|
-
|
|
269
|
-
str = "\\left(".concat(str, "\\right)");
|
|
270
|
-
}
|
|
321
|
+
var end = this.end.toTex(options);
|
|
271
322
|
|
|
272
|
-
|
|
273
|
-
|
|
323
|
+
if (parens.end) {
|
|
324
|
+
end = "\\left(".concat(end, "\\right)");
|
|
325
|
+
}
|
|
274
326
|
|
|
275
|
-
|
|
276
|
-
|
|
327
|
+
str += ':' + end;
|
|
328
|
+
return str;
|
|
277
329
|
}
|
|
330
|
+
}], [{
|
|
331
|
+
key: "fromJSON",
|
|
332
|
+
value: function fromJSON(json) {
|
|
333
|
+
return new RangeNode(json.start, json.end, json.step);
|
|
334
|
+
}
|
|
335
|
+
}]);
|
|
336
|
+
return RangeNode;
|
|
337
|
+
}(Node);
|
|
278
338
|
|
|
279
|
-
|
|
280
|
-
}
|
|
281
|
-
|
|
282
|
-
var end = this.end.toTex(options);
|
|
283
|
-
|
|
284
|
-
if (parens.end) {
|
|
285
|
-
end = "\\left(".concat(end, "\\right)");
|
|
286
|
-
}
|
|
287
|
-
|
|
288
|
-
str += ':' + end;
|
|
289
|
-
return str;
|
|
290
|
-
};
|
|
291
|
-
|
|
339
|
+
(0, _defineProperty2["default"])(RangeNode, "name", name);
|
|
292
340
|
return RangeNode;
|
|
293
341
|
}, {
|
|
294
342
|
isClass: true,
|