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,10 +1,24 @@
|
|
|
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.createRelationalNode = void 0;
|
|
7
9
|
|
|
10
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
+
|
|
12
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
+
|
|
14
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
15
|
+
|
|
16
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
17
|
+
|
|
18
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
19
|
+
|
|
20
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
21
|
+
|
|
8
22
|
var _operators = require("../operators.js");
|
|
9
23
|
|
|
10
24
|
var _string = require("../../utils/string.js");
|
|
@@ -15,216 +29,253 @@ var _latex = require("../../utils/latex.js");
|
|
|
15
29
|
|
|
16
30
|
var _factory = require("../../utils/factory.js");
|
|
17
31
|
|
|
32
|
+
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); }; }
|
|
33
|
+
|
|
34
|
+
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; } }
|
|
35
|
+
|
|
18
36
|
var name = 'RelationalNode';
|
|
19
37
|
var dependencies = ['Node'];
|
|
20
38
|
var createRelationalNode = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
|
|
21
39
|
var Node = _ref.Node;
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
* @constructor RelationalNode
|
|
30
|
-
* @extends {Node}
|
|
31
|
-
*/
|
|
32
|
-
function RelationalNode(conditionals, params) {
|
|
33
|
-
if (!(this instanceof RelationalNode)) {
|
|
34
|
-
throw new SyntaxError('Constructor must be called with the new operator');
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
if (!Array.isArray(conditionals)) throw new TypeError('Parameter conditionals must be an array');
|
|
38
|
-
if (!Array.isArray(params)) throw new TypeError('Parameter params must be an array');
|
|
39
|
-
if (conditionals.length !== params.length - 1) throw new TypeError('Parameter params must contain exactly one more element than parameter conditionals');
|
|
40
|
-
this.conditionals = conditionals;
|
|
41
|
-
this.params = params;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
RelationalNode.prototype = new Node();
|
|
45
|
-
RelationalNode.prototype.type = 'RelationalNode';
|
|
46
|
-
RelationalNode.prototype.isRelationalNode = true;
|
|
47
|
-
/**
|
|
48
|
-
* Compile a node into a JavaScript function.
|
|
49
|
-
* This basically pre-calculates as much as possible and only leaves open
|
|
50
|
-
* calculations which depend on a dynamic scope with variables.
|
|
51
|
-
* @param {Object} math Math.js namespace with functions and constants.
|
|
52
|
-
* @param {Object} argNames An object with argument names as key and `true`
|
|
53
|
-
* as value. Used in the SymbolNode to optimize
|
|
54
|
-
* for arguments from user assigned functions
|
|
55
|
-
* (see FunctionAssignmentNode) or special symbols
|
|
56
|
-
* like `end` (see IndexNode).
|
|
57
|
-
* @return {function} Returns a function which can be called like:
|
|
58
|
-
* evalNode(scope: Object, args: Object, context: *)
|
|
59
|
-
*/
|
|
60
|
-
|
|
61
|
-
RelationalNode.prototype._compile = function (math, argNames) {
|
|
62
|
-
var self = this;
|
|
63
|
-
var compiled = this.params.map(function (p) {
|
|
64
|
-
return p._compile(math, argNames);
|
|
65
|
-
});
|
|
66
|
-
return function evalRelationalNode(scope, args, context) {
|
|
67
|
-
var evalLhs;
|
|
68
|
-
var evalRhs = compiled[0](scope, args, context);
|
|
69
|
-
|
|
70
|
-
for (var i = 0; i < self.conditionals.length; i++) {
|
|
71
|
-
evalLhs = evalRhs;
|
|
72
|
-
evalRhs = compiled[i + 1](scope, args, context);
|
|
73
|
-
var condFn = (0, _customs.getSafeProperty)(math, self.conditionals[i]);
|
|
74
|
-
|
|
75
|
-
if (!condFn(evalLhs, evalRhs)) {
|
|
76
|
-
return false;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
return true;
|
|
81
|
-
};
|
|
82
|
-
};
|
|
83
|
-
/**
|
|
84
|
-
* Execute a callback for each of the child nodes of this node
|
|
85
|
-
* @param {function(child: Node, path: string, parent: Node)} callback
|
|
86
|
-
*/
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
RelationalNode.prototype.forEach = function (callback) {
|
|
90
|
-
var _this = this;
|
|
91
|
-
|
|
92
|
-
this.params.forEach(function (n, i) {
|
|
93
|
-
return callback(n, 'params[' + i + ']', _this);
|
|
94
|
-
}, this);
|
|
40
|
+
var operatorMap = {
|
|
41
|
+
equal: '==',
|
|
42
|
+
unequal: '!=',
|
|
43
|
+
smaller: '<',
|
|
44
|
+
larger: '>',
|
|
45
|
+
smallerEq: '<=',
|
|
46
|
+
largerEq: '>='
|
|
95
47
|
};
|
|
96
|
-
/**
|
|
97
|
-
* Create a new RelationalNode having its childs be the results of calling
|
|
98
|
-
* the provided callback function for each of the childs of the original node.
|
|
99
|
-
* @param {function(child: Node, path: string, parent: Node): Node} callback
|
|
100
|
-
* @returns {RelationalNode} Returns a transformed copy of the node
|
|
101
|
-
*/
|
|
102
|
-
|
|
103
48
|
|
|
104
|
-
RelationalNode
|
|
105
|
-
|
|
49
|
+
var RelationalNode = /*#__PURE__*/function (_Node) {
|
|
50
|
+
(0, _inherits2["default"])(RelationalNode, _Node);
|
|
51
|
+
|
|
52
|
+
var _super = _createSuper(RelationalNode);
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* A node representing a chained conditional expression, such as 'x > y > z'
|
|
56
|
+
*
|
|
57
|
+
* @param {String[]} conditionals
|
|
58
|
+
* An array of conditional operators used to compare the parameters
|
|
59
|
+
* @param {Node[]} params
|
|
60
|
+
* The parameters that will be compared
|
|
61
|
+
*
|
|
62
|
+
* @constructor RelationalNode
|
|
63
|
+
* @extends {Node}
|
|
64
|
+
*/
|
|
65
|
+
function RelationalNode(conditionals, params) {
|
|
66
|
+
var _this;
|
|
67
|
+
|
|
68
|
+
(0, _classCallCheck2["default"])(this, RelationalNode);
|
|
69
|
+
_this = _super.call(this);
|
|
70
|
+
|
|
71
|
+
if (!Array.isArray(conditionals)) {
|
|
72
|
+
throw new TypeError('Parameter conditionals must be an array');
|
|
73
|
+
}
|
|
106
74
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
};
|
|
111
|
-
/**
|
|
112
|
-
* Create a clone of this node, a shallow copy
|
|
113
|
-
* @return {RelationalNode}
|
|
114
|
-
*/
|
|
75
|
+
if (!Array.isArray(params)) {
|
|
76
|
+
throw new TypeError('Parameter params must be an array');
|
|
77
|
+
}
|
|
115
78
|
|
|
79
|
+
if (conditionals.length !== params.length - 1) {
|
|
80
|
+
throw new TypeError('Parameter params must contain exactly one more element ' + 'than parameter conditionals');
|
|
81
|
+
}
|
|
116
82
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
/**
|
|
121
|
-
* Get string representation.
|
|
122
|
-
* @param {Object} options
|
|
123
|
-
* @return {string} str
|
|
124
|
-
*/
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
RelationalNode.prototype._toString = function (options) {
|
|
128
|
-
var parenthesis = options && options.parenthesis ? options.parenthesis : 'keep';
|
|
129
|
-
var precedence = (0, _operators.getPrecedence)(this, parenthesis);
|
|
130
|
-
var paramStrings = this.params.map(function (p, index) {
|
|
131
|
-
var paramPrecedence = (0, _operators.getPrecedence)(p, parenthesis);
|
|
132
|
-
return parenthesis === 'all' || paramPrecedence !== null && paramPrecedence <= precedence ? '(' + p.toString(options) + ')' : p.toString(options);
|
|
133
|
-
});
|
|
134
|
-
var operatorMap = {
|
|
135
|
-
equal: '==',
|
|
136
|
-
unequal: '!=',
|
|
137
|
-
smaller: '<',
|
|
138
|
-
larger: '>',
|
|
139
|
-
smallerEq: '<=',
|
|
140
|
-
largerEq: '>='
|
|
141
|
-
};
|
|
142
|
-
var ret = paramStrings[0];
|
|
143
|
-
|
|
144
|
-
for (var i = 0; i < this.conditionals.length; i++) {
|
|
145
|
-
ret += ' ' + operatorMap[this.conditionals[i]] + ' ' + paramStrings[i + 1];
|
|
83
|
+
_this.conditionals = conditionals;
|
|
84
|
+
_this.params = params;
|
|
85
|
+
return _this;
|
|
146
86
|
}
|
|
147
87
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
88
|
+
(0, _createClass2["default"])(RelationalNode, [{
|
|
89
|
+
key: "type",
|
|
90
|
+
get: function get() {
|
|
91
|
+
return name;
|
|
92
|
+
}
|
|
93
|
+
}, {
|
|
94
|
+
key: "isRelationalNode",
|
|
95
|
+
get: function get() {
|
|
96
|
+
return true;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Compile a node into a JavaScript function.
|
|
100
|
+
* This basically pre-calculates as much as possible and only leaves open
|
|
101
|
+
* calculations which depend on a dynamic scope with variables.
|
|
102
|
+
* @param {Object} math Math.js namespace with functions and constants.
|
|
103
|
+
* @param {Object} argNames An object with argument names as key and `true`
|
|
104
|
+
* as value. Used in the SymbolNode to optimize
|
|
105
|
+
* for arguments from user assigned functions
|
|
106
|
+
* (see FunctionAssignmentNode) or special symbols
|
|
107
|
+
* like `end` (see IndexNode).
|
|
108
|
+
* @return {function} Returns a function which can be called like:
|
|
109
|
+
* evalNode(scope: Object, args: Object, context: *)
|
|
110
|
+
*/
|
|
111
|
+
|
|
112
|
+
}, {
|
|
113
|
+
key: "_compile",
|
|
114
|
+
value: function _compile(math, argNames) {
|
|
115
|
+
var self = this;
|
|
116
|
+
var compiled = this.params.map(function (p) {
|
|
117
|
+
return p._compile(math, argNames);
|
|
118
|
+
});
|
|
119
|
+
return function evalRelationalNode(scope, args, context) {
|
|
120
|
+
var evalLhs;
|
|
121
|
+
var evalRhs = compiled[0](scope, args, context);
|
|
122
|
+
|
|
123
|
+
for (var i = 0; i < self.conditionals.length; i++) {
|
|
124
|
+
evalLhs = evalRhs;
|
|
125
|
+
evalRhs = compiled[i + 1](scope, args, context);
|
|
126
|
+
var condFn = (0, _customs.getSafeProperty)(math, self.conditionals[i]);
|
|
127
|
+
|
|
128
|
+
if (!condFn(evalLhs, evalRhs)) {
|
|
129
|
+
return false;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
return true;
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Execute a callback for each of the child nodes of this node
|
|
138
|
+
* @param {function(child: Node, path: string, parent: Node)} callback
|
|
139
|
+
*/
|
|
140
|
+
|
|
141
|
+
}, {
|
|
142
|
+
key: "forEach",
|
|
143
|
+
value: function forEach(callback) {
|
|
144
|
+
var _this2 = this;
|
|
145
|
+
|
|
146
|
+
this.params.forEach(function (n, i) {
|
|
147
|
+
return callback(n, 'params[' + i + ']', _this2);
|
|
148
|
+
}, this);
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Create a new RelationalNode whose children are the results of calling
|
|
152
|
+
* the provided callback function for each child of the original node.
|
|
153
|
+
* @param {function(child: Node, path: string, parent: Node): Node} callback
|
|
154
|
+
* @returns {RelationalNode} Returns a transformed copy of the node
|
|
155
|
+
*/
|
|
156
|
+
|
|
157
|
+
}, {
|
|
158
|
+
key: "map",
|
|
159
|
+
value: function map(callback) {
|
|
160
|
+
var _this3 = this;
|
|
161
|
+
|
|
162
|
+
return new RelationalNode(this.conditionals.slice(), this.params.map(function (n, i) {
|
|
163
|
+
return _this3._ifNode(callback(n, 'params[' + i + ']', _this3));
|
|
164
|
+
}, this));
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Create a clone of this node, a shallow copy
|
|
168
|
+
* @return {RelationalNode}
|
|
169
|
+
*/
|
|
170
|
+
|
|
171
|
+
}, {
|
|
172
|
+
key: "clone",
|
|
173
|
+
value: function clone() {
|
|
174
|
+
return new RelationalNode(this.conditionals, this.params);
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Get string representation.
|
|
178
|
+
* @param {Object} options
|
|
179
|
+
* @return {string} str
|
|
180
|
+
*/
|
|
181
|
+
|
|
182
|
+
}, {
|
|
183
|
+
key: "_toString",
|
|
184
|
+
value: function _toString(options) {
|
|
185
|
+
var parenthesis = options && options.parenthesis ? options.parenthesis : 'keep';
|
|
186
|
+
var precedence = (0, _operators.getPrecedence)(this, parenthesis, options && options.implicit);
|
|
187
|
+
var paramStrings = this.params.map(function (p, index) {
|
|
188
|
+
var paramPrecedence = (0, _operators.getPrecedence)(p, parenthesis, options && options.implicit);
|
|
189
|
+
return parenthesis === 'all' || paramPrecedence !== null && paramPrecedence <= precedence ? '(' + p.toString(options) + ')' : p.toString(options);
|
|
190
|
+
});
|
|
191
|
+
var ret = paramStrings[0];
|
|
192
|
+
|
|
193
|
+
for (var i = 0; i < this.conditionals.length; i++) {
|
|
194
|
+
ret += ' ' + operatorMap[this.conditionals[i]];
|
|
195
|
+
ret += ' ' + paramStrings[i + 1];
|
|
196
|
+
}
|
|
171
197
|
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
198
|
+
return ret;
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Get a JSON representation of the node
|
|
202
|
+
* @returns {Object}
|
|
203
|
+
*/
|
|
204
|
+
|
|
205
|
+
}, {
|
|
206
|
+
key: "toJSON",
|
|
207
|
+
value: function toJSON() {
|
|
208
|
+
return {
|
|
209
|
+
mathjs: name,
|
|
210
|
+
conditionals: this.conditionals,
|
|
211
|
+
params: this.params
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Instantiate a RelationalNode from its JSON representation
|
|
216
|
+
* @param {Object} json
|
|
217
|
+
* An object structured like
|
|
218
|
+
* `{"mathjs": "RelationalNode", "conditionals": ..., "params": ...}`,
|
|
219
|
+
* where mathjs is optional
|
|
220
|
+
* @returns {RelationalNode}
|
|
221
|
+
*/
|
|
222
|
+
|
|
223
|
+
}, {
|
|
224
|
+
key: "toHTML",
|
|
225
|
+
value:
|
|
226
|
+
/**
|
|
227
|
+
* Get HTML representation
|
|
228
|
+
* @param {Object} options
|
|
229
|
+
* @return {string} str
|
|
230
|
+
*/
|
|
231
|
+
function toHTML(options) {
|
|
232
|
+
var parenthesis = options && options.parenthesis ? options.parenthesis : 'keep';
|
|
233
|
+
var precedence = (0, _operators.getPrecedence)(this, parenthesis, options && options.implicit);
|
|
234
|
+
var paramStrings = this.params.map(function (p, index) {
|
|
235
|
+
var paramPrecedence = (0, _operators.getPrecedence)(p, parenthesis, options && options.implicit);
|
|
236
|
+
return parenthesis === 'all' || paramPrecedence !== null && paramPrecedence <= precedence ? '<span class="math-parenthesis math-round-parenthesis">(</span>' + p.toHTML(options) + '<span class="math-parenthesis math-round-parenthesis">)</span>' : p.toHTML(options);
|
|
237
|
+
});
|
|
238
|
+
var ret = paramStrings[0];
|
|
239
|
+
|
|
240
|
+
for (var i = 0; i < this.conditionals.length; i++) {
|
|
241
|
+
ret += '<span class="math-operator math-binary-operator ' + 'math-explicit-binary-operator">' + (0, _string.escape)(operatorMap[this.conditionals[i]]) + '</span>' + paramStrings[i + 1];
|
|
242
|
+
}
|
|
202
243
|
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
244
|
+
return ret;
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Get LaTeX representation
|
|
248
|
+
* @param {Object} options
|
|
249
|
+
* @return {string} str
|
|
250
|
+
*/
|
|
251
|
+
|
|
252
|
+
}, {
|
|
253
|
+
key: "_toTex",
|
|
254
|
+
value: function _toTex(options) {
|
|
255
|
+
var parenthesis = options && options.parenthesis ? options.parenthesis : 'keep';
|
|
256
|
+
var precedence = (0, _operators.getPrecedence)(this, parenthesis, options && options.implicit);
|
|
257
|
+
var paramStrings = this.params.map(function (p, index) {
|
|
258
|
+
var paramPrecedence = (0, _operators.getPrecedence)(p, parenthesis, options && options.implicit);
|
|
259
|
+
return parenthesis === 'all' || paramPrecedence !== null && paramPrecedence <= precedence ? '\\left(' + p.toTex(options) + '\right)' : p.toTex(options);
|
|
260
|
+
});
|
|
261
|
+
var ret = paramStrings[0];
|
|
262
|
+
|
|
263
|
+
for (var i = 0; i < this.conditionals.length; i++) {
|
|
264
|
+
ret += _latex.latexOperators[this.conditionals[i]] + paramStrings[i + 1];
|
|
265
|
+
}
|
|
224
266
|
|
|
225
|
-
|
|
226
|
-
|
|
267
|
+
return ret;
|
|
268
|
+
}
|
|
269
|
+
}], [{
|
|
270
|
+
key: "fromJSON",
|
|
271
|
+
value: function fromJSON(json) {
|
|
272
|
+
return new RelationalNode(json.conditionals, json.params);
|
|
273
|
+
}
|
|
274
|
+
}]);
|
|
275
|
+
return RelationalNode;
|
|
276
|
+
}(Node);
|
|
227
277
|
|
|
278
|
+
(0, _defineProperty2["default"])(RelationalNode, "name", name);
|
|
228
279
|
return RelationalNode;
|
|
229
280
|
}, {
|
|
230
281
|
isClass: true,
|