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,22 @@
|
|
|
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.createSymbolNode = 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
|
+
|
|
8
20
|
var _string = require("../../utils/string.js");
|
|
9
21
|
|
|
10
22
|
var _customs = require("../../utils/customs.js");
|
|
@@ -13,6 +25,10 @@ var _factory = require("../../utils/factory.js");
|
|
|
13
25
|
|
|
14
26
|
var _latex = require("../../utils/latex.js");
|
|
15
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); }; }
|
|
29
|
+
|
|
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; } }
|
|
31
|
+
|
|
16
32
|
var name = 'SymbolNode';
|
|
17
33
|
var dependencies = ['math', '?Unit', 'Node'];
|
|
18
34
|
var createSymbolNode = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
|
|
@@ -28,186 +44,217 @@ var createSymbolNode = /* #__PURE__ */(0, _factory.factory)(name, dependencies,
|
|
|
28
44
|
function isValuelessUnit(name) {
|
|
29
45
|
return Unit ? Unit.isValuelessUnit(name) : false;
|
|
30
46
|
}
|
|
31
|
-
/**
|
|
32
|
-
* @constructor SymbolNode
|
|
33
|
-
* @extends {Node}
|
|
34
|
-
* A symbol node can hold and resolve a symbol
|
|
35
|
-
* @param {string} name
|
|
36
|
-
* @extends {Node}
|
|
37
|
-
*/
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
function SymbolNode(name) {
|
|
41
|
-
if (!(this instanceof SymbolNode)) {
|
|
42
|
-
throw new SyntaxError('Constructor must be called with the new operator');
|
|
43
|
-
} // validate input
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
if (typeof name !== 'string') throw new TypeError('String expected for parameter "name"');
|
|
47
|
-
this.name = name;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
SymbolNode.prototype = new Node();
|
|
51
|
-
SymbolNode.prototype.type = 'SymbolNode';
|
|
52
|
-
SymbolNode.prototype.isSymbolNode = true;
|
|
53
|
-
/**
|
|
54
|
-
* Compile a node into a JavaScript function.
|
|
55
|
-
* This basically pre-calculates as much as possible and only leaves open
|
|
56
|
-
* calculations which depend on a dynamic scope with variables.
|
|
57
|
-
* @param {Object} math Math.js namespace with functions and constants.
|
|
58
|
-
* @param {Object} argNames An object with argument names as key and `true`
|
|
59
|
-
* as value. Used in the SymbolNode to optimize
|
|
60
|
-
* for arguments from user assigned functions
|
|
61
|
-
* (see FunctionAssignmentNode) or special symbols
|
|
62
|
-
* like `end` (see IndexNode).
|
|
63
|
-
* @return {function} Returns a function which can be called like:
|
|
64
|
-
* evalNode(scope: Object, args: Object, context: *)
|
|
65
|
-
*/
|
|
66
|
-
|
|
67
|
-
SymbolNode.prototype._compile = function (math, argNames) {
|
|
68
|
-
var name = this.name;
|
|
69
|
-
|
|
70
|
-
if (argNames[name] === true) {
|
|
71
|
-
// this is a FunctionAssignment argument
|
|
72
|
-
// (like an x when inside the expression of a function assignment `f(x) = ...`)
|
|
73
|
-
return function (scope, args, context) {
|
|
74
|
-
return args[name];
|
|
75
|
-
};
|
|
76
|
-
} else if (name in math) {
|
|
77
|
-
return function (scope, args, context) {
|
|
78
|
-
return scope.has(name) ? scope.get(name) : (0, _customs.getSafeProperty)(math, name);
|
|
79
|
-
};
|
|
80
|
-
} else {
|
|
81
|
-
var isUnit = isValuelessUnit(name);
|
|
82
|
-
return function (scope, args, context) {
|
|
83
|
-
return scope.has(name) ? scope.get(name) : isUnit ? new Unit(null, name) : SymbolNode.onUndefinedSymbol(name);
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
};
|
|
87
|
-
/**
|
|
88
|
-
* Execute a callback for each of the child nodes of this node
|
|
89
|
-
* @param {function(child: Node, path: string, parent: Node)} callback
|
|
90
|
-
*/
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
SymbolNode.prototype.forEach = function (callback) {// nothing to do, we don't have childs
|
|
94
|
-
};
|
|
95
|
-
/**
|
|
96
|
-
* Create a new SymbolNode having it's childs be the results of calling
|
|
97
|
-
* the provided callback function for each of the childs of the original node.
|
|
98
|
-
* @param {function(child: Node, path: string, parent: Node) : Node} callback
|
|
99
|
-
* @returns {SymbolNode} Returns a clone of the node
|
|
100
|
-
*/
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
SymbolNode.prototype.map = function (callback) {
|
|
104
|
-
return this.clone();
|
|
105
|
-
};
|
|
106
|
-
/**
|
|
107
|
-
* Throws an error 'Undefined symbol {name}'
|
|
108
|
-
* @param {string} name
|
|
109
|
-
*/
|
|
110
47
|
|
|
48
|
+
var SymbolNode = /*#__PURE__*/function (_Node) {
|
|
49
|
+
(0, _inherits2["default"])(SymbolNode, _Node);
|
|
111
50
|
|
|
112
|
-
|
|
113
|
-
throw new Error('Undefined symbol ' + name);
|
|
114
|
-
};
|
|
115
|
-
/**
|
|
116
|
-
* Create a clone of this node, a shallow copy
|
|
117
|
-
* @return {SymbolNode}
|
|
118
|
-
*/
|
|
51
|
+
var _super = _createSuper(SymbolNode);
|
|
119
52
|
|
|
53
|
+
/**
|
|
54
|
+
* @constructor SymbolNode
|
|
55
|
+
* @extends {Node}
|
|
56
|
+
* A symbol node can hold and resolve a symbol
|
|
57
|
+
* @param {string} name
|
|
58
|
+
* @extends {Node}
|
|
59
|
+
*/
|
|
60
|
+
function SymbolNode(name) {
|
|
61
|
+
var _this;
|
|
120
62
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
};
|
|
124
|
-
/**
|
|
125
|
-
* Get string representation
|
|
126
|
-
* @param {Object} options
|
|
127
|
-
* @return {string} str
|
|
128
|
-
* @override
|
|
129
|
-
*/
|
|
63
|
+
(0, _classCallCheck2["default"])(this, SymbolNode);
|
|
64
|
+
_this = _super.call(this); // validate input
|
|
130
65
|
|
|
66
|
+
if (typeof name !== 'string') {
|
|
67
|
+
throw new TypeError('String expected for parameter "name"');
|
|
68
|
+
}
|
|
131
69
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
};
|
|
135
|
-
/**
|
|
136
|
-
* Get HTML representation
|
|
137
|
-
* @param {Object} options
|
|
138
|
-
* @return {string} str
|
|
139
|
-
* @override
|
|
140
|
-
*/
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
SymbolNode.prototype.toHTML = function (options) {
|
|
144
|
-
var name = (0, _string.escape)(this.name);
|
|
145
|
-
|
|
146
|
-
if (name === 'true' || name === 'false') {
|
|
147
|
-
return '<span class="math-symbol math-boolean">' + name + '</span>';
|
|
148
|
-
} else if (name === 'i') {
|
|
149
|
-
return '<span class="math-symbol math-imaginary-symbol">' + name + '</span>';
|
|
150
|
-
} else if (name === 'Infinity') {
|
|
151
|
-
return '<span class="math-symbol math-infinity-symbol">' + name + '</span>';
|
|
152
|
-
} else if (name === 'NaN') {
|
|
153
|
-
return '<span class="math-symbol math-nan-symbol">' + name + '</span>';
|
|
154
|
-
} else if (name === 'null') {
|
|
155
|
-
return '<span class="math-symbol math-null-symbol">' + name + '</span>';
|
|
156
|
-
} else if (name === 'undefined') {
|
|
157
|
-
return '<span class="math-symbol math-undefined-symbol">' + name + '</span>';
|
|
70
|
+
_this.name = name;
|
|
71
|
+
return _this;
|
|
158
72
|
}
|
|
159
73
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
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
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
74
|
+
(0, _createClass2["default"])(SymbolNode, [{
|
|
75
|
+
key: "type",
|
|
76
|
+
get: function get() {
|
|
77
|
+
return 'SymbolNode';
|
|
78
|
+
}
|
|
79
|
+
}, {
|
|
80
|
+
key: "isSymbolNode",
|
|
81
|
+
get: function get() {
|
|
82
|
+
return true;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Compile a node into a JavaScript function.
|
|
86
|
+
* This basically pre-calculates as much as possible and only leaves open
|
|
87
|
+
* calculations which depend on a dynamic scope with variables.
|
|
88
|
+
* @param {Object} math Math.js namespace with functions and constants.
|
|
89
|
+
* @param {Object} argNames An object with argument names as key and `true`
|
|
90
|
+
* as value. Used in the SymbolNode to optimize
|
|
91
|
+
* for arguments from user assigned functions
|
|
92
|
+
* (see FunctionAssignmentNode) or special symbols
|
|
93
|
+
* like `end` (see IndexNode).
|
|
94
|
+
* @return {function} Returns a function which can be called like:
|
|
95
|
+
* evalNode(scope: Object, args: Object, context: *)
|
|
96
|
+
*/
|
|
97
|
+
|
|
98
|
+
}, {
|
|
99
|
+
key: "_compile",
|
|
100
|
+
value: function _compile(math, argNames) {
|
|
101
|
+
var name = this.name;
|
|
102
|
+
|
|
103
|
+
if (argNames[name] === true) {
|
|
104
|
+
// this is a FunctionAssignment argument
|
|
105
|
+
// (like an x when inside the expression of a function
|
|
106
|
+
// assignment `f(x) = ...`)
|
|
107
|
+
return function (scope, args, context) {
|
|
108
|
+
return args[name];
|
|
109
|
+
};
|
|
110
|
+
} else if (name in math) {
|
|
111
|
+
return function (scope, args, context) {
|
|
112
|
+
return scope.has(name) ? scope.get(name) : (0, _customs.getSafeProperty)(math, name);
|
|
113
|
+
};
|
|
114
|
+
} else {
|
|
115
|
+
var isUnit = isValuelessUnit(name);
|
|
116
|
+
return function (scope, args, context) {
|
|
117
|
+
return scope.has(name) ? scope.get(name) : isUnit ? new Unit(null, name) : SymbolNode.onUndefinedSymbol(name);
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Execute a callback for each of the child nodes of this node
|
|
123
|
+
* @param {function(child: Node, path: string, parent: Node)} callback
|
|
124
|
+
*/
|
|
125
|
+
|
|
126
|
+
}, {
|
|
127
|
+
key: "forEach",
|
|
128
|
+
value: function forEach(callback) {// nothing to do, we don't have any children
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Create a new SymbolNode with children produced by the given callback.
|
|
132
|
+
* Trivial since a SymbolNode has no children
|
|
133
|
+
* @param {function(child: Node, path: string, parent: Node) : Node} callback
|
|
134
|
+
* @returns {SymbolNode} Returns a clone of the node
|
|
135
|
+
*/
|
|
136
|
+
|
|
137
|
+
}, {
|
|
138
|
+
key: "map",
|
|
139
|
+
value: function map(callback) {
|
|
140
|
+
return this.clone();
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Throws an error 'Undefined symbol {name}'
|
|
144
|
+
* @param {string} name
|
|
145
|
+
*/
|
|
146
|
+
|
|
147
|
+
}, {
|
|
148
|
+
key: "clone",
|
|
149
|
+
value:
|
|
150
|
+
/**
|
|
151
|
+
* Create a clone of this node, a shallow copy
|
|
152
|
+
* @return {SymbolNode}
|
|
153
|
+
*/
|
|
154
|
+
function clone() {
|
|
155
|
+
return new SymbolNode(this.name);
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Get string representation
|
|
159
|
+
* @param {Object} options
|
|
160
|
+
* @return {string} str
|
|
161
|
+
* @override
|
|
162
|
+
*/
|
|
163
|
+
|
|
164
|
+
}, {
|
|
165
|
+
key: "_toString",
|
|
166
|
+
value: function _toString(options) {
|
|
167
|
+
return this.name;
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Get HTML representation
|
|
171
|
+
* @param {Object} options
|
|
172
|
+
* @return {string} str
|
|
173
|
+
* @override
|
|
174
|
+
*/
|
|
175
|
+
|
|
176
|
+
}, {
|
|
177
|
+
key: "toHTML",
|
|
178
|
+
value: function toHTML(options) {
|
|
179
|
+
var name = (0, _string.escape)(this.name);
|
|
180
|
+
|
|
181
|
+
if (name === 'true' || name === 'false') {
|
|
182
|
+
return '<span class="math-symbol math-boolean">' + name + '</span>';
|
|
183
|
+
} else if (name === 'i') {
|
|
184
|
+
return '<span class="math-symbol math-imaginary-symbol">' + name + '</span>';
|
|
185
|
+
} else if (name === 'Infinity') {
|
|
186
|
+
return '<span class="math-symbol math-infinity-symbol">' + name + '</span>';
|
|
187
|
+
} else if (name === 'NaN') {
|
|
188
|
+
return '<span class="math-symbol math-nan-symbol">' + name + '</span>';
|
|
189
|
+
} else if (name === 'null') {
|
|
190
|
+
return '<span class="math-symbol math-null-symbol">' + name + '</span>';
|
|
191
|
+
} else if (name === 'undefined') {
|
|
192
|
+
return '<span class="math-symbol math-undefined-symbol">' + name + '</span>';
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
return '<span class="math-symbol">' + name + '</span>';
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Get a JSON representation of the node
|
|
199
|
+
* @returns {Object}
|
|
200
|
+
*/
|
|
201
|
+
|
|
202
|
+
}, {
|
|
203
|
+
key: "toJSON",
|
|
204
|
+
value: function toJSON() {
|
|
205
|
+
return {
|
|
206
|
+
mathjs: 'SymbolNode',
|
|
207
|
+
name: this.name
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Instantiate a SymbolNode from its JSON representation
|
|
212
|
+
* @param {Object} json An object structured like
|
|
213
|
+
* `{"mathjs": "SymbolNode", name: "x"}`,
|
|
214
|
+
* where mathjs is optional
|
|
215
|
+
* @returns {SymbolNode}
|
|
216
|
+
*/
|
|
217
|
+
|
|
218
|
+
}, {
|
|
219
|
+
key: "_toTex",
|
|
220
|
+
value:
|
|
221
|
+
/**
|
|
222
|
+
* Get LaTeX representation
|
|
223
|
+
* @param {Object} options
|
|
224
|
+
* @return {string} str
|
|
225
|
+
* @override
|
|
226
|
+
*/
|
|
227
|
+
function _toTex(options) {
|
|
228
|
+
var isUnit = false;
|
|
229
|
+
|
|
230
|
+
if (typeof math[this.name] === 'undefined' && isValuelessUnit(this.name)) {
|
|
231
|
+
isUnit = true;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
var symbol = (0, _latex.toSymbol)(this.name, isUnit);
|
|
235
|
+
|
|
236
|
+
if (symbol[0] === '\\') {
|
|
237
|
+
// no space needed if the symbol starts with '\'
|
|
238
|
+
return symbol;
|
|
239
|
+
} // the space prevents symbols from breaking stuff like '\cdot'
|
|
240
|
+
// if it's written right before the symbol
|
|
241
|
+
|
|
242
|
+
|
|
243
|
+
return ' ' + symbol;
|
|
244
|
+
}
|
|
245
|
+
}], [{
|
|
246
|
+
key: "onUndefinedSymbol",
|
|
247
|
+
value: function onUndefinedSymbol(name) {
|
|
248
|
+
throw new Error('Undefined symbol ' + name);
|
|
249
|
+
}
|
|
250
|
+
}, {
|
|
251
|
+
key: "fromJSON",
|
|
252
|
+
value: function fromJSON(json) {
|
|
253
|
+
return new SymbolNode(json.name);
|
|
254
|
+
}
|
|
255
|
+
}]);
|
|
256
|
+
return SymbolNode;
|
|
257
|
+
}(Node);
|
|
211
258
|
|
|
212
259
|
return SymbolNode;
|
|
213
260
|
}, {
|
|
@@ -37,7 +37,7 @@ function accessFactory(_ref) {
|
|
|
37
37
|
} else if (typeof object === 'string') {
|
|
38
38
|
// TODO: move getStringSubset into a separate util file, use that
|
|
39
39
|
return subset(object, index);
|
|
40
|
-
} else if ((0, _typeof2
|
|
40
|
+
} else if ((0, _typeof2["default"])(object) === 'object') {
|
|
41
41
|
if (!index.isObjectProperty()) {
|
|
42
42
|
throw new TypeError('Cannot apply a numeric index as object property');
|
|
43
43
|
}
|
|
@@ -42,7 +42,7 @@ function assignFactory(_ref) {
|
|
|
42
42
|
} else if (typeof object === 'string') {
|
|
43
43
|
// TODO: move setStringSubset into a separate util file, use that
|
|
44
44
|
return subset(object, index, value);
|
|
45
|
-
} else if ((0, _typeof2
|
|
45
|
+
} else if ((0, _typeof2["default"])(object) === 'object') {
|
|
46
46
|
if (!index.isObjectProperty()) {
|
|
47
47
|
throw TypeError('Cannot apply a numeric index as object property');
|
|
48
48
|
}
|