mathjs 10.6.3 → 11.0.1
Sign up to get free protection for your applications and to get access to all the features.
- 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 +25 -33
- package/lib/cjs/function/algebra/leafCount.js +0 -3
- package/lib/cjs/function/algebra/rationalize.js +78 -108
- package/lib/cjs/function/algebra/resolve.js +53 -16
- package/lib/cjs/function/algebra/simplify/util.js +1 -1
- package/lib/cjs/function/algebra/simplify.js +90 -115
- package/lib/cjs/function/algebra/{simplify/simplifyConstant.js → simplifyConstant.js} +44 -10
- package/lib/cjs/function/algebra/simplifyCore.js +196 -93
- package/lib/cjs/function/algebra/solver/lsolveAll.js +2 -2
- package/lib/cjs/function/algebra/solver/usolveAll.js +2 -2
- package/lib/cjs/function/algebra/symbolicEqual.js +14 -32
- package/lib/cjs/function/arithmetic/abs.js +7 -14
- package/lib/cjs/function/arithmetic/add.js +26 -70
- package/lib/cjs/function/arithmetic/addScalar.js +17 -9
- package/lib/cjs/function/arithmetic/cbrt.js +7 -11
- package/lib/cjs/function/arithmetic/ceil.js +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 +34 -28
- package/lib/cjs/function/arithmetic/floor.js +57 -47
- package/lib/cjs/function/arithmetic/gcd.js +27 -68
- package/lib/cjs/function/arithmetic/hypot.js +9 -5
- package/lib/cjs/function/arithmetic/invmod.js +2 -2
- package/lib/cjs/function/arithmetic/lcm.js +27 -68
- package/lib/cjs/function/arithmetic/log.js +10 -12
- package/lib/cjs/function/arithmetic/log10.js +5 -3
- package/lib/cjs/function/arithmetic/log1p.js +11 -7
- package/lib/cjs/function/arithmetic/log2.js +5 -3
- package/lib/cjs/function/arithmetic/mod.js +22 -64
- package/lib/cjs/function/arithmetic/multiply.js +40 -35
- package/lib/cjs/function/arithmetic/multiplyScalar.js +2 -9
- package/lib/cjs/function/arithmetic/norm.js +1 -5
- package/lib/cjs/function/arithmetic/nthRoot.js +83 -95
- package/lib/cjs/function/arithmetic/nthRoots.js +2 -2
- package/lib/cjs/function/arithmetic/round.js +56 -42
- package/lib/cjs/function/arithmetic/sign.js +14 -10
- package/lib/cjs/function/arithmetic/sqrt.js +5 -9
- package/lib/cjs/function/arithmetic/square.js +6 -10
- package/lib/cjs/function/arithmetic/subtract.js +44 -100
- package/lib/cjs/function/arithmetic/unaryMinus.js +14 -16
- package/lib/cjs/function/arithmetic/unaryPlus.js +6 -4
- package/lib/cjs/function/bitwise/bitAnd.js +17 -61
- package/lib/cjs/function/bitwise/bitNot.js +6 -4
- package/lib/cjs/function/bitwise/bitOr.js +16 -60
- package/lib/cjs/function/bitwise/bitXor.js +17 -61
- package/lib/cjs/function/bitwise/leftShift.js +69 -82
- package/lib/cjs/function/bitwise/rightArithShift.js +69 -82
- package/lib/cjs/function/bitwise/rightLogShift.js +69 -82
- package/lib/cjs/function/bitwise/useMatrixForArrayScalar.js +36 -0
- package/lib/cjs/function/complex/arg.js +5 -3
- package/lib/cjs/function/complex/conj.js +6 -7
- package/lib/cjs/function/complex/im.js +7 -8
- package/lib/cjs/function/complex/re.js +6 -10
- package/lib/cjs/function/geometry/distance.js +2 -2
- package/lib/cjs/function/logical/and.js +74 -80
- package/lib/cjs/function/logical/not.js +13 -6
- package/lib/cjs/function/logical/or.js +21 -63
- package/lib/cjs/function/logical/xor.js +21 -63
- package/lib/cjs/function/matrix/diff.js +11 -8
- package/lib/cjs/function/matrix/eigs/complexEigs.js +5 -5
- package/lib/cjs/function/matrix/fft.js +2 -2
- package/lib/cjs/function/matrix/matrixFromColumns.js +1 -1
- package/lib/cjs/function/matrix/matrixFromRows.js +1 -1
- package/lib/cjs/function/matrix/ones.js +2 -1
- package/lib/cjs/function/matrix/rotate.js +5 -5
- package/lib/cjs/function/matrix/sqrtm.js +3 -2
- package/lib/cjs/function/matrix/transpose.js +47 -48
- package/lib/cjs/function/matrix/zeros.js +2 -1
- package/lib/cjs/function/probability/factorial.js +5 -3
- package/lib/cjs/function/probability/gamma.js +38 -40
- package/lib/cjs/function/probability/kldivergence.js +5 -2
- package/lib/cjs/function/probability/lgamma.js +30 -30
- package/lib/cjs/function/probability/util/seededRNG.js +2 -2
- package/lib/cjs/function/relational/compare.js +21 -67
- package/lib/cjs/function/relational/compareNatural.js +59 -54
- package/lib/cjs/function/relational/compareText.js +10 -43
- package/lib/cjs/function/relational/compareUnits.js +24 -0
- package/lib/cjs/function/relational/equal.js +19 -80
- package/lib/cjs/function/relational/equalScalar.js +7 -9
- package/lib/cjs/function/relational/larger.js +21 -67
- package/lib/cjs/function/relational/largerEq.js +21 -67
- package/lib/cjs/function/relational/smaller.js +21 -67
- package/lib/cjs/function/relational/smallerEq.js +21 -67
- package/lib/cjs/function/relational/unequal.js +19 -80
- package/lib/cjs/function/special/erf.js +5 -3
- package/lib/cjs/function/statistics/std.js +11 -2
- package/lib/cjs/function/string/format.js +2 -2
- package/lib/cjs/function/string/hex.js +1 -2
- package/lib/cjs/function/trigonometry/acos.js +4 -8
- package/lib/cjs/function/trigonometry/acosh.js +2 -7
- package/lib/cjs/function/trigonometry/acot.js +6 -11
- package/lib/cjs/function/trigonometry/acoth.js +4 -8
- package/lib/cjs/function/trigonometry/acsc.js +6 -11
- package/lib/cjs/function/trigonometry/acsch.js +4 -8
- package/lib/cjs/function/trigonometry/asec.js +6 -10
- package/lib/cjs/function/trigonometry/asech.js +4 -8
- package/lib/cjs/function/trigonometry/asin.js +5 -10
- package/lib/cjs/function/trigonometry/asinh.js +4 -9
- package/lib/cjs/function/trigonometry/atan.js +5 -11
- package/lib/cjs/function/trigonometry/atan2.js +25 -63
- package/lib/cjs/function/trigonometry/atanh.js +4 -9
- package/lib/cjs/function/trigonometry/cos.js +11 -20
- package/lib/cjs/function/trigonometry/cosh.js +5 -19
- package/lib/cjs/function/trigonometry/cot.js +9 -15
- package/lib/cjs/function/trigonometry/coth.js +4 -15
- package/lib/cjs/function/trigonometry/csc.js +11 -17
- package/lib/cjs/function/trigonometry/csch.js +4 -15
- package/lib/cjs/function/trigonometry/sec.js +11 -17
- package/lib/cjs/function/trigonometry/sech.js +4 -15
- package/lib/cjs/function/trigonometry/sin.js +11 -21
- package/lib/cjs/function/trigonometry/sinh.js +5 -20
- package/lib/cjs/function/trigonometry/tan.js +11 -21
- package/lib/cjs/function/trigonometry/tanh.js +5 -20
- package/lib/cjs/function/trigonometry/trigUnit.js +24 -0
- package/lib/cjs/function/unit/to.js +7 -41
- package/lib/cjs/function/utils/clone.js +1 -1
- package/lib/cjs/function/utils/hasNumericValue.js +5 -1
- package/lib/cjs/function/utils/isInteger.js +6 -4
- package/lib/cjs/function/utils/isNaN.js +1 -1
- package/lib/cjs/function/utils/isNegative.js +11 -7
- package/lib/cjs/function/utils/isNumeric.js +6 -4
- package/lib/cjs/function/utils/isPositive.js +11 -7
- package/lib/cjs/function/utils/isPrime.js +5 -3
- package/lib/cjs/function/utils/isZero.js +21 -17
- package/lib/cjs/function/utils/numeric.js +11 -4
- package/lib/cjs/function/utils/typeOf.js +38 -44
- package/lib/cjs/header.js +2 -2
- package/lib/cjs/plain/bignumber/index.js +1 -1
- package/lib/cjs/type/bignumber/BigNumber.js +2 -2
- package/lib/cjs/type/bignumber/function/bignumber.js +6 -4
- package/lib/cjs/type/boolean.js +7 -5
- package/lib/cjs/type/chain/Chain.js +23 -3
- package/lib/cjs/type/complex/Complex.js +18 -14
- package/lib/cjs/type/complex/function/complex.js +6 -4
- package/lib/cjs/type/fraction/Fraction.js +10 -6
- package/lib/cjs/type/fraction/function/fraction.js +6 -4
- package/lib/cjs/type/matrix/DenseMatrix.js +21 -6
- package/lib/cjs/type/matrix/SparseMatrix.js +12 -2
- package/lib/cjs/type/matrix/utils/{algorithm01.js → matAlgo01xDSid.js} +4 -4
- package/lib/cjs/type/matrix/utils/{algorithm02.js → matAlgo02xDS0.js} +5 -5
- package/lib/cjs/type/matrix/utils/{algorithm03.js → matAlgo03xDSf.js} +5 -5
- package/lib/cjs/type/matrix/utils/{algorithm04.js → matAlgo04xSidSid.js} +7 -7
- package/lib/cjs/type/matrix/utils/{algorithm05.js → matAlgo05xSfSf.js} +5 -5
- package/lib/cjs/type/matrix/utils/{algorithm06.js → matAlgo06xS0S0.js} +5 -5
- package/lib/cjs/type/matrix/utils/{algorithm07.js → matAlgo07xSSf.js} +5 -5
- package/lib/cjs/type/matrix/utils/{algorithm08.js → matAlgo08xS0Sid.js} +6 -6
- package/lib/cjs/type/matrix/utils/{algorithm09.js → matAlgo09xS0Sf.js} +5 -5
- package/lib/cjs/type/matrix/utils/{algorithm10.js → matAlgo10xSids.js} +5 -5
- package/lib/cjs/type/matrix/utils/{algorithm11.js → matAlgo11xS0s.js} +5 -5
- package/lib/cjs/type/matrix/utils/{algorithm12.js → matAlgo12xSfs.js} +5 -5
- package/lib/cjs/type/matrix/utils/{algorithm13.js → matAlgo13xDD.js} +5 -5
- package/lib/cjs/type/matrix/utils/{algorithm14.js → matAlgo14xDs.js} +5 -5
- package/lib/cjs/type/matrix/utils/matrixAlgorithmSuite.js +238 -0
- package/lib/cjs/type/number.js +6 -4
- package/lib/cjs/type/string.js +7 -5
- package/lib/cjs/type/unit/Unit.js +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 +25 -33
- package/lib/esm/function/algebra/leafCount.js +0 -3
- package/lib/esm/function/algebra/rationalize.js +83 -114
- package/lib/esm/function/algebra/resolve.js +25 -16
- package/lib/esm/function/algebra/simplify.js +85 -113
- package/lib/esm/function/algebra/{simplify/simplifyConstant.js → simplifyConstant.js} +39 -9
- package/lib/esm/function/algebra/simplifyCore.js +192 -91
- package/lib/esm/function/algebra/symbolicEqual.js +14 -32
- package/lib/esm/function/arithmetic/abs.js +3 -16
- package/lib/esm/function/arithmetic/add.js +21 -65
- package/lib/esm/function/arithmetic/addScalar.js +11 -5
- package/lib/esm/function/arithmetic/cbrt.js +7 -10
- package/lib/esm/function/arithmetic/ceil.js +25 -25
- package/lib/esm/function/arithmetic/cube.js +5 -9
- package/lib/esm/function/arithmetic/divide.js +7 -7
- package/lib/esm/function/arithmetic/divideScalar.js +2 -19
- package/lib/esm/function/arithmetic/dotDivide.js +22 -64
- package/lib/esm/function/arithmetic/dotMultiply.js +16 -60
- package/lib/esm/function/arithmetic/dotPow.js +30 -62
- package/lib/esm/function/arithmetic/exp.js +8 -11
- package/lib/esm/function/arithmetic/expm1.js +10 -9
- package/lib/esm/function/arithmetic/fix.js +18 -18
- package/lib/esm/function/arithmetic/floor.js +26 -26
- package/lib/esm/function/arithmetic/gcd.js +26 -70
- package/lib/esm/function/arithmetic/hypot.js +7 -6
- package/lib/esm/function/arithmetic/invmod.js +1 -1
- package/lib/esm/function/arithmetic/lcm.js +26 -70
- package/lib/esm/function/arithmetic/log.js +7 -10
- package/lib/esm/function/arithmetic/log10.js +1 -3
- package/lib/esm/function/arithmetic/log1p.js +4 -6
- package/lib/esm/function/arithmetic/log2.js +1 -3
- package/lib/esm/function/arithmetic/mod.js +21 -62
- package/lib/esm/function/arithmetic/multiply.js +23 -27
- package/lib/esm/function/arithmetic/multiplyScalar.js +2 -13
- package/lib/esm/function/arithmetic/norm.js +0 -4
- package/lib/esm/function/arithmetic/nthRoot.js +41 -76
- package/lib/esm/function/arithmetic/nthRoots.js +2 -2
- package/lib/esm/function/arithmetic/round.js +26 -28
- package/lib/esm/function/arithmetic/sign.js +5 -7
- package/lib/esm/function/arithmetic/sqrt.js +5 -8
- package/lib/esm/function/arithmetic/square.js +6 -9
- package/lib/esm/function/arithmetic/subtract.js +31 -95
- package/lib/esm/function/arithmetic/unaryMinus.js +6 -16
- package/lib/esm/function/arithmetic/unaryPlus.js +2 -4
- package/lib/esm/function/bitwise/bitAnd.js +16 -59
- package/lib/esm/function/bitwise/bitNot.js +2 -4
- package/lib/esm/function/bitwise/bitOr.js +16 -59
- package/lib/esm/function/bitwise/bitXor.js +16 -59
- package/lib/esm/function/bitwise/leftShift.js +39 -61
- package/lib/esm/function/bitwise/rightArithShift.js +39 -61
- package/lib/esm/function/bitwise/rightLogShift.js +39 -61
- package/lib/esm/function/bitwise/useMatrixForArrayScalar.js +13 -0
- package/lib/esm/function/complex/arg.js +1 -3
- package/lib/esm/function/complex/conj.js +3 -12
- package/lib/esm/function/complex/im.js +4 -15
- package/lib/esm/function/complex/re.js +3 -15
- package/lib/esm/function/geometry/distance.js +2 -2
- package/lib/esm/function/logical/and.js +35 -57
- package/lib/esm/function/logical/not.js +3 -6
- package/lib/esm/function/logical/or.js +16 -61
- package/lib/esm/function/logical/xor.js +16 -61
- package/lib/esm/function/matrix/diff.js +3 -8
- package/lib/esm/function/matrix/ones.js +2 -1
- package/lib/esm/function/matrix/rotate.js +5 -5
- package/lib/esm/function/matrix/sqrtm.js +3 -2
- package/lib/esm/function/matrix/transpose.js +47 -50
- package/lib/esm/function/matrix/zeros.js +2 -1
- package/lib/esm/function/probability/factorial.js +1 -3
- package/lib/esm/function/probability/gamma.js +38 -39
- package/lib/esm/function/probability/kldivergence.js +3 -2
- package/lib/esm/function/probability/lgamma.js +29 -29
- package/lib/esm/function/relational/compare.js +21 -67
- package/lib/esm/function/relational/compareNatural.js +54 -49
- package/lib/esm/function/relational/compareText.js +10 -42
- package/lib/esm/function/relational/compareUnits.js +15 -0
- package/lib/esm/function/relational/equal.js +19 -79
- package/lib/esm/function/relational/equalScalar.js +6 -9
- package/lib/esm/function/relational/larger.js +23 -73
- package/lib/esm/function/relational/largerEq.js +23 -73
- package/lib/esm/function/relational/smaller.js +23 -73
- package/lib/esm/function/relational/smallerEq.js +23 -73
- package/lib/esm/function/relational/unequal.js +19 -79
- package/lib/esm/function/special/erf.js +1 -3
- package/lib/esm/function/statistics/std.js +10 -2
- package/lib/esm/function/string/format.js +2 -2
- package/lib/esm/function/string/hex.js +1 -2
- package/lib/esm/function/trigonometry/acos.js +4 -7
- package/lib/esm/function/trigonometry/acosh.js +2 -6
- package/lib/esm/function/trigonometry/acot.js +6 -10
- package/lib/esm/function/trigonometry/acoth.js +4 -7
- package/lib/esm/function/trigonometry/acsc.js +6 -10
- package/lib/esm/function/trigonometry/acsch.js +4 -7
- package/lib/esm/function/trigonometry/asec.js +6 -9
- package/lib/esm/function/trigonometry/asech.js +4 -7
- package/lib/esm/function/trigonometry/asin.js +5 -9
- package/lib/esm/function/trigonometry/asinh.js +4 -8
- package/lib/esm/function/trigonometry/atan.js +5 -10
- package/lib/esm/function/trigonometry/atan2.js +26 -65
- package/lib/esm/function/trigonometry/atanh.js +4 -8
- package/lib/esm/function/trigonometry/cos.js +11 -22
- package/lib/esm/function/trigonometry/cosh.js +5 -20
- package/lib/esm/function/trigonometry/cot.js +10 -20
- package/lib/esm/function/trigonometry/coth.js +6 -20
- package/lib/esm/function/trigonometry/csc.js +12 -22
- package/lib/esm/function/trigonometry/csch.js +6 -20
- package/lib/esm/function/trigonometry/sec.js +12 -22
- package/lib/esm/function/trigonometry/sech.js +6 -20
- package/lib/esm/function/trigonometry/sin.js +11 -23
- package/lib/esm/function/trigonometry/sinh.js +5 -21
- package/lib/esm/function/trigonometry/tan.js +11 -23
- package/lib/esm/function/trigonometry/tanh.js +5 -21
- package/lib/esm/function/trigonometry/trigUnit.js +15 -0
- package/lib/esm/function/unit/to.js +8 -43
- package/lib/esm/function/utils/clone.js +1 -1
- package/lib/esm/function/utils/hasNumericValue.js +3 -1
- package/lib/esm/function/utils/isInteger.js +2 -4
- package/lib/esm/function/utils/isNaN.js +1 -1
- package/lib/esm/function/utils/isNegative.js +3 -7
- package/lib/esm/function/utils/isNumeric.js +4 -10
- package/lib/esm/function/utils/isPositive.js +3 -7
- package/lib/esm/function/utils/isPrime.js +1 -3
- package/lib/esm/function/utils/isZero.js +13 -17
- package/lib/esm/function/utils/numeric.js +11 -4
- package/lib/esm/function/utils/typeOf.js +38 -44
- package/lib/esm/type/bignumber/function/bignumber.js +1 -3
- package/lib/esm/type/boolean.js +1 -3
- package/lib/esm/type/chain/Chain.js +23 -3
- package/lib/esm/type/complex/Complex.js +4 -0
- package/lib/esm/type/complex/function/complex.js +1 -3
- package/lib/esm/type/fraction/Fraction.js +4 -0
- package/lib/esm/type/fraction/function/fraction.js +1 -3
- package/lib/esm/type/matrix/DenseMatrix.js +15 -1
- package/lib/esm/type/matrix/SparseMatrix.js +9 -0
- package/lib/esm/type/matrix/utils/{algorithm01.js → matAlgo01xDSid.js} +2 -2
- package/lib/esm/type/matrix/utils/{algorithm02.js → matAlgo02xDS0.js} +3 -3
- package/lib/esm/type/matrix/utils/{algorithm03.js → matAlgo03xDSf.js} +3 -3
- package/lib/esm/type/matrix/utils/{algorithm04.js → matAlgo04xSidSid.js} +5 -5
- package/lib/esm/type/matrix/utils/{algorithm05.js → matAlgo05xSfSf.js} +3 -3
- package/lib/esm/type/matrix/utils/{algorithm06.js → matAlgo06xS0S0.js} +3 -3
- package/lib/esm/type/matrix/utils/{algorithm07.js → matAlgo07xSSf.js} +3 -3
- package/lib/esm/type/matrix/utils/{algorithm08.js → matAlgo08xS0Sid.js} +4 -4
- package/lib/esm/type/matrix/utils/{algorithm09.js → matAlgo09xS0Sf.js} +3 -3
- package/lib/esm/type/matrix/utils/{algorithm10.js → matAlgo10xSids.js} +3 -3
- package/lib/esm/type/matrix/utils/{algorithm11.js → matAlgo11xS0s.js} +3 -3
- package/lib/esm/type/matrix/utils/{algorithm12.js → matAlgo12xSfs.js} +3 -3
- package/lib/esm/type/matrix/utils/{algorithm13.js → matAlgo13xDD.js} +3 -3
- package/lib/esm/type/matrix/utils/{algorithm14.js → matAlgo14xDs.js} +3 -3
- package/lib/esm/type/matrix/utils/matrixAlgorithmSuite.js +168 -0
- package/lib/esm/type/number.js +1 -3
- package/lib/esm/type/string.js +1 -3
- package/lib/esm/type/unit/Unit.js +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 +215 -183
- package/types/index.ts +358 -144
- package/lib/cjs/utils/polyfills.js +0 -14
- package/lib/esm/utils/polyfills.js +0 -12
@@ -1,3 +1,4 @@
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
1
2
|
import { isNode, isSymbolNode } from '../../utils/is.js';
|
2
3
|
import { factory } from '../../utils/factory.js';
|
3
4
|
import { getPrecedence } from '../operators.js';
|
@@ -8,278 +9,286 @@ export var createRangeNode = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
8
9
|
Node
|
9
10
|
} = _ref;
|
10
11
|
|
11
|
-
/**
|
12
|
-
* @constructor RangeNode
|
13
|
-
* @extends {Node}
|
14
|
-
* create a range
|
15
|
-
* @param {Node} start included lower-bound
|
16
|
-
* @param {Node} end included upper-bound
|
17
|
-
* @param {Node} [step] optional step
|
18
|
-
*/
|
19
|
-
function RangeNode(start, end, step) {
|
20
|
-
if (!(this instanceof RangeNode)) {
|
21
|
-
throw new SyntaxError('Constructor must be called with the new operator');
|
22
|
-
} // validate inputs
|
23
|
-
|
24
|
-
|
25
|
-
if (!isNode(start)) throw new TypeError('Node expected');
|
26
|
-
if (!isNode(end)) throw new TypeError('Node expected');
|
27
|
-
if (step && !isNode(step)) throw new TypeError('Node expected');
|
28
|
-
if (arguments.length > 3) throw new Error('Too many arguments');
|
29
|
-
this.start = start; // included lower-bound
|
30
|
-
|
31
|
-
this.end = end; // included upper-bound
|
32
|
-
|
33
|
-
this.step = step || null; // optional step
|
34
|
-
}
|
35
|
-
|
36
|
-
RangeNode.prototype = new Node();
|
37
|
-
RangeNode.prototype.type = 'RangeNode';
|
38
|
-
RangeNode.prototype.isRangeNode = true;
|
39
|
-
/**
|
40
|
-
* Check whether the RangeNode needs the `end` symbol to be defined.
|
41
|
-
* This end is the size of the Matrix in current dimension.
|
42
|
-
* @return {boolean}
|
43
|
-
*/
|
44
|
-
|
45
|
-
RangeNode.prototype.needsEnd = function () {
|
46
|
-
// find all `end` symbols in this RangeNode
|
47
|
-
var endSymbols = this.filter(function (node) {
|
48
|
-
return isSymbolNode(node) && node.name === 'end';
|
49
|
-
});
|
50
|
-
return endSymbols.length > 0;
|
51
|
-
};
|
52
|
-
/**
|
53
|
-
* Compile a node into a JavaScript function.
|
54
|
-
* This basically pre-calculates as much as possible and only leaves open
|
55
|
-
* calculations which depend on a dynamic scope with variables.
|
56
|
-
* @param {Object} math Math.js namespace with functions and constants.
|
57
|
-
* @param {Object} argNames An object with argument names as key and `true`
|
58
|
-
* as value. Used in the SymbolNode to optimize
|
59
|
-
* for arguments from user assigned functions
|
60
|
-
* (see FunctionAssignmentNode) or special symbols
|
61
|
-
* like `end` (see IndexNode).
|
62
|
-
* @return {function} Returns a function which can be called like:
|
63
|
-
* evalNode(scope: Object, args: Object, context: *)
|
64
|
-
*/
|
65
|
-
|
66
|
-
|
67
|
-
RangeNode.prototype._compile = function (math, argNames) {
|
68
|
-
var range = math.range;
|
69
|
-
|
70
|
-
var evalStart = this.start._compile(math, argNames);
|
71
|
-
|
72
|
-
var evalEnd = this.end._compile(math, argNames);
|
73
|
-
|
74
|
-
if (this.step) {
|
75
|
-
var evalStep = this.step._compile(math, argNames);
|
76
|
-
|
77
|
-
return function evalRangeNode(scope, args, context) {
|
78
|
-
return range(evalStart(scope, args, context), evalEnd(scope, args, context), evalStep(scope, args, context));
|
79
|
-
};
|
80
|
-
} else {
|
81
|
-
return function evalRangeNode(scope, args, context) {
|
82
|
-
return range(evalStart(scope, args, context), evalEnd(scope, args, context));
|
83
|
-
};
|
84
|
-
}
|
85
|
-
};
|
86
|
-
/**
|
87
|
-
* Execute a callback for each of the child nodes of this node
|
88
|
-
* @param {function(child: Node, path: string, parent: Node)} callback
|
89
|
-
*/
|
90
|
-
|
91
|
-
|
92
|
-
RangeNode.prototype.forEach = function (callback) {
|
93
|
-
callback(this.start, 'start', this);
|
94
|
-
callback(this.end, 'end', this);
|
95
|
-
|
96
|
-
if (this.step) {
|
97
|
-
callback(this.step, 'step', this);
|
98
|
-
}
|
99
|
-
};
|
100
|
-
/**
|
101
|
-
* Create a new RangeNode having it's childs be the results of calling
|
102
|
-
* the provided callback function for each of the childs of the original node.
|
103
|
-
* @param {function(child: Node, path: string, parent: Node): Node} callback
|
104
|
-
* @returns {RangeNode} Returns a transformed copy of the node
|
105
|
-
*/
|
106
|
-
|
107
|
-
|
108
|
-
RangeNode.prototype.map = function (callback) {
|
109
|
-
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)));
|
110
|
-
};
|
111
|
-
/**
|
112
|
-
* Create a clone of this node, a shallow copy
|
113
|
-
* @return {RangeNode}
|
114
|
-
*/
|
115
|
-
|
116
|
-
|
117
|
-
RangeNode.prototype.clone = function () {
|
118
|
-
return new RangeNode(this.start, this.end, this.step && this.step);
|
119
|
-
};
|
120
12
|
/**
|
121
13
|
* Calculate the necessary parentheses
|
122
14
|
* @param {Node} node
|
123
15
|
* @param {string} parenthesis
|
16
|
+
* @param {string} implicit
|
124
17
|
* @return {Object} parentheses
|
125
18
|
* @private
|
126
19
|
*/
|
127
|
-
|
128
|
-
|
129
|
-
function calculateNecessaryParentheses(node, parenthesis) {
|
130
|
-
var precedence = getPrecedence(node, parenthesis);
|
20
|
+
function calculateNecessaryParentheses(node, parenthesis, implicit) {
|
21
|
+
var precedence = getPrecedence(node, parenthesis, implicit);
|
131
22
|
var parens = {};
|
132
|
-
var startPrecedence = getPrecedence(node.start, parenthesis);
|
23
|
+
var startPrecedence = getPrecedence(node.start, parenthesis, implicit);
|
133
24
|
parens.start = startPrecedence !== null && startPrecedence <= precedence || parenthesis === 'all';
|
134
25
|
|
135
26
|
if (node.step) {
|
136
|
-
var stepPrecedence = getPrecedence(node.step, parenthesis);
|
27
|
+
var stepPrecedence = getPrecedence(node.step, parenthesis, implicit);
|
137
28
|
parens.step = stepPrecedence !== null && stepPrecedence <= precedence || parenthesis === 'all';
|
138
29
|
}
|
139
30
|
|
140
|
-
var endPrecedence = getPrecedence(node.end, parenthesis);
|
31
|
+
var endPrecedence = getPrecedence(node.end, parenthesis, implicit);
|
141
32
|
parens.end = endPrecedence !== null && endPrecedence <= precedence || parenthesis === 'all';
|
142
33
|
return parens;
|
143
34
|
}
|
144
|
-
/**
|
145
|
-
* Get string representation
|
146
|
-
* @param {Object} options
|
147
|
-
* @return {string} str
|
148
|
-
*/
|
149
|
-
|
150
35
|
|
151
|
-
RangeNode
|
152
|
-
|
153
|
-
|
36
|
+
class RangeNode extends Node {
|
37
|
+
/**
|
38
|
+
* @constructor RangeNode
|
39
|
+
* @extends {Node}
|
40
|
+
* create a range
|
41
|
+
* @param {Node} start included lower-bound
|
42
|
+
* @param {Node} end included upper-bound
|
43
|
+
* @param {Node} [step] optional step
|
44
|
+
*/
|
45
|
+
constructor(start, end, step) {
|
46
|
+
super(); // validate inputs
|
47
|
+
|
48
|
+
if (!isNode(start)) throw new TypeError('Node expected');
|
49
|
+
if (!isNode(end)) throw new TypeError('Node expected');
|
50
|
+
if (step && !isNode(step)) throw new TypeError('Node expected');
|
51
|
+
if (arguments.length > 3) throw new Error('Too many arguments');
|
52
|
+
this.start = start; // included lower-bound
|
53
|
+
|
54
|
+
this.end = end; // included upper-bound
|
55
|
+
|
56
|
+
this.step = step || null; // optional step
|
57
|
+
}
|
154
58
|
|
155
|
-
|
156
|
-
|
59
|
+
get type() {
|
60
|
+
return name;
|
61
|
+
}
|
157
62
|
|
158
|
-
|
159
|
-
|
63
|
+
get isRangeNode() {
|
64
|
+
return true;
|
65
|
+
}
|
66
|
+
/**
|
67
|
+
* Check whether the RangeNode needs the `end` symbol to be defined.
|
68
|
+
* This end is the size of the Matrix in current dimension.
|
69
|
+
* @return {boolean}
|
70
|
+
*/
|
71
|
+
|
72
|
+
|
73
|
+
needsEnd() {
|
74
|
+
// find all `end` symbols in this RangeNode
|
75
|
+
var endSymbols = this.filter(function (node) {
|
76
|
+
return isSymbolNode(node) && node.name === 'end';
|
77
|
+
});
|
78
|
+
return endSymbols.length > 0;
|
160
79
|
}
|
80
|
+
/**
|
81
|
+
* Compile a node into a JavaScript function.
|
82
|
+
* This basically pre-calculates as much as possible and only leaves open
|
83
|
+
* calculations which depend on a dynamic scope with variables.
|
84
|
+
* @param {Object} math Math.js namespace with functions and constants.
|
85
|
+
* @param {Object} argNames An object with argument names as key and `true`
|
86
|
+
* as value. Used in the SymbolNode to optimize
|
87
|
+
* for arguments from user assigned functions
|
88
|
+
* (see FunctionAssignmentNode) or special symbols
|
89
|
+
* like `end` (see IndexNode).
|
90
|
+
* @return {function} Returns a function which can be called like:
|
91
|
+
* evalNode(scope: Object, args: Object, context: *)
|
92
|
+
*/
|
93
|
+
|
94
|
+
|
95
|
+
_compile(math, argNames) {
|
96
|
+
var range = math.range;
|
97
|
+
|
98
|
+
var evalStart = this.start._compile(math, argNames);
|
99
|
+
|
100
|
+
var evalEnd = this.end._compile(math, argNames);
|
101
|
+
|
102
|
+
if (this.step) {
|
103
|
+
var evalStep = this.step._compile(math, argNames);
|
104
|
+
|
105
|
+
return function evalRangeNode(scope, args, context) {
|
106
|
+
return range(evalStart(scope, args, context), evalEnd(scope, args, context), evalStep(scope, args, context));
|
107
|
+
};
|
108
|
+
} else {
|
109
|
+
return function evalRangeNode(scope, args, context) {
|
110
|
+
return range(evalStart(scope, args, context), evalEnd(scope, args, context));
|
111
|
+
};
|
112
|
+
}
|
113
|
+
}
|
114
|
+
/**
|
115
|
+
* Execute a callback for each of the child nodes of this node
|
116
|
+
* @param {function(child: Node, path: string, parent: Node)} callback
|
117
|
+
*/
|
161
118
|
|
162
|
-
str = start;
|
163
119
|
|
164
|
-
|
165
|
-
|
120
|
+
forEach(callback) {
|
121
|
+
callback(this.start, 'start', this);
|
122
|
+
callback(this.end, 'end', this);
|
166
123
|
|
167
|
-
if (
|
168
|
-
step
|
124
|
+
if (this.step) {
|
125
|
+
callback(this.step, 'step', this);
|
169
126
|
}
|
127
|
+
}
|
128
|
+
/**
|
129
|
+
* Create a new RangeNode whose children are the results of calling
|
130
|
+
* the provided callback function for each child of the original node.
|
131
|
+
* @param {function(child: Node, path: string, parent: Node): Node} callback
|
132
|
+
* @returns {RangeNode} Returns a transformed copy of the node
|
133
|
+
*/
|
170
134
|
|
171
|
-
|
135
|
+
|
136
|
+
map(callback) {
|
137
|
+
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)));
|
172
138
|
}
|
139
|
+
/**
|
140
|
+
* Create a clone of this node, a shallow copy
|
141
|
+
* @return {RangeNode}
|
142
|
+
*/
|
173
143
|
|
174
|
-
var end = this.end.toString(options);
|
175
144
|
|
176
|
-
|
177
|
-
|
145
|
+
clone() {
|
146
|
+
return new RangeNode(this.start, this.end, this.step && this.step);
|
178
147
|
}
|
148
|
+
/**
|
149
|
+
* Get string representation
|
150
|
+
* @param {Object} options
|
151
|
+
* @return {string} str
|
152
|
+
*/
|
179
153
|
|
180
|
-
str += ':' + end;
|
181
|
-
return str;
|
182
|
-
};
|
183
|
-
/**
|
184
|
-
* Get a JSON representation of the node
|
185
|
-
* @returns {Object}
|
186
|
-
*/
|
187
154
|
|
155
|
+
_toString(options) {
|
156
|
+
var parenthesis = options && options.parenthesis ? options.parenthesis : 'keep';
|
157
|
+
var parens = calculateNecessaryParentheses(this, parenthesis, options && options.implicit); // format string as start:step:stop
|
188
158
|
|
189
|
-
|
190
|
-
|
191
|
-
mathjs: 'RangeNode',
|
192
|
-
start: this.start,
|
193
|
-
end: this.end,
|
194
|
-
step: this.step
|
195
|
-
};
|
196
|
-
};
|
197
|
-
/**
|
198
|
-
* Instantiate an RangeNode from its JSON representation
|
199
|
-
* @param {Object} json An object structured like
|
200
|
-
* `{"mathjs": "RangeNode", "start": ..., "end": ..., "step": ...}`,
|
201
|
-
* where mathjs is optional
|
202
|
-
* @returns {RangeNode}
|
203
|
-
*/
|
159
|
+
var str;
|
160
|
+
var start = this.start.toString(options);
|
204
161
|
|
162
|
+
if (parens.start) {
|
163
|
+
start = '(' + start + ')';
|
164
|
+
}
|
205
165
|
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
* Get HTML representation
|
211
|
-
* @param {Object} options
|
212
|
-
* @return {string} str
|
213
|
-
*/
|
166
|
+
str = start;
|
167
|
+
|
168
|
+
if (this.step) {
|
169
|
+
var step = this.step.toString(options);
|
214
170
|
|
171
|
+
if (parens.step) {
|
172
|
+
step = '(' + step + ')';
|
173
|
+
}
|
215
174
|
|
216
|
-
|
217
|
-
|
218
|
-
var parens = calculateNecessaryParentheses(this, parenthesis); // format string as start:step:stop
|
175
|
+
str += ':' + step;
|
176
|
+
}
|
219
177
|
|
220
|
-
|
221
|
-
|
178
|
+
var end = this.end.toString(options);
|
179
|
+
|
180
|
+
if (parens.end) {
|
181
|
+
end = '(' + end + ')';
|
182
|
+
}
|
222
183
|
|
223
|
-
|
224
|
-
|
184
|
+
str += ':' + end;
|
185
|
+
return str;
|
225
186
|
}
|
187
|
+
/**
|
188
|
+
* Get a JSON representation of the node
|
189
|
+
* @returns {Object}
|
190
|
+
*/
|
191
|
+
|
192
|
+
|
193
|
+
toJSON() {
|
194
|
+
return {
|
195
|
+
mathjs: name,
|
196
|
+
start: this.start,
|
197
|
+
end: this.end,
|
198
|
+
step: this.step
|
199
|
+
};
|
200
|
+
}
|
201
|
+
/**
|
202
|
+
* Instantiate an RangeNode from its JSON representation
|
203
|
+
* @param {Object} json
|
204
|
+
* An object structured like
|
205
|
+
* `{"mathjs": "RangeNode", "start": ..., "end": ..., "step": ...}`,
|
206
|
+
* where mathjs is optional
|
207
|
+
* @returns {RangeNode}
|
208
|
+
*/
|
209
|
+
|
210
|
+
|
211
|
+
static fromJSON(json) {
|
212
|
+
return new RangeNode(json.start, json.end, json.step);
|
213
|
+
}
|
214
|
+
/**
|
215
|
+
* Get HTML representation
|
216
|
+
* @param {Object} options
|
217
|
+
* @return {string} str
|
218
|
+
*/
|
226
219
|
|
227
|
-
str = start;
|
228
220
|
|
229
|
-
|
230
|
-
var
|
221
|
+
toHTML(options) {
|
222
|
+
var parenthesis = options && options.parenthesis ? options.parenthesis : 'keep';
|
223
|
+
var parens = calculateNecessaryParentheses(this, parenthesis, options && options.implicit); // format string as start:step:stop
|
231
224
|
|
232
|
-
|
233
|
-
|
225
|
+
var str;
|
226
|
+
var start = this.start.toHTML(options);
|
227
|
+
|
228
|
+
if (parens.start) {
|
229
|
+
start = '<span class="math-parenthesis math-round-parenthesis">(</span>' + start + '<span class="math-parenthesis math-round-parenthesis">)</span>';
|
234
230
|
}
|
235
231
|
|
236
|
-
str
|
237
|
-
}
|
232
|
+
str = start;
|
238
233
|
|
239
|
-
|
234
|
+
if (this.step) {
|
235
|
+
var step = this.step.toHTML(options);
|
240
236
|
|
241
|
-
|
242
|
-
|
243
|
-
|
237
|
+
if (parens.step) {
|
238
|
+
step = '<span class="math-parenthesis math-round-parenthesis">(</span>' + step + '<span class="math-parenthesis math-round-parenthesis">)</span>';
|
239
|
+
}
|
244
240
|
|
245
|
-
|
246
|
-
|
247
|
-
};
|
248
|
-
/**
|
249
|
-
* Get LaTeX representation
|
250
|
-
* @params {Object} options
|
251
|
-
* @return {string} str
|
252
|
-
*/
|
241
|
+
str += '<span class="math-operator math-range-operator">:</span>' + step;
|
242
|
+
}
|
253
243
|
|
244
|
+
var end = this.end.toHTML(options);
|
254
245
|
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
var str = this.start.toTex(options);
|
246
|
+
if (parens.end) {
|
247
|
+
end = '<span class="math-parenthesis math-round-parenthesis">(</span>' + end + '<span class="math-parenthesis math-round-parenthesis">)</span>';
|
248
|
+
}
|
259
249
|
|
260
|
-
|
261
|
-
|
250
|
+
str += '<span class="math-operator math-range-operator">:</span>' + end;
|
251
|
+
return str;
|
262
252
|
}
|
253
|
+
/**
|
254
|
+
* Get LaTeX representation
|
255
|
+
* @params {Object} options
|
256
|
+
* @return {string} str
|
257
|
+
*/
|
263
258
|
|
264
|
-
if (this.step) {
|
265
|
-
var step = this.step.toTex(options);
|
266
259
|
|
267
|
-
|
268
|
-
|
260
|
+
_toTex(options) {
|
261
|
+
var parenthesis = options && options.parenthesis ? options.parenthesis : 'keep';
|
262
|
+
var parens = calculateNecessaryParentheses(this, parenthesis, options && options.implicit);
|
263
|
+
var str = this.start.toTex(options);
|
264
|
+
|
265
|
+
if (parens.start) {
|
266
|
+
str = "\\left(".concat(str, "\\right)");
|
269
267
|
}
|
270
268
|
|
271
|
-
|
272
|
-
|
269
|
+
if (this.step) {
|
270
|
+
var step = this.step.toTex(options);
|
271
|
+
|
272
|
+
if (parens.step) {
|
273
|
+
step = "\\left(".concat(step, "\\right)");
|
274
|
+
}
|
275
|
+
|
276
|
+
str += ':' + step;
|
277
|
+
}
|
273
278
|
|
274
|
-
|
279
|
+
var end = this.end.toTex(options);
|
275
280
|
|
276
|
-
|
277
|
-
|
281
|
+
if (parens.end) {
|
282
|
+
end = "\\left(".concat(end, "\\right)");
|
283
|
+
}
|
284
|
+
|
285
|
+
str += ':' + end;
|
286
|
+
return str;
|
278
287
|
}
|
279
288
|
|
280
|
-
|
281
|
-
|
282
|
-
|
289
|
+
}
|
290
|
+
|
291
|
+
_defineProperty(RangeNode, "name", name);
|
283
292
|
|
284
293
|
return RangeNode;
|
285
294
|
}, {
|