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,3 +1,4 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
1
2
|
import { isNode } from '../../utils/is.js';
|
|
2
3
|
import { keywords } from '../keywords.js';
|
|
3
4
|
import { escape } from '../../utils/string.js';
|
|
@@ -14,218 +15,242 @@ export var createFunctionAssignmentNode = /* #__PURE__ */factory(name, dependenc
|
|
|
14
15
|
} = _ref;
|
|
15
16
|
|
|
16
17
|
/**
|
|
17
|
-
*
|
|
18
|
-
* @
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* @
|
|
22
|
-
* @param {string[] | Array.<{name: string, type: string}>} params
|
|
23
|
-
* Array with function parameter names, or an
|
|
24
|
-
* array with objects containing the name
|
|
25
|
-
* and type of the parameter
|
|
26
|
-
* @param {Node} expr The function expression
|
|
18
|
+
* Is parenthesis needed?
|
|
19
|
+
* @param {Node} node
|
|
20
|
+
* @param {Object} parenthesis
|
|
21
|
+
* @param {string} implicit
|
|
22
|
+
* @private
|
|
27
23
|
*/
|
|
28
|
-
function
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
if (typeof name !== 'string') throw new TypeError('String expected for parameter "name"');
|
|
35
|
-
if (!Array.isArray(params)) throw new TypeError('Array containing strings or objects expected for parameter "params"');
|
|
36
|
-
if (!isNode(expr)) throw new TypeError('Node expected for parameter "expr"');
|
|
37
|
-
if (keywords.has(name)) throw new Error('Illegal function name, "' + name + '" is a reserved keyword');
|
|
38
|
-
this.name = name;
|
|
39
|
-
this.params = params.map(function (param) {
|
|
40
|
-
return param && param.name || param;
|
|
41
|
-
});
|
|
42
|
-
this.types = params.map(function (param) {
|
|
43
|
-
return param && param.type || 'any';
|
|
44
|
-
});
|
|
45
|
-
this.expr = expr;
|
|
24
|
+
function needParenthesis(node, parenthesis, implicit) {
|
|
25
|
+
var precedence = getPrecedence(node, parenthesis, implicit);
|
|
26
|
+
var exprPrecedence = getPrecedence(node.expr, parenthesis, implicit);
|
|
27
|
+
return parenthesis === 'all' || exprPrecedence !== null && exprPrecedence <= precedence;
|
|
46
28
|
}
|
|
47
29
|
|
|
48
|
-
FunctionAssignmentNode
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
30
|
+
class FunctionAssignmentNode extends Node {
|
|
31
|
+
/**
|
|
32
|
+
* @constructor FunctionAssignmentNode
|
|
33
|
+
* @extends {Node}
|
|
34
|
+
* Function assignment
|
|
35
|
+
*
|
|
36
|
+
* @param {string} name Function name
|
|
37
|
+
* @param {string[] | Array.<{name: string, type: string}>} params
|
|
38
|
+
* Array with function parameter names, or an
|
|
39
|
+
* array with objects containing the name
|
|
40
|
+
* and type of the parameter
|
|
41
|
+
* @param {Node} expr The function expression
|
|
42
|
+
*/
|
|
43
|
+
constructor(name, params, expr) {
|
|
44
|
+
super(); // validate input
|
|
45
|
+
|
|
46
|
+
if (typeof name !== 'string') {
|
|
47
|
+
throw new TypeError('String expected for parameter "name"');
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
if (!Array.isArray(params)) {
|
|
51
|
+
throw new TypeError('Array containing strings or objects expected for parameter "params"');
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
if (!isNode(expr)) {
|
|
55
|
+
throw new TypeError('Node expected for parameter "expr"');
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
if (keywords.has(name)) {
|
|
59
|
+
throw new Error('Illegal function name, "' + name + '" is a reserved keyword');
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
this.name = name;
|
|
63
|
+
this.params = params.map(function (param) {
|
|
64
|
+
return param && param.name || param;
|
|
65
|
+
});
|
|
66
|
+
this.types = params.map(function (param) {
|
|
67
|
+
return param && param.type || 'any';
|
|
68
|
+
});
|
|
69
|
+
this.expr = expr;
|
|
70
|
+
}
|
|
79
71
|
|
|
80
|
-
|
|
81
|
-
|
|
72
|
+
get type() {
|
|
73
|
+
return name;
|
|
74
|
+
}
|
|
82
75
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
76
|
+
get isFunctionAssignmentNode() {
|
|
77
|
+
return true;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Compile a node into a JavaScript function.
|
|
81
|
+
* This basically pre-calculates as much as possible and only leaves open
|
|
82
|
+
* calculations which depend on a dynamic scope with variables.
|
|
83
|
+
* @param {Object} math Math.js namespace with functions and constants.
|
|
84
|
+
* @param {Object} argNames An object with argument names as key and `true`
|
|
85
|
+
* as value. Used in the SymbolNode to optimize
|
|
86
|
+
* for arguments from user assigned functions
|
|
87
|
+
* (see FunctionAssignmentNode) or special symbols
|
|
88
|
+
* like `end` (see IndexNode).
|
|
89
|
+
* @return {function} Returns a function which can be called like:
|
|
90
|
+
* evalNode(scope: Object, args: Object, context: *)
|
|
91
|
+
*/
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
_compile(math, argNames) {
|
|
95
|
+
var childArgNames = Object.create(argNames);
|
|
96
|
+
forEach(this.params, function (param) {
|
|
97
|
+
childArgNames[param] = true;
|
|
98
|
+
}); // compile the function expression with the child args
|
|
99
|
+
|
|
100
|
+
var evalExpr = this.expr._compile(math, childArgNames);
|
|
101
|
+
|
|
102
|
+
var name = this.name;
|
|
103
|
+
var params = this.params;
|
|
104
|
+
var signature = join(this.types, ',');
|
|
105
|
+
var syntax = name + '(' + join(this.params, ', ') + ')';
|
|
106
|
+
return function evalFunctionAssignmentNode(scope, args, context) {
|
|
107
|
+
var signatures = {};
|
|
108
|
+
|
|
109
|
+
signatures[signature] = function () {
|
|
110
|
+
var childArgs = Object.create(args);
|
|
111
|
+
|
|
112
|
+
for (var i = 0; i < params.length; i++) {
|
|
113
|
+
childArgs[params[i]] = arguments[i];
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
return evalExpr(scope, childArgs, context);
|
|
117
|
+
};
|
|
86
118
|
|
|
87
|
-
|
|
119
|
+
var fn = typed(name, signatures);
|
|
120
|
+
fn.syntax = syntax;
|
|
121
|
+
scope.set(name, fn);
|
|
122
|
+
return fn;
|
|
88
123
|
};
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
};
|
|
95
|
-
};
|
|
96
|
-
/**
|
|
97
|
-
* Execute a callback for each of the child nodes of this node
|
|
98
|
-
* @param {function(child: Node, path: string, parent: Node)} callback
|
|
99
|
-
*/
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
FunctionAssignmentNode.prototype.forEach = function (callback) {
|
|
103
|
-
callback(this.expr, 'expr', this);
|
|
104
|
-
};
|
|
105
|
-
/**
|
|
106
|
-
* Create a new FunctionAssignmentNode having it's childs be the results of calling
|
|
107
|
-
* the provided callback function for each of the childs of the original node.
|
|
108
|
-
* @param {function(child: Node, path: string, parent: Node): Node} callback
|
|
109
|
-
* @returns {FunctionAssignmentNode} Returns a transformed copy of the node
|
|
110
|
-
*/
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
FunctionAssignmentNode.prototype.map = function (callback) {
|
|
114
|
-
var expr = this._ifNode(callback(this.expr, 'expr', this));
|
|
115
|
-
|
|
116
|
-
return new FunctionAssignmentNode(this.name, this.params.slice(0), expr);
|
|
117
|
-
};
|
|
118
|
-
/**
|
|
119
|
-
* Create a clone of this node, a shallow copy
|
|
120
|
-
* @return {FunctionAssignmentNode}
|
|
121
|
-
*/
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Execute a callback for each of the child nodes of this node
|
|
127
|
+
* @param {function(child: Node, path: string, parent: Node)} callback
|
|
128
|
+
*/
|
|
122
129
|
|
|
123
130
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
131
|
+
forEach(callback) {
|
|
132
|
+
callback(this.expr, 'expr', this);
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Create a new FunctionAssignmentNode whose children are the results of
|
|
136
|
+
* calling the provided callback function for each child of the original
|
|
137
|
+
* node.
|
|
138
|
+
* @param {function(child: Node, path: string, parent: Node): Node} callback
|
|
139
|
+
* @returns {FunctionAssignmentNode} Returns a transformed copy of the node
|
|
140
|
+
*/
|
|
133
141
|
|
|
134
142
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
var exprPrecedence = getPrecedence(node.expr, parenthesis);
|
|
138
|
-
return parenthesis === 'all' || exprPrecedence !== null && exprPrecedence <= precedence;
|
|
139
|
-
}
|
|
140
|
-
/**
|
|
141
|
-
* get string representation
|
|
142
|
-
* @param {Object} options
|
|
143
|
-
* @return {string} str
|
|
144
|
-
*/
|
|
143
|
+
map(callback) {
|
|
144
|
+
var expr = this._ifNode(callback(this.expr, 'expr', this));
|
|
145
145
|
|
|
146
|
+
return new FunctionAssignmentNode(this.name, this.params.slice(0), expr);
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Create a clone of this node, a shallow copy
|
|
150
|
+
* @return {FunctionAssignmentNode}
|
|
151
|
+
*/
|
|
146
152
|
|
|
147
|
-
FunctionAssignmentNode.prototype._toString = function (options) {
|
|
148
|
-
var parenthesis = options && options.parenthesis ? options.parenthesis : 'keep';
|
|
149
|
-
var expr = this.expr.toString(options);
|
|
150
153
|
|
|
151
|
-
|
|
152
|
-
|
|
154
|
+
clone() {
|
|
155
|
+
return new FunctionAssignmentNode(this.name, this.params.slice(0), this.expr);
|
|
153
156
|
}
|
|
157
|
+
/**
|
|
158
|
+
* get string representation
|
|
159
|
+
* @param {Object} options
|
|
160
|
+
* @return {string} str
|
|
161
|
+
*/
|
|
154
162
|
|
|
155
|
-
return this.name + '(' + this.params.join(', ') + ') = ' + expr;
|
|
156
|
-
};
|
|
157
|
-
/**
|
|
158
|
-
* Get a JSON representation of the node
|
|
159
|
-
* @returns {Object}
|
|
160
|
-
*/
|
|
161
163
|
|
|
164
|
+
_toString(options) {
|
|
165
|
+
var parenthesis = options && options.parenthesis ? options.parenthesis : 'keep';
|
|
166
|
+
var expr = this.expr.toString(options);
|
|
162
167
|
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
mathjs: 'FunctionAssignmentNode',
|
|
167
|
-
name: this.name,
|
|
168
|
-
params: this.params.map(function (param, index) {
|
|
169
|
-
return {
|
|
170
|
-
name: param,
|
|
171
|
-
type: types[index]
|
|
172
|
-
};
|
|
173
|
-
}),
|
|
174
|
-
expr: this.expr
|
|
175
|
-
};
|
|
176
|
-
};
|
|
177
|
-
/**
|
|
178
|
-
* Instantiate an FunctionAssignmentNode from its JSON representation
|
|
179
|
-
* @param {Object} json An object structured like
|
|
180
|
-
* `{"mathjs": "FunctionAssignmentNode", name: ..., params: ..., expr: ...}`,
|
|
181
|
-
* where mathjs is optional
|
|
182
|
-
* @returns {FunctionAssignmentNode}
|
|
183
|
-
*/
|
|
168
|
+
if (needParenthesis(this, parenthesis, options && options.implicit)) {
|
|
169
|
+
expr = '(' + expr + ')';
|
|
170
|
+
}
|
|
184
171
|
|
|
172
|
+
return this.name + '(' + this.params.join(', ') + ') = ' + expr;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Get a JSON representation of the node
|
|
176
|
+
* @returns {Object}
|
|
177
|
+
*/
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
toJSON() {
|
|
181
|
+
var types = this.types;
|
|
182
|
+
return {
|
|
183
|
+
mathjs: name,
|
|
184
|
+
name: this.name,
|
|
185
|
+
params: this.params.map(function (param, index) {
|
|
186
|
+
return {
|
|
187
|
+
name: param,
|
|
188
|
+
type: types[index]
|
|
189
|
+
};
|
|
190
|
+
}),
|
|
191
|
+
expr: this.expr
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Instantiate an FunctionAssignmentNode from its JSON representation
|
|
196
|
+
* @param {Object} json
|
|
197
|
+
* An object structured like
|
|
198
|
+
* ```
|
|
199
|
+
* {"mathjs": "FunctionAssignmentNode",
|
|
200
|
+
* name: ..., params: ..., expr: ...}
|
|
201
|
+
* ```
|
|
202
|
+
* where mathjs is optional
|
|
203
|
+
* @returns {FunctionAssignmentNode}
|
|
204
|
+
*/
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
static fromJSON(json) {
|
|
208
|
+
return new FunctionAssignmentNode(json.name, json.params, json.expr);
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* get HTML representation
|
|
212
|
+
* @param {Object} options
|
|
213
|
+
* @return {string} str
|
|
214
|
+
*/
|
|
185
215
|
|
|
186
|
-
FunctionAssignmentNode.fromJSON = function (json) {
|
|
187
|
-
return new FunctionAssignmentNode(json.name, json.params, json.expr);
|
|
188
|
-
};
|
|
189
|
-
/**
|
|
190
|
-
* get HTML representation
|
|
191
|
-
* @param {Object} options
|
|
192
|
-
* @return {string} str
|
|
193
|
-
*/
|
|
194
216
|
|
|
217
|
+
toHTML(options) {
|
|
218
|
+
var parenthesis = options && options.parenthesis ? options.parenthesis : 'keep';
|
|
219
|
+
var params = [];
|
|
195
220
|
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
221
|
+
for (var i = 0; i < this.params.length; i++) {
|
|
222
|
+
params.push('<span class="math-symbol math-parameter">' + escape(this.params[i]) + '</span>');
|
|
223
|
+
}
|
|
199
224
|
|
|
200
|
-
|
|
201
|
-
params.push('<span class="math-symbol math-parameter">' + escape(this.params[i]) + '</span>');
|
|
202
|
-
}
|
|
225
|
+
var expr = this.expr.toHTML(options);
|
|
203
226
|
|
|
204
|
-
|
|
227
|
+
if (needParenthesis(this, parenthesis, options && options.implicit)) {
|
|
228
|
+
expr = '<span class="math-parenthesis math-round-parenthesis">(</span>' + expr + '<span class="math-parenthesis math-round-parenthesis">)</span>';
|
|
229
|
+
}
|
|
205
230
|
|
|
206
|
-
|
|
207
|
-
expr = '<span class="math-parenthesis math-round-parenthesis">(</span>' + expr + '<span class="math-parenthesis math-round-parenthesis">)</span>';
|
|
231
|
+
return '<span class="math-function">' + escape(this.name) + '</span>' + '<span class="math-parenthesis math-round-parenthesis">(</span>' + params.join('<span class="math-separator">,</span>') + '<span class="math-parenthesis math-round-parenthesis">)</span>' + '<span class="math-operator math-assignment-operator ' + 'math-variable-assignment-operator math-binary-operator">=</span>' + expr;
|
|
208
232
|
}
|
|
233
|
+
/**
|
|
234
|
+
* get LaTeX representation
|
|
235
|
+
* @param {Object} options
|
|
236
|
+
* @return {string} str
|
|
237
|
+
*/
|
|
209
238
|
|
|
210
|
-
return '<span class="math-function">' + escape(this.name) + '</span>' + '<span class="math-parenthesis math-round-parenthesis">(</span>' + params.join('<span class="math-separator">,</span>') + '<span class="math-parenthesis math-round-parenthesis">)</span><span class="math-operator math-assignment-operator math-variable-assignment-operator math-binary-operator">=</span>' + expr;
|
|
211
|
-
};
|
|
212
|
-
/**
|
|
213
|
-
* get LaTeX representation
|
|
214
|
-
* @param {Object} options
|
|
215
|
-
* @return {string} str
|
|
216
|
-
*/
|
|
217
239
|
|
|
240
|
+
_toTex(options) {
|
|
241
|
+
var parenthesis = options && options.parenthesis ? options.parenthesis : 'keep';
|
|
242
|
+
var expr = this.expr.toTex(options);
|
|
218
243
|
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
244
|
+
if (needParenthesis(this, parenthesis, options && options.implicit)) {
|
|
245
|
+
expr = "\\left(".concat(expr, "\\right)");
|
|
246
|
+
}
|
|
222
247
|
|
|
223
|
-
|
|
224
|
-
expr = "\\left(".concat(expr, "\\right)");
|
|
248
|
+
return '\\mathrm{' + this.name + '}\\left(' + this.params.map(toSymbol).join(',') + '\\right):=' + expr;
|
|
225
249
|
}
|
|
226
250
|
|
|
227
|
-
|
|
228
|
-
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
_defineProperty(FunctionAssignmentNode, "name", name);
|
|
229
254
|
|
|
230
255
|
return FunctionAssignmentNode;
|
|
231
256
|
}, {
|