mathjs 10.0.0 → 10.6.4
Sign up to get free protection for your applications and to get access to all the features.
- package/CONTRIBUTING.md +14 -10
- package/HISTORY.md +209 -0
- package/NOTICE +1 -1
- package/README.md +23 -3
- package/bin/cli.js +1 -1
- package/lib/browser/math.js +9 -8
- package/lib/browser/math.js.map +1 -1
- package/lib/cjs/core/create.js +4 -4
- package/lib/cjs/core/function/import.js +3 -3
- package/lib/cjs/core/function/typed.js +2 -2
- 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/dependenciesCeil.generated.js +6 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesCumSum.generated.js +26 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesCumSumTransform.generated.js +26 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesDet.generated.js +5 -2
- package/lib/cjs/entry/dependenciesAny/dependenciesFft.generated.js +41 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesFix.generated.js +9 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesFloor.generated.js +6 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesIfft.generated.js +29 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesIndexNode.generated.js +0 -3
- package/lib/cjs/entry/dependenciesAny/dependenciesIntersect.generated.js +6 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesInvmod.generated.js +41 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesLeafCount.generated.js +23 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesLgamma.generated.js +23 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesPinv.generated.js +53 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesPow.generated.js +3 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesRationalize.generated.js +18 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesResolve.generated.js +32 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesSimplify.generated.js +21 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesSimplifyCore.generated.js +65 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesStirlingS2.generated.js +6 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesSymbolicEqual.generated.js +29 -0
- package/lib/cjs/entry/dependenciesAny.generated.js +88 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesCeil.generated.js +3 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesCumSum.generated.js +26 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesCumSumTransform.generated.js +26 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesFix.generated.js +6 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesFloor.generated.js +3 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesIndexNode.generated.js +0 -3
- package/lib/cjs/entry/dependenciesNumber/dependenciesLgamma.generated.js +20 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesRationalize.generated.js +18 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesResolve.generated.js +32 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesSimplify.generated.js +21 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesSimplifyCore.generated.js +65 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesStirlingS2.generated.js +3 -0
- package/lib/cjs/entry/dependenciesNumber.generated.js +40 -0
- package/lib/cjs/entry/impureFunctionsAny.generated.js +164 -98
- package/lib/cjs/entry/impureFunctionsNumber.generated.js +117 -69
- package/lib/cjs/entry/pureFunctionsAny.generated.js +418 -351
- package/lib/cjs/entry/pureFunctionsNumber.generated.js +80 -65
- package/lib/cjs/expression/Help.js +4 -0
- package/lib/cjs/expression/Parser.js +1 -1
- package/lib/cjs/expression/embeddedDocs/construction/fraction.js +3 -3
- package/lib/cjs/expression/embeddedDocs/core/typed.js +1 -1
- package/lib/cjs/expression/embeddedDocs/embeddedDocs.js +265 -233
- package/lib/cjs/expression/embeddedDocs/function/algebra/leafCount.js +15 -0
- package/lib/cjs/expression/embeddedDocs/function/algebra/resolve.js +16 -0
- package/lib/cjs/expression/embeddedDocs/function/algebra/simplify.js +1 -1
- package/lib/cjs/expression/embeddedDocs/function/algebra/simplifyCore.js +15 -0
- package/lib/cjs/expression/embeddedDocs/function/algebra/symbolicEqual.js +15 -0
- package/lib/cjs/expression/embeddedDocs/function/arithmetic/invmod.js +15 -0
- package/lib/cjs/expression/embeddedDocs/function/arithmetic/pow.js +1 -1
- package/lib/cjs/expression/embeddedDocs/function/matrix/fft.js +15 -0
- package/lib/cjs/expression/embeddedDocs/function/matrix/forEach.js +1 -1
- package/lib/cjs/expression/embeddedDocs/function/matrix/ifft.js +15 -0
- package/lib/cjs/expression/embeddedDocs/function/matrix/pinv.js +15 -0
- package/lib/cjs/expression/embeddedDocs/function/matrix/subset.js +2 -2
- package/lib/cjs/expression/embeddedDocs/function/probability/lgamma.js +15 -0
- package/lib/cjs/expression/embeddedDocs/function/statistics/cumsum.js +15 -0
- package/lib/cjs/expression/node/FunctionNode.js +104 -63
- package/lib/cjs/expression/node/IndexNode.js +27 -62
- package/lib/cjs/expression/node/Node.js +3 -3
- package/lib/cjs/expression/node/ObjectNode.js +1 -1
- package/lib/cjs/expression/node/utils/access.js +1 -1
- package/lib/cjs/expression/node/utils/assign.js +1 -1
- package/lib/cjs/expression/parse.js +25 -21
- package/lib/cjs/expression/transform/cumsum.transform.js +57 -0
- package/lib/cjs/expression/transform/sum.transform.js +1 -1
- package/lib/cjs/factoriesAny.js +88 -0
- package/lib/cjs/factoriesNumber.js +77 -28
- package/lib/cjs/function/algebra/decomposition/qr.js +1 -1
- package/lib/cjs/function/algebra/derivative.js +1 -1
- package/lib/cjs/function/algebra/leafCount.js +66 -0
- package/lib/cjs/function/algebra/rationalize.js +36 -39
- package/lib/cjs/function/algebra/resolve.js +106 -0
- package/lib/cjs/function/algebra/simplify/simplifyConstant.js +226 -32
- package/lib/cjs/function/algebra/simplify/util.js +171 -33
- package/lib/cjs/function/algebra/simplify.js +619 -191
- package/lib/cjs/function/algebra/{simplify/simplifyCore.js → simplifyCore.js} +84 -32
- 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 +88 -0
- package/lib/cjs/function/arithmetic/ceil.js +76 -40
- package/lib/cjs/function/arithmetic/fix.js +54 -16
- package/lib/cjs/function/arithmetic/floor.js +80 -38
- package/lib/cjs/function/arithmetic/invmod.js +73 -0
- package/lib/cjs/function/arithmetic/norm.js +1 -1
- package/lib/cjs/function/arithmetic/nthRoot.js +1 -3
- package/lib/cjs/function/arithmetic/pow.js +25 -6
- package/lib/cjs/function/arithmetic/round.js +27 -47
- package/lib/cjs/function/arithmetic/sign.js +4 -0
- package/lib/cjs/function/combinatorics/stirlingS2.js +42 -12
- package/lib/cjs/function/geometry/intersect.js +12 -13
- package/lib/cjs/function/matrix/det.js +37 -31
- package/lib/cjs/function/matrix/eigs/complexEigs.js +44 -33
- package/lib/cjs/function/matrix/fft.js +128 -0
- package/lib/cjs/function/matrix/ifft.js +49 -0
- package/lib/cjs/function/matrix/map.js +53 -15
- package/lib/cjs/function/matrix/matrixFromColumns.js +1 -1
- package/lib/cjs/function/matrix/matrixFromRows.js +1 -1
- package/lib/cjs/function/matrix/pinv.js +223 -0
- package/lib/cjs/function/matrix/subset.js +15 -5
- package/lib/cjs/function/probability/gamma.js +28 -30
- package/lib/cjs/function/probability/lgamma.js +146 -0
- package/lib/cjs/function/probability/util/seededRNG.js +2 -2
- package/lib/cjs/function/relational/compareNatural.js +6 -6
- package/lib/cjs/function/statistics/cumsum.js +151 -0
- package/lib/cjs/function/statistics/sum.js +1 -1
- package/lib/cjs/function/string/format.js +4 -1
- package/lib/cjs/header.js +3 -3
- package/lib/cjs/plain/bignumber/index.js +1 -1
- package/lib/cjs/plain/number/arithmetic.js +17 -31
- package/lib/cjs/plain/number/combinations.js +18 -6
- package/lib/cjs/plain/number/probability.js +43 -3
- package/lib/cjs/type/bignumber/BigNumber.js +2 -2
- package/lib/cjs/type/bignumber/function/bignumber.js +1 -1
- package/lib/cjs/type/boolean.js +2 -2
- package/lib/cjs/type/complex/Complex.js +14 -14
- package/lib/cjs/type/complex/function/complex.js +1 -1
- package/lib/cjs/type/fraction/Fraction.js +6 -6
- package/lib/cjs/type/fraction/function/fraction.js +21 -9
- package/lib/cjs/type/matrix/DenseMatrix.js +5 -5
- package/lib/cjs/type/matrix/SparseMatrix.js +21 -17
- package/lib/cjs/type/matrix/function/sparse.js +6 -0
- package/lib/cjs/type/number.js +1 -1
- package/lib/cjs/type/string.js +2 -2
- package/lib/cjs/type/unit/Unit.js +76 -88
- package/lib/cjs/utils/collection.js +3 -27
- 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 +6 -6
- package/lib/cjs/utils/latex.js +9 -3
- package/lib/cjs/utils/lruQueue.js +2 -4
- package/lib/cjs/utils/map.js +3 -3
- package/lib/cjs/utils/number.js +18 -3
- package/lib/cjs/utils/object.js +5 -3
- package/lib/cjs/utils/snapshot.js +8 -8
- package/lib/cjs/utils/string.js +19 -6
- package/lib/cjs/utils/switch.js +31 -0
- package/lib/cjs/version.js +1 -1
- package/lib/esm/entry/dependenciesAny/dependenciesCeil.generated.js +4 -0
- package/lib/esm/entry/dependenciesAny/dependenciesCumSum.generated.js +14 -0
- package/lib/esm/entry/dependenciesAny/dependenciesCumSumTransform.generated.js +14 -0
- package/lib/esm/entry/dependenciesAny/dependenciesDet.generated.js +4 -2
- package/lib/esm/entry/dependenciesAny/dependenciesFft.generated.js +24 -0
- package/lib/esm/entry/dependenciesAny/dependenciesFix.generated.js +6 -0
- package/lib/esm/entry/dependenciesAny/dependenciesFloor.generated.js +4 -0
- package/lib/esm/entry/dependenciesAny/dependenciesIfft.generated.js +16 -0
- package/lib/esm/entry/dependenciesAny/dependenciesIndexNode.generated.js +0 -2
- package/lib/esm/entry/dependenciesAny/dependenciesIntersect.generated.js +4 -0
- package/lib/esm/entry/dependenciesAny/dependenciesInvmod.generated.js +24 -0
- package/lib/esm/entry/dependenciesAny/dependenciesLeafCount.generated.js +12 -0
- package/lib/esm/entry/dependenciesAny/dependenciesLgamma.generated.js +12 -0
- package/lib/esm/entry/dependenciesAny/dependenciesPinv.generated.js +32 -0
- package/lib/esm/entry/dependenciesAny/dependenciesPow.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesRationalize.generated.js +12 -0
- package/lib/esm/entry/dependenciesAny/dependenciesResolve.generated.js +18 -0
- package/lib/esm/entry/dependenciesAny/dependenciesSimplify.generated.js +14 -0
- package/lib/esm/entry/dependenciesAny/dependenciesSimplifyCore.generated.js +40 -0
- package/lib/esm/entry/dependenciesAny/dependenciesStirlingS2.generated.js +4 -0
- package/lib/esm/entry/dependenciesAny/dependenciesSymbolicEqual.generated.js +16 -0
- package/lib/esm/entry/dependenciesAny.generated.js +11 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesCeil.generated.js +2 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesCumSum.generated.js +14 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesCumSumTransform.generated.js +14 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesFix.generated.js +4 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesFloor.generated.js +2 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesIndexNode.generated.js +0 -2
- package/lib/esm/entry/dependenciesNumber/dependenciesLgamma.generated.js +10 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesRationalize.generated.js +12 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesResolve.generated.js +18 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesSimplify.generated.js +14 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesSimplifyCore.generated.js +40 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesStirlingS2.generated.js +2 -0
- package/lib/esm/entry/dependenciesNumber.generated.js +5 -0
- package/lib/esm/entry/impureFunctionsAny.generated.js +150 -88
- package/lib/esm/entry/impureFunctionsNumber.generated.js +107 -61
- package/lib/esm/entry/pureFunctionsAny.generated.js +331 -268
- package/lib/esm/entry/pureFunctionsNumber.generated.js +56 -41
- package/lib/esm/expression/Help.js +4 -0
- package/lib/esm/expression/embeddedDocs/construction/fraction.js +3 -3
- package/lib/esm/expression/embeddedDocs/core/typed.js +1 -1
- package/lib/esm/expression/embeddedDocs/embeddedDocs.js +233 -212
- package/lib/esm/expression/embeddedDocs/function/algebra/leafCount.js +8 -0
- package/lib/esm/expression/embeddedDocs/function/algebra/resolve.js +9 -0
- package/lib/esm/expression/embeddedDocs/function/algebra/simplify.js +1 -1
- package/lib/esm/expression/embeddedDocs/function/algebra/simplifyCore.js +8 -0
- package/lib/esm/expression/embeddedDocs/function/algebra/symbolicEqual.js +8 -0
- package/lib/esm/expression/embeddedDocs/function/arithmetic/invmod.js +8 -0
- package/lib/esm/expression/embeddedDocs/function/arithmetic/pow.js +1 -1
- package/lib/esm/expression/embeddedDocs/function/matrix/fft.js +8 -0
- package/lib/esm/expression/embeddedDocs/function/matrix/forEach.js +1 -1
- package/lib/esm/expression/embeddedDocs/function/matrix/ifft.js +8 -0
- package/lib/esm/expression/embeddedDocs/function/matrix/pinv.js +8 -0
- package/lib/esm/expression/embeddedDocs/function/matrix/subset.js +2 -2
- package/lib/esm/expression/embeddedDocs/function/probability/lgamma.js +8 -0
- package/lib/esm/expression/embeddedDocs/function/statistics/cumsum.js +8 -0
- package/lib/esm/expression/node/BlockNode.js +3 -3
- package/lib/esm/expression/node/FunctionNode.js +93 -56
- package/lib/esm/expression/node/IndexNode.js +22 -59
- package/lib/esm/expression/parse.js +17 -13
- package/lib/esm/expression/transform/cumsum.transform.js +48 -0
- package/lib/esm/expression/transform/sum.transform.js +1 -1
- package/lib/esm/factoriesAny.js +11 -0
- package/lib/esm/factoriesNumber.js +25 -8
- package/lib/esm/function/algebra/decomposition/qr.js +2 -2
- package/lib/esm/function/algebra/derivative.js +1 -1
- package/lib/esm/function/algebra/leafCount.js +59 -0
- package/lib/esm/function/algebra/rationalize.js +36 -38
- package/lib/esm/function/algebra/resolve.js +95 -0
- package/lib/esm/function/algebra/simplify/simplifyConstant.js +200 -32
- package/lib/esm/function/algebra/simplify/util.js +170 -34
- package/lib/esm/function/algebra/simplify.js +614 -186
- package/lib/esm/function/algebra/{simplify/simplifyCore.js → simplifyCore.js} +76 -32
- package/lib/esm/function/algebra/solver/utils/solveValidation.js +5 -5
- package/lib/esm/function/algebra/sparse/csChol.js +2 -2
- package/lib/esm/function/algebra/sparse/csLeaf.js +2 -2
- package/lib/esm/function/algebra/sparse/csLu.js +3 -3
- package/lib/esm/function/algebra/symbolicEqual.js +80 -0
- package/lib/esm/function/arithmetic/ceil.js +61 -24
- package/lib/esm/function/arithmetic/fix.js +51 -13
- package/lib/esm/function/arithmetic/floor.js +65 -23
- package/lib/esm/function/arithmetic/invmod.js +57 -0
- package/lib/esm/function/arithmetic/nthRoot.js +1 -3
- package/lib/esm/function/arithmetic/nthRoots.js +1 -1
- package/lib/esm/function/arithmetic/pow.js +25 -6
- package/lib/esm/function/arithmetic/round.js +25 -43
- package/lib/esm/function/arithmetic/sign.js +4 -0
- package/lib/esm/function/combinatorics/stirlingS2.js +41 -12
- package/lib/esm/function/geometry/intersect.js +12 -12
- package/lib/esm/function/matrix/det.js +35 -31
- package/lib/esm/function/matrix/eigs/complexEigs.js +36 -25
- package/lib/esm/function/matrix/expm.js +2 -2
- package/lib/esm/function/matrix/fft.js +104 -0
- package/lib/esm/function/matrix/ifft.js +38 -0
- package/lib/esm/function/matrix/map.js +53 -15
- package/lib/esm/function/matrix/pinv.js +205 -0
- package/lib/esm/function/matrix/subset.js +15 -5
- package/lib/esm/function/probability/gamma.js +29 -31
- package/lib/esm/function/probability/lgamma.js +137 -0
- package/lib/esm/function/statistics/cumsum.js +139 -0
- package/lib/esm/function/statistics/sum.js +1 -1
- package/lib/esm/function/string/bin.js +1 -1
- package/lib/esm/function/string/format.js +4 -1
- package/lib/esm/function/string/hex.js +1 -1
- package/lib/esm/function/string/oct.js +1 -1
- package/lib/esm/header.js +1 -1
- package/lib/esm/plain/number/arithmetic.js +16 -20
- package/lib/esm/plain/number/combinations.js +18 -6
- package/lib/esm/plain/number/probability.js +33 -1
- package/lib/esm/type/complex/Complex.js +2 -2
- package/lib/esm/type/fraction/function/fraction.js +20 -8
- package/lib/esm/type/matrix/DenseMatrix.js +2 -2
- package/lib/esm/type/matrix/FibonacciHeap.js +2 -2
- package/lib/esm/type/matrix/SparseMatrix.js +32 -28
- package/lib/esm/type/matrix/function/sparse.js +6 -0
- package/lib/esm/type/unit/Unit.js +76 -88
- package/lib/esm/utils/collection.js +1 -26
- package/lib/esm/utils/latex.js +6 -0
- package/lib/esm/utils/lruQueue.js +1 -2
- package/lib/esm/utils/number.js +17 -5
- package/lib/esm/utils/object.js +3 -1
- package/lib/esm/utils/snapshot.js +2 -2
- package/lib/esm/utils/string.js +18 -4
- package/lib/esm/utils/switch.js +24 -0
- package/lib/esm/version.js +1 -1
- package/package.json +52 -33
- package/types/index.d.ts +2741 -1306
- package/types/index.ts +1656 -242
- package/types/tsconfig.json +2 -1
- package/docs/command_line_interface.md +0 -87
- package/docs/core/chaining.md +0 -41
- package/docs/core/configuration.md +0 -144
- package/docs/core/extension.md +0 -263
- package/docs/core/index.md +0 -21
- package/docs/core/serialization.md +0 -50
- package/docs/custom_bundling.md +0 -116
- package/docs/datatypes/bignumbers.md +0 -102
- package/docs/datatypes/complex_numbers.md +0 -168
- package/docs/datatypes/fractions.md +0 -75
- package/docs/datatypes/index.md +0 -67
- package/docs/datatypes/matrices.md +0 -358
- package/docs/datatypes/numbers.md +0 -106
- package/docs/datatypes/units.md +0 -444
- package/docs/expressions/algebra.md +0 -83
- package/docs/expressions/customization.md +0 -379
- package/docs/expressions/expression_trees.md +0 -700
- package/docs/expressions/html_classes.md +0 -38
- package/docs/expressions/index.md +0 -21
- package/docs/expressions/parsing.md +0 -224
- package/docs/expressions/security.md +0 -89
- package/docs/expressions/syntax.md +0 -670
- package/docs/getting_started.md +0 -124
- package/docs/index.md +0 -39
- package/docs/reference/classes/densematrix.md +0 -247
- package/docs/reference/classes/fibonacciheap.md +0 -70
- package/docs/reference/classes/matrixindex.md +0 -133
- package/docs/reference/classes/matrixrange.md +0 -158
- package/docs/reference/classes/resultset.md +0 -47
- package/docs/reference/classes/sparsematrix.md +0 -245
- package/docs/reference/classes/unit.md +0 -242
- package/docs/reference/classes.md +0 -86
- package/docs/reference/constants.md +0 -29
- package/docs/reference/functions/abs.md +0 -40
- package/docs/reference/functions/acos.md +0 -43
- package/docs/reference/functions/acosh.md +0 -41
- package/docs/reference/functions/acot.md +0 -42
- package/docs/reference/functions/acoth.md +0 -40
- package/docs/reference/functions/acsc.md +0 -43
- package/docs/reference/functions/acsch.md +0 -40
- package/docs/reference/functions/add.md +0 -53
- package/docs/reference/functions/and.md +0 -47
- package/docs/reference/functions/apply.md +0 -50
- package/docs/reference/functions/arg.md +0 -47
- package/docs/reference/functions/asec.md +0 -43
- package/docs/reference/functions/asech.md +0 -40
- package/docs/reference/functions/asin.md +0 -43
- package/docs/reference/functions/asinh.md +0 -40
- package/docs/reference/functions/atan.md +0 -43
- package/docs/reference/functions/atan2.md +0 -50
- package/docs/reference/functions/atanh.md +0 -40
- package/docs/reference/functions/bellNumbers.md +0 -39
- package/docs/reference/functions/bignumber.md +0 -47
- package/docs/reference/functions/bin.md +0 -39
- package/docs/reference/functions/bitAnd.md +0 -45
- package/docs/reference/functions/bitNot.md +0 -45
- package/docs/reference/functions/bitOr.md +0 -46
- package/docs/reference/functions/bitXor.md +0 -45
- package/docs/reference/functions/boolean.md +0 -50
- package/docs/reference/functions/catalan.md +0 -39
- package/docs/reference/functions/cbrt.md +0 -54
- package/docs/reference/functions/ceil.md +0 -57
- package/docs/reference/functions/chain.md +0 -54
- package/docs/reference/functions/clone.md +0 -37
- package/docs/reference/functions/column.md +0 -39
- package/docs/reference/functions/combinations.md +0 -43
- package/docs/reference/functions/combinationsWithRep.md +0 -43
- package/docs/reference/functions/compare.md +0 -61
- package/docs/reference/functions/compareNatural.md +0 -86
- package/docs/reference/functions/compareText.md +0 -48
- package/docs/reference/functions/compile.md +0 -50
- package/docs/reference/functions/complex.md +0 -17
- package/docs/reference/functions/composition.md +0 -40
- package/docs/reference/functions/concat.md +0 -50
- package/docs/reference/functions/config.md +0 -44
- package/docs/reference/functions/conj.md +0 -44
- package/docs/reference/functions/cos.md +0 -45
- package/docs/reference/functions/cosh.md +0 -40
- package/docs/reference/functions/cot.md +0 -41
- package/docs/reference/functions/coth.md +0 -43
- package/docs/reference/functions/count.md +0 -39
- package/docs/reference/functions/createUnit.md +0 -52
- package/docs/reference/functions/cross.md +0 -52
- package/docs/reference/functions/csc.md +0 -41
- package/docs/reference/functions/csch.md +0 -43
- package/docs/reference/functions/ctranspose.md +0 -44
- package/docs/reference/functions/cube.md +0 -45
- package/docs/reference/functions/deepEqual.md +0 -47
- package/docs/reference/functions/derivative.md +0 -55
- package/docs/reference/functions/det.md +0 -43
- package/docs/reference/functions/diag.md +0 -55
- package/docs/reference/functions/diff.md +0 -64
- package/docs/reference/functions/distance.md +0 -74
- package/docs/reference/functions/divide.md +0 -49
- package/docs/reference/functions/dot.md +0 -42
- package/docs/reference/functions/dotDivide.md +0 -46
- package/docs/reference/functions/dotMultiply.md +0 -46
- package/docs/reference/functions/dotPow.md +0 -43
- package/docs/reference/functions/eigs.md +0 -48
- package/docs/reference/functions/equal.md +0 -69
- package/docs/reference/functions/equalText.md +0 -47
- package/docs/reference/functions/erf.md +0 -43
- package/docs/reference/functions/evaluate.md +0 -50
- package/docs/reference/functions/exp.md +0 -48
- package/docs/reference/functions/expm.md +0 -43
- package/docs/reference/functions/expm1.md +0 -48
- package/docs/reference/functions/factorial.md +0 -43
- package/docs/reference/functions/filter.md +0 -44
- package/docs/reference/functions/fix.md +0 -55
- package/docs/reference/functions/flatten.md +0 -40
- package/docs/reference/functions/floor.md +0 -56
- package/docs/reference/functions/forEach.md +0 -35
- package/docs/reference/functions/format.md +0 -118
- package/docs/reference/functions/fraction.md +0 -45
- package/docs/reference/functions/gamma.md +0 -43
- package/docs/reference/functions/gcd.md +0 -44
- package/docs/reference/functions/getMatrixDataType.md +0 -53
- package/docs/reference/functions/hasNumericValue.md +0 -49
- package/docs/reference/functions/help.md +0 -36
- package/docs/reference/functions/hex.md +0 -39
- package/docs/reference/functions/hypot.md +0 -45
- package/docs/reference/functions/identity.md +0 -51
- package/docs/reference/functions/im.md +0 -47
- package/docs/reference/functions/import.md +0 -68
- package/docs/reference/functions/index.md +0 -55
- package/docs/reference/functions/intersect.md +0 -44
- package/docs/reference/functions/inv.md +0 -39
- package/docs/reference/functions/isInteger.md +0 -49
- package/docs/reference/functions/isNaN.md +0 -50
- package/docs/reference/functions/isNegative.md +0 -49
- package/docs/reference/functions/isNumeric.md +0 -49
- package/docs/reference/functions/isPositive.md +0 -51
- package/docs/reference/functions/isPrime.md +0 -48
- package/docs/reference/functions/isZero.md +0 -53
- package/docs/reference/functions/kldivergence.md +0 -35
- package/docs/reference/functions/kron.md +0 -47
- package/docs/reference/functions/larger.md +0 -54
- package/docs/reference/functions/largerEq.md +0 -50
- package/docs/reference/functions/lcm.md +0 -48
- package/docs/reference/functions/leftShift.md +0 -46
- package/docs/reference/functions/log.md +0 -51
- package/docs/reference/functions/log10.md +0 -44
- package/docs/reference/functions/log1p.md +0 -48
- package/docs/reference/functions/log2.md +0 -44
- package/docs/reference/functions/lsolve.md +0 -45
- package/docs/reference/functions/lsolveAll.md +0 -45
- package/docs/reference/functions/lup.md +0 -46
- package/docs/reference/functions/lusolve.md +0 -53
- package/docs/reference/functions/mad.md +0 -44
- package/docs/reference/functions/map.md +0 -42
- package/docs/reference/functions/matrix.md +0 -56
- package/docs/reference/functions/matrixFromColumns.md +0 -43
- package/docs/reference/functions/matrixFromFunction.md +0 -48
- package/docs/reference/functions/matrixFromRows.md +0 -43
- package/docs/reference/functions/max.md +0 -55
- package/docs/reference/functions/mean.md +0 -51
- package/docs/reference/functions/median.md +0 -51
- package/docs/reference/functions/min.md +0 -55
- package/docs/reference/functions/mod.md +0 -53
- package/docs/reference/functions/mode.md +0 -44
- package/docs/reference/functions/multinomial.md +0 -40
- package/docs/reference/functions/multiply.md +0 -54
- package/docs/reference/functions/norm.md +0 -53
- package/docs/reference/functions/not.md +0 -44
- package/docs/reference/functions/nthRoot.md +0 -47
- package/docs/reference/functions/nthRoots.md +0 -52
- package/docs/reference/functions/number.md +0 -49
- package/docs/reference/functions/numeric.md +0 -46
- package/docs/reference/functions/oct.md +0 -39
- package/docs/reference/functions/ones.md +0 -53
- package/docs/reference/functions/or.md +0 -47
- package/docs/reference/functions/parse.md +0 -56
- package/docs/reference/functions/parser.md +0 -64
- package/docs/reference/functions/partitionSelect.md +0 -47
- package/docs/reference/functions/permutations.md +0 -45
- package/docs/reference/functions/pickRandom.md +0 -53
- package/docs/reference/functions/pow.md +0 -53
- package/docs/reference/functions/print.md +0 -58
- package/docs/reference/functions/prod.md +0 -49
- package/docs/reference/functions/qr.md +0 -59
- package/docs/reference/functions/quantileSeq.md +0 -56
- package/docs/reference/functions/random.md +0 -48
- package/docs/reference/functions/randomInt.md +0 -47
- package/docs/reference/functions/range.md +0 -64
- package/docs/reference/functions/rationalize.md +0 -62
- package/docs/reference/functions/re.md +0 -47
- package/docs/reference/functions/reshape.md +0 -53
- package/docs/reference/functions/resize.md +0 -45
- package/docs/reference/functions/rightArithShift.md +0 -46
- package/docs/reference/functions/rightLogShift.md +0 -46
- package/docs/reference/functions/rotate.md +0 -47
- package/docs/reference/functions/rotationMatrix.md +0 -51
- package/docs/reference/functions/round.md +0 -55
- package/docs/reference/functions/row.md +0 -39
- package/docs/reference/functions/sec.md +0 -41
- package/docs/reference/functions/sech.md +0 -43
- package/docs/reference/functions/setCartesian.md +0 -43
- package/docs/reference/functions/setDifference.md +0 -41
- package/docs/reference/functions/setDistinct.md +0 -37
- package/docs/reference/functions/setIntersect.md +0 -40
- package/docs/reference/functions/setIsSubset.md +0 -41
- package/docs/reference/functions/setMultiplicity.md +0 -40
- package/docs/reference/functions/setPowerset.md +0 -37
- package/docs/reference/functions/setSize.md +0 -41
- package/docs/reference/functions/setSymDifference.md +0 -41
- package/docs/reference/functions/setUnion.md +0 -40
- package/docs/reference/functions/sign.md +0 -46
- package/docs/reference/functions/simplify.md +0 -90
- package/docs/reference/functions/sin.md +0 -45
- package/docs/reference/functions/sinh.md +0 -40
- package/docs/reference/functions/size.md +0 -44
- package/docs/reference/functions/slu.md +0 -51
- package/docs/reference/functions/smaller.md +0 -54
- package/docs/reference/functions/smallerEq.md +0 -50
- package/docs/reference/functions/sort.md +0 -50
- package/docs/reference/functions/sparse.md +0 -51
- package/docs/reference/functions/splitUnit.md +0 -37
- package/docs/reference/functions/sqrt.md +0 -44
- package/docs/reference/functions/sqrtm.md +0 -40
- package/docs/reference/functions/square.md +0 -45
- package/docs/reference/functions/squeeze.md +0 -47
- package/docs/reference/functions/std.md +0 -70
- package/docs/reference/functions/stirlingS2.md +0 -42
- package/docs/reference/functions/string.md +0 -49
- package/docs/reference/functions/subset.md +0 -51
- package/docs/reference/functions/subtract.md +0 -48
- package/docs/reference/functions/sum.md +0 -47
- package/docs/reference/functions/tan.md +0 -43
- package/docs/reference/functions/tanh.md +0 -44
- package/docs/reference/functions/to.md +0 -41
- package/docs/reference/functions/trace.md +0 -44
- package/docs/reference/functions/transpose.md +0 -43
- package/docs/reference/functions/typeOf.md +0 -75
- package/docs/reference/functions/typed.md +0 -56
- package/docs/reference/functions/unaryMinus.md +0 -43
- package/docs/reference/functions/unaryPlus.md +0 -42
- package/docs/reference/functions/unequal.md +0 -68
- package/docs/reference/functions/unit.md +0 -48
- package/docs/reference/functions/usolve.md +0 -45
- package/docs/reference/functions/usolveAll.md +0 -45
- package/docs/reference/functions/variance.md +0 -72
- package/docs/reference/functions/xgcd.md +0 -41
- package/docs/reference/functions/xor.md +0 -47
- package/docs/reference/functions/zeros.md +0 -51
- package/docs/reference/functions.md +0 -289
- package/docs/reference/index.md +0 -5
- package/examples/advanced/convert_fraction_to_bignumber.js +0 -59
- package/examples/advanced/custom_argument_parsing.js +0 -98
- package/examples/advanced/custom_datatype.js +0 -56
- package/examples/advanced/custom_evaluate_using_factories.js +0 -19
- package/examples/advanced/custom_evaluate_using_import.js +0 -18
- package/examples/advanced/custom_loading.js +0 -33
- package/examples/advanced/custom_relational_functions.js +0 -62
- package/examples/advanced/custom_scope_objects.js +0 -115
- package/examples/advanced/expression_trees.js +0 -55
- package/examples/advanced/function_transform.js +0 -50
- package/examples/advanced/more_secure_eval.js +0 -36
- package/examples/advanced/use_bigint.js +0 -43
- package/examples/advanced/web_server/math_worker.js +0 -24
- package/examples/advanced/web_server/server.js +0 -80
- package/examples/algebra.js +0 -34
- package/examples/basic_usage.js +0 -49
- package/examples/bignumbers.js +0 -52
- package/examples/browser/angle_configuration.html +0 -134
- package/examples/browser/basic_usage.html +0 -39
- package/examples/browser/currency_conversion.html +0 -125
- package/examples/browser/custom_separators.html +0 -81
- package/examples/browser/plot.html +0 -78
- package/examples/browser/pretty_printing_with_mathjax.html +0 -122
- package/examples/browser/printing_html.html +0 -170
- package/examples/browser/requirejs_loading.html +0 -20
- package/examples/browser/rocket_trajectory_optimization.html +0 -301
- package/examples/browser/webworkers/webworkers.html +0 -80
- package/examples/browser/webworkers/worker.js +0 -28
- package/examples/chaining.js +0 -56
- package/examples/complex_numbers.js +0 -67
- package/examples/expressions.js +0 -188
- package/examples/fractions.js +0 -74
- package/examples/import.js +0 -95
- package/examples/matrices.js +0 -101
- package/examples/node_modules/.bin/envinfo +0 -15
- package/examples/node_modules/.bin/envinfo.cmd +0 -17
- package/examples/node_modules/.bin/envinfo.ps1 +0 -18
- package/examples/node_modules/.bin/import-local-fixture +0 -15
- package/examples/node_modules/.bin/import-local-fixture.cmd +0 -17
- package/examples/node_modules/.bin/import-local-fixture.ps1 +0 -18
- package/examples/node_modules/.bin/node-which +0 -15
- package/examples/node_modules/.bin/node-which.cmd +0 -17
- package/examples/node_modules/.bin/node-which.ps1 +0 -18
- package/examples/node_modules/.bin/webpack-cli +0 -15
- package/examples/node_modules/.bin/webpack-cli.cmd +0 -17
- package/examples/node_modules/.bin/webpack-cli.ps1 +0 -18
- package/examples/node_modules/@discoveryjs/json-ext/CHANGELOG.md +0 -42
- package/examples/node_modules/@discoveryjs/json-ext/LICENSE +0 -21
- package/examples/node_modules/@discoveryjs/json-ext/README.md +0 -255
- package/examples/node_modules/@discoveryjs/json-ext/dist/json-ext.js +0 -808
- package/examples/node_modules/@discoveryjs/json-ext/dist/json-ext.min.js +0 -1
- package/examples/node_modules/@discoveryjs/json-ext/package.json +0 -93
- package/examples/node_modules/@discoveryjs/json-ext/src/index.js +0 -6
- package/examples/node_modules/@discoveryjs/json-ext/src/parse-chunked.js +0 -339
- package/examples/node_modules/@discoveryjs/json-ext/src/stringify-info.js +0 -224
- package/examples/node_modules/@discoveryjs/json-ext/src/stringify-stream-browser.js +0 -3
- package/examples/node_modules/@discoveryjs/json-ext/src/stringify-stream.js +0 -394
- package/examples/node_modules/@discoveryjs/json-ext/src/text-decoder-browser.js +0 -1
- package/examples/node_modules/@discoveryjs/json-ext/src/text-decoder.js +0 -1
- package/examples/node_modules/@discoveryjs/json-ext/src/utils.js +0 -148
- package/examples/node_modules/@webpack-cli/configtest/CHANGELOG.md +0 -18
- package/examples/node_modules/@webpack-cli/configtest/LICENSE +0 -20
- package/examples/node_modules/@webpack-cli/configtest/lib/index.d.ts +0 -4
- package/examples/node_modules/@webpack-cli/configtest/lib/index.js +0 -62
- package/examples/node_modules/@webpack-cli/configtest/package.json +0 -45
- package/examples/node_modules/@webpack-cli/info/CHANGELOG.md +0 -61
- package/examples/node_modules/@webpack-cli/info/LICENSE +0 -20
- package/examples/node_modules/@webpack-cli/info/README.md +0 -49
- package/examples/node_modules/@webpack-cli/info/lib/index.d.ts +0 -4
- package/examples/node_modules/@webpack-cli/info/lib/index.js +0 -66
- package/examples/node_modules/@webpack-cli/info/package.json +0 -47
- package/examples/node_modules/@webpack-cli/serve/CHANGELOG.md +0 -93
- package/examples/node_modules/@webpack-cli/serve/LICENSE +0 -20
- package/examples/node_modules/@webpack-cli/serve/README.md +0 -26
- package/examples/node_modules/@webpack-cli/serve/lib/index.d.ts +0 -4
- package/examples/node_modules/@webpack-cli/serve/lib/index.js +0 -107
- package/examples/node_modules/@webpack-cli/serve/lib/startDevServer.d.ts +0 -12
- package/examples/node_modules/@webpack-cli/serve/lib/startDevServer.js +0 -113
- package/examples/node_modules/@webpack-cli/serve/lib/types.d.ts +0 -48
- package/examples/node_modules/@webpack-cli/serve/lib/types.js +0 -12
- package/examples/node_modules/@webpack-cli/serve/package.json +0 -50
- package/examples/node_modules/ansi-colors/LICENSE +0 -21
- package/examples/node_modules/ansi-colors/README.md +0 -315
- package/examples/node_modules/ansi-colors/index.js +0 -177
- package/examples/node_modules/ansi-colors/package.json +0 -152
- package/examples/node_modules/ansi-colors/symbols.js +0 -70
- package/examples/node_modules/ansi-colors/types/index.d.ts +0 -161
- package/examples/node_modules/clone-deep/LICENSE +0 -21
- package/examples/node_modules/clone-deep/README.md +0 -106
- package/examples/node_modules/clone-deep/index.js +0 -49
- package/examples/node_modules/clone-deep/package.json +0 -112
- package/examples/node_modules/colorette/LICENSE.md +0 -7
- package/examples/node_modules/colorette/README.md +0 -102
- package/examples/node_modules/colorette/index.cjs +0 -73
- package/examples/node_modules/colorette/index.d.ts +0 -49
- package/examples/node_modules/colorette/index.js +0 -73
- package/examples/node_modules/colorette/package.json +0 -73
- package/examples/node_modules/commander/CHANGELOG.md +0 -440
- package/examples/node_modules/commander/LICENSE +0 -22
- package/examples/node_modules/commander/Readme.md +0 -917
- package/examples/node_modules/commander/esm.mjs +0 -4
- package/examples/node_modules/commander/index.js +0 -2217
- package/examples/node_modules/commander/package-support.json +0 -16
- package/examples/node_modules/commander/package.json +0 -100
- package/examples/node_modules/commander/typings/index.d.ts +0 -627
- package/examples/node_modules/cross-spawn/CHANGELOG.md +0 -130
- package/examples/node_modules/cross-spawn/LICENSE +0 -21
- package/examples/node_modules/cross-spawn/README.md +0 -96
- package/examples/node_modules/cross-spawn/index.js +0 -39
- package/examples/node_modules/cross-spawn/lib/enoent.js +0 -59
- package/examples/node_modules/cross-spawn/lib/parse.js +0 -91
- package/examples/node_modules/cross-spawn/lib/util/escape.js +0 -45
- package/examples/node_modules/cross-spawn/lib/util/readShebang.js +0 -23
- package/examples/node_modules/cross-spawn/lib/util/resolveCommand.js +0 -52
- package/examples/node_modules/cross-spawn/package.json +0 -104
- package/examples/node_modules/enquirer/CHANGELOG.md +0 -135
- package/examples/node_modules/enquirer/LICENSE +0 -21
- package/examples/node_modules/enquirer/README.md +0 -1752
- package/examples/node_modules/enquirer/index.d.ts +0 -151
- package/examples/node_modules/enquirer/index.js +0 -250
- package/examples/node_modules/enquirer/lib/ansi.js +0 -116
- package/examples/node_modules/enquirer/lib/combos.js +0 -75
- package/examples/node_modules/enquirer/lib/completer.js +0 -52
- package/examples/node_modules/enquirer/lib/interpolate.js +0 -266
- package/examples/node_modules/enquirer/lib/keypress.js +0 -243
- package/examples/node_modules/enquirer/lib/placeholder.js +0 -63
- package/examples/node_modules/enquirer/lib/prompt.js +0 -485
- package/examples/node_modules/enquirer/lib/prompts/autocomplete.js +0 -113
- package/examples/node_modules/enquirer/lib/prompts/basicauth.js +0 -41
- package/examples/node_modules/enquirer/lib/prompts/confirm.js +0 -13
- package/examples/node_modules/enquirer/lib/prompts/editable.js +0 -136
- package/examples/node_modules/enquirer/lib/prompts/form.js +0 -196
- package/examples/node_modules/enquirer/lib/prompts/index.js +0 -28
- package/examples/node_modules/enquirer/lib/prompts/input.js +0 -55
- package/examples/node_modules/enquirer/lib/prompts/invisible.js +0 -11
- package/examples/node_modules/enquirer/lib/prompts/list.js +0 -36
- package/examples/node_modules/enquirer/lib/prompts/multiselect.js +0 -11
- package/examples/node_modules/enquirer/lib/prompts/numeral.js +0 -1
- package/examples/node_modules/enquirer/lib/prompts/password.js +0 -18
- package/examples/node_modules/enquirer/lib/prompts/quiz.js +0 -37
- package/examples/node_modules/enquirer/lib/prompts/scale.js +0 -237
- package/examples/node_modules/enquirer/lib/prompts/select.js +0 -139
- package/examples/node_modules/enquirer/lib/prompts/snippet.js +0 -185
- package/examples/node_modules/enquirer/lib/prompts/sort.js +0 -37
- package/examples/node_modules/enquirer/lib/prompts/survey.js +0 -163
- package/examples/node_modules/enquirer/lib/prompts/text.js +0 -1
- package/examples/node_modules/enquirer/lib/prompts/toggle.js +0 -109
- package/examples/node_modules/enquirer/lib/render.js +0 -33
- package/examples/node_modules/enquirer/lib/roles.js +0 -46
- package/examples/node_modules/enquirer/lib/state.js +0 -69
- package/examples/node_modules/enquirer/lib/styles.js +0 -144
- package/examples/node_modules/enquirer/lib/symbols.js +0 -66
- package/examples/node_modules/enquirer/lib/theme.js +0 -11
- package/examples/node_modules/enquirer/lib/timer.js +0 -38
- package/examples/node_modules/enquirer/lib/types/array.js +0 -658
- package/examples/node_modules/enquirer/lib/types/auth.js +0 -29
- package/examples/node_modules/enquirer/lib/types/boolean.js +0 -88
- package/examples/node_modules/enquirer/lib/types/index.js +0 -7
- package/examples/node_modules/enquirer/lib/types/number.js +0 -86
- package/examples/node_modules/enquirer/lib/types/string.js +0 -185
- package/examples/node_modules/enquirer/lib/utils.js +0 -268
- package/examples/node_modules/enquirer/package.json +0 -148
- package/examples/node_modules/envinfo/LICENSE +0 -21
- package/examples/node_modules/envinfo/README.md +0 -285
- package/examples/node_modules/envinfo/dist/cli.js +0 -2
- package/examples/node_modules/envinfo/dist/envinfo.js +0 -1
- package/examples/node_modules/envinfo/package.json +0 -130
- package/examples/node_modules/execa/index.d.ts +0 -554
- package/examples/node_modules/execa/index.js +0 -258
- package/examples/node_modules/execa/lib/command.js +0 -32
- package/examples/node_modules/execa/lib/error.js +0 -86
- package/examples/node_modules/execa/lib/kill.js +0 -112
- package/examples/node_modules/execa/lib/promise.js +0 -46
- package/examples/node_modules/execa/lib/stdio.js +0 -52
- package/examples/node_modules/execa/lib/stream.js +0 -97
- package/examples/node_modules/execa/license +0 -9
- package/examples/node_modules/execa/package.json +0 -102
- package/examples/node_modules/execa/readme.md +0 -650
- package/examples/node_modules/fastest-levenshtein/.eslintrc.js +0 -27
- package/examples/node_modules/fastest-levenshtein/.prettierrc +0 -4
- package/examples/node_modules/fastest-levenshtein/.travis.yml +0 -17
- package/examples/node_modules/fastest-levenshtein/LICENSE.md +0 -21
- package/examples/node_modules/fastest-levenshtein/README.md +0 -55
- package/examples/node_modules/fastest-levenshtein/index.d.ts +0 -2
- package/examples/node_modules/fastest-levenshtein/index.js +0 -147
- package/examples/node_modules/fastest-levenshtein/package.json +0 -90
- package/examples/node_modules/fastest-levenshtein/test.js +0 -64
- package/examples/node_modules/find-up/index.d.ts +0 -137
- package/examples/node_modules/find-up/index.js +0 -89
- package/examples/node_modules/find-up/license +0 -9
- package/examples/node_modules/find-up/package.json +0 -85
- package/examples/node_modules/find-up/readme.md +0 -156
- package/examples/node_modules/function-bind/.editorconfig +0 -20
- package/examples/node_modules/function-bind/.eslintrc +0 -15
- package/examples/node_modules/function-bind/.jscs.json +0 -176
- package/examples/node_modules/function-bind/.travis.yml +0 -168
- package/examples/node_modules/function-bind/LICENSE +0 -20
- package/examples/node_modules/function-bind/README.md +0 -48
- package/examples/node_modules/function-bind/implementation.js +0 -52
- package/examples/node_modules/function-bind/index.js +0 -5
- package/examples/node_modules/function-bind/package.json +0 -94
- package/examples/node_modules/function-bind/test/.eslintrc +0 -9
- package/examples/node_modules/function-bind/test/index.js +0 -252
- package/examples/node_modules/get-stream/buffer-stream.js +0 -52
- package/examples/node_modules/get-stream/index.d.ts +0 -105
- package/examples/node_modules/get-stream/index.js +0 -61
- package/examples/node_modules/get-stream/license +0 -9
- package/examples/node_modules/get-stream/package.json +0 -79
- package/examples/node_modules/get-stream/readme.md +0 -124
- package/examples/node_modules/has/LICENSE-MIT +0 -22
- package/examples/node_modules/has/README.md +0 -18
- package/examples/node_modules/has/package.json +0 -73
- package/examples/node_modules/has/src/index.js +0 -5
- package/examples/node_modules/has/test/index.js +0 -10
- package/examples/node_modules/human-signals/CHANGELOG.md +0 -11
- package/examples/node_modules/human-signals/LICENSE +0 -201
- package/examples/node_modules/human-signals/README.md +0 -165
- package/examples/node_modules/human-signals/build/src/core.js +0 -273
- package/examples/node_modules/human-signals/build/src/core.js.map +0 -1
- package/examples/node_modules/human-signals/build/src/main.d.ts +0 -52
- package/examples/node_modules/human-signals/build/src/main.js +0 -71
- package/examples/node_modules/human-signals/build/src/main.js.map +0 -1
- package/examples/node_modules/human-signals/build/src/realtime.js +0 -19
- package/examples/node_modules/human-signals/build/src/realtime.js.map +0 -1
- package/examples/node_modules/human-signals/build/src/signals.js +0 -35
- package/examples/node_modules/human-signals/build/src/signals.js.map +0 -1
- package/examples/node_modules/human-signals/package.json +0 -96
- package/examples/node_modules/import-local/fixtures/cli.js +0 -7
- package/examples/node_modules/import-local/index.js +0 -19
- package/examples/node_modules/import-local/license +0 -9
- package/examples/node_modules/import-local/package.json +0 -83
- package/examples/node_modules/import-local/readme.md +0 -38
- package/examples/node_modules/interpret/CHANGELOG +0 -115
- package/examples/node_modules/interpret/LICENSE +0 -22
- package/examples/node_modules/interpret/README.md +0 -229
- package/examples/node_modules/interpret/index.js +0 -211
- package/examples/node_modules/interpret/mjs-stub.js +0 -1
- package/examples/node_modules/interpret/package.json +0 -118
- package/examples/node_modules/is-core-module/.eslintignore +0 -1
- package/examples/node_modules/is-core-module/.eslintrc +0 -18
- package/examples/node_modules/is-core-module/.github/FUNDING.yml +0 -12
- package/examples/node_modules/is-core-module/.github/workflows/node-4+.yml +0 -54
- package/examples/node_modules/is-core-module/.github/workflows/node-iojs.yml +0 -58
- package/examples/node_modules/is-core-module/.github/workflows/node-pretest.yml +0 -26
- package/examples/node_modules/is-core-module/.github/workflows/node-zero.yml +0 -58
- package/examples/node_modules/is-core-module/.github/workflows/rebase.yml +0 -15
- package/examples/node_modules/is-core-module/.github/workflows/require-allow-edits.yml +0 -14
- package/examples/node_modules/is-core-module/.nycrc +0 -13
- package/examples/node_modules/is-core-module/CHANGELOG.md +0 -58
- package/examples/node_modules/is-core-module/LICENSE +0 -20
- package/examples/node_modules/is-core-module/README.md +0 -37
- package/examples/node_modules/is-core-module/core.json +0 -83
- package/examples/node_modules/is-core-module/index.js +0 -69
- package/examples/node_modules/is-core-module/package.json +0 -94
- package/examples/node_modules/is-core-module/test/index.js +0 -83
- package/examples/node_modules/is-plain-object/LICENSE +0 -21
- package/examples/node_modules/is-plain-object/README.md +0 -104
- package/examples/node_modules/is-plain-object/index.d.ts +0 -5
- package/examples/node_modules/is-plain-object/index.js +0 -37
- package/examples/node_modules/is-plain-object/package.json +0 -121
- package/examples/node_modules/is-stream/index.d.ts +0 -80
- package/examples/node_modules/is-stream/index.js +0 -29
- package/examples/node_modules/is-stream/license +0 -9
- package/examples/node_modules/is-stream/package.json +0 -73
- package/examples/node_modules/is-stream/readme.md +0 -57
- package/examples/node_modules/isexe/LICENSE +0 -15
- package/examples/node_modules/isexe/README.md +0 -51
- package/examples/node_modules/isexe/index.js +0 -57
- package/examples/node_modules/isexe/mode.js +0 -41
- package/examples/node_modules/isexe/package.json +0 -60
- package/examples/node_modules/isexe/test/basic.js +0 -221
- package/examples/node_modules/isexe/windows.js +0 -42
- package/examples/node_modules/isobject/LICENSE +0 -21
- package/examples/node_modules/isobject/README.md +0 -122
- package/examples/node_modules/isobject/index.d.ts +0 -5
- package/examples/node_modules/isobject/index.js +0 -12
- package/examples/node_modules/isobject/package.json +0 -119
- package/examples/node_modules/kind-of/CHANGELOG.md +0 -160
- package/examples/node_modules/kind-of/LICENSE +0 -21
- package/examples/node_modules/kind-of/README.md +0 -367
- package/examples/node_modules/kind-of/index.js +0 -129
- package/examples/node_modules/kind-of/package.json +0 -144
- package/examples/node_modules/locate-path/index.d.ts +0 -83
- package/examples/node_modules/locate-path/index.js +0 -65
- package/examples/node_modules/locate-path/license +0 -9
- package/examples/node_modules/locate-path/package.json +0 -77
- package/examples/node_modules/locate-path/readme.md +0 -122
- package/examples/node_modules/merge-stream/LICENSE +0 -21
- package/examples/node_modules/merge-stream/README.md +0 -78
- package/examples/node_modules/merge-stream/index.js +0 -41
- package/examples/node_modules/merge-stream/package.json +0 -54
- package/examples/node_modules/mimic-fn/index.d.ts +0 -54
- package/examples/node_modules/mimic-fn/index.js +0 -13
- package/examples/node_modules/mimic-fn/license +0 -9
- package/examples/node_modules/mimic-fn/package.json +0 -74
- package/examples/node_modules/mimic-fn/readme.md +0 -69
- package/examples/node_modules/npm-run-path/index.d.ts +0 -89
- package/examples/node_modules/npm-run-path/index.js +0 -47
- package/examples/node_modules/npm-run-path/license +0 -9
- package/examples/node_modules/npm-run-path/package.json +0 -76
- package/examples/node_modules/npm-run-path/readme.md +0 -115
- package/examples/node_modules/onetime/index.d.ts +0 -64
- package/examples/node_modules/onetime/index.js +0 -44
- package/examples/node_modules/onetime/license +0 -9
- package/examples/node_modules/onetime/package.json +0 -75
- package/examples/node_modules/onetime/readme.md +0 -94
- package/examples/node_modules/p-limit/index.d.ts +0 -38
- package/examples/node_modules/p-limit/index.js +0 -57
- package/examples/node_modules/p-limit/license +0 -9
- package/examples/node_modules/p-limit/package.json +0 -84
- package/examples/node_modules/p-limit/readme.md +0 -101
- package/examples/node_modules/p-locate/index.d.ts +0 -64
- package/examples/node_modules/p-locate/index.js +0 -52
- package/examples/node_modules/p-locate/license +0 -9
- package/examples/node_modules/p-locate/package.json +0 -85
- package/examples/node_modules/p-locate/readme.md +0 -90
- package/examples/node_modules/p-try/index.d.ts +0 -39
- package/examples/node_modules/p-try/index.js +0 -9
- package/examples/node_modules/p-try/license +0 -9
- package/examples/node_modules/p-try/package.json +0 -74
- package/examples/node_modules/p-try/readme.md +0 -58
- package/examples/node_modules/path-exists/index.d.ts +0 -28
- package/examples/node_modules/path-exists/index.js +0 -23
- package/examples/node_modules/path-exists/license +0 -9
- package/examples/node_modules/path-exists/package.json +0 -71
- package/examples/node_modules/path-exists/readme.md +0 -52
- package/examples/node_modules/path-key/index.d.ts +0 -40
- package/examples/node_modules/path-key/index.js +0 -16
- package/examples/node_modules/path-key/license +0 -9
- package/examples/node_modules/path-key/package.json +0 -72
- package/examples/node_modules/path-key/readme.md +0 -61
- package/examples/node_modules/path-parse/.travis.yml +0 -9
- package/examples/node_modules/path-parse/LICENSE +0 -21
- package/examples/node_modules/path-parse/README.md +0 -42
- package/examples/node_modules/path-parse/index.js +0 -93
- package/examples/node_modules/path-parse/package.json +0 -61
- package/examples/node_modules/path-parse/test.js +0 -77
- package/examples/node_modules/pkg-dir/index.d.ts +0 -44
- package/examples/node_modules/pkg-dir/index.js +0 -17
- package/examples/node_modules/pkg-dir/license +0 -9
- package/examples/node_modules/pkg-dir/package.json +0 -88
- package/examples/node_modules/pkg-dir/readme.md +0 -66
- package/examples/node_modules/rechoir/LICENSE +0 -24
- package/examples/node_modules/rechoir/README.md +0 -74
- package/examples/node_modules/rechoir/index.js +0 -67
- package/examples/node_modules/rechoir/lib/extension.js +0 -19
- package/examples/node_modules/rechoir/lib/normalize.js +0 -13
- package/examples/node_modules/rechoir/lib/register.js +0 -15
- package/examples/node_modules/rechoir/package.json +0 -89
- package/examples/node_modules/resolve/.editorconfig +0 -37
- package/examples/node_modules/resolve/.eslintignore +0 -1
- package/examples/node_modules/resolve/.eslintrc +0 -39
- package/examples/node_modules/resolve/LICENSE +0 -21
- package/examples/node_modules/resolve/SECURITY.md +0 -3
- package/examples/node_modules/resolve/appveyor.yml +0 -74
- package/examples/node_modules/resolve/example/async.js +0 -5
- package/examples/node_modules/resolve/example/sync.js +0 -3
- package/examples/node_modules/resolve/index.js +0 -6
- package/examples/node_modules/resolve/lib/async.js +0 -320
- package/examples/node_modules/resolve/lib/caller.js +0 -8
- package/examples/node_modules/resolve/lib/core.js +0 -53
- package/examples/node_modules/resolve/lib/core.json +0 -83
- package/examples/node_modules/resolve/lib/is-core.js +0 -5
- package/examples/node_modules/resolve/lib/node-modules-paths.js +0 -42
- package/examples/node_modules/resolve/lib/normalize-options.js +0 -10
- package/examples/node_modules/resolve/lib/sync.js +0 -199
- package/examples/node_modules/resolve/package.json +0 -80
- package/examples/node_modules/resolve/readme.markdown +0 -279
- package/examples/node_modules/resolve/test/.eslintrc +0 -5
- package/examples/node_modules/resolve/test/core.js +0 -81
- package/examples/node_modules/resolve/test/dotdot/abc/index.js +0 -2
- package/examples/node_modules/resolve/test/dotdot/index.js +0 -1
- package/examples/node_modules/resolve/test/dotdot.js +0 -29
- package/examples/node_modules/resolve/test/faulty_basedir.js +0 -29
- package/examples/node_modules/resolve/test/filter.js +0 -34
- package/examples/node_modules/resolve/test/filter_sync.js +0 -33
- package/examples/node_modules/resolve/test/mock.js +0 -315
- package/examples/node_modules/resolve/test/mock_sync.js +0 -216
- package/examples/node_modules/resolve/test/module_dir/xmodules/aaa/index.js +0 -1
- package/examples/node_modules/resolve/test/module_dir/ymodules/aaa/index.js +0 -1
- package/examples/node_modules/resolve/test/module_dir/zmodules/bbb/main.js +0 -1
- package/examples/node_modules/resolve/test/module_dir/zmodules/bbb/package.json +0 -3
- package/examples/node_modules/resolve/test/module_dir.js +0 -56
- package/examples/node_modules/resolve/test/node-modules-paths.js +0 -143
- package/examples/node_modules/resolve/test/node_path/x/aaa/index.js +0 -1
- package/examples/node_modules/resolve/test/node_path/x/ccc/index.js +0 -1
- package/examples/node_modules/resolve/test/node_path/y/bbb/index.js +0 -1
- package/examples/node_modules/resolve/test/node_path/y/ccc/index.js +0 -1
- package/examples/node_modules/resolve/test/node_path.js +0 -70
- package/examples/node_modules/resolve/test/nonstring.js +0 -9
- package/examples/node_modules/resolve/test/pathfilter/deep_ref/main.js +0 -0
- package/examples/node_modules/resolve/test/pathfilter.js +0 -75
- package/examples/node_modules/resolve/test/precedence/aaa/index.js +0 -1
- package/examples/node_modules/resolve/test/precedence/aaa/main.js +0 -1
- package/examples/node_modules/resolve/test/precedence/aaa.js +0 -1
- package/examples/node_modules/resolve/test/precedence/bbb/main.js +0 -1
- package/examples/node_modules/resolve/test/precedence/bbb.js +0 -1
- package/examples/node_modules/resolve/test/precedence.js +0 -23
- package/examples/node_modules/resolve/test/resolver/baz/doom.js +0 -0
- package/examples/node_modules/resolve/test/resolver/baz/package.json +0 -4
- package/examples/node_modules/resolve/test/resolver/baz/quux.js +0 -1
- package/examples/node_modules/resolve/test/resolver/browser_field/a.js +0 -0
- package/examples/node_modules/resolve/test/resolver/browser_field/b.js +0 -0
- package/examples/node_modules/resolve/test/resolver/browser_field/package.json +0 -5
- package/examples/node_modules/resolve/test/resolver/cup.coffee +0 -1
- package/examples/node_modules/resolve/test/resolver/dot_main/index.js +0 -1
- package/examples/node_modules/resolve/test/resolver/dot_main/package.json +0 -3
- package/examples/node_modules/resolve/test/resolver/dot_slash_main/index.js +0 -1
- package/examples/node_modules/resolve/test/resolver/dot_slash_main/package.json +0 -3
- package/examples/node_modules/resolve/test/resolver/foo.js +0 -1
- package/examples/node_modules/resolve/test/resolver/incorrect_main/index.js +0 -2
- package/examples/node_modules/resolve/test/resolver/incorrect_main/package.json +0 -3
- package/examples/node_modules/resolve/test/resolver/invalid_main/package.json +0 -7
- package/examples/node_modules/resolve/test/resolver/mug.coffee +0 -0
- package/examples/node_modules/resolve/test/resolver/mug.js +0 -0
- package/examples/node_modules/resolve/test/resolver/multirepo/lerna.json +0 -6
- package/examples/node_modules/resolve/test/resolver/multirepo/package.json +0 -20
- package/examples/node_modules/resolve/test/resolver/multirepo/packages/package-a/index.js +0 -35
- package/examples/node_modules/resolve/test/resolver/multirepo/packages/package-a/package.json +0 -14
- package/examples/node_modules/resolve/test/resolver/multirepo/packages/package-b/index.js +0 -0
- package/examples/node_modules/resolve/test/resolver/multirepo/packages/package-b/package.json +0 -14
- package/examples/node_modules/resolve/test/resolver/nested_symlinks/mylib/async.js +0 -26
- package/examples/node_modules/resolve/test/resolver/nested_symlinks/mylib/package.json +0 -15
- package/examples/node_modules/resolve/test/resolver/nested_symlinks/mylib/sync.js +0 -12
- package/examples/node_modules/resolve/test/resolver/other_path/lib/other-lib.js +0 -0
- package/examples/node_modules/resolve/test/resolver/other_path/root.js +0 -0
- package/examples/node_modules/resolve/test/resolver/quux/foo/index.js +0 -1
- package/examples/node_modules/resolve/test/resolver/same_names/foo/index.js +0 -1
- package/examples/node_modules/resolve/test/resolver/same_names/foo.js +0 -1
- package/examples/node_modules/resolve/test/resolver/symlinked/_/node_modules/foo.js +0 -0
- package/examples/node_modules/resolve/test/resolver/symlinked/_/symlink_target/.gitkeep +0 -0
- package/examples/node_modules/resolve/test/resolver/symlinked/package/bar.js +0 -1
- package/examples/node_modules/resolve/test/resolver/symlinked/package/package.json +0 -3
- package/examples/node_modules/resolve/test/resolver/without_basedir/main.js +0 -5
- package/examples/node_modules/resolve/test/resolver.js +0 -450
- package/examples/node_modules/resolve/test/resolver_sync.js +0 -358
- package/examples/node_modules/resolve/test/shadowed_core/node_modules/util/index.js +0 -0
- package/examples/node_modules/resolve/test/shadowed_core.js +0 -54
- package/examples/node_modules/resolve/test/subdirs.js +0 -13
- package/examples/node_modules/resolve/test/symlinks.js +0 -176
- package/examples/node_modules/resolve-cwd/index.d.ts +0 -48
- package/examples/node_modules/resolve-cwd/index.js +0 -5
- package/examples/node_modules/resolve-cwd/license +0 -9
- package/examples/node_modules/resolve-cwd/package.json +0 -75
- package/examples/node_modules/resolve-cwd/readme.md +0 -58
- package/examples/node_modules/resolve-from/index.d.ts +0 -31
- package/examples/node_modules/resolve-from/index.js +0 -47
- package/examples/node_modules/resolve-from/license +0 -9
- package/examples/node_modules/resolve-from/package.json +0 -68
- package/examples/node_modules/resolve-from/readme.md +0 -72
- package/examples/node_modules/shallow-clone/LICENSE +0 -21
- package/examples/node_modules/shallow-clone/README.md +0 -153
- package/examples/node_modules/shallow-clone/index.js +0 -83
- package/examples/node_modules/shallow-clone/package.json +0 -101
- package/examples/node_modules/shebang-command/index.js +0 -19
- package/examples/node_modules/shebang-command/license +0 -9
- package/examples/node_modules/shebang-command/package.json +0 -66
- package/examples/node_modules/shebang-command/readme.md +0 -34
- package/examples/node_modules/shebang-regex/index.d.ts +0 -22
- package/examples/node_modules/shebang-regex/index.js +0 -2
- package/examples/node_modules/shebang-regex/license +0 -9
- package/examples/node_modules/shebang-regex/package.json +0 -67
- package/examples/node_modules/shebang-regex/readme.md +0 -33
- package/examples/node_modules/signal-exit/CHANGELOG.md +0 -35
- package/examples/node_modules/signal-exit/LICENSE.txt +0 -16
- package/examples/node_modules/signal-exit/README.md +0 -39
- package/examples/node_modules/signal-exit/index.js +0 -163
- package/examples/node_modules/signal-exit/package.json +0 -66
- package/examples/node_modules/signal-exit/signals.js +0 -53
- package/examples/node_modules/strip-final-newline/index.js +0 -16
- package/examples/node_modules/strip-final-newline/license +0 -9
- package/examples/node_modules/strip-final-newline/package.json +0 -72
- package/examples/node_modules/strip-final-newline/readme.md +0 -30
- package/examples/node_modules/v8-compile-cache/CHANGELOG.md +0 -53
- package/examples/node_modules/v8-compile-cache/LICENSE +0 -21
- package/examples/node_modules/v8-compile-cache/README.md +0 -55
- package/examples/node_modules/v8-compile-cache/package.json +0 -66
- package/examples/node_modules/v8-compile-cache/v8-compile-cache.js +0 -371
- package/examples/node_modules/webpack-cli/CHANGELOG.md +0 -501
- package/examples/node_modules/webpack-cli/LICENSE +0 -20
- package/examples/node_modules/webpack-cli/README.md +0 -116
- package/examples/node_modules/webpack-cli/bin/cli.js +0 -40
- package/examples/node_modules/webpack-cli/lib/bootstrap.js +0 -18
- package/examples/node_modules/webpack-cli/lib/index.js +0 -5
- package/examples/node_modules/webpack-cli/lib/plugins/CLIPlugin.js +0 -99
- package/examples/node_modules/webpack-cli/lib/utils/__tests__/get-package-manager.test.js +0 -108
- package/examples/node_modules/webpack-cli/lib/utils/__tests__/prompt-installation.test.js +0 -118
- package/examples/node_modules/webpack-cli/lib/utils/__tests__/test-all-lock/pnpm-lock.yaml +0 -0
- package/examples/node_modules/webpack-cli/lib/utils/__tests__/test-all-lock/yarn.lock +0 -0
- package/examples/node_modules/webpack-cli/lib/utils/__tests__/test-npm-and-pnpm/pnpm-lock.yaml +0 -0
- package/examples/node_modules/webpack-cli/lib/utils/__tests__/test-npm-and-yarn/yarn.lock +0 -0
- package/examples/node_modules/webpack-cli/lib/utils/__tests__/test-pnpm-lock/pnpm-lock.yaml +0 -0
- package/examples/node_modules/webpack-cli/lib/utils/__tests__/test-yarn-and-pnpm/pnpm-lock.yaml +0 -0
- package/examples/node_modules/webpack-cli/lib/utils/__tests__/test-yarn-and-pnpm/yarn.lock +0 -0
- package/examples/node_modules/webpack-cli/lib/utils/__tests__/test-yarn-lock/yarn.lock +0 -0
- package/examples/node_modules/webpack-cli/lib/utils/capitalize-first-letter.js +0 -9
- package/examples/node_modules/webpack-cli/lib/utils/dynamic-import-loader.js +0 -13
- package/examples/node_modules/webpack-cli/lib/utils/get-package-manager.js +0 -65
- package/examples/node_modules/webpack-cli/lib/utils/index.js +0 -49
- package/examples/node_modules/webpack-cli/lib/utils/logger.js +0 -11
- package/examples/node_modules/webpack-cli/lib/utils/package-exists.js +0 -9
- package/examples/node_modules/webpack-cli/lib/utils/prompt-installation.js +0 -58
- package/examples/node_modules/webpack-cli/lib/utils/run-command.js +0 -13
- package/examples/node_modules/webpack-cli/lib/utils/to-kebab-case.js +0 -5
- package/examples/node_modules/webpack-cli/lib/webpack-cli.js +0 -1803
- package/examples/node_modules/webpack-cli/package.json +0 -96
- package/examples/node_modules/webpack-merge/CHANGELOG.md +0 -421
- package/examples/node_modules/webpack-merge/LICENSE +0 -20
- package/examples/node_modules/webpack-merge/README.md +0 -314
- package/examples/node_modules/webpack-merge/dist/index.d.ts +0 -15
- package/examples/node_modules/webpack-merge/dist/index.js +0 -262
- package/examples/node_modules/webpack-merge/dist/index.js.map +0 -1
- package/examples/node_modules/webpack-merge/dist/join-arrays.d.ts +0 -6
- package/examples/node_modules/webpack-merge/dist/join-arrays.js +0 -69
- package/examples/node_modules/webpack-merge/dist/join-arrays.js.map +0 -1
- package/examples/node_modules/webpack-merge/dist/merge-with.d.ts +0 -2
- package/examples/node_modules/webpack-merge/dist/merge-with.js +0 -38
- package/examples/node_modules/webpack-merge/dist/merge-with.js.map +0 -1
- package/examples/node_modules/webpack-merge/dist/types.d.ts +0 -13
- package/examples/node_modules/webpack-merge/dist/types.js +0 -12
- package/examples/node_modules/webpack-merge/dist/types.js.map +0 -1
- package/examples/node_modules/webpack-merge/dist/unique.d.ts +0 -2
- package/examples/node_modules/webpack-merge/dist/unique.js +0 -40
- package/examples/node_modules/webpack-merge/dist/unique.js.map +0 -1
- package/examples/node_modules/webpack-merge/dist/utils.d.ts +0 -5
- package/examples/node_modules/webpack-merge/dist/utils.js +0 -24
- package/examples/node_modules/webpack-merge/dist/utils.js.map +0 -1
- package/examples/node_modules/webpack-merge/package.json +0 -86
- package/examples/node_modules/which/CHANGELOG.md +0 -166
- package/examples/node_modules/which/LICENSE +0 -15
- package/examples/node_modules/which/README.md +0 -54
- package/examples/node_modules/which/bin/node-which +0 -52
- package/examples/node_modules/which/package.json +0 -76
- package/examples/node_modules/which/which.js +0 -125
- package/examples/node_modules/wildcard/.travis.yml +0 -9
- package/examples/node_modules/wildcard/README.md +0 -99
- package/examples/node_modules/wildcard/docs.json +0 -9
- package/examples/node_modules/wildcard/examples/arrays.js +0 -10
- package/examples/node_modules/wildcard/examples/objects.js +0 -10
- package/examples/node_modules/wildcard/examples/strings.js +0 -7
- package/examples/node_modules/wildcard/index.js +0 -114
- package/examples/node_modules/wildcard/package.json +0 -82
- package/examples/node_modules/wildcard/test/all.js +0 -3
- package/examples/node_modules/wildcard/test/arrays.js +0 -33
- package/examples/node_modules/wildcard/test/objects.js +0 -106
- package/examples/node_modules/wildcard/test/strings.js +0 -46
- package/examples/node_modules/wildcard/yarn.lock +0 -228
- package/examples/objects.js +0 -35
- package/examples/package.json +0 -3
- package/examples/serialization.js +0 -16
- package/examples/sparse_matrices.js +0 -19
- package/examples/units.js +0 -108
- package/lib/cjs/function/algebra/simplify/resolve.js +0 -76
- package/lib/esm/function/algebra/simplify/resolve.js +0 -67
package/types/index.ts
CHANGED
@@ -7,35 +7,109 @@ import {
|
|
7
7
|
addDependencies,
|
8
8
|
divideDependencies,
|
9
9
|
formatDependencies,
|
10
|
-
|
10
|
+
MathNode,
|
11
|
+
MathJsChain,
|
12
|
+
BigNumber,
|
13
|
+
MathCollection,
|
14
|
+
Complex,
|
15
|
+
Unit,
|
16
|
+
Fraction,
|
17
|
+
MathArray,
|
18
|
+
Index,
|
19
|
+
Matrix,
|
20
|
+
EvalFunction,
|
21
|
+
LUDecomposition,
|
22
|
+
QRDecomposition,
|
23
|
+
SLUDecomposition,
|
24
|
+
MathType,
|
25
|
+
MathNumericType,
|
26
|
+
ConstantNode,
|
27
|
+
OperatorNode,
|
28
|
+
OperatorNodeFn,
|
29
|
+
OperatorNodeOp,
|
30
|
+
SymbolNode,
|
31
|
+
ParenthesisNode,
|
32
|
+
} from 'mathjs'
|
33
|
+
import * as assert from 'assert'
|
34
|
+
import { expectTypeOf } from 'expect-type'
|
35
|
+
|
36
|
+
// This file serves a dual purpose:
|
37
|
+
// 1) examples of how to use math.js in TypeScript
|
38
|
+
// 2) tests for the TypeScript declarations provided by math.js
|
11
39
|
|
12
40
|
/*
|
13
41
|
Basic usage examples
|
14
42
|
*/
|
15
43
|
{
|
16
|
-
const math = create(all)
|
44
|
+
const math = create(all)
|
45
|
+
|
46
|
+
const m2by2 = [
|
47
|
+
[-1, 2],
|
48
|
+
[3, 1],
|
49
|
+
]
|
50
|
+
const m2by3 = [
|
51
|
+
[1, 2, 3],
|
52
|
+
[4, 5, 6],
|
53
|
+
]
|
17
54
|
|
18
55
|
// functions and constants
|
19
|
-
math.round(math.e, 3)
|
20
|
-
math.round(100.123, 3)
|
21
|
-
math.atan2(3, -3) / math.pi
|
22
|
-
math.log(10000, 10)
|
23
|
-
math.sqrt(-4)
|
24
|
-
|
25
|
-
|
26
|
-
|
56
|
+
math.round(math.e, 3)
|
57
|
+
math.round(100.123, 3)
|
58
|
+
math.atan2(3, -3) / math.pi
|
59
|
+
math.log(10000, 10)
|
60
|
+
math.sqrt(-4)
|
61
|
+
|
62
|
+
math.pow(m2by2, 2)
|
63
|
+
const angle = 0.2
|
64
|
+
math.add(math.pow(math.sin(angle), 2), math.pow(math.cos(angle), 2))
|
65
|
+
|
66
|
+
// std and variance check
|
67
|
+
|
68
|
+
math.std(1, 2, 3)
|
69
|
+
math.std([1, 2, 3])
|
70
|
+
math.std([1, 2, 3], 'biased')
|
71
|
+
math.std([1, 2, 3], 0, 'biased')
|
72
|
+
math.std(m2by3, 1, 'unbiased')
|
73
|
+
math.std(m2by3, 1, 'uncorrected')
|
74
|
+
math.variance(1, 2, 3)
|
75
|
+
math.variance([1, 2, 3])
|
76
|
+
math.variance([1, 2, 3], 'biased')
|
77
|
+
math.variance([1, 2, 3], 0, 'biased')
|
78
|
+
math.variance(m2by3, 1, 'unbiased')
|
79
|
+
math.variance(m2by3, 1, 'uncorrected')
|
80
|
+
|
81
|
+
// std and variance on chain
|
82
|
+
math.chain([1, 2, 3]).std('unbiased')
|
83
|
+
math.chain(m2by3).std(0, 'biased').std(0, 'uncorrected')
|
84
|
+
math.chain(m2by3).std(0, 'biased').std(0, 'uncorrected')
|
85
|
+
math.chain([1, 2, 3]).std('unbiased')
|
86
|
+
math.chain(m2by3).variance(0, 'biased')
|
87
|
+
math.chain(m2by3).variance(1, 'uncorrected').variance('unbiased')
|
88
|
+
|
89
|
+
math.variance(math.variance(m2by3, 'uncorrected'))
|
27
90
|
|
28
91
|
// expressions
|
29
|
-
math.evaluate('1.2 * (2 + 4.5)')
|
92
|
+
math.evaluate('1.2 * (2 + 4.5)')
|
30
93
|
|
31
94
|
// chained operations
|
32
|
-
const a = math.chain(3).add(4).multiply(2).done()
|
95
|
+
const a = math.chain(3).add(4).multiply(2).done()
|
96
|
+
assert.strictEqual(a, 14)
|
33
97
|
|
34
98
|
// mixed use of different data types in functions
|
35
|
-
math.add(4, [5, 6])
|
36
|
-
|
37
|
-
|
38
|
-
|
99
|
+
assert.deepStrictEqual(math.add(4, [5, 6]), [9, 10]) // number + Array
|
100
|
+
assert.deepStrictEqual(
|
101
|
+
math.multiply(math.unit('5 mm'), 3),
|
102
|
+
math.unit('15 mm')
|
103
|
+
) // Unit * number
|
104
|
+
assert.deepStrictEqual(math.subtract([2, 3, 4], 5), [-3, -2, -1]) // Array - number
|
105
|
+
assert.deepStrictEqual(
|
106
|
+
math.add(math.matrix([2, 3]), [4, 5]),
|
107
|
+
math.matrix([6, 8])
|
108
|
+
) // Matrix + Array
|
109
|
+
|
110
|
+
// narrowed type inference
|
111
|
+
const _b: math.Matrix = math.add(math.matrix([2]), math.matrix([3]))
|
112
|
+
const _c: math.Matrix = math.subtract(math.matrix([4]), math.matrix([5]))
|
39
113
|
}
|
40
114
|
|
41
115
|
/*
|
@@ -46,11 +120,17 @@ Bignumbers examples
|
|
46
120
|
const math = create(all, {
|
47
121
|
number: 'BigNumber',
|
48
122
|
precision: 20,
|
49
|
-
})
|
123
|
+
})
|
50
124
|
|
51
125
|
{
|
52
|
-
|
53
|
-
|
126
|
+
assert.deepStrictEqual(
|
127
|
+
math.add(math.bignumber(0.1), math.bignumber(0.2)),
|
128
|
+
math.bignumber(0.3)
|
129
|
+
)
|
130
|
+
assert.deepStrictEqual(
|
131
|
+
math.divide(math.bignumber(0.3), math.bignumber(0.2)),
|
132
|
+
math.bignumber(1.5)
|
133
|
+
)
|
54
134
|
}
|
55
135
|
}
|
56
136
|
|
@@ -58,167 +138,782 @@ Bignumbers examples
|
|
58
138
|
Chaining examples
|
59
139
|
*/
|
60
140
|
{
|
61
|
-
const math = create(all, {})
|
62
|
-
const a = math.chain(3).add(4).multiply(2).done()
|
141
|
+
const math = create(all, {})
|
142
|
+
const a = math.chain(3).add(4).multiply(2).done()
|
143
|
+
assert.strictEqual(a, 14)
|
63
144
|
|
64
145
|
// Another example, calculate square(sin(pi / 4))
|
65
|
-
const
|
146
|
+
const _b = math.chain(math.pi).divide(4).sin().square().done()
|
66
147
|
|
67
148
|
// toString will return a string representation of the chain's value
|
68
|
-
const chain = math.chain(2).divide(3)
|
69
|
-
const str: string = chain.toString()
|
149
|
+
const chain = math.chain(2).divide(3)
|
150
|
+
const str: string = chain.toString()
|
151
|
+
assert.strictEqual(str, '0.6666666666666666')
|
70
152
|
|
71
|
-
chain.valueOf()
|
153
|
+
chain.valueOf()
|
72
154
|
|
73
155
|
// the function subset can be used to get or replace sub matrices
|
74
156
|
const array = [
|
75
157
|
[1, 2],
|
76
158
|
[3, 4],
|
77
|
-
]
|
78
|
-
const v = math.chain(array).subset(math.index(1, 0)).done()
|
159
|
+
]
|
160
|
+
const v = math.chain(array).subset(math.index(1, 0)).done()
|
161
|
+
assert.strictEqual(v, 3)
|
79
162
|
|
80
|
-
const
|
163
|
+
const _m = math.chain(array).subset(math.index(0, 0), 8).multiply(3).done()
|
81
164
|
|
82
165
|
// filtering
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
166
|
+
assert.deepStrictEqual(
|
167
|
+
math
|
168
|
+
.chain([-1, 0, 1.1, 2, 3, 1000])
|
169
|
+
.filter(math.isPositive)
|
170
|
+
.filter(math.isInteger)
|
171
|
+
.filter((n) => n !== 1000)
|
172
|
+
.done(),
|
173
|
+
[2, 3]
|
174
|
+
)
|
175
|
+
|
176
|
+
const r = math.chain(-0.483).round([0, 1, 2]).floor().add(0.52).fix(1).done()
|
177
|
+
|
178
|
+
assert.deepStrictEqual(r, [0.5, -0.4, -0.4])
|
179
|
+
|
180
|
+
expectTypeOf(
|
181
|
+
math.chain('x + y').parse().resolve({ x: 1 }).done()
|
182
|
+
).toMatchTypeOf<MathNode>()
|
183
|
+
expectTypeOf(
|
184
|
+
math.chain('x + y').parse().resolve().done()
|
185
|
+
).toMatchTypeOf<MathNode>()
|
186
|
+
|
187
|
+
// bignum
|
188
|
+
expectTypeOf(math.chain(math.bignumber(12))).toMatchTypeOf<
|
189
|
+
MathJsChain<BigNumber>
|
190
|
+
>()
|
191
|
+
expectTypeOf(math.chain(12).bignumber()).toMatchTypeOf<
|
192
|
+
MathJsChain<BigNumber>
|
193
|
+
>()
|
194
|
+
expectTypeOf(math.chain([12, 13, 14]).bignumber()).toMatchTypeOf<
|
195
|
+
MathJsChain<MathCollection>
|
196
|
+
>()
|
197
|
+
|
198
|
+
// chain
|
199
|
+
expectTypeOf(math.chain(12).bignumber().clone()).toMatchTypeOf<
|
200
|
+
MathJsChain<BigNumber>
|
201
|
+
>()
|
202
|
+
|
203
|
+
// boolean
|
204
|
+
expectTypeOf(math.chain(math.boolean(true))).toMatchTypeOf<
|
205
|
+
MathJsChain<boolean>
|
206
|
+
>()
|
207
|
+
expectTypeOf(math.chain(true).boolean()).toMatchTypeOf<MathJsChain<boolean>>()
|
208
|
+
expectTypeOf(math.chain([12, 13, 14]).boolean()).toMatchTypeOf<
|
209
|
+
MathJsChain<MathCollection>
|
210
|
+
>()
|
211
|
+
|
212
|
+
// complex
|
213
|
+
expectTypeOf(math.chain(math.complex('123'))).toMatchTypeOf<
|
214
|
+
MathJsChain<Complex>
|
215
|
+
>()
|
216
|
+
expectTypeOf(math.chain('123').complex()).toMatchTypeOf<
|
217
|
+
MathJsChain<Complex>
|
218
|
+
>()
|
219
|
+
expectTypeOf(math.chain('123').complex(1)).toMatchTypeOf<
|
220
|
+
MathJsChain<Complex>
|
221
|
+
>()
|
222
|
+
expectTypeOf(math.chain([12, 13, 14]).complex()).toMatchTypeOf<
|
223
|
+
MathJsChain<MathCollection>
|
224
|
+
>()
|
225
|
+
|
226
|
+
// createUnit
|
227
|
+
expectTypeOf(math.chain(math.createUnit('furlong'))).toMatchTypeOf<
|
228
|
+
MathJsChain<Unit>
|
229
|
+
>()
|
230
|
+
expectTypeOf(
|
231
|
+
math.chain(
|
232
|
+
math.createUnit({
|
233
|
+
fresnel: '1234',
|
234
|
+
})
|
235
|
+
)
|
236
|
+
).toMatchTypeOf<MathJsChain<Unit>>()
|
237
|
+
|
238
|
+
// fraction
|
239
|
+
expectTypeOf(math.chain(math.fraction('123'))).toMatchTypeOf<
|
240
|
+
MathJsChain<Fraction>
|
241
|
+
>()
|
242
|
+
expectTypeOf(math.chain('123').fraction()).toMatchTypeOf<
|
243
|
+
MathJsChain<Fraction>
|
244
|
+
>()
|
245
|
+
expectTypeOf(math.chain('123').fraction(2)).toMatchTypeOf<
|
246
|
+
MathJsChain<Fraction>
|
247
|
+
>()
|
248
|
+
expectTypeOf(math.chain([12, 13, 14]).fraction()).toMatchTypeOf<
|
249
|
+
MathJsChain<MathCollection>
|
250
|
+
>()
|
251
|
+
expectTypeOf(math.chain([12, 13, 14]).fraction()).toMatchTypeOf<
|
252
|
+
MathJsChain<MathCollection>
|
253
|
+
>()
|
254
|
+
|
255
|
+
// index
|
256
|
+
expectTypeOf(math.chain([12, 13, 14]).index()).toMatchTypeOf<
|
257
|
+
MathJsChain<Index>
|
258
|
+
>()
|
259
|
+
|
260
|
+
// matrix
|
261
|
+
expectTypeOf(math.chain([12, 13, 14, 15]).matrix()).toMatchTypeOf<
|
262
|
+
MathJsChain<Matrix>
|
263
|
+
>()
|
264
|
+
|
265
|
+
// number
|
266
|
+
expectTypeOf(math.chain('12').number()).toMatchTypeOf<MathJsChain<number>>()
|
267
|
+
expectTypeOf(math.chain([12, 13, 14]).number()).toMatchTypeOf<
|
268
|
+
MathJsChain<MathCollection>
|
269
|
+
>()
|
270
|
+
|
271
|
+
// sparse
|
272
|
+
expectTypeOf(math.chain([12, 13, 14, 15]).sparse()).toMatchTypeOf<
|
273
|
+
MathJsChain<Matrix>
|
274
|
+
>()
|
275
|
+
|
276
|
+
// split unit
|
277
|
+
expectTypeOf(math.chain(math.unit('furlong')).splitUnit([])).toMatchTypeOf<
|
278
|
+
MathJsChain<Unit[]>
|
279
|
+
>()
|
280
|
+
|
281
|
+
// string
|
282
|
+
expectTypeOf(math.chain('test').string()).toMatchTypeOf<MathJsChain<string>>()
|
283
|
+
expectTypeOf(math.chain([1, 2, 3]).string()).toMatchTypeOf<
|
284
|
+
MathJsChain<MathCollection>
|
285
|
+
>()
|
286
|
+
|
287
|
+
// unit
|
288
|
+
expectTypeOf(math.chain(12).unit()).toMatchTypeOf<MathJsChain<Unit>>()
|
289
|
+
expectTypeOf(math.chain([1, 2, 3]).unit()).toMatchTypeOf<
|
290
|
+
MathJsChain<Unit[]>
|
291
|
+
>()
|
292
|
+
|
293
|
+
// compile
|
294
|
+
expectTypeOf(math.chain('a + b').compile()).toMatchTypeOf<
|
295
|
+
MathJsChain<EvalFunction>
|
296
|
+
>()
|
297
|
+
|
298
|
+
// evaluate
|
299
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
300
|
+
expectTypeOf(math.chain('1 + 1').evaluate()).toMatchTypeOf<MathJsChain<any>>()
|
301
|
+
expectTypeOf(math.chain(['1 + 1', '2 + 2']).evaluate()).toMatchTypeOf<
|
302
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
303
|
+
MathJsChain<any[]>
|
304
|
+
>()
|
305
|
+
|
306
|
+
// parse
|
307
|
+
expectTypeOf(math.chain('1 + 1').parse()).toMatchTypeOf<
|
308
|
+
MathJsChain<MathNode>
|
309
|
+
>()
|
310
|
+
expectTypeOf(math.chain(['1 + 1', '2 + 2']).parse()).toMatchTypeOf<
|
311
|
+
MathJsChain<MathNode[]>
|
312
|
+
>()
|
313
|
+
|
314
|
+
// resolve
|
315
|
+
expectTypeOf(math.chain(math.parse('1 + 1')).resolve({})).toMatchTypeOf<
|
316
|
+
MathJsChain<MathNode>
|
317
|
+
>()
|
318
|
+
expectTypeOf(
|
319
|
+
math.chain([math.parse('1 + 1'), math.parse('1 + 1')]).resolve({})
|
320
|
+
).toMatchTypeOf<MathJsChain<MathNode[]>>()
|
321
|
+
|
322
|
+
// derivative
|
323
|
+
expectTypeOf(math.chain(math.parse('x^2')).derivative('x')).toMatchTypeOf<
|
324
|
+
MathJsChain<MathNode>
|
325
|
+
>()
|
326
|
+
|
327
|
+
// lsolve
|
328
|
+
expectTypeOf(
|
329
|
+
math
|
330
|
+
.chain([
|
331
|
+
[1, 2],
|
332
|
+
[3, 4],
|
333
|
+
])
|
334
|
+
.lsolve([1, 2])
|
335
|
+
).toMatchTypeOf<MathJsChain<MathArray>>()
|
336
|
+
expectTypeOf(
|
337
|
+
math
|
338
|
+
.chain(
|
339
|
+
math.matrix([
|
340
|
+
[1, 2],
|
341
|
+
[3, 4],
|
342
|
+
])
|
343
|
+
)
|
344
|
+
.lsolve([1, 2])
|
345
|
+
).toMatchTypeOf<MathJsChain<Matrix>>()
|
346
|
+
|
347
|
+
// lup
|
348
|
+
expectTypeOf(
|
349
|
+
math
|
350
|
+
.chain([
|
351
|
+
[1, 2],
|
352
|
+
[3, 4],
|
353
|
+
])
|
354
|
+
.lup()
|
355
|
+
).toMatchTypeOf<MathJsChain<LUDecomposition>>()
|
356
|
+
expectTypeOf(
|
357
|
+
math
|
358
|
+
.chain(
|
359
|
+
math.matrix([
|
360
|
+
[1, 2],
|
361
|
+
[3, 4],
|
362
|
+
])
|
363
|
+
)
|
364
|
+
.lup()
|
365
|
+
).toMatchTypeOf<MathJsChain<LUDecomposition>>()
|
366
|
+
|
367
|
+
// lusolve
|
368
|
+
expectTypeOf(
|
369
|
+
math
|
370
|
+
.chain(
|
371
|
+
math.matrix([
|
372
|
+
[1, 2],
|
373
|
+
[3, 4],
|
374
|
+
])
|
375
|
+
)
|
376
|
+
.lusolve(math.matrix([1, 2]))
|
377
|
+
).toMatchTypeOf<MathJsChain<Matrix>>()
|
378
|
+
|
379
|
+
expectTypeOf(
|
380
|
+
math
|
381
|
+
.chain(
|
382
|
+
math.matrix([
|
383
|
+
[1, 2],
|
384
|
+
[3, 4],
|
385
|
+
])
|
386
|
+
)
|
387
|
+
.lusolve([1, 2])
|
388
|
+
).toMatchTypeOf<MathJsChain<Matrix>>()
|
389
|
+
|
390
|
+
expectTypeOf(
|
391
|
+
math
|
392
|
+
.chain([
|
393
|
+
[1, 2],
|
394
|
+
[3, 4],
|
395
|
+
])
|
396
|
+
.lusolve(math.matrix([1, 2]))
|
397
|
+
).toMatchTypeOf<MathJsChain<MathArray>>()
|
398
|
+
|
399
|
+
expectTypeOf(
|
400
|
+
math
|
401
|
+
.chain([
|
402
|
+
[1, 2],
|
403
|
+
[3, 4],
|
404
|
+
])
|
405
|
+
.lusolve([1, 2])
|
406
|
+
).toMatchTypeOf<MathJsChain<MathArray>>()
|
407
|
+
|
408
|
+
// qr
|
409
|
+
expectTypeOf(
|
410
|
+
math
|
411
|
+
.chain([
|
412
|
+
[1, 2],
|
413
|
+
[3, 4],
|
414
|
+
])
|
415
|
+
.qr()
|
416
|
+
).toMatchTypeOf<MathJsChain<QRDecomposition>>()
|
417
|
+
expectTypeOf(
|
418
|
+
math
|
419
|
+
.chain(
|
420
|
+
math.matrix([
|
421
|
+
[1, 2],
|
422
|
+
[3, 4],
|
423
|
+
])
|
424
|
+
)
|
425
|
+
.qr()
|
426
|
+
).toMatchTypeOf<MathJsChain<QRDecomposition>>()
|
427
|
+
|
428
|
+
// rationalize
|
429
|
+
expectTypeOf(math.chain('1.23').rationalize()).toMatchTypeOf<
|
430
|
+
MathJsChain<MathNode>
|
431
|
+
>()
|
432
|
+
expectTypeOf(math.chain(math.parse('1.23')).rationalize()).toMatchTypeOf<
|
433
|
+
MathJsChain<MathNode>
|
434
|
+
>()
|
435
|
+
|
436
|
+
// simplify
|
437
|
+
expectTypeOf(math.chain('a + a + b').simplify()).toMatchTypeOf<
|
438
|
+
MathJsChain<MathNode>
|
439
|
+
>()
|
440
|
+
expectTypeOf(math.chain(math.parse('a + a + b')).simplify()).toMatchTypeOf<
|
441
|
+
MathJsChain<MathNode>
|
442
|
+
>()
|
443
|
+
|
444
|
+
// slu
|
445
|
+
expectTypeOf(
|
446
|
+
math
|
447
|
+
.chain(
|
448
|
+
math.sparse([
|
449
|
+
[1, 2],
|
450
|
+
[3, 4],
|
451
|
+
])
|
452
|
+
)
|
453
|
+
.slu(2, 0.5)
|
454
|
+
).toMatchTypeOf<MathJsChain<SLUDecomposition>>()
|
455
|
+
|
456
|
+
// usolve
|
457
|
+
expectTypeOf(
|
458
|
+
math
|
459
|
+
.chain([
|
460
|
+
[1, 2],
|
461
|
+
[3, 4],
|
462
|
+
])
|
463
|
+
.usolve([1, 2])
|
464
|
+
).toMatchTypeOf<MathJsChain<MathArray>>()
|
465
|
+
expectTypeOf(
|
466
|
+
math
|
467
|
+
.chain(
|
468
|
+
math.matrix([
|
469
|
+
[1, 2],
|
470
|
+
[3, 4],
|
471
|
+
])
|
472
|
+
)
|
473
|
+
.usolve([1, 2])
|
474
|
+
).toMatchTypeOf<MathJsChain<Matrix>>()
|
475
|
+
|
476
|
+
// abs
|
477
|
+
expectTypeOf(math.chain(1).abs()).toMatchTypeOf<MathJsChain<number>>()
|
478
|
+
expectTypeOf(math.chain(math.bignumber(1)).abs()).toMatchTypeOf<
|
479
|
+
MathJsChain<BigNumber>
|
480
|
+
>()
|
481
|
+
expectTypeOf(math.chain(math.fraction(1, 2)).abs()).toMatchTypeOf<
|
482
|
+
MathJsChain<Fraction>
|
483
|
+
>()
|
484
|
+
expectTypeOf(math.chain(math.complex(1, 2)).abs()).toMatchTypeOf<
|
485
|
+
MathJsChain<Complex>
|
486
|
+
>()
|
487
|
+
expectTypeOf(math.chain([1, 2]).abs()).toMatchTypeOf<MathJsChain<MathArray>>()
|
488
|
+
expectTypeOf(
|
489
|
+
math
|
490
|
+
.chain(
|
491
|
+
math.matrix([
|
492
|
+
[1, 2],
|
493
|
+
[3, 4],
|
494
|
+
])
|
495
|
+
)
|
496
|
+
.abs()
|
497
|
+
).toMatchTypeOf<MathJsChain<Matrix>>()
|
498
|
+
expectTypeOf(math.chain(math.unit('furlong')).abs()).toMatchTypeOf<
|
499
|
+
MathJsChain<Unit>
|
500
|
+
>()
|
501
|
+
|
502
|
+
// add
|
503
|
+
expectTypeOf(math.chain(1).add(2)).toMatchTypeOf<MathJsChain<MathType>>()
|
504
|
+
expectTypeOf(math.chain([1]).add(2)).toMatchTypeOf<MathJsChain<MathType>>()
|
505
|
+
expectTypeOf(
|
506
|
+
math.chain(
|
507
|
+
math.matrix([
|
508
|
+
[1, 2],
|
509
|
+
[3, 4],
|
510
|
+
])
|
511
|
+
)
|
512
|
+
).toMatchTypeOf<MathJsChain<Matrix>>()
|
513
|
+
|
514
|
+
// apply
|
515
|
+
expectTypeOf(math.chain([1, 2, 3]).apply(0, () => 1)).toMatchTypeOf<
|
516
|
+
MathJsChain<number[]>
|
517
|
+
>()
|
518
|
+
|
519
|
+
// cbrt
|
520
|
+
expectTypeOf(math.chain(1).cbrt()).toMatchTypeOf<MathJsChain<number>>()
|
521
|
+
expectTypeOf(math.chain(math.bignumber(1)).cbrt()).toMatchTypeOf<
|
522
|
+
MathJsChain<BigNumber>
|
523
|
+
>()
|
524
|
+
expectTypeOf(math.chain(math.complex(1, 2)).cbrt()).toMatchTypeOf<
|
525
|
+
MathJsChain<Complex>
|
526
|
+
>()
|
527
|
+
expectTypeOf(math.chain([1, 2]).cbrt()).toMatchTypeOf<
|
528
|
+
MathJsChain<MathArray>
|
529
|
+
>()
|
530
|
+
expectTypeOf(
|
531
|
+
math
|
532
|
+
.chain(
|
533
|
+
math.matrix([
|
534
|
+
[1, 2],
|
535
|
+
[3, 4],
|
536
|
+
])
|
537
|
+
)
|
538
|
+
.cbrt()
|
539
|
+
).toMatchTypeOf<MathJsChain<Matrix>>()
|
540
|
+
|
541
|
+
// cbrt
|
542
|
+
expectTypeOf(math.chain(1).ceil()).toMatchTypeOf<
|
543
|
+
MathJsChain<MathNumericType>
|
544
|
+
>()
|
545
|
+
expectTypeOf(math.chain([1]).ceil()).toMatchTypeOf<
|
546
|
+
MathJsChain<MathCollection>
|
547
|
+
>()
|
548
|
+
|
549
|
+
// fix
|
550
|
+
expectTypeOf(math.chain(1).fix()).toMatchTypeOf<
|
551
|
+
MathJsChain<MathNumericType>
|
552
|
+
>()
|
553
|
+
expectTypeOf(math.chain([1]).fix()).toMatchTypeOf<
|
554
|
+
MathJsChain<MathCollection>
|
555
|
+
>()
|
556
|
+
|
557
|
+
// floor
|
558
|
+
expectTypeOf(math.chain(1).floor()).toMatchTypeOf<
|
559
|
+
MathJsChain<MathNumericType>
|
560
|
+
>()
|
561
|
+
expectTypeOf(math.chain([1]).floor()).toMatchTypeOf<
|
562
|
+
MathJsChain<MathCollection>
|
563
|
+
>()
|
564
|
+
|
565
|
+
// round
|
566
|
+
expectTypeOf(math.chain(1).round()).toMatchTypeOf<
|
567
|
+
MathJsChain<MathNumericType>
|
568
|
+
>()
|
569
|
+
expectTypeOf(math.chain([1]).round()).toMatchTypeOf<
|
570
|
+
MathJsChain<MathCollection>
|
571
|
+
>()
|
572
|
+
|
573
|
+
// cube
|
574
|
+
expectTypeOf(math.chain(1).cube()).toMatchTypeOf<MathJsChain<number>>()
|
575
|
+
expectTypeOf(math.chain(math.bignumber(1)).cube()).toMatchTypeOf<
|
576
|
+
MathJsChain<BigNumber>
|
577
|
+
>()
|
578
|
+
expectTypeOf(math.chain(math.fraction(1, 2)).cube()).toMatchTypeOf<
|
579
|
+
MathJsChain<Fraction>
|
580
|
+
>()
|
581
|
+
expectTypeOf(math.chain(math.complex(1, 2)).cube()).toMatchTypeOf<
|
582
|
+
MathJsChain<Complex>
|
583
|
+
>()
|
584
|
+
expectTypeOf(math.chain([1, 2]).cube()).toMatchTypeOf<
|
585
|
+
MathJsChain<MathArray>
|
586
|
+
>()
|
587
|
+
expectTypeOf(
|
588
|
+
math
|
589
|
+
.chain(
|
590
|
+
math.matrix([
|
591
|
+
[1, 2],
|
592
|
+
[3, 4],
|
593
|
+
])
|
594
|
+
)
|
595
|
+
.cube()
|
596
|
+
).toMatchTypeOf<MathJsChain<Matrix>>()
|
597
|
+
expectTypeOf(math.chain(math.unit('furlong')).cube()).toMatchTypeOf<
|
598
|
+
MathJsChain<Unit>
|
599
|
+
>()
|
600
|
+
|
601
|
+
// divide
|
602
|
+
expectTypeOf(
|
603
|
+
math.chain(math.unit('furlong')).divide(math.unit('femtosecond'))
|
604
|
+
).toMatchTypeOf<MathJsChain<number | Unit>>()
|
605
|
+
expectTypeOf(math.chain(math.unit('furlong')).divide(6)).toMatchTypeOf<
|
606
|
+
MathJsChain<Unit>
|
607
|
+
>()
|
608
|
+
expectTypeOf(math.chain(2).divide(6)).toMatchTypeOf<MathJsChain<number>>()
|
609
|
+
expectTypeOf(math.chain([1, 2, 3]).divide(6)).toMatchTypeOf<
|
610
|
+
MathJsChain<MathType>
|
611
|
+
>()
|
612
|
+
|
613
|
+
// dotDivide
|
614
|
+
expectTypeOf(math.chain(1).dotDivide(2)).toMatchTypeOf<
|
615
|
+
MathJsChain<MathType>
|
616
|
+
>()
|
617
|
+
expectTypeOf(
|
618
|
+
math
|
619
|
+
.chain(
|
620
|
+
math.matrix([
|
621
|
+
[1, 2],
|
622
|
+
[3, 4],
|
623
|
+
])
|
624
|
+
)
|
625
|
+
.dotDivide(2)
|
626
|
+
).toMatchTypeOf<MathJsChain<MathType>>()
|
627
|
+
|
628
|
+
// dotMultiply
|
629
|
+
expectTypeOf(math.chain(1).dotMultiply(2)).toMatchTypeOf<
|
630
|
+
MathJsChain<MathType>
|
631
|
+
>()
|
632
|
+
expectTypeOf(
|
633
|
+
math
|
634
|
+
.chain(
|
635
|
+
math.matrix([
|
636
|
+
[1, 2],
|
637
|
+
[3, 4],
|
638
|
+
])
|
639
|
+
)
|
640
|
+
.dotMultiply(2)
|
641
|
+
).toMatchTypeOf<MathJsChain<MathType>>()
|
642
|
+
|
643
|
+
// dotPow
|
644
|
+
expectTypeOf(math.chain(1).dotPow(2)).toMatchTypeOf<MathJsChain<MathType>>()
|
645
|
+
expectTypeOf(
|
646
|
+
math
|
647
|
+
.chain(
|
648
|
+
math.matrix([
|
649
|
+
[1, 2],
|
650
|
+
[3, 4],
|
651
|
+
])
|
652
|
+
)
|
653
|
+
.dotPow(2)
|
654
|
+
).toMatchTypeOf<MathJsChain<MathType>>()
|
655
|
+
|
656
|
+
// exp
|
657
|
+
expectTypeOf(math.chain(1).exp()).toMatchTypeOf<MathJsChain<MathType>>()
|
658
|
+
expectTypeOf(math.chain([1, 2]).exp()).toMatchTypeOf<MathJsChain<MathArray>>()
|
659
|
+
expectTypeOf(
|
660
|
+
math
|
661
|
+
.chain(
|
662
|
+
math.matrix([
|
663
|
+
[1, 2],
|
664
|
+
[3, 4],
|
665
|
+
])
|
666
|
+
)
|
667
|
+
.exp()
|
668
|
+
).toMatchTypeOf<MathJsChain<Matrix>>()
|
669
|
+
|
670
|
+
// expm1
|
671
|
+
expectTypeOf(math.chain(1).expm1()).toMatchTypeOf<MathJsChain<MathType>>()
|
672
|
+
expectTypeOf(math.chain([1, 2]).expm1()).toMatchTypeOf<
|
673
|
+
MathJsChain<MathArray>
|
674
|
+
>()
|
675
|
+
expectTypeOf(
|
676
|
+
math
|
677
|
+
.chain(
|
678
|
+
math.matrix([
|
679
|
+
[1, 2],
|
680
|
+
[3, 4],
|
681
|
+
])
|
682
|
+
)
|
683
|
+
.expm1()
|
684
|
+
).toMatchTypeOf<MathJsChain<Matrix>>()
|
685
|
+
|
686
|
+
// gcd
|
687
|
+
expectTypeOf(math.chain([1, 2]).gcd(3)).toMatchTypeOf<MathJsChain<number>>()
|
688
|
+
expectTypeOf(math.chain([1, 2]).gcd(3, 4)).toMatchTypeOf<
|
689
|
+
MathJsChain<number>
|
690
|
+
>()
|
691
|
+
// TODO make gcd() work in the following cases
|
692
|
+
// expectTypeOf(math.chain([1, 2]).gcd()).toMatchTypeOf<MathJsChain<number>>()
|
693
|
+
// expectTypeOf(math.chain([[1], [2]]).gcd()).toMatchTypeOf<
|
694
|
+
// MathJsChain<MathArray>
|
695
|
+
// >()
|
696
|
+
// expectTypeOf(
|
697
|
+
// math.chain([math.bignumber(1), math.bignumber(1)]).gcd()
|
698
|
+
// ).toMatchTypeOf<MathJsChain<BigNumber>>()
|
699
|
+
// expectTypeOf(
|
700
|
+
// math.chain([math.complex(1, 2), math.complex(1, 2)]).gcd()
|
701
|
+
// ).toMatchTypeOf<MathJsChain<Complex>>()
|
702
|
+
// expectTypeOf(
|
703
|
+
// math
|
704
|
+
// .chain(
|
705
|
+
// math.matrix([
|
706
|
+
// [1, 2],
|
707
|
+
// [3, 4],
|
708
|
+
// ])
|
709
|
+
// )
|
710
|
+
// .expm1()
|
711
|
+
// ).toMatchTypeOf<MathJsChain<Matrix>>()
|
712
|
+
|
713
|
+
// hypot
|
714
|
+
expectTypeOf(math.chain([1, 2]).hypot()).toMatchTypeOf<MathJsChain<number>>()
|
715
|
+
expectTypeOf(
|
716
|
+
math.chain([math.bignumber(1), math.bignumber(1)]).hypot()
|
717
|
+
).toMatchTypeOf<MathJsChain<BigNumber>>()
|
718
|
+
|
719
|
+
// lcm
|
720
|
+
expectTypeOf(math.chain(1).lcm(2)).toMatchTypeOf<MathJsChain<number>>()
|
721
|
+
expectTypeOf(
|
722
|
+
math.chain(math.bignumber(1)).lcm(math.bignumber(2))
|
723
|
+
).toMatchTypeOf<MathJsChain<BigNumber>>()
|
724
|
+
expectTypeOf(math.chain([1, 2]).lcm([3, 4])).toMatchTypeOf<
|
725
|
+
MathJsChain<MathArray>
|
726
|
+
>()
|
727
|
+
expectTypeOf(
|
728
|
+
math
|
729
|
+
.chain(
|
730
|
+
math.matrix([
|
731
|
+
[1, 2],
|
732
|
+
[3, 4],
|
733
|
+
])
|
734
|
+
)
|
735
|
+
.lcm(
|
736
|
+
math.matrix([
|
737
|
+
[1, 2],
|
738
|
+
[3, 4],
|
739
|
+
])
|
740
|
+
)
|
741
|
+
).toMatchTypeOf<MathJsChain<Matrix>>()
|
742
|
+
|
743
|
+
// log
|
744
|
+
expectTypeOf(math.chain(1).log(2)).toMatchTypeOf<MathJsChain<number>>()
|
745
|
+
expectTypeOf(
|
746
|
+
math.chain(math.bignumber(1)).log(math.bignumber(2))
|
747
|
+
).toMatchTypeOf<MathJsChain<BigNumber>>()
|
748
|
+
|
749
|
+
// log10
|
750
|
+
expectTypeOf(math.chain(1).log10()).toMatchTypeOf<MathJsChain<number>>()
|
751
|
+
expectTypeOf(math.chain(math.bignumber(1)).log10()).toMatchTypeOf<
|
752
|
+
MathJsChain<BigNumber>
|
753
|
+
>()
|
754
|
+
expectTypeOf(math.chain([1, 2]).log10()).toMatchTypeOf<
|
755
|
+
MathJsChain<MathArray>
|
756
|
+
>()
|
757
|
+
expectTypeOf(
|
758
|
+
math
|
759
|
+
.chain(
|
760
|
+
math.matrix([
|
761
|
+
[1, 2],
|
762
|
+
[3, 4],
|
763
|
+
])
|
764
|
+
)
|
765
|
+
.log10()
|
766
|
+
).toMatchTypeOf<MathJsChain<Matrix>>()
|
767
|
+
|
768
|
+
// TODO complete the rest of these...
|
89
769
|
}
|
90
770
|
|
91
771
|
/*
|
92
772
|
Simplify examples
|
93
773
|
*/
|
94
774
|
{
|
95
|
-
const math = create(all)
|
775
|
+
const math = create(all)
|
96
776
|
|
97
|
-
math.simplify(
|
98
|
-
math.simplify(
|
777
|
+
math.simplify('2 * 1 * x ^ (2 - 1)')
|
778
|
+
math.simplify('2 * 3 * x', { x: 4 })
|
99
779
|
|
100
|
-
const f = math.parse(
|
101
|
-
math.simplify(f)
|
780
|
+
const f = math.parse('2 * 1 * x ^ (2 - 1)')
|
781
|
+
math.simplify(f)
|
102
782
|
|
103
|
-
math.simplify(
|
104
|
-
math.simplify(
|
783
|
+
math.simplify('0.4 * x', {}, { exactFractions: true })
|
784
|
+
math.simplify('0.4 * x', {}, { exactFractions: false })
|
105
785
|
}
|
106
786
|
|
107
787
|
/*
|
108
788
|
Complex numbers examples
|
109
789
|
*/
|
110
790
|
{
|
111
|
-
const math = create(all, {})
|
112
|
-
const a = math.complex(2, 3)
|
791
|
+
const math = create(all, {})
|
792
|
+
const a = math.complex(2, 3)
|
113
793
|
// create a complex number by providing a string with real and complex parts
|
114
|
-
const b = math.complex('3 - 7i')
|
794
|
+
const b = math.complex('3 - 7i')
|
115
795
|
|
116
796
|
// read the real and complex parts of the complex number
|
117
797
|
{
|
118
|
-
const
|
119
|
-
const
|
798
|
+
const _x: number = a.re
|
799
|
+
const _y: number = a.im
|
120
800
|
|
121
801
|
// adjust the complex value
|
122
|
-
a.re = 5
|
802
|
+
a.re = 5
|
123
803
|
}
|
124
804
|
|
125
805
|
// clone a complex value
|
126
806
|
{
|
127
|
-
const
|
807
|
+
const _clone = a.clone()
|
128
808
|
}
|
129
809
|
|
130
810
|
// perform operations with complex numbers
|
131
811
|
{
|
132
|
-
math.add(a, b)
|
133
|
-
math.multiply(a, b)
|
134
|
-
math.sin(a)
|
812
|
+
math.add(a, b)
|
813
|
+
math.multiply(a, b)
|
814
|
+
math.sin(a)
|
135
815
|
}
|
136
816
|
|
137
817
|
// create a complex number from polar coordinates
|
138
818
|
{
|
139
|
-
const p: math.PolarCoordinates = { r: math.sqrt(2), phi: math.pi / 4 }
|
140
|
-
const
|
819
|
+
const p: math.PolarCoordinates = { r: math.sqrt(2), phi: math.pi / 4 }
|
820
|
+
const _c: math.Complex = math.complex(p)
|
141
821
|
}
|
142
822
|
|
143
823
|
// get polar coordinates of a complex number
|
144
824
|
{
|
145
|
-
const
|
825
|
+
const _p: math.PolarCoordinates = math.complex(3, 4).toPolar()
|
146
826
|
}
|
147
827
|
}
|
148
828
|
|
829
|
+
/*
|
830
|
+
Parenthesis examples
|
831
|
+
*/
|
832
|
+
{
|
833
|
+
const math = create(all, {})
|
834
|
+
|
835
|
+
expectTypeOf(
|
836
|
+
new math.ParenthesisNode(new math.ConstantNode(3))
|
837
|
+
).toMatchTypeOf<ParenthesisNode<ConstantNode>>()
|
838
|
+
}
|
839
|
+
|
149
840
|
/*
|
150
841
|
Expressions examples
|
151
842
|
*/
|
152
843
|
{
|
153
|
-
const math = create(all, {})
|
844
|
+
const math = create(all, {})
|
154
845
|
// evaluate expressions
|
155
846
|
{
|
156
|
-
math.evaluate('sqrt(3^2 + 4^2)')
|
847
|
+
math.evaluate('sqrt(3^2 + 4^2)')
|
157
848
|
}
|
158
849
|
|
159
850
|
// evaluate multiple expressions at once
|
160
851
|
{
|
161
|
-
math.evaluate(['f = 3', 'g = 4', 'f * g'])
|
852
|
+
math.evaluate(['f = 3', 'g = 4', 'f * g'])
|
162
853
|
}
|
163
854
|
|
164
855
|
// get content of a parenthesis node
|
165
856
|
{
|
166
|
-
const node = math.parse('(1)')
|
167
|
-
|
857
|
+
const node = math.parse('(1)')
|
858
|
+
if (node.type !== 'ParenthesisNode') {
|
859
|
+
throw Error(`expected ParenthesisNode, got ${node.type}`)
|
860
|
+
}
|
861
|
+
const _innerNode = node.content
|
168
862
|
}
|
169
863
|
|
170
864
|
// scope can contain both variables and functions
|
171
865
|
{
|
172
|
-
const scope = { hello: (name: string) => `hello, ${name}!` }
|
173
|
-
math.evaluate('hello("hero")', scope)
|
866
|
+
const scope = { hello: (name: string) => `hello, ${name}!` }
|
867
|
+
assert.strictEqual(math.evaluate('hello("hero")', scope), 'hello, hero!')
|
174
868
|
}
|
175
869
|
|
176
870
|
// define a function as an expression
|
177
871
|
{
|
872
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
178
873
|
const scope: any = {
|
179
874
|
a: 3,
|
180
875
|
b: 4,
|
181
|
-
}
|
182
|
-
const f = math.evaluate('f(x) = x ^ a', scope)
|
183
|
-
f(2)
|
184
|
-
scope.f(2)
|
876
|
+
}
|
877
|
+
const f = math.evaluate('f(x) = x ^ a', scope)
|
878
|
+
f(2)
|
879
|
+
scope.f(2)
|
185
880
|
}
|
186
881
|
|
187
882
|
{
|
188
|
-
const node2 = math.parse('x^a')
|
189
|
-
const
|
190
|
-
node2.toString()
|
883
|
+
const node2 = math.parse('x^a')
|
884
|
+
const _code2: math.EvalFunction = node2.compile()
|
885
|
+
node2.toString()
|
191
886
|
}
|
192
887
|
|
193
888
|
// 3. using function math.compile
|
194
889
|
// parse an expression
|
195
890
|
{
|
196
891
|
// provide a scope for the variable assignment
|
197
|
-
const code2 = math.compile('a = a + 3')
|
198
|
-
const scope = { a: 7 }
|
199
|
-
code2.evaluate(scope)
|
892
|
+
const code2 = math.compile('a = a + 3')
|
893
|
+
const scope = { a: 7 }
|
894
|
+
code2.evaluate(scope)
|
200
895
|
}
|
201
896
|
// 4. using a parser
|
202
|
-
const parser = math.parser()
|
897
|
+
const parser = math.parser()
|
203
898
|
|
204
899
|
// get and set variables and functions
|
205
900
|
{
|
206
|
-
parser.evaluate('x = 7 / 2')
|
207
|
-
parser.evaluate('x + 3')
|
208
|
-
parser.evaluate('f(x, y) = x^y')
|
209
|
-
parser.evaluate('f(2, 3)')
|
210
|
-
|
211
|
-
const
|
212
|
-
const f = parser.get('f')
|
213
|
-
const
|
214
|
-
const
|
215
|
-
|
216
|
-
parser.set('h', 500)
|
217
|
-
parser.set('hello', (name: string) => `hello, ${name}!`)
|
901
|
+
assert.strictEqual(parser.evaluate('x = 7 / 2'), 3.5)
|
902
|
+
assert.strictEqual(parser.evaluate('x + 3'), 6.5)
|
903
|
+
parser.evaluate('f(x, y) = x^y') // f(x, y)
|
904
|
+
assert.strictEqual(parser.evaluate('f(2, 3)'), 8)
|
905
|
+
|
906
|
+
const _x = parser.get('x')
|
907
|
+
const f = parser.get('f')
|
908
|
+
const _y = parser.getAll()
|
909
|
+
const _g = f(3, 3)
|
910
|
+
|
911
|
+
parser.set('h', 500)
|
912
|
+
parser.set('hello', (name: string) => `hello, ${name}!`)
|
218
913
|
}
|
219
914
|
|
220
915
|
// clear defined functions and variables
|
221
|
-
parser.clear()
|
916
|
+
parser.clear()
|
222
917
|
}
|
223
918
|
|
224
919
|
/*
|
@@ -228,108 +923,223 @@ Fractions examples
|
|
228
923
|
// configure the default type of numbers as Fractions
|
229
924
|
const math = create(all, {
|
230
925
|
number: 'Fraction',
|
231
|
-
})
|
926
|
+
})
|
232
927
|
|
233
|
-
const x = math.fraction(0.125)
|
234
|
-
const y = math.fraction('1/3')
|
235
|
-
math.fraction(2, 3)
|
928
|
+
const x = math.fraction(0.125)
|
929
|
+
const y = math.fraction('1/3')
|
930
|
+
math.fraction(2, 3)
|
236
931
|
|
237
|
-
math.add(x, y)
|
238
|
-
math.divide(x, y)
|
932
|
+
math.add(x, y)
|
933
|
+
math.divide(x, y)
|
239
934
|
|
240
935
|
// output formatting
|
241
|
-
const
|
936
|
+
const _a = math.fraction('2/3')
|
937
|
+
}
|
938
|
+
|
939
|
+
/*
|
940
|
+
Transform examples
|
941
|
+
*/
|
942
|
+
{
|
943
|
+
const math = create(all, {})
|
944
|
+
{
|
945
|
+
const myTransform1 = (node: MathNode): OperatorNode<'+', 'add'> =>
|
946
|
+
new OperatorNode('+', 'add', [node, new ConstantNode(1)])
|
947
|
+
const myTransform2 = (
|
948
|
+
node: OperatorNode<'+', 'add'>
|
949
|
+
): OperatorNode<'-', 'subtract'> =>
|
950
|
+
new OperatorNode('-', 'subtract', [node, new ConstantNode(5)])
|
951
|
+
|
952
|
+
expectTypeOf(
|
953
|
+
math.parse('sqrt(3^2 + 4^2)').transform(myTransform1)
|
954
|
+
).toMatchTypeOf<OperatorNode<'+', 'add', MathNode[]>>()
|
955
|
+
|
956
|
+
assert.deepStrictEqual(
|
957
|
+
math.parse('sqrt(3^2 + 4^2)').transform(myTransform1).toString(),
|
958
|
+
'sqrt(3 ^ 2 + 4 ^ 2) + 1'
|
959
|
+
)
|
960
|
+
|
961
|
+
expectTypeOf(
|
962
|
+
math
|
963
|
+
.parse('sqrt(3^2 + 4^2)')
|
964
|
+
.transform(myTransform1)
|
965
|
+
.transform(myTransform2)
|
966
|
+
).toMatchTypeOf<OperatorNode<'-', 'subtract', MathNode[]>>()
|
967
|
+
|
968
|
+
assert.deepStrictEqual(
|
969
|
+
math
|
970
|
+
.parse('sqrt(3^2 + 4^2)')
|
971
|
+
.transform(myTransform1)
|
972
|
+
.transform(myTransform2)
|
973
|
+
.toString(),
|
974
|
+
'sqrt(3 ^ 2 + 4 ^ 2) + 1 - 5'
|
975
|
+
)
|
976
|
+
}
|
242
977
|
}
|
243
978
|
|
244
979
|
/*
|
245
980
|
Matrices examples
|
246
981
|
*/
|
247
982
|
{
|
248
|
-
const math = create(all, {})
|
983
|
+
const math = create(all, {})
|
249
984
|
|
250
985
|
// create matrices and arrays. a matrix is just a wrapper around an Array,
|
251
986
|
// providing some handy utilities.
|
252
|
-
const a: math.Matrix = math.matrix([1, 4, 9, 16, 25])
|
253
|
-
const b: math.Matrix = math.matrix(math.ones([2, 3]))
|
254
|
-
b.size()
|
987
|
+
const a: math.Matrix = math.matrix([1, 4, 9, 16, 25])
|
988
|
+
const b: math.Matrix = math.matrix(math.ones([2, 3]))
|
989
|
+
b.size()
|
255
990
|
|
256
991
|
// the Array data of a Matrix can be retrieved using valueOf()
|
257
|
-
const
|
992
|
+
const _array = a.valueOf()
|
258
993
|
|
259
994
|
// Matrices can be cloned
|
260
|
-
const
|
995
|
+
const _clone: math.Matrix = a.clone()
|
261
996
|
|
262
997
|
// perform operations with matrices
|
263
|
-
math.sqrt(a)
|
264
|
-
math.factorial(a)
|
998
|
+
math.sqrt(a)
|
999
|
+
math.factorial(a)
|
265
1000
|
|
266
1001
|
// create and manipulate matrices. Arrays and Matrices can be used mixed.
|
267
1002
|
{
|
268
1003
|
const a = [
|
269
1004
|
[1, 2],
|
270
1005
|
[3, 4],
|
271
|
-
]
|
1006
|
+
]
|
272
1007
|
const b: math.Matrix = math.matrix([
|
273
1008
|
[5, 6],
|
274
1009
|
[1, 1],
|
275
|
-
])
|
1010
|
+
])
|
276
1011
|
|
277
|
-
b.subset(math.index(1, [0, 1]), [[7, 8]])
|
278
|
-
const
|
279
|
-
const f: math.Matrix = math.matrix([1, 0])
|
280
|
-
const
|
1012
|
+
b.subset(math.index(1, [0, 1]), [[7, 8]])
|
1013
|
+
const _c = math.multiply(a, b)
|
1014
|
+
const f: math.Matrix = math.matrix([1, 0])
|
1015
|
+
const _d: math.Matrix = f.subset(math.index(1))
|
281
1016
|
}
|
282
1017
|
|
283
1018
|
// get a sub matrix
|
284
1019
|
{
|
285
|
-
const a: math.Matrix = math.diag(math.range(1, 4))
|
286
|
-
a.subset(math.index([1, 2], [1, 2]))
|
287
|
-
const b: math.Matrix = math.range(1, 6)
|
288
|
-
b.subset(math.index(math.range(1, 4)))
|
1020
|
+
const a: math.Matrix = math.diag(math.range(1, 4))
|
1021
|
+
a.subset(math.index([1, 2], [1, 2]))
|
1022
|
+
const b: math.Matrix = math.range(1, 6)
|
1023
|
+
b.subset(math.index(math.range(1, 4)))
|
289
1024
|
}
|
290
1025
|
|
291
1026
|
// resize a multi dimensional matrix
|
292
1027
|
{
|
293
|
-
const a = math.matrix()
|
294
|
-
a.resize([2, 2, 2], 0)
|
295
|
-
a.size()
|
296
|
-
a.resize([2, 2])
|
297
|
-
a.size()
|
1028
|
+
const a = math.matrix()
|
1029
|
+
a.resize([2, 2, 2], 0)
|
1030
|
+
a.size()
|
1031
|
+
a.resize([2, 2])
|
1032
|
+
a.size()
|
298
1033
|
}
|
299
1034
|
|
300
1035
|
// can set a subset of a matrix to uninitialized
|
301
1036
|
{
|
302
|
-
const m = math.matrix()
|
303
|
-
m.subset(math.index(2), 6, math.uninitialized)
|
1037
|
+
const m = math.matrix()
|
1038
|
+
m.subset(math.index(2), 6, math.uninitialized)
|
304
1039
|
}
|
305
1040
|
|
306
1041
|
// create ranges
|
307
1042
|
{
|
308
|
-
math.range(1, 6)
|
309
|
-
math.range(0, 18, 3)
|
310
|
-
math.range('2:-1:-3')
|
311
|
-
math.factorial(math.range('1:6'))
|
1043
|
+
math.range(1, 6)
|
1044
|
+
math.range(0, 18, 3)
|
1045
|
+
math.range('2:-1:-3')
|
1046
|
+
math.factorial(math.range('1:6'))
|
312
1047
|
}
|
313
1048
|
|
314
1049
|
// map matrix
|
315
1050
|
{
|
316
|
-
|
317
|
-
|
318
|
-
|
1051
|
+
assert.deepStrictEqual(
|
1052
|
+
math.map([1, 2, 3], function (value) {
|
1053
|
+
return value * value
|
1054
|
+
}),
|
1055
|
+
[1, 4, 9]
|
1056
|
+
)
|
319
1057
|
}
|
320
1058
|
|
321
1059
|
// filter matrix
|
322
1060
|
{
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
1061
|
+
assert.deepStrictEqual(
|
1062
|
+
math.filter([6, -2, -1, 4, 3], function (x) {
|
1063
|
+
return x > 0
|
1064
|
+
}),
|
1065
|
+
[6, 4, 3]
|
1066
|
+
)
|
1067
|
+
assert.deepStrictEqual(
|
1068
|
+
math.filter(['23', 'foo', '100', '55', 'bar'], /[0-9]+/),
|
1069
|
+
['23', '100', '55']
|
1070
|
+
)
|
327
1071
|
}
|
328
1072
|
|
329
1073
|
// concat matrix
|
330
1074
|
{
|
331
|
-
math.concat([[0, 1, 2]], [[1, 2, 3]])
|
332
|
-
|
1075
|
+
assert.deepStrictEqual(math.concat([[0, 1, 2]], [[1, 2, 3]]), [
|
1076
|
+
[0, 1, 2, 1, 2, 3],
|
1077
|
+
])
|
1078
|
+
assert.deepStrictEqual(math.concat([[0, 1, 2]], [[1, 2, 3]], 0), [
|
1079
|
+
[0, 1, 2],
|
1080
|
+
[1, 2, 3],
|
1081
|
+
])
|
1082
|
+
}
|
1083
|
+
|
1084
|
+
// Matrix is available as a constructor for instanceof checks
|
1085
|
+
{
|
1086
|
+
assert.strictEqual(math.matrix([1, 2, 3]) instanceof math.Matrix, true)
|
1087
|
+
}
|
1088
|
+
|
1089
|
+
// Fourier transform and inverse
|
1090
|
+
{
|
1091
|
+
assert.ok(
|
1092
|
+
math.deepEqual(
|
1093
|
+
math.fft([
|
1094
|
+
[1, 0],
|
1095
|
+
[1, 0],
|
1096
|
+
]),
|
1097
|
+
[
|
1098
|
+
[math.complex(2, 0), math.complex(2, 0)],
|
1099
|
+
[math.complex(0, 0), math.complex(0, 0)],
|
1100
|
+
]
|
1101
|
+
)
|
1102
|
+
)
|
1103
|
+
assert.ok(
|
1104
|
+
math.deepEqual(
|
1105
|
+
math.fft(
|
1106
|
+
math.matrix([
|
1107
|
+
[1, 0],
|
1108
|
+
[1, 0],
|
1109
|
+
])
|
1110
|
+
),
|
1111
|
+
math.matrix([
|
1112
|
+
[math.complex(2, 0), math.complex(2, 0)],
|
1113
|
+
[math.complex(0, 0), math.complex(0, 0)],
|
1114
|
+
])
|
1115
|
+
)
|
1116
|
+
)
|
1117
|
+
assert.ok(
|
1118
|
+
math.deepEqual(
|
1119
|
+
math.ifft([
|
1120
|
+
[2, 2],
|
1121
|
+
[0, 0],
|
1122
|
+
]),
|
1123
|
+
[
|
1124
|
+
[math.complex(1, 0), math.complex(0, 0)],
|
1125
|
+
[math.complex(1, 0), math.complex(0, 0)],
|
1126
|
+
]
|
1127
|
+
)
|
1128
|
+
)
|
1129
|
+
assert.ok(
|
1130
|
+
math.deepEqual(
|
1131
|
+
math.ifft(
|
1132
|
+
math.matrix([
|
1133
|
+
[2, 2],
|
1134
|
+
[0, 0],
|
1135
|
+
])
|
1136
|
+
),
|
1137
|
+
math.matrix([
|
1138
|
+
[math.complex(1, 0), math.complex(0, 0)],
|
1139
|
+
[math.complex(1, 0), math.complex(0, 0)],
|
1140
|
+
])
|
1141
|
+
)
|
1142
|
+
)
|
333
1143
|
}
|
334
1144
|
}
|
335
1145
|
|
@@ -337,38 +1147,50 @@ Matrices examples
|
|
337
1147
|
Sparse matrices examples
|
338
1148
|
*/
|
339
1149
|
{
|
340
|
-
const math = create(all, {})
|
1150
|
+
const math = create(all, {})
|
341
1151
|
|
342
1152
|
// create a sparse matrix
|
343
|
-
const a = math.identity(1000, 1000, 'sparse')
|
1153
|
+
const a = math.identity(1000, 1000, 'sparse')
|
344
1154
|
|
345
1155
|
// do operations with a sparse matrix
|
346
|
-
const b = math.multiply(a, a)
|
347
|
-
const
|
348
|
-
const d = math.matrix([0, 1])
|
349
|
-
const e = math.transpose(d)
|
350
|
-
const
|
1156
|
+
const b = math.multiply(a, a)
|
1157
|
+
const _c = math.multiply(b, math.complex(2, 2))
|
1158
|
+
const d = math.matrix([0, 1])
|
1159
|
+
const e = math.transpose(d)
|
1160
|
+
const _f = math.multiply(e, d)
|
351
1161
|
}
|
352
1162
|
|
353
1163
|
/*
|
354
1164
|
Units examples
|
355
1165
|
*/
|
356
1166
|
{
|
357
|
-
const math = create(all, {})
|
1167
|
+
const math = create(all, {})
|
358
1168
|
|
359
1169
|
// units can be created by providing a value and unit name, or by providing
|
360
1170
|
// a string with a valued unit.
|
361
|
-
const a = math.unit(45, 'cm')
|
362
|
-
const b = math.unit('0.1m')
|
1171
|
+
const a = math.unit(45, 'cm') // 450 mm
|
1172
|
+
const b = math.unit('0.1m') // 100 mm
|
1173
|
+
const _c = math.unit(b)
|
363
1174
|
|
364
1175
|
// creating units
|
365
|
-
math.createUnit('foo')
|
366
|
-
math.createUnit('furlong', '220 yards')
|
367
|
-
math.createUnit('furlong', '220 yards', { override: true })
|
368
|
-
math.createUnit('testunit', { definition: '0.555556 kelvin', offset: 459.67 })
|
369
|
-
math.createUnit(
|
370
|
-
|
371
|
-
|
1176
|
+
math.createUnit('foo')
|
1177
|
+
math.createUnit('furlong', '220 yards')
|
1178
|
+
math.createUnit('furlong', '220 yards', { override: true })
|
1179
|
+
math.createUnit('testunit', { definition: '0.555556 kelvin', offset: 459.67 })
|
1180
|
+
math.createUnit(
|
1181
|
+
'testunit',
|
1182
|
+
{ definition: '0.555556 kelvin', offset: 459.67 },
|
1183
|
+
{ override: true }
|
1184
|
+
)
|
1185
|
+
math.createUnit('knot', {
|
1186
|
+
definition: '0.514444 m/s',
|
1187
|
+
aliases: ['knots', 'kt', 'kts'],
|
1188
|
+
})
|
1189
|
+
math.createUnit(
|
1190
|
+
'knot',
|
1191
|
+
{ definition: '0.514444 m/s', aliases: ['knots', 'kt', 'kts'] },
|
1192
|
+
{ override: true }
|
1193
|
+
)
|
372
1194
|
math.createUnit(
|
373
1195
|
'knot',
|
374
1196
|
{
|
@@ -377,10 +1199,10 @@ Units examples
|
|
377
1199
|
prefixes: 'long',
|
378
1200
|
},
|
379
1201
|
{ override: true }
|
380
|
-
)
|
1202
|
+
)
|
381
1203
|
math.createUnit(
|
382
1204
|
{
|
383
|
-
|
1205
|
+
foo2: {
|
384
1206
|
prefixes: 'long',
|
385
1207
|
},
|
386
1208
|
bar: '40 foo',
|
@@ -392,99 +1214,420 @@ Units examples
|
|
392
1214
|
{
|
393
1215
|
override: true,
|
394
1216
|
}
|
395
|
-
)
|
1217
|
+
)
|
396
1218
|
// use Unit as definition
|
397
|
-
math.createUnit('c', { definition: b })
|
398
|
-
math.createUnit('c', { definition: b }, { override: true })
|
1219
|
+
math.createUnit('c', { definition: b })
|
1220
|
+
math.createUnit('c', { definition: b }, { override: true })
|
399
1221
|
|
400
1222
|
// units can be added, subtracted, and multiplied or divided by numbers and by other units
|
401
|
-
math.add(a, b)
|
402
|
-
math.multiply(b, 2)
|
403
|
-
math.divide(math.unit('1 m'), math.unit('1 s'))
|
404
|
-
math.pow(math.unit('12 in'), 3)
|
1223
|
+
math.add(a, b)
|
1224
|
+
math.multiply(b, 2)
|
1225
|
+
math.divide(math.unit('1 m'), math.unit('1 s'))
|
1226
|
+
math.pow(math.unit('12 in'), 3)
|
405
1227
|
|
406
1228
|
// units can be converted to a specific type, or to a number
|
407
|
-
b.to('cm')
|
408
|
-
math.to(b, 'inch')
|
409
|
-
b.toNumber('cm')
|
410
|
-
math.number(b, 'cm')
|
1229
|
+
b.to('cm')
|
1230
|
+
math.to(b, 'inch')
|
1231
|
+
b.toNumber('cm')
|
1232
|
+
math.number(b, 'cm')
|
411
1233
|
|
412
1234
|
// the expression parser supports units too
|
413
|
-
math.evaluate('2 inch to cm')
|
1235
|
+
math.evaluate('2 inch to cm')
|
414
1236
|
|
415
1237
|
// units can be converted to SI
|
416
|
-
math.unit('1 inch').toSI()
|
1238
|
+
math.unit('1 inch').toSI()
|
417
1239
|
|
418
1240
|
// units can be split into other units
|
419
|
-
math.unit('1 m').splitUnit(['ft', 'in'])
|
1241
|
+
math.unit('1 m').splitUnit(['ft', 'in'])
|
420
1242
|
}
|
421
1243
|
|
422
1244
|
/*
|
423
1245
|
Expression tree examples
|
424
1246
|
*/
|
425
1247
|
{
|
426
|
-
const math = create(all, {})
|
1248
|
+
const math = create(all, {})
|
427
1249
|
|
428
1250
|
// Filter an expression tree
|
429
|
-
const node: math.MathNode = math.parse('x^2 + x/4 + 3*y')
|
430
|
-
const filtered: math.MathNode[] = node.filter(
|
1251
|
+
const node: math.MathNode = math.parse('x^2 + x/4 + 3*y')
|
1252
|
+
const filtered: math.MathNode[] = node.filter(
|
1253
|
+
(node: math.MathNode) => node.type === 'SymbolNode' && node.name === 'x'
|
1254
|
+
)
|
431
1255
|
|
432
|
-
const
|
1256
|
+
const _arr: string[] = filtered.map((node: math.MathNode) => node.toString())
|
433
1257
|
|
434
1258
|
// Traverse an expression tree
|
435
|
-
const node1: math.MathNode = math.parse('3 * x + 2')
|
436
|
-
node1.traverse(
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
441
|
-
|
442
|
-
|
443
|
-
|
444
|
-
|
445
|
-
|
1259
|
+
const node1: math.MathNode = math.parse('3 * x + 2')
|
1260
|
+
node1.traverse(
|
1261
|
+
(node: math.MathNode, _path: string, _parent: math.MathNode) => {
|
1262
|
+
switch (node.type) {
|
1263
|
+
case 'OperatorNode':
|
1264
|
+
return node.type === 'OperatorNode'
|
1265
|
+
case 'ConstantNode':
|
1266
|
+
return node.type === 'ConstantNode'
|
1267
|
+
case 'SymbolNode':
|
1268
|
+
return node.type === 'SymbolNode'
|
1269
|
+
default:
|
1270
|
+
return
|
1271
|
+
}
|
446
1272
|
}
|
447
|
-
|
1273
|
+
)
|
1274
|
+
}
|
1275
|
+
|
1276
|
+
/*
|
1277
|
+
Function ceil examples
|
1278
|
+
*/
|
1279
|
+
{
|
1280
|
+
const math = create(all, {})
|
1281
|
+
|
1282
|
+
// number input
|
1283
|
+
assert.strictEqual(math.ceil(3.2), 4)
|
1284
|
+
assert.strictEqual(math.ceil(-4.2), -4)
|
1285
|
+
|
1286
|
+
// number input
|
1287
|
+
// roundoff result to 2 decimals
|
1288
|
+
assert.strictEqual(math.ceil(3.212, 2), 3.22)
|
1289
|
+
assert.deepStrictEqual(
|
1290
|
+
math.ceil(3.212, math.bignumber(2)),
|
1291
|
+
math.bignumber(3.22)
|
1292
|
+
)
|
1293
|
+
assert.strictEqual(math.ceil(-4.212, 2), -4.21)
|
1294
|
+
|
1295
|
+
// bignumber input
|
1296
|
+
assert.deepStrictEqual(math.ceil(math.bignumber(3.212)), math.bignumber(4))
|
1297
|
+
assert.deepStrictEqual(
|
1298
|
+
math.ceil(math.bignumber(3.212), 2),
|
1299
|
+
math.bignumber(3.22)
|
1300
|
+
)
|
1301
|
+
assert.deepStrictEqual(
|
1302
|
+
math.ceil(math.bignumber(3.212), math.bignumber(2)),
|
1303
|
+
math.bignumber(3.22)
|
1304
|
+
)
|
1305
|
+
|
1306
|
+
// fraction input
|
1307
|
+
assert.deepStrictEqual(math.ceil(math.fraction(44, 7)), math.fraction(7))
|
1308
|
+
assert.deepStrictEqual(math.ceil(math.fraction(-44, 7)), math.fraction(-6))
|
1309
|
+
assert.deepStrictEqual(
|
1310
|
+
math.ceil(math.fraction(44, 7), 2),
|
1311
|
+
math.fraction(629, 100)
|
1312
|
+
)
|
1313
|
+
assert.deepStrictEqual(
|
1314
|
+
math.ceil(math.fraction(44, 7), math.bignumber(2)),
|
1315
|
+
math.fraction(629, 100)
|
1316
|
+
)
|
1317
|
+
|
1318
|
+
// Complex input
|
1319
|
+
const c = math.complex(3.24, -2.71)
|
1320
|
+
assert.deepStrictEqual(math.ceil(c), math.complex(4, -2))
|
1321
|
+
assert.deepStrictEqual(math.ceil(c, 1), math.complex(3.3, -2.7))
|
1322
|
+
assert.deepStrictEqual(
|
1323
|
+
math.ceil(c, math.bignumber(1)),
|
1324
|
+
math.complex(3.3, -2.7)
|
1325
|
+
)
|
1326
|
+
|
1327
|
+
// array input
|
1328
|
+
assert.deepStrictEqual(math.ceil([3.2, 3.8, -4.7]), [4, 4, -4])
|
1329
|
+
assert.deepStrictEqual(math.ceil([3.21, 3.82, -4.71], 1), [3.3, 3.9, -4.7])
|
1330
|
+
assert.deepStrictEqual(
|
1331
|
+
math.ceil([3.21, 3.82, -4.71], math.bignumber(1)),
|
1332
|
+
math.bignumber([3.3, 3.9, -4.7])
|
1333
|
+
)
|
1334
|
+
|
1335
|
+
// numeric input, array or matrix of decimals
|
1336
|
+
const numCeiled: math.MathArray = math.ceil(math.tau, [2, 3])
|
1337
|
+
assert.deepStrictEqual(numCeiled, [6.29, 6.284])
|
1338
|
+
const bigCeiled: math.Matrix = math.ceil(
|
1339
|
+
math.bignumber(6.28318),
|
1340
|
+
math.matrix([2, 3])
|
1341
|
+
)
|
1342
|
+
assert.deepStrictEqual(bigCeiled, math.matrix(math.bignumber([6.29, 6.284])))
|
1343
|
+
assert.deepStrictEqual(math.ceil(math.fraction(44, 7), [2, 3]), [
|
1344
|
+
math.fraction(629, 100),
|
1345
|
+
math.fraction(6286, 1000),
|
1346
|
+
])
|
1347
|
+
|
1348
|
+
// @ts-expect-error ... verify ceil(array, array) throws an error (for now)
|
1349
|
+
assert.throws(() => math.ceil([3.21, 3.82], [1, 2]), TypeError)
|
1350
|
+
}
|
1351
|
+
|
1352
|
+
/*
|
1353
|
+
Function fix examples
|
1354
|
+
*/
|
1355
|
+
{
|
1356
|
+
const math = create(all, {})
|
1357
|
+
|
1358
|
+
// number input
|
1359
|
+
assert.strictEqual(math.fix(3.2), 3)
|
1360
|
+
assert.strictEqual(math.fix(-4.2), -4)
|
1361
|
+
|
1362
|
+
// number input
|
1363
|
+
// roundoff result to 2 decimals
|
1364
|
+
assert.strictEqual(math.fix(3.212, 2), 3.21)
|
1365
|
+
assert.deepStrictEqual(
|
1366
|
+
math.fix(3.212, math.bignumber(2)),
|
1367
|
+
math.bignumber(3.21)
|
1368
|
+
)
|
1369
|
+
assert.strictEqual(math.fix(-4.212, 2), -4.21)
|
1370
|
+
|
1371
|
+
// bignumber input
|
1372
|
+
assert.deepStrictEqual(math.fix(math.bignumber(3.212)), math.bignumber(3))
|
1373
|
+
assert.deepStrictEqual(
|
1374
|
+
math.fix(math.bignumber(3.212), 2),
|
1375
|
+
math.bignumber(3.21)
|
1376
|
+
)
|
1377
|
+
assert.deepStrictEqual(
|
1378
|
+
math.fix(math.bignumber(3.212), math.bignumber(2)),
|
1379
|
+
math.bignumber(3.21)
|
1380
|
+
)
|
1381
|
+
|
1382
|
+
// fraction input
|
1383
|
+
assert.deepStrictEqual(math.fix(math.fraction(44, 7)), math.fraction(6))
|
1384
|
+
assert.deepStrictEqual(math.fix(math.fraction(-44, 7)), math.fraction(-6))
|
1385
|
+
assert.deepStrictEqual(
|
1386
|
+
math.fix(math.fraction(44, 7), 2),
|
1387
|
+
math.fraction(628, 100)
|
1388
|
+
)
|
1389
|
+
assert.deepStrictEqual(
|
1390
|
+
math.fix(math.fraction(44, 7), math.bignumber(2)),
|
1391
|
+
math.fraction(628, 100)
|
1392
|
+
)
|
1393
|
+
|
1394
|
+
// Complex input
|
1395
|
+
const c = math.complex(3.24, -2.71)
|
1396
|
+
assert.deepStrictEqual(math.fix(c), math.complex(3, -2))
|
1397
|
+
assert.deepStrictEqual(math.fix(c, 1), math.complex(3.2, -2.7))
|
1398
|
+
assert.deepStrictEqual(
|
1399
|
+
math.fix(c, math.bignumber(1)),
|
1400
|
+
math.complex(3.2, -2.7)
|
1401
|
+
)
|
1402
|
+
|
1403
|
+
// array input
|
1404
|
+
assert.deepStrictEqual(math.fix([3.2, 3.8, -4.7]), [3, 3, -4])
|
1405
|
+
assert.deepStrictEqual(math.fix([3.21, 3.82, -4.71], 1), [3.2, 3.8, -4.7])
|
1406
|
+
assert.deepStrictEqual(
|
1407
|
+
math.fix([3.21, 3.82, -4.71], math.bignumber(1)),
|
1408
|
+
math.bignumber([3.2, 3.8, -4.7])
|
1409
|
+
)
|
1410
|
+
|
1411
|
+
// numeric input, array or matrix of decimals
|
1412
|
+
const numFixed: math.MathArray = math.fix(math.tau, [2, 3])
|
1413
|
+
assert.deepStrictEqual(numFixed, [6.28, 6.283])
|
1414
|
+
const bigFixed: math.Matrix = math.fix(
|
1415
|
+
math.bignumber(6.28318),
|
1416
|
+
math.matrix([2, 3])
|
1417
|
+
)
|
1418
|
+
assert.deepStrictEqual(bigFixed, math.matrix(math.bignumber([6.28, 6.283])))
|
1419
|
+
assert.deepStrictEqual(math.fix(math.fraction(44, 7), [2, 3]), [
|
1420
|
+
math.fraction(628, 100),
|
1421
|
+
math.fraction(6285, 1000),
|
1422
|
+
])
|
1423
|
+
|
1424
|
+
// @ts-expect-error ... verify fix(array, array) throws an error (for now)
|
1425
|
+
assert.throws(() => math.fix([3.21, 3.82], [1, 2]), TypeError)
|
448
1426
|
}
|
449
1427
|
|
450
1428
|
/*
|
451
1429
|
Function floor examples
|
452
1430
|
*/
|
453
1431
|
{
|
454
|
-
const math = create(all, {})
|
1432
|
+
const math = create(all, {})
|
455
1433
|
|
456
1434
|
// number input
|
457
|
-
math.floor(3.2)
|
458
|
-
math.floor(-4.2)
|
1435
|
+
assert.strictEqual(math.floor(3.2), 3)
|
1436
|
+
assert.strictEqual(math.floor(-4.2), -5)
|
459
1437
|
|
460
1438
|
// number input
|
461
1439
|
// roundoff result to 2 decimals
|
462
|
-
math.floor(3.212, 2)
|
463
|
-
|
1440
|
+
assert.strictEqual(math.floor(3.212, 2), 3.21)
|
1441
|
+
assert.deepStrictEqual(
|
1442
|
+
math.floor(3.212, math.bignumber(2)),
|
1443
|
+
math.bignumber(3.21)
|
1444
|
+
)
|
1445
|
+
assert.strictEqual(math.floor(-4.212, 2), -4.22)
|
1446
|
+
|
1447
|
+
// bignumber input
|
1448
|
+
assert.deepStrictEqual(math.floor(math.bignumber(3.212)), math.bignumber(3))
|
1449
|
+
assert.deepStrictEqual(
|
1450
|
+
math.floor(math.bignumber(3.212), 2),
|
1451
|
+
math.bignumber(3.21)
|
1452
|
+
)
|
1453
|
+
assert.deepStrictEqual(
|
1454
|
+
math.floor(math.bignumber(3.212), math.bignumber(2)),
|
1455
|
+
math.bignumber(3.21)
|
1456
|
+
)
|
1457
|
+
|
1458
|
+
// fraction input
|
1459
|
+
assert.deepStrictEqual(math.floor(math.fraction(44, 7)), math.fraction(6))
|
1460
|
+
assert.deepStrictEqual(math.floor(math.fraction(-44, 7)), math.fraction(-7))
|
1461
|
+
assert.deepStrictEqual(
|
1462
|
+
math.floor(math.fraction(44, 7), 2),
|
1463
|
+
math.fraction(628, 100)
|
1464
|
+
)
|
1465
|
+
assert.deepStrictEqual(
|
1466
|
+
math.floor(math.fraction(44, 7), math.bignumber(2)),
|
1467
|
+
math.fraction(628, 100)
|
1468
|
+
)
|
464
1469
|
|
465
1470
|
// Complex input
|
466
|
-
const c = math.complex(3.24, -2.71)
|
467
|
-
math.floor(c)
|
468
|
-
math.floor(c, 1)
|
1471
|
+
const c = math.complex(3.24, -2.71)
|
1472
|
+
assert.deepStrictEqual(math.floor(c), math.complex(3, -3))
|
1473
|
+
assert.deepStrictEqual(math.floor(c, 1), math.complex(3.2, -2.8))
|
1474
|
+
assert.deepStrictEqual(
|
1475
|
+
math.floor(c, math.bignumber(1)),
|
1476
|
+
math.complex(3.2, -2.8)
|
1477
|
+
)
|
1478
|
+
|
1479
|
+
// array input
|
1480
|
+
assert.deepStrictEqual(math.floor([3.2, 3.8, -4.7]), [3, 3, -5])
|
1481
|
+
assert.deepStrictEqual(math.floor([3.21, 3.82, -4.71], 1), [3.2, 3.8, -4.8])
|
1482
|
+
assert.deepStrictEqual(
|
1483
|
+
math.floor([3.21, 3.82, -4.71], math.bignumber(1)),
|
1484
|
+
math.bignumber([3.2, 3.8, -4.8])
|
1485
|
+
)
|
1486
|
+
|
1487
|
+
// numeric input, array or matrix of decimals
|
1488
|
+
const numFloored: math.MathArray = math.floor(math.tau, [2, 3])
|
1489
|
+
assert.deepStrictEqual(numFloored, [6.28, 6.283])
|
1490
|
+
const bigFloored: math.Matrix = math.floor(
|
1491
|
+
math.bignumber(6.28318),
|
1492
|
+
math.matrix([2, 3])
|
1493
|
+
)
|
1494
|
+
assert.deepStrictEqual(bigFloored, math.matrix(math.bignumber([6.28, 6.283])))
|
1495
|
+
assert.deepStrictEqual(math.floor(math.fraction(44, 7), [2, 3]), [
|
1496
|
+
math.fraction(628, 100),
|
1497
|
+
math.fraction(6285, 1000),
|
1498
|
+
])
|
1499
|
+
|
1500
|
+
// @ts-expect-error ... verify floor(array, array) throws an error (for now)
|
1501
|
+
assert.throws(() => math.floor([3.21, 3.82], [1, 2]), TypeError)
|
1502
|
+
}
|
1503
|
+
|
1504
|
+
/*
|
1505
|
+
Function round examples
|
1506
|
+
*/
|
1507
|
+
{
|
1508
|
+
const math = create(all, {})
|
1509
|
+
|
1510
|
+
// number input
|
1511
|
+
assert.strictEqual(math.round(3.2), 3)
|
1512
|
+
assert.strictEqual(math.round(-4.2), -4)
|
469
1513
|
|
470
|
-
//
|
471
|
-
|
472
|
-
math.
|
1514
|
+
// number input
|
1515
|
+
// roundoff result to 2 decimals
|
1516
|
+
assert.strictEqual(math.round(3.212, 2), 3.21)
|
1517
|
+
assert.deepStrictEqual(
|
1518
|
+
math.round(3.212, math.bignumber(2)),
|
1519
|
+
math.bignumber(3.21)
|
1520
|
+
)
|
1521
|
+
assert.strictEqual(math.round(-4.212, 2), -4.21)
|
1522
|
+
|
1523
|
+
// bignumber input
|
1524
|
+
assert.deepStrictEqual(math.round(math.bignumber(3.212)), math.bignumber(3))
|
1525
|
+
assert.deepStrictEqual(
|
1526
|
+
math.round(math.bignumber(3.212), 2),
|
1527
|
+
math.bignumber(3.21)
|
1528
|
+
)
|
1529
|
+
assert.deepStrictEqual(
|
1530
|
+
math.round(math.bignumber(3.212), math.bignumber(2)),
|
1531
|
+
math.bignumber(3.21)
|
1532
|
+
)
|
1533
|
+
|
1534
|
+
// fraction input
|
1535
|
+
assert.deepStrictEqual(math.round(math.fraction(44, 7)), math.fraction(6))
|
1536
|
+
assert.deepStrictEqual(math.round(math.fraction(-44, 7)), math.fraction(-6))
|
1537
|
+
assert.deepStrictEqual(
|
1538
|
+
math.round(math.fraction(44, 7), 2),
|
1539
|
+
math.fraction(629, 100)
|
1540
|
+
)
|
1541
|
+
assert.deepStrictEqual(
|
1542
|
+
math.round(math.fraction(44, 7), math.bignumber(2)),
|
1543
|
+
math.fraction(629, 100)
|
1544
|
+
)
|
1545
|
+
|
1546
|
+
// Complex input
|
1547
|
+
const c = math.complex(3.24, -2.71)
|
1548
|
+
assert.deepStrictEqual(math.round(c), math.complex(3, -3))
|
1549
|
+
assert.deepStrictEqual(math.round(c, 1), math.complex(3.2, -2.7))
|
1550
|
+
assert.deepStrictEqual(
|
1551
|
+
math.round(c, math.bignumber(1)),
|
1552
|
+
math.complex(3.2, -2.7)
|
1553
|
+
)
|
1554
|
+
|
1555
|
+
// array input
|
1556
|
+
assert.deepStrictEqual(math.round([3.2, 3.8, -4.7]), [3, 4, -5])
|
1557
|
+
assert.deepStrictEqual(math.round([3.21, 3.82, -4.71], 1), [3.2, 3.8, -4.7])
|
1558
|
+
assert.deepStrictEqual(
|
1559
|
+
math.round([3.21, 3.82, -4.71], math.bignumber(1)),
|
1560
|
+
math.bignumber([3.2, 3.8, -4.7])
|
1561
|
+
)
|
1562
|
+
|
1563
|
+
// numeric input, array or matrix of decimals
|
1564
|
+
const numRounded: math.MathArray = math.round(math.tau, [2, 3])
|
1565
|
+
assert.deepStrictEqual(numRounded, [6.28, 6.283])
|
1566
|
+
const bigRounded: math.Matrix = math.round(
|
1567
|
+
math.bignumber(6.28318),
|
1568
|
+
math.matrix([2, 3])
|
1569
|
+
)
|
1570
|
+
assert.deepStrictEqual(bigRounded, math.matrix(math.bignumber([6.28, 6.283])))
|
1571
|
+
assert.deepStrictEqual(math.round(math.fraction(44, 7), [2, 3]), [
|
1572
|
+
math.fraction(629, 100),
|
1573
|
+
math.fraction(6286, 1000),
|
1574
|
+
])
|
1575
|
+
|
1576
|
+
// @ts-expect-error ... verify round(array, array) throws an error (for now)
|
1577
|
+
assert.throws(() => math.round([3.21, 3.82], [1, 2]), TypeError)
|
473
1578
|
}
|
474
1579
|
|
1580
|
+
/*
|
1581
|
+
Clone examples
|
1582
|
+
*/
|
1583
|
+
{
|
1584
|
+
const math = create(all, {})
|
1585
|
+
expectTypeOf(
|
1586
|
+
new math.OperatorNode('/', 'divide', [
|
1587
|
+
new math.ConstantNode(3),
|
1588
|
+
new math.SymbolNode('x'),
|
1589
|
+
])
|
1590
|
+
).toMatchTypeOf<OperatorNode<'/', 'divide', (ConstantNode | SymbolNode)[]>>()
|
1591
|
+
|
1592
|
+
expectTypeOf(new math.ConstantNode(1).clone()).toMatchTypeOf<ConstantNode>()
|
1593
|
+
expectTypeOf(
|
1594
|
+
new math.OperatorNode('*', 'multiply', [
|
1595
|
+
new math.ConstantNode(3),
|
1596
|
+
new math.SymbolNode('x'),
|
1597
|
+
]).clone()
|
1598
|
+
).toMatchTypeOf<
|
1599
|
+
OperatorNode<'*', 'multiply', (ConstantNode | SymbolNode)[]>
|
1600
|
+
>()
|
1601
|
+
|
1602
|
+
expectTypeOf(
|
1603
|
+
new math.ConstantNode(1).cloneDeep()
|
1604
|
+
).toMatchTypeOf<ConstantNode>()
|
1605
|
+
expectTypeOf(
|
1606
|
+
new math.OperatorNode('+', 'unaryPlus', [
|
1607
|
+
new math.ConstantNode(3),
|
1608
|
+
new math.SymbolNode('x'),
|
1609
|
+
]).cloneDeep()
|
1610
|
+
).toMatchTypeOf<
|
1611
|
+
OperatorNode<'+', 'unaryPlus', (ConstantNode | SymbolNode)[]>
|
1612
|
+
>()
|
1613
|
+
|
1614
|
+
expectTypeOf(
|
1615
|
+
math.clone(new math.ConstantNode(1))
|
1616
|
+
).toMatchTypeOf<ConstantNode>()
|
1617
|
+
}
|
475
1618
|
|
476
1619
|
/*
|
477
1620
|
JSON serialization/deserialization
|
478
1621
|
*/
|
479
1622
|
{
|
480
|
-
const math = create(all, {})
|
1623
|
+
const math = create(all, {})
|
481
1624
|
|
482
1625
|
const data = {
|
483
1626
|
bigNumber: math.bignumber('1.5'),
|
484
|
-
}
|
485
|
-
const stringified = JSON.stringify(data)
|
486
|
-
const parsed = JSON.parse(stringified, math.
|
487
|
-
parsed.bigNumber
|
1627
|
+
}
|
1628
|
+
const stringified = JSON.stringify(data)
|
1629
|
+
const parsed = JSON.parse(stringified, math.reviver)
|
1630
|
+
assert.deepStrictEqual(parsed.bigNumber, math.bignumber('1.5'))
|
488
1631
|
}
|
489
1632
|
|
490
1633
|
/*
|
@@ -493,14 +1636,14 @@ Extend functionality with import
|
|
493
1636
|
|
494
1637
|
declare module 'mathjs' {
|
495
1638
|
interface MathJsStatic {
|
496
|
-
testFun(): number
|
497
|
-
value: number
|
1639
|
+
testFun(): number
|
1640
|
+
value: number
|
498
1641
|
}
|
499
1642
|
}
|
500
1643
|
|
501
1644
|
{
|
502
|
-
const math = create(all, {})
|
503
|
-
const testFun = () => 5
|
1645
|
+
const math = create(all, {})
|
1646
|
+
const testFun = () => 5
|
504
1647
|
|
505
1648
|
math.import(
|
506
1649
|
{
|
@@ -508,26 +1651,84 @@ declare module 'mathjs' {
|
|
508
1651
|
value: 10,
|
509
1652
|
},
|
510
1653
|
{}
|
511
|
-
)
|
1654
|
+
)
|
512
1655
|
|
513
|
-
math.testFun()
|
1656
|
+
math.testFun()
|
514
1657
|
|
515
|
-
|
1658
|
+
expectTypeOf(math.testFun()).toMatchTypeOf<number>()
|
1659
|
+
|
1660
|
+
expectTypeOf(
|
1661
|
+
math.import({
|
1662
|
+
myvalue: 42,
|
1663
|
+
myFunc: (name: string) => `myFunc ${name}`,
|
1664
|
+
})
|
1665
|
+
).toMatchTypeOf<void>()
|
1666
|
+
|
1667
|
+
expectTypeOf(
|
1668
|
+
math.import(
|
1669
|
+
{
|
1670
|
+
myvalue: 42,
|
1671
|
+
myFunc: (name: string) => `myFunc ${name}`,
|
1672
|
+
},
|
1673
|
+
{
|
1674
|
+
override: true,
|
1675
|
+
}
|
1676
|
+
)
|
1677
|
+
).toMatchTypeOf<void>()
|
1678
|
+
|
1679
|
+
expectTypeOf(
|
1680
|
+
math.import(
|
1681
|
+
{
|
1682
|
+
myvalue2: 42,
|
1683
|
+
},
|
1684
|
+
{
|
1685
|
+
silent: true,
|
1686
|
+
}
|
1687
|
+
)
|
1688
|
+
).toMatchTypeOf<void>()
|
1689
|
+
|
1690
|
+
expectTypeOf(
|
1691
|
+
math.import(
|
1692
|
+
{
|
1693
|
+
myvalue3: 42,
|
1694
|
+
},
|
1695
|
+
{
|
1696
|
+
wrap: true,
|
1697
|
+
}
|
1698
|
+
)
|
1699
|
+
).toMatchTypeOf<void>()
|
1700
|
+
|
1701
|
+
expectTypeOf(
|
1702
|
+
math.import({
|
1703
|
+
myvalue4: 42,
|
1704
|
+
})
|
1705
|
+
).toMatchTypeOf<void>()
|
1706
|
+
|
1707
|
+
expectTypeOf(
|
1708
|
+
math.import([
|
1709
|
+
{
|
1710
|
+
myvalue5: 42,
|
1711
|
+
},
|
1712
|
+
{
|
1713
|
+
myFunc2: (name: string) => `myFunc2 ${name}`,
|
1714
|
+
},
|
1715
|
+
])
|
1716
|
+
).toMatchTypeOf<void>()
|
516
1717
|
}
|
517
1718
|
|
518
1719
|
/*
|
519
1720
|
Renamed functions from v5 => v6
|
520
1721
|
*/
|
521
1722
|
{
|
522
|
-
const math = create(all, {})
|
523
|
-
math.typeOf(1)
|
524
|
-
math.variance([1, 2, 3, 4])
|
525
|
-
math.evaluate('1 + 2')
|
1723
|
+
const math = create(all, {})
|
1724
|
+
math.typeOf(1)
|
1725
|
+
math.variance([1, 2, 3, 4])
|
1726
|
+
math.evaluate('1 + 2')
|
526
1727
|
|
527
1728
|
// chained operations
|
528
|
-
math.chain(3).typeOf().done()
|
529
|
-
math.chain([1, 2, 3]).variance().done()
|
530
|
-
math.chain('1 + 2').evaluate().done()
|
1729
|
+
math.chain(3).typeOf().done()
|
1730
|
+
math.chain([1, 2, 3]).variance().done()
|
1731
|
+
math.chain('1 + 2').evaluate().done()
|
531
1732
|
}
|
532
1733
|
|
533
1734
|
/*
|
@@ -535,20 +1736,20 @@ Factory Test
|
|
535
1736
|
*/
|
536
1737
|
{
|
537
1738
|
// create a factory function
|
538
|
-
const name = 'negativeSquare'
|
539
|
-
const dependencies: MathJsFunctionName[] = ['multiply', 'unaryMinus']
|
1739
|
+
const name = 'negativeSquare'
|
1740
|
+
const dependencies: MathJsFunctionName[] = ['multiply', 'unaryMinus']
|
540
1741
|
const createNegativeSquare = factory(name, dependencies, (injected) => {
|
541
|
-
const { multiply, unaryMinus } = injected
|
1742
|
+
const { multiply, unaryMinus } = injected
|
542
1743
|
return function negativeSquare(x: number): number {
|
543
|
-
return unaryMinus(multiply(x, x))
|
544
|
-
}
|
545
|
-
})
|
1744
|
+
return unaryMinus(multiply(x, x))
|
1745
|
+
}
|
1746
|
+
})
|
546
1747
|
|
547
1748
|
// create an instance of the function yourself:
|
548
|
-
const multiply = (a: number, b: number) => a * b
|
549
|
-
const unaryMinus = (a: number) => -a
|
550
|
-
const negativeSquare = createNegativeSquare({ multiply, unaryMinus })
|
551
|
-
negativeSquare(3)
|
1749
|
+
const multiply = (a: number, b: number) => a * b
|
1750
|
+
const unaryMinus = (a: number) => -a
|
1751
|
+
const negativeSquare = createNegativeSquare({ multiply, unaryMinus })
|
1752
|
+
negativeSquare(3)
|
552
1753
|
}
|
553
1754
|
|
554
1755
|
/**
|
@@ -558,7 +1759,7 @@ Factory Test
|
|
558
1759
|
{
|
559
1760
|
const config = {
|
560
1761
|
// optionally, you can specify configuration
|
561
|
-
}
|
1762
|
+
}
|
562
1763
|
|
563
1764
|
// Create just the functions we need
|
564
1765
|
const { fraction, add, divide, format } = create(
|
@@ -569,15 +1770,15 @@ Factory Test
|
|
569
1770
|
formatDependencies,
|
570
1771
|
},
|
571
1772
|
config
|
572
|
-
)
|
1773
|
+
)
|
573
1774
|
|
574
1775
|
// Use the created functions
|
575
|
-
const a = fraction(1, 3)
|
576
|
-
const b = fraction(3, 7)
|
577
|
-
const c = add(a, b)
|
578
|
-
const d = divide(a, b)
|
579
|
-
|
580
|
-
|
1776
|
+
const a = fraction(1, 3)
|
1777
|
+
const b = fraction(3, 7)
|
1778
|
+
const c = add(a, b)
|
1779
|
+
const d = divide(a, b)
|
1780
|
+
assert.strictEqual(format(c), '16/21')
|
1781
|
+
assert.strictEqual(format(d), '7/9')
|
581
1782
|
}
|
582
1783
|
|
583
1784
|
/**
|
@@ -585,15 +1786,15 @@ Factory Test
|
|
585
1786
|
* https://mathjs.org/docs/expressions/customization.html#customize-supported-characters
|
586
1787
|
*/
|
587
1788
|
{
|
588
|
-
const math = create(all, {})
|
589
|
-
const isAlphaOriginal = math.parse.isAlpha
|
1789
|
+
const math = create(all, {})
|
1790
|
+
const isAlphaOriginal = math.parse.isAlpha
|
590
1791
|
math.parse.isAlpha = (c, cPrev, cNext) => {
|
591
|
-
return isAlphaOriginal(c, cPrev, cNext) || c ===
|
592
|
-
}
|
1792
|
+
return isAlphaOriginal(c, cPrev, cNext) || c === '\u260E'
|
1793
|
+
}
|
593
1794
|
|
594
1795
|
// now we can use the \u260E (phone) character in expressions
|
595
|
-
const result = math.evaluate(
|
596
|
-
|
1796
|
+
const result = math.evaluate('\u260Efoo', { '\u260Efoo': 42 })
|
1797
|
+
assert.strictEqual(result, 42)
|
597
1798
|
}
|
598
1799
|
|
599
1800
|
/**
|
@@ -601,16 +1802,229 @@ Factory Test
|
|
601
1802
|
* https://mathjs.org/docs/reference/functions.html#utils-functions
|
602
1803
|
*/
|
603
1804
|
{
|
604
|
-
const math = create(all, {})
|
1805
|
+
const math = create(all, {})
|
605
1806
|
|
606
1807
|
// hasNumericValue function
|
607
|
-
math.hasNumericValue(2)
|
608
|
-
math.hasNumericValue('2')
|
609
|
-
math.isNumeric('2')
|
610
|
-
math.hasNumericValue(0)
|
611
|
-
math.hasNumericValue(math.bignumber(500))
|
612
|
-
math.hasNumericValue([2.3, 'foo', false])
|
613
|
-
|
614
|
-
|
1808
|
+
assert.strictEqual(math.hasNumericValue(2), true)
|
1809
|
+
assert.strictEqual(math.hasNumericValue('2'), true)
|
1810
|
+
assert.strictEqual(math.isNumeric('2'), false)
|
1811
|
+
assert.strictEqual(math.hasNumericValue(0), true)
|
1812
|
+
assert.strictEqual(math.hasNumericValue(math.bignumber(500)), true)
|
1813
|
+
assert.deepStrictEqual(math.hasNumericValue([2.3, 'foo', false]), [
|
1814
|
+
true,
|
1815
|
+
false,
|
1816
|
+
true,
|
1817
|
+
])
|
1818
|
+
assert.strictEqual(math.hasNumericValue(math.fraction(4)), true)
|
1819
|
+
assert.strictEqual(math.hasNumericValue(math.complex('2-4i')), false)
|
1820
|
+
}
|
1821
|
+
|
1822
|
+
/**
|
1823
|
+
* src/util/is functions
|
1824
|
+
*/
|
1825
|
+
{
|
1826
|
+
const math = create(all, {})
|
1827
|
+
|
1828
|
+
type IsFunc = (x: unknown) => boolean
|
1829
|
+
const isFuncs: IsFunc[] = [
|
1830
|
+
math.isNumber,
|
1831
|
+
math.isBigNumber,
|
1832
|
+
math.isComplex,
|
1833
|
+
math.isFraction,
|
1834
|
+
math.isUnit,
|
1835
|
+
math.isString,
|
1836
|
+
math.isArray,
|
1837
|
+
math.isMatrix,
|
1838
|
+
math.isCollection,
|
1839
|
+
math.isDenseMatrix,
|
1840
|
+
math.isSparseMatrix,
|
1841
|
+
math.isRange,
|
1842
|
+
math.isIndex,
|
1843
|
+
math.isBoolean,
|
1844
|
+
math.isResultSet,
|
1845
|
+
math.isHelp,
|
1846
|
+
math.isFunction,
|
1847
|
+
math.isDate,
|
1848
|
+
math.isRegExp,
|
1849
|
+
math.isObject,
|
1850
|
+
math.isNull,
|
1851
|
+
math.isUndefined,
|
1852
|
+
math.isAccessorNode,
|
1853
|
+
math.isArrayNode,
|
1854
|
+
math.isAssignmentNode,
|
1855
|
+
math.isBlockNode,
|
1856
|
+
math.isConditionalNode,
|
1857
|
+
math.isConstantNode,
|
1858
|
+
math.isFunctionAssignmentNode,
|
1859
|
+
math.isFunctionNode,
|
1860
|
+
math.isIndexNode,
|
1861
|
+
math.isNode,
|
1862
|
+
math.isObjectNode,
|
1863
|
+
math.isOperatorNode,
|
1864
|
+
math.isParenthesisNode,
|
1865
|
+
math.isRangeNode,
|
1866
|
+
math.isSymbolNode,
|
1867
|
+
math.isChain,
|
1868
|
+
]
|
1869
|
+
|
1870
|
+
isFuncs.forEach((f) => {
|
1871
|
+
const result = f(1)
|
1872
|
+
const isResultBoolean = result === true || result === false
|
1873
|
+
assert.ok(isResultBoolean)
|
1874
|
+
})
|
1875
|
+
|
1876
|
+
// Check guards do type refinement
|
1877
|
+
|
1878
|
+
let x: unknown
|
1879
|
+
|
1880
|
+
if (math.isNumber(x)) {
|
1881
|
+
expectTypeOf(x).toMatchTypeOf<number>()
|
1882
|
+
}
|
1883
|
+
if (math.isBigNumber(x)) {
|
1884
|
+
expectTypeOf(x).toMatchTypeOf<math.BigNumber>()
|
1885
|
+
}
|
1886
|
+
if (math.isComplex(x)) {
|
1887
|
+
expectTypeOf(x).toMatchTypeOf<math.Complex>()
|
1888
|
+
}
|
1889
|
+
if (math.isFraction(x)) {
|
1890
|
+
expectTypeOf(x).toMatchTypeOf<math.Fraction>()
|
1891
|
+
}
|
1892
|
+
if (math.isUnit(x)) {
|
1893
|
+
expectTypeOf(x).toMatchTypeOf<math.Unit>()
|
1894
|
+
}
|
1895
|
+
if (math.isString(x)) {
|
1896
|
+
expectTypeOf(x).toMatchTypeOf<string>()
|
1897
|
+
}
|
1898
|
+
if (math.isArray(x)) {
|
1899
|
+
expectTypeOf(x).toMatchTypeOf<unknown[]>()
|
1900
|
+
}
|
1901
|
+
if (math.isMatrix(x)) {
|
1902
|
+
expectTypeOf(x).toMatchTypeOf<math.Matrix>()
|
1903
|
+
}
|
1904
|
+
if (math.isDenseMatrix(x)) {
|
1905
|
+
expectTypeOf(x).toMatchTypeOf<math.Matrix>()
|
1906
|
+
}
|
1907
|
+
if (math.isSparseMatrix(x)) {
|
1908
|
+
expectTypeOf(x).toMatchTypeOf<math.Matrix>()
|
1909
|
+
}
|
1910
|
+
if (math.isIndex(x)) {
|
1911
|
+
expectTypeOf(x).toMatchTypeOf<math.Index>()
|
1912
|
+
}
|
1913
|
+
if (math.isBoolean(x)) {
|
1914
|
+
expectTypeOf(x).toMatchTypeOf<boolean>()
|
1915
|
+
}
|
1916
|
+
if (math.isHelp(x)) {
|
1917
|
+
expectTypeOf(x).toMatchTypeOf<math.Help>()
|
1918
|
+
}
|
1919
|
+
if (math.isDate(x)) {
|
1920
|
+
expectTypeOf(x).toMatchTypeOf<Date>()
|
1921
|
+
}
|
1922
|
+
if (math.isRegExp(x)) {
|
1923
|
+
expectTypeOf(x).toMatchTypeOf<RegExp>()
|
1924
|
+
}
|
1925
|
+
if (math.isNull(x)) {
|
1926
|
+
expectTypeOf(x).toMatchTypeOf<null>()
|
1927
|
+
}
|
1928
|
+
if (math.isUndefined(x)) {
|
1929
|
+
expectTypeOf(x).toMatchTypeOf<undefined>()
|
1930
|
+
}
|
1931
|
+
|
1932
|
+
if (math.isAccessorNode(x)) {
|
1933
|
+
expectTypeOf(x).toMatchTypeOf<math.AccessorNode>()
|
1934
|
+
}
|
1935
|
+
if (math.isArrayNode(x)) {
|
1936
|
+
expectTypeOf(x).toMatchTypeOf<math.ArrayNode>()
|
1937
|
+
}
|
1938
|
+
if (math.isAssignmentNode(x)) {
|
1939
|
+
expectTypeOf(x).toMatchTypeOf<math.AssignmentNode>()
|
1940
|
+
}
|
1941
|
+
if (math.isBlockNode(x)) {
|
1942
|
+
expectTypeOf(x).toMatchTypeOf<math.BlockNode>()
|
1943
|
+
}
|
1944
|
+
if (math.isConditionalNode(x)) {
|
1945
|
+
expectTypeOf(x).toMatchTypeOf<math.ConditionalNode>()
|
1946
|
+
}
|
1947
|
+
if (math.isConstantNode(x)) {
|
1948
|
+
expectTypeOf(x).toMatchTypeOf<math.ConstantNode>()
|
1949
|
+
}
|
1950
|
+
if (math.isFunctionAssignmentNode(x)) {
|
1951
|
+
expectTypeOf(x).toMatchTypeOf<math.FunctionAssignmentNode>()
|
1952
|
+
}
|
1953
|
+
if (math.isFunctionNode(x)) {
|
1954
|
+
expectTypeOf(x).toMatchTypeOf<math.FunctionNode>()
|
1955
|
+
}
|
1956
|
+
if (math.isIndexNode(x)) {
|
1957
|
+
expectTypeOf(x).toMatchTypeOf<math.IndexNode>()
|
1958
|
+
}
|
1959
|
+
if (math.isNode(x)) {
|
1960
|
+
expectTypeOf(x).toMatchTypeOf<math.MathNodeCommon>()
|
1961
|
+
}
|
1962
|
+
if (math.isNode(x)) {
|
1963
|
+
expectTypeOf(x).toMatchTypeOf<math.MathNodeCommon>()
|
1964
|
+
}
|
1965
|
+
if (math.isObjectNode(x)) {
|
1966
|
+
expectTypeOf(x).toMatchTypeOf<math.ObjectNode>()
|
1967
|
+
}
|
1968
|
+
if (math.isOperatorNode(x)) {
|
1969
|
+
expectTypeOf(x).toMatchTypeOf<
|
1970
|
+
OperatorNode<OperatorNodeOp, OperatorNodeFn, MathNode[]>
|
1971
|
+
>()
|
1972
|
+
}
|
1973
|
+
if (math.isParenthesisNode(x)) {
|
1974
|
+
expectTypeOf(x).toMatchTypeOf<math.ParenthesisNode>()
|
1975
|
+
}
|
1976
|
+
if (math.isRangeNode(x)) {
|
1977
|
+
expectTypeOf(x).toMatchTypeOf<math.RangeNode>()
|
1978
|
+
}
|
1979
|
+
if (math.isSymbolNode(x)) {
|
1980
|
+
expectTypeOf(x).toMatchTypeOf<math.SymbolNode>()
|
1981
|
+
}
|
1982
|
+
if (math.isChain(x)) {
|
1983
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
1984
|
+
expectTypeOf(x).toMatchTypeOf<math.MathJsChain<any>>()
|
1985
|
+
}
|
1986
|
+
}
|
1987
|
+
|
1988
|
+
/*
|
1989
|
+
Probability function examples
|
1990
|
+
*/
|
1991
|
+
{
|
1992
|
+
const math = create(all, {})
|
1993
|
+
|
1994
|
+
expectTypeOf(math.lgamma(1.5)).toMatchTypeOf<number>()
|
1995
|
+
expectTypeOf(
|
1996
|
+
math.lgamma(math.complex(1.5, -1.5))
|
1997
|
+
).toMatchTypeOf<math.Complex>()
|
615
1998
|
}
|
616
1999
|
|
2000
|
+
/*
|
2001
|
+
toTex examples
|
2002
|
+
*/
|
2003
|
+
|
2004
|
+
{
|
2005
|
+
const math = create(all, {})
|
2006
|
+
|
2007
|
+
expectTypeOf(math.parse('a/b').toTex()).toMatchTypeOf<string>()
|
2008
|
+
|
2009
|
+
// TODO add proper types for toTex options
|
2010
|
+
expectTypeOf(
|
2011
|
+
math.parse('a/b').toTex({
|
2012
|
+
a: '123',
|
2013
|
+
})
|
2014
|
+
).toMatchTypeOf<string>()
|
2015
|
+
}
|
2016
|
+
|
2017
|
+
/*
|
2018
|
+
Resolve examples
|
2019
|
+
*/
|
2020
|
+
{
|
2021
|
+
const math = create(all, {})
|
2022
|
+
|
2023
|
+
expectTypeOf(math.resolve(math.parse('x + y'))).toMatchTypeOf<MathNode>()
|
2024
|
+
expectTypeOf(
|
2025
|
+
math.resolve(math.parse('x + y'), { x: 0 })
|
2026
|
+
).toMatchTypeOf<MathNode>()
|
2027
|
+
expectTypeOf(math.resolve([math.parse('x + y')], { x: 0 })).toMatchTypeOf<
|
2028
|
+
MathNode[]
|
2029
|
+
>()
|
2030
|
+
}
|