mathjs 10.1.1 → 10.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/HISTORY.md +43 -0
- package/docs/expressions/algebra.md +27 -0
- package/docs/expressions/syntax.md +31 -2
- package/docs/reference/functions/abs.md +6 -0
- package/docs/reference/functions/acos.md +6 -0
- package/docs/reference/functions/acosh.md +6 -0
- package/docs/reference/functions/acot.md +6 -0
- package/docs/reference/functions/acoth.md +6 -0
- package/docs/reference/functions/acsc.md +6 -0
- package/docs/reference/functions/acsch.md +6 -0
- package/docs/reference/functions/add.md +6 -0
- package/docs/reference/functions/and.md +6 -0
- package/docs/reference/functions/apply.md +6 -0
- package/docs/reference/functions/arg.md +6 -0
- package/docs/reference/functions/asec.md +6 -0
- package/docs/reference/functions/asech.md +6 -0
- package/docs/reference/functions/asin.md +6 -0
- package/docs/reference/functions/asinh.md +6 -0
- package/docs/reference/functions/atan.md +6 -0
- package/docs/reference/functions/atan2.md +6 -0
- package/docs/reference/functions/atanh.md +6 -0
- package/docs/reference/functions/bellNumbers.md +6 -0
- package/docs/reference/functions/bin.md +6 -0
- package/docs/reference/functions/bitAnd.md +6 -0
- package/docs/reference/functions/bitNot.md +6 -0
- package/docs/reference/functions/bitOr.md +6 -0
- package/docs/reference/functions/bitXor.md +6 -0
- package/docs/reference/functions/catalan.md +6 -0
- package/docs/reference/functions/cbrt.md +6 -0
- package/docs/reference/functions/ceil.md +6 -0
- package/docs/reference/functions/clone.md +6 -0
- package/docs/reference/functions/column.md +6 -0
- package/docs/reference/functions/combinations.md +6 -0
- package/docs/reference/functions/combinationsWithRep.md +6 -0
- package/docs/reference/functions/compare.md +6 -0
- package/docs/reference/functions/compareNatural.md +6 -0
- package/docs/reference/functions/compareText.md +6 -0
- package/docs/reference/functions/compile.md +6 -0
- package/docs/reference/functions/composition.md +6 -0
- package/docs/reference/functions/concat.md +6 -0
- package/docs/reference/functions/conj.md +6 -0
- package/docs/reference/functions/cos.md +6 -0
- package/docs/reference/functions/cosh.md +6 -0
- package/docs/reference/functions/cot.md +6 -0
- package/docs/reference/functions/coth.md +6 -0
- package/docs/reference/functions/count.md +6 -0
- package/docs/reference/functions/cross.md +6 -0
- package/docs/reference/functions/csc.md +6 -0
- package/docs/reference/functions/csch.md +6 -0
- package/docs/reference/functions/ctranspose.md +6 -0
- package/docs/reference/functions/cube.md +6 -0
- package/docs/reference/functions/cumsum.md +57 -0
- package/docs/reference/functions/deepEqual.md +6 -0
- package/docs/reference/functions/derivative.md +6 -0
- package/docs/reference/functions/det.md +6 -0
- package/docs/reference/functions/diag.md +6 -0
- package/docs/reference/functions/diff.md +6 -0
- package/docs/reference/functions/distance.md +6 -0
- package/docs/reference/functions/divide.md +6 -0
- package/docs/reference/functions/dot.md +6 -0
- package/docs/reference/functions/dotDivide.md +6 -0
- package/docs/reference/functions/dotMultiply.md +6 -0
- package/docs/reference/functions/dotPow.md +6 -0
- package/docs/reference/functions/eigs.md +6 -0
- package/docs/reference/functions/equal.md +6 -0
- package/docs/reference/functions/equalText.md +6 -0
- package/docs/reference/functions/erf.md +6 -0
- package/docs/reference/functions/evaluate.md +6 -0
- package/docs/reference/functions/exp.md +6 -0
- package/docs/reference/functions/expm.md +6 -0
- package/docs/reference/functions/expm1.md +6 -0
- package/docs/reference/functions/factorial.md +6 -0
- package/docs/reference/functions/filter.md +6 -0
- package/docs/reference/functions/fix.md +6 -0
- package/docs/reference/functions/flatten.md +6 -0
- package/docs/reference/functions/floor.md +6 -0
- package/docs/reference/functions/forEach.md +6 -0
- package/docs/reference/functions/format.md +7 -1
- package/docs/reference/functions/gamma.md +6 -0
- package/docs/reference/functions/gcd.md +6 -0
- package/docs/reference/functions/getMatrixDataType.md +6 -0
- package/docs/reference/functions/hasNumericValue.md +6 -0
- package/docs/reference/functions/help.md +6 -0
- package/docs/reference/functions/hex.md +6 -0
- package/docs/reference/functions/hypot.md +6 -0
- package/docs/reference/functions/identity.md +6 -0
- package/docs/reference/functions/im.md +6 -0
- package/docs/reference/functions/intersect.md +6 -0
- package/docs/reference/functions/inv.md +6 -0
- package/docs/reference/functions/invmod.md +6 -0
- package/docs/reference/functions/isInteger.md +6 -0
- package/docs/reference/functions/isNaN.md +6 -0
- package/docs/reference/functions/isNegative.md +6 -0
- package/docs/reference/functions/isNumeric.md +6 -0
- package/docs/reference/functions/isPositive.md +6 -0
- package/docs/reference/functions/isPrime.md +6 -0
- package/docs/reference/functions/isZero.md +6 -0
- package/docs/reference/functions/kldivergence.md +6 -0
- package/docs/reference/functions/kron.md +6 -0
- package/docs/reference/functions/larger.md +6 -0
- package/docs/reference/functions/largerEq.md +6 -0
- package/docs/reference/functions/lcm.md +6 -0
- package/docs/reference/functions/leafCount.md +52 -0
- package/docs/reference/functions/leftShift.md +6 -0
- package/docs/reference/functions/log.md +6 -0
- package/docs/reference/functions/log10.md +6 -0
- package/docs/reference/functions/log1p.md +6 -0
- package/docs/reference/functions/log2.md +6 -0
- package/docs/reference/functions/lsolve.md +6 -0
- package/docs/reference/functions/lsolveAll.md +6 -0
- package/docs/reference/functions/lup.md +6 -0
- package/docs/reference/functions/lusolve.md +6 -0
- package/docs/reference/functions/mad.md +6 -0
- package/docs/reference/functions/map.md +28 -5
- package/docs/reference/functions/matrixFromColumns.md +6 -0
- package/docs/reference/functions/matrixFromFunction.md +6 -0
- package/docs/reference/functions/matrixFromRows.md +6 -0
- package/docs/reference/functions/max.md +6 -0
- package/docs/reference/functions/mean.md +6 -0
- package/docs/reference/functions/median.md +6 -0
- package/docs/reference/functions/min.md +6 -0
- package/docs/reference/functions/mod.md +6 -0
- package/docs/reference/functions/mode.md +6 -0
- package/docs/reference/functions/multinomial.md +6 -0
- package/docs/reference/functions/multiply.md +6 -0
- package/docs/reference/functions/norm.md +6 -0
- package/docs/reference/functions/not.md +6 -0
- package/docs/reference/functions/nthRoot.md +6 -0
- package/docs/reference/functions/nthRoots.md +6 -0
- package/docs/reference/functions/numeric.md +6 -0
- package/docs/reference/functions/oct.md +6 -0
- package/docs/reference/functions/ones.md +6 -0
- package/docs/reference/functions/or.md +6 -0
- package/docs/reference/functions/parser.md +6 -0
- package/docs/reference/functions/partitionSelect.md +6 -0
- package/docs/reference/functions/permutations.md +6 -0
- package/docs/reference/functions/pickRandom.md +6 -0
- package/docs/reference/functions/pow.md +6 -0
- package/docs/reference/functions/print.md +6 -0
- package/docs/reference/functions/prod.md +6 -0
- package/docs/reference/functions/qr.md +6 -0
- package/docs/reference/functions/quantileSeq.md +6 -0
- package/docs/reference/functions/random.md +6 -0
- package/docs/reference/functions/randomInt.md +6 -0
- package/docs/reference/functions/range.md +6 -0
- package/docs/reference/functions/rationalize.md +7 -1
- package/docs/reference/functions/re.md +6 -0
- package/docs/reference/functions/reshape.md +7 -0
- package/docs/reference/functions/resize.md +6 -0
- package/docs/reference/functions/resolve.md +46 -0
- package/docs/reference/functions/rightArithShift.md +6 -0
- package/docs/reference/functions/rightLogShift.md +6 -0
- package/docs/reference/functions/rotate.md +6 -0
- package/docs/reference/functions/rotationMatrix.md +6 -0
- package/docs/reference/functions/round.md +6 -0
- package/docs/reference/functions/row.md +6 -0
- package/docs/reference/functions/sec.md +6 -0
- package/docs/reference/functions/sech.md +6 -0
- package/docs/reference/functions/setCartesian.md +6 -0
- package/docs/reference/functions/setDifference.md +6 -0
- package/docs/reference/functions/setDistinct.md +6 -0
- package/docs/reference/functions/setIntersect.md +6 -0
- package/docs/reference/functions/setIsSubset.md +6 -0
- package/docs/reference/functions/setMultiplicity.md +6 -0
- package/docs/reference/functions/setPowerset.md +6 -0
- package/docs/reference/functions/setSize.md +6 -0
- package/docs/reference/functions/setSymDifference.md +6 -0
- package/docs/reference/functions/setUnion.md +6 -0
- package/docs/reference/functions/sign.md +6 -0
- package/docs/reference/functions/simplify.md +43 -6
- package/docs/reference/functions/simplifyCore.md +50 -0
- package/docs/reference/functions/sin.md +6 -0
- package/docs/reference/functions/sinh.md +6 -0
- package/docs/reference/functions/size.md +6 -0
- package/docs/reference/functions/slu.md +6 -0
- package/docs/reference/functions/smaller.md +6 -0
- package/docs/reference/functions/smallerEq.md +6 -0
- package/docs/reference/functions/sort.md +6 -0
- package/docs/reference/functions/sqrt.md +6 -0
- package/docs/reference/functions/sqrtm.md +6 -0
- package/docs/reference/functions/square.md +6 -0
- package/docs/reference/functions/squeeze.md +6 -0
- package/docs/reference/functions/std.md +6 -0
- package/docs/reference/functions/stirlingS2.md +6 -0
- package/docs/reference/functions/subset.md +16 -2
- package/docs/reference/functions/subtract.md +6 -0
- package/docs/reference/functions/sum.md +8 -1
- package/docs/reference/functions/symbolicEqual.md +62 -0
- package/docs/reference/functions/tan.md +6 -0
- package/docs/reference/functions/tanh.md +6 -0
- package/docs/reference/functions/to.md +6 -0
- package/docs/reference/functions/trace.md +6 -0
- package/docs/reference/functions/transpose.md +6 -0
- package/docs/reference/functions/typeOf.md +6 -0
- package/docs/reference/functions/unaryMinus.md +6 -0
- package/docs/reference/functions/unaryPlus.md +6 -0
- package/docs/reference/functions/unequal.md +6 -0
- package/docs/reference/functions/usolve.md +6 -0
- package/docs/reference/functions/usolveAll.md +6 -0
- package/docs/reference/functions/variance.md +6 -0
- package/docs/reference/functions/xgcd.md +6 -0
- package/docs/reference/functions/xor.md +6 -0
- package/docs/reference/functions/zeros.md +6 -0
- package/docs/reference/functions.md +6 -1
- package/lib/browser/math.js +6 -6
- 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/dependenciesCumSum.generated.js +26 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesCumSumTransform.generated.js +26 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesLeafCount.generated.js +23 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesRationalize.generated.js +3 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesResolve.generated.js +32 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesSimplify.generated.js +6 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesSimplifyCore.generated.js +65 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesSymbolicEqual.generated.js +29 -0
- package/lib/cjs/entry/dependenciesAny.generated.js +48 -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/dependenciesRationalize.generated.js +3 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesResolve.generated.js +32 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesSimplify.generated.js +6 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesSimplifyCore.generated.js +65 -0
- package/lib/cjs/entry/dependenciesNumber.generated.js +32 -0
- package/lib/cjs/entry/impureFunctionsAny.generated.js +85 -33
- package/lib/cjs/entry/impureFunctionsNumber.generated.js +102 -64
- package/lib/cjs/entry/pureFunctionsAny.generated.js +68 -64
- package/lib/cjs/entry/pureFunctionsNumber.generated.js +51 -47
- 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 +250 -235
- 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/matrix/subset.js +2 -2
- package/lib/cjs/expression/embeddedDocs/function/statistics/cumsum.js +15 -0
- package/lib/cjs/expression/node/FunctionNode.js +80 -61
- package/lib/cjs/expression/node/IndexNode.js +1 -1
- 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 +13 -13
- 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 +48 -0
- package/lib/cjs/factoriesNumber.js +33 -1
- package/lib/cjs/function/algebra/decomposition/qr.js +1 -1
- package/lib/cjs/function/algebra/leafCount.js +66 -0
- package/lib/cjs/function/algebra/rationalize.js +24 -41
- package/lib/cjs/function/algebra/resolve.js +106 -0
- package/lib/cjs/function/algebra/simplify/simplifyConstant.js +5 -5
- package/lib/cjs/function/algebra/simplify/util.js +171 -33
- package/lib/cjs/function/algebra/simplify.js +562 -207
- package/lib/cjs/function/algebra/{simplify/simplifyCore.js → simplifyCore.js} +68 -44
- 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 +3 -3
- package/lib/cjs/function/arithmetic/floor.js +3 -3
- package/lib/cjs/function/arithmetic/invmod.js +1 -1
- package/lib/cjs/function/arithmetic/norm.js +1 -1
- package/lib/cjs/function/arithmetic/round.js +1 -1
- package/lib/cjs/function/matrix/eigs/complexEigs.js +13 -11
- 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/subset.js +15 -5
- 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 +1 -1
- package/lib/cjs/header.js +2 -2
- package/lib/cjs/plain/bignumber/index.js +1 -1
- package/lib/cjs/plain/number/combinations.js +18 -6
- 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 +2 -2
- package/lib/cjs/type/number.js +1 -1
- package/lib/cjs/type/string.js +2 -2
- package/lib/cjs/type/unit/Unit.js +8 -8
- 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 +3 -3
- package/lib/cjs/utils/lruQueue.js +1 -1
- package/lib/cjs/utils/map.js +3 -3
- package/lib/cjs/utils/object.js +2 -2
- package/lib/cjs/utils/snapshot.js +7 -7
- package/lib/cjs/utils/string.js +2 -2
- package/lib/cjs/utils/switch.js +31 -0
- package/lib/cjs/version.js +1 -1
- 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/dependenciesLeafCount.generated.js +12 -0
- package/lib/esm/entry/dependenciesAny/dependenciesRationalize.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesResolve.generated.js +18 -0
- package/lib/esm/entry/dependenciesAny/dependenciesSimplify.generated.js +4 -0
- package/lib/esm/entry/dependenciesAny/dependenciesSimplifyCore.generated.js +40 -0
- package/lib/esm/entry/dependenciesAny/dependenciesSymbolicEqual.generated.js +16 -0
- package/lib/esm/entry/dependenciesAny.generated.js +6 -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/dependenciesRationalize.generated.js +2 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesResolve.generated.js +18 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesSimplify.generated.js +4 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesSimplifyCore.generated.js +40 -0
- package/lib/esm/entry/dependenciesNumber.generated.js +4 -0
- package/lib/esm/entry/impureFunctionsAny.generated.js +74 -26
- package/lib/esm/entry/impureFunctionsNumber.generated.js +89 -53
- package/lib/esm/entry/pureFunctionsAny.generated.js +54 -49
- package/lib/esm/entry/pureFunctionsNumber.generated.js +36 -31
- 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 +222 -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/matrix/subset.js +2 -2
- package/lib/esm/expression/embeddedDocs/function/statistics/cumsum.js +8 -0
- package/lib/esm/expression/node/FunctionNode.js +70 -53
- 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 +6 -0
- package/lib/esm/factoriesNumber.js +4 -0
- package/lib/esm/function/algebra/leafCount.js +59 -0
- package/lib/esm/function/algebra/rationalize.js +24 -40
- package/lib/esm/function/algebra/resolve.js +95 -0
- package/lib/esm/function/algebra/simplify/simplifyConstant.js +3 -3
- package/lib/esm/function/algebra/simplify/util.js +170 -34
- package/lib/esm/function/algebra/simplify.js +557 -202
- package/lib/esm/function/algebra/{simplify/simplifyCore.js → simplifyCore.js} +61 -45
- package/lib/esm/function/algebra/symbolicEqual.js +80 -0
- package/lib/esm/function/matrix/eigs/complexEigs.js +8 -6
- package/lib/esm/function/matrix/map.js +53 -15
- package/lib/esm/function/matrix/subset.js +15 -5
- package/lib/esm/function/statistics/cumsum.js +139 -0
- package/lib/esm/function/statistics/sum.js +1 -1
- package/lib/esm/function/string/format.js +1 -1
- package/lib/esm/plain/number/combinations.js +18 -6
- package/lib/esm/type/fraction/function/fraction.js +20 -8
- package/lib/esm/utils/collection.js +1 -26
- package/lib/esm/utils/switch.js +24 -0
- package/lib/esm/version.js +1 -1
- package/package.json +15 -10
- package/types/index.d.ts +155 -13
- package/lib/cjs/function/algebra/simplify/resolve.js +0 -76
- package/lib/esm/function/algebra/simplify/resolve.js +0 -67
|
@@ -39,16 +39,26 @@ var createSubset = /* #__PURE__ */(0, _factory.factory)(name, dependencies, func
|
|
|
39
39
|
*
|
|
40
40
|
* // replace a subset
|
|
41
41
|
* const e = []
|
|
42
|
-
* const f = math.subset(e, math.index(0, [0, 2]), [5, 6]) // f = [[5, 6]]
|
|
42
|
+
* const f = math.subset(e, math.index(0, [0, 2]), [5, 6]) // f = [[5, 6]] and e = [[5, 0, 6]]
|
|
43
43
|
* const g = math.subset(f, math.index(1, 1), 7, 0) // g = [[5, 6], [0, 7]]
|
|
44
44
|
*
|
|
45
|
+
* // get submatrix using ranges
|
|
46
|
+
* const M = [
|
|
47
|
+
* [1,2,3],
|
|
48
|
+
* [4,5,6],
|
|
49
|
+
* [7,8,9]
|
|
50
|
+
* ]
|
|
51
|
+
* math.subset(M, math.index(math.range(0,2), math.range(0,3))) // [[1,2,3],[4,5,6]]
|
|
52
|
+
*
|
|
45
53
|
* See also:
|
|
46
54
|
*
|
|
47
55
|
* size, resize, squeeze, index
|
|
48
56
|
*
|
|
49
57
|
* @param {Array | Matrix | string} matrix An array, matrix, or string
|
|
50
|
-
* @param {Index} index
|
|
51
|
-
*
|
|
58
|
+
* @param {Index} index
|
|
59
|
+
* For each dimension of the target, specifies an index or a list of
|
|
60
|
+
* indices to fetch or set. `subset` uses the cartesian product of
|
|
61
|
+
* the indices specified in each dimension.
|
|
52
62
|
* @param {*} [replacement] An array, matrix, or scalar.
|
|
53
63
|
* If provided, the subset is replaced with replacement.
|
|
54
64
|
* If not provided, the subset is returned
|
|
@@ -91,7 +101,7 @@ var createSubset = /* #__PURE__ */(0, _factory.factory)(name, dependencies, func
|
|
|
91
101
|
/**
|
|
92
102
|
* Retrieve a subset of a string
|
|
93
103
|
* @param {string} str string from which to get a substring
|
|
94
|
-
* @param {Index} index An index
|
|
104
|
+
* @param {Index} index An index or list of indices (character positions)
|
|
95
105
|
* @returns {string} substring
|
|
96
106
|
* @private
|
|
97
107
|
*/
|
|
@@ -122,7 +132,7 @@ function _getSubstring(str, index) {
|
|
|
122
132
|
/**
|
|
123
133
|
* Replace a substring in a string
|
|
124
134
|
* @param {string} str string to be replaced
|
|
125
|
-
* @param {Index} index An index
|
|
135
|
+
* @param {Index} index An index or list of indices (character positions)
|
|
126
136
|
* @param {string} replacement Replacement string
|
|
127
137
|
* @param {string} [defaultValue] Default value to be uses when resizing
|
|
128
138
|
* the string. is ' ' by default
|
|
@@ -9,13 +9,13 @@ exports.createRng = createRng;
|
|
|
9
9
|
|
|
10
10
|
var _seedrandom = _interopRequireDefault(require("seedrandom"));
|
|
11
11
|
|
|
12
|
-
var singletonRandom = /* #__PURE__ */(0, _seedrandom
|
|
12
|
+
var singletonRandom = /* #__PURE__ */(0, _seedrandom.default)(Date.now());
|
|
13
13
|
|
|
14
14
|
function createRng(randomSeed) {
|
|
15
15
|
var random; // create a new random generator with given seed
|
|
16
16
|
|
|
17
17
|
function setSeed(seed) {
|
|
18
|
-
random = seed === null ? singletonRandom : (0, _seedrandom
|
|
18
|
+
random = seed === null ? singletonRandom : (0, _seedrandom.default)(String(seed));
|
|
19
19
|
} // initialize a seeded pseudo random number generator with config's random seed
|
|
20
20
|
|
|
21
21
|
|
|
@@ -101,7 +101,7 @@ var createCompareNatural = /* #__PURE__ */(0, _factory.factory)(name, dependenci
|
|
|
101
101
|
// c can be number, BigNumber, or Fraction
|
|
102
102
|
return c > 0 ? 1 : -1; // return a number
|
|
103
103
|
} else {
|
|
104
|
-
return (0, _javascriptNaturalSort
|
|
104
|
+
return (0, _javascriptNaturalSort.default)(typeX, typeY);
|
|
105
105
|
}
|
|
106
106
|
} // matrix types
|
|
107
107
|
|
|
@@ -112,13 +112,13 @@ var createCompareNatural = /* #__PURE__ */(0, _factory.factory)(name, dependenci
|
|
|
112
112
|
if (c !== 0) {
|
|
113
113
|
return c;
|
|
114
114
|
} else {
|
|
115
|
-
return (0, _javascriptNaturalSort
|
|
115
|
+
return (0, _javascriptNaturalSort.default)(typeX, typeY);
|
|
116
116
|
}
|
|
117
117
|
} // in case of different types, order by name of type, i.e. 'BigNumber' < 'Complex'
|
|
118
118
|
|
|
119
119
|
|
|
120
120
|
if (typeX !== typeY) {
|
|
121
|
-
return (0, _javascriptNaturalSort
|
|
121
|
+
return (0, _javascriptNaturalSort.default)(typeX, typeY);
|
|
122
122
|
}
|
|
123
123
|
|
|
124
124
|
if (typeX === 'Complex') {
|
|
@@ -139,7 +139,7 @@ var createCompareNatural = /* #__PURE__ */(0, _factory.factory)(name, dependenci
|
|
|
139
139
|
}
|
|
140
140
|
|
|
141
141
|
if (typeX === 'string') {
|
|
142
|
-
return (0, _javascriptNaturalSort
|
|
142
|
+
return (0, _javascriptNaturalSort.default)(x, y);
|
|
143
143
|
}
|
|
144
144
|
|
|
145
145
|
if (typeX === 'Object') {
|
|
@@ -252,8 +252,8 @@ var createCompareNatural = /* #__PURE__ */(0, _factory.factory)(name, dependenci
|
|
|
252
252
|
var keysX = Object.keys(x);
|
|
253
253
|
var keysY = Object.keys(y); // compare keys
|
|
254
254
|
|
|
255
|
-
keysX.sort(_javascriptNaturalSort
|
|
256
|
-
keysY.sort(_javascriptNaturalSort
|
|
255
|
+
keysX.sort(_javascriptNaturalSort.default);
|
|
256
|
+
keysY.sort(_javascriptNaturalSort.default);
|
|
257
257
|
var c = compareArrays(compareNatural, keysX, keysY);
|
|
258
258
|
|
|
259
259
|
if (c !== 0) {
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createCumSum = void 0;
|
|
7
|
+
|
|
8
|
+
var _collection = require("../../utils/collection.js");
|
|
9
|
+
|
|
10
|
+
var _factory = require("../../utils/factory.js");
|
|
11
|
+
|
|
12
|
+
var _switch2 = require("../../utils/switch.js");
|
|
13
|
+
|
|
14
|
+
var _improveErrorMessage = require("./utils/improveErrorMessage.js");
|
|
15
|
+
|
|
16
|
+
var _array = require("../../utils/array.js");
|
|
17
|
+
|
|
18
|
+
var _IndexError = require("../../error/IndexError.js");
|
|
19
|
+
|
|
20
|
+
var name = 'cumsum';
|
|
21
|
+
var dependencies = ['typed', 'add', 'unaryPlus'];
|
|
22
|
+
var createCumSum = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
|
|
23
|
+
var typed = _ref.typed,
|
|
24
|
+
add = _ref.add,
|
|
25
|
+
unaryPlus = _ref.unaryPlus;
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Compute the cumulative sum of a matrix or a list with values.
|
|
29
|
+
* In case of a (multi dimensional) array or matrix, the cumulative sums
|
|
30
|
+
* along a specified dimension (defaulting to the first) will be calculated.
|
|
31
|
+
*
|
|
32
|
+
* Syntax:
|
|
33
|
+
*
|
|
34
|
+
* math.cumsum(a, b, c, ...)
|
|
35
|
+
* math.cumsum(A)
|
|
36
|
+
*
|
|
37
|
+
* Examples:
|
|
38
|
+
*
|
|
39
|
+
* math.cumsum(2, 1, 4, 3) // returns [2, 3, 7, 10]
|
|
40
|
+
* math.cumsum([2, 1, 4, 3]) // returns [2, 3, 7, 10]
|
|
41
|
+
* math.cumsum([[1, 2], [3, 4]]) // returns [[1, 2], [4, 6]]
|
|
42
|
+
* math.cumsum([[1, 2], [3, 4]], 0) // returns [[1, 2], [4, 6]]
|
|
43
|
+
* math.cumsum([[1, 2], [3, 4]], 1) // returns [[1, 3], [3, 7]]
|
|
44
|
+
* math.cumsum([[2, 5], [4, 3], [1, 7]]) // returns [[2, 5], [6, 8], [7, 15]]
|
|
45
|
+
*
|
|
46
|
+
* See also:
|
|
47
|
+
*
|
|
48
|
+
* mean, median, min, max, prod, std, variance, sum
|
|
49
|
+
*
|
|
50
|
+
* @param {... *} args A single matrix or or multiple scalar values
|
|
51
|
+
* @return {*} The cumulative sum of all values
|
|
52
|
+
*/
|
|
53
|
+
return typed(name, {
|
|
54
|
+
// sum([a, b, c, d, ...])
|
|
55
|
+
Array: _cumsum,
|
|
56
|
+
Matrix: function Matrix(matrix) {
|
|
57
|
+
return matrix.create(_cumsum(matrix.valueOf()));
|
|
58
|
+
},
|
|
59
|
+
// sum([a, b, c, d, ...], dim)
|
|
60
|
+
'Array, number | BigNumber': _ncumSumDim,
|
|
61
|
+
'Matrix, number | BigNumber': function MatrixNumberBigNumber(matrix, dim) {
|
|
62
|
+
return matrix.create(_ncumSumDim(matrix.valueOf(), dim));
|
|
63
|
+
},
|
|
64
|
+
// cumsum(a, b, c, d, ...)
|
|
65
|
+
'...': function _(args) {
|
|
66
|
+
if ((0, _collection.containsCollections)(args)) {
|
|
67
|
+
throw new TypeError('All values expected to be scalar in function cumsum');
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
return _cumsum(args);
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
/**
|
|
74
|
+
* Recursively calculate the cumulative sum of an n-dimensional array
|
|
75
|
+
* @param {Array} array
|
|
76
|
+
* @return {number} cumsum
|
|
77
|
+
* @private
|
|
78
|
+
*/
|
|
79
|
+
|
|
80
|
+
function _cumsum(array) {
|
|
81
|
+
try {
|
|
82
|
+
return _cumsummap(array);
|
|
83
|
+
} catch (err) {
|
|
84
|
+
throw (0, _improveErrorMessage.improveErrorMessage)(err, name);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
function _cumsummap(array) {
|
|
89
|
+
if (array.length === 0) {
|
|
90
|
+
return [];
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
var sums = [unaryPlus(array[0])]; // unaryPlus converts to number if need be
|
|
94
|
+
|
|
95
|
+
for (var i = 1; i < array.length; ++i) {
|
|
96
|
+
// Must use add below and not addScalar for the case of summing a
|
|
97
|
+
// 2+-dimensional array along the 0th dimension (the row vectors,
|
|
98
|
+
// or higher-d analogues, are literally added to each other).
|
|
99
|
+
sums.push(add(sums[i - 1], array[i]));
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
return sums;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
function _ncumSumDim(array, dim) {
|
|
106
|
+
var size = (0, _array.arraySize)(array);
|
|
107
|
+
|
|
108
|
+
if (dim < 0 || dim >= size.length) {
|
|
109
|
+
// TODO: would be more clear when throwing a DimensionError here
|
|
110
|
+
throw new _IndexError.IndexError(dim, size.length);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
try {
|
|
114
|
+
return _cumsumDimensional(array, dim);
|
|
115
|
+
} catch (err) {
|
|
116
|
+
throw (0, _improveErrorMessage.improveErrorMessage)(err, name);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
/* Possible TODO: Refactor _reduce in collection.js to be able to work here as well */
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
function _cumsumDimensional(mat, dim) {
|
|
123
|
+
var i, ret, tran;
|
|
124
|
+
|
|
125
|
+
if (dim <= 0) {
|
|
126
|
+
var initialValue = mat[0][0];
|
|
127
|
+
|
|
128
|
+
if (!Array.isArray(initialValue)) {
|
|
129
|
+
return _cumsummap(mat);
|
|
130
|
+
} else {
|
|
131
|
+
tran = (0, _switch2._switch)(mat);
|
|
132
|
+
ret = [];
|
|
133
|
+
|
|
134
|
+
for (i = 0; i < tran.length; i++) {
|
|
135
|
+
ret[i] = _cumsumDimensional(tran[i], dim - 1);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
return ret;
|
|
139
|
+
}
|
|
140
|
+
} else {
|
|
141
|
+
ret = [];
|
|
142
|
+
|
|
143
|
+
for (i = 0; i < mat.length; i++) {
|
|
144
|
+
ret[i] = _cumsumDimensional(mat[i], dim - 1);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
return ret;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
exports.createCumSum = createCumSum;
|
|
@@ -37,7 +37,7 @@ var createSum = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functio
|
|
|
37
37
|
*
|
|
38
38
|
* See also:
|
|
39
39
|
*
|
|
40
|
-
* mean, median, min, max, prod, std, variance
|
|
40
|
+
* mean, median, min, max, prod, std, variance, cumsum
|
|
41
41
|
*
|
|
42
42
|
* @param {... *} args A single matrix or or multiple scalar values
|
|
43
43
|
* @return {*} The sum of all values
|
|
@@ -119,7 +119,7 @@ var createFormat = /* #__PURE__ */(0, _factory.factory)(name, dependencies, func
|
|
|
119
119
|
* // you could also use math.format inside the callback:
|
|
120
120
|
* // return '$' + math.format(value, {notation: 'fixed', precision: 2})
|
|
121
121
|
* }
|
|
122
|
-
* math.format([2.1, 3, 0.016], formatCurrency
|
|
122
|
+
* math.format([2.1, 3, 0.016], formatCurrency) // returns '[$2.10, $3.00, $0.02]'
|
|
123
123
|
*
|
|
124
124
|
* See also:
|
|
125
125
|
*
|
package/lib/cjs/header.js
CHANGED
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
* It features real and complex numbers, units, matrices, a large set of
|
|
7
7
|
* mathematical functions, and a flexible expression parser.
|
|
8
8
|
*
|
|
9
|
-
* @version 10.
|
|
10
|
-
* @date 2022-
|
|
9
|
+
* @version 10.4.0
|
|
10
|
+
* @date 2022-03-07
|
|
11
11
|
*
|
|
12
12
|
* @license
|
|
13
13
|
* Copyright (C) 2013-2022 Jos de Jong <wjosdejong@gmail.com>
|
|
@@ -27,7 +27,7 @@ Object.keys(_arithmetic).forEach(function (key) {
|
|
|
27
27
|
});
|
|
28
28
|
|
|
29
29
|
// TODO: this is ugly. Instead, be able to pass your own isBigNumber function to typed?
|
|
30
|
-
var BigNumber = _decimal
|
|
30
|
+
var BigNumber = _decimal.default.clone();
|
|
31
31
|
|
|
32
32
|
BigNumber.prototype.isBigNumber = true;
|
|
33
33
|
|
|
@@ -23,15 +23,27 @@ function combinationsNumber(n, k) {
|
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
var nMinusk = n - k;
|
|
26
|
-
var
|
|
26
|
+
var answer = 1;
|
|
27
|
+
var firstnumerator = k < nMinusk ? nMinusk + 1 : k + 1;
|
|
28
|
+
var nextdivisor = 2;
|
|
29
|
+
var lastdivisor = k < nMinusk ? k : nMinusk; // balance multiplications and divisions to try to keep intermediate values
|
|
30
|
+
// in exact-integer range as long as possible
|
|
27
31
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
32
|
+
for (var nextnumerator = firstnumerator; nextnumerator <= n; ++nextnumerator) {
|
|
33
|
+
answer *= nextnumerator;
|
|
34
|
+
|
|
35
|
+
while (nextdivisor <= lastdivisor && answer % nextdivisor === 0) {
|
|
36
|
+
answer /= nextdivisor;
|
|
37
|
+
++nextdivisor;
|
|
38
|
+
}
|
|
39
|
+
} // for big n, k, floating point may have caused weirdness in remainder
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
if (nextdivisor <= lastdivisor) {
|
|
43
|
+
answer /= (0, _product.product)(nextdivisor, lastdivisor);
|
|
31
44
|
}
|
|
32
45
|
|
|
33
|
-
|
|
34
|
-
return prodrange / (0, _product.product)(1, nMinusk);
|
|
46
|
+
return answer;
|
|
35
47
|
}
|
|
36
48
|
|
|
37
49
|
combinationsNumber.signature = 'number, number';
|
|
@@ -17,9 +17,9 @@ var createBigNumberClass = /* #__PURE__ */(0, _factory.factory)(name, dependenci
|
|
|
17
17
|
var on = _ref.on,
|
|
18
18
|
config = _ref.config;
|
|
19
19
|
|
|
20
|
-
var BigNumber = _decimal
|
|
20
|
+
var BigNumber = _decimal.default.clone({
|
|
21
21
|
precision: config.precision,
|
|
22
|
-
modulo: _decimal
|
|
22
|
+
modulo: _decimal.default.EUCLID
|
|
23
23
|
});
|
|
24
24
|
|
|
25
25
|
BigNumber.prototype = Object.create(BigNumber.prototype);
|
|
@@ -79,7 +79,7 @@ var createBignumber = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
|
|
|
79
79
|
Fraction: function Fraction(x) {
|
|
80
80
|
return new BigNumber(x.n).div(x.d).times(x.s);
|
|
81
81
|
},
|
|
82
|
-
|
|
82
|
+
null: function _null(x) {
|
|
83
83
|
return new BigNumber(0);
|
|
84
84
|
},
|
|
85
85
|
'Array | Matrix': function ArrayMatrix(x) {
|
package/lib/cjs/type/boolean.js
CHANGED
|
@@ -45,13 +45,13 @@ var createBoolean = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fun
|
|
|
45
45
|
'': function _() {
|
|
46
46
|
return false;
|
|
47
47
|
},
|
|
48
|
-
|
|
48
|
+
boolean: function boolean(x) {
|
|
49
49
|
return x;
|
|
50
50
|
},
|
|
51
51
|
number: function number(x) {
|
|
52
52
|
return !!x;
|
|
53
53
|
},
|
|
54
|
-
|
|
54
|
+
null: function _null(x) {
|
|
55
55
|
return false;
|
|
56
56
|
},
|
|
57
57
|
BigNumber: function BigNumber(x) {
|
|
@@ -23,15 +23,15 @@ var createComplexClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies
|
|
|
23
23
|
/**
|
|
24
24
|
* Attach type information
|
|
25
25
|
*/
|
|
26
|
-
_complex
|
|
27
|
-
_complex
|
|
26
|
+
_complex.default.prototype.type = 'Complex';
|
|
27
|
+
_complex.default.prototype.isComplex = true;
|
|
28
28
|
/**
|
|
29
29
|
* Get a JSON representation of the complex number
|
|
30
30
|
* @returns {Object} Returns a JSON object structured as:
|
|
31
31
|
* `{"mathjs": "Complex", "re": 2, "im": 3}`
|
|
32
32
|
*/
|
|
33
33
|
|
|
34
|
-
_complex
|
|
34
|
+
_complex.default.prototype.toJSON = function () {
|
|
35
35
|
return {
|
|
36
36
|
mathjs: 'Complex',
|
|
37
37
|
re: this.re,
|
|
@@ -45,7 +45,7 @@ var createComplexClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies
|
|
|
45
45
|
*/
|
|
46
46
|
|
|
47
47
|
|
|
48
|
-
_complex
|
|
48
|
+
_complex.default.prototype.toPolar = function () {
|
|
49
49
|
return {
|
|
50
50
|
r: this.abs(),
|
|
51
51
|
phi: this.arg()
|
|
@@ -62,7 +62,7 @@ var createComplexClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies
|
|
|
62
62
|
*/
|
|
63
63
|
|
|
64
64
|
|
|
65
|
-
_complex
|
|
65
|
+
_complex.default.prototype.format = function (options) {
|
|
66
66
|
var str = '';
|
|
67
67
|
var im = this.im;
|
|
68
68
|
var re = this.re;
|
|
@@ -127,14 +127,14 @@ var createComplexClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies
|
|
|
127
127
|
*/
|
|
128
128
|
|
|
129
129
|
|
|
130
|
-
_complex
|
|
130
|
+
_complex.default.fromPolar = function (args) {
|
|
131
131
|
switch (arguments.length) {
|
|
132
132
|
case 1:
|
|
133
133
|
{
|
|
134
134
|
var arg = arguments[0];
|
|
135
135
|
|
|
136
|
-
if ((0, _typeof2
|
|
137
|
-
return (0, _complex
|
|
136
|
+
if ((0, _typeof2.default)(arg) === 'object') {
|
|
137
|
+
return (0, _complex.default)(arg);
|
|
138
138
|
} else {
|
|
139
139
|
throw new TypeError('Input has to be an object with r and phi keys.');
|
|
140
140
|
}
|
|
@@ -152,7 +152,7 @@ var createComplexClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies
|
|
|
152
152
|
}
|
|
153
153
|
|
|
154
154
|
if ((0, _is.isNumber)(phi)) {
|
|
155
|
-
return new _complex
|
|
155
|
+
return new _complex.default({
|
|
156
156
|
r: r,
|
|
157
157
|
phi: phi
|
|
158
158
|
});
|
|
@@ -169,7 +169,7 @@ var createComplexClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies
|
|
|
169
169
|
}
|
|
170
170
|
};
|
|
171
171
|
|
|
172
|
-
_complex
|
|
172
|
+
_complex.default.prototype.valueOf = _complex.default.prototype.toString;
|
|
173
173
|
/**
|
|
174
174
|
* Create a Complex number from a JSON object
|
|
175
175
|
* @param {Object} json A JSON Object structured as
|
|
@@ -179,8 +179,8 @@ var createComplexClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies
|
|
|
179
179
|
* @return {Complex} Returns a new Complex number
|
|
180
180
|
*/
|
|
181
181
|
|
|
182
|
-
_complex
|
|
183
|
-
return new _complex
|
|
182
|
+
_complex.default.fromJSON = function (json) {
|
|
183
|
+
return new _complex.default(json);
|
|
184
184
|
};
|
|
185
185
|
/**
|
|
186
186
|
* Compare two complex numbers, `a` and `b`:
|
|
@@ -199,7 +199,7 @@ var createComplexClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies
|
|
|
199
199
|
*/
|
|
200
200
|
|
|
201
201
|
|
|
202
|
-
_complex
|
|
202
|
+
_complex.default.compare = function (a, b) {
|
|
203
203
|
if (a.re > b.re) {
|
|
204
204
|
return 1;
|
|
205
205
|
}
|
|
@@ -219,7 +219,7 @@ var createComplexClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies
|
|
|
219
219
|
return 0;
|
|
220
220
|
};
|
|
221
221
|
|
|
222
|
-
return _complex
|
|
222
|
+
return _complex.default;
|
|
223
223
|
}, {
|
|
224
224
|
isClass: true
|
|
225
225
|
});
|
|
@@ -76,7 +76,7 @@ var createComplex = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fun
|
|
|
76
76
|
string: function string(x) {
|
|
77
77
|
return Complex(x); // for example '2 + 3i'
|
|
78
78
|
},
|
|
79
|
-
|
|
79
|
+
null: function _null(x) {
|
|
80
80
|
return Complex(0);
|
|
81
81
|
},
|
|
82
82
|
Object: function Object(x) {
|
|
@@ -17,15 +17,15 @@ var createFractionClass = /* #__PURE__ */(0, _factory.factory)(name, dependencie
|
|
|
17
17
|
/**
|
|
18
18
|
* Attach type information
|
|
19
19
|
*/
|
|
20
|
-
_fraction
|
|
21
|
-
_fraction
|
|
20
|
+
_fraction.default.prototype.type = 'Fraction';
|
|
21
|
+
_fraction.default.prototype.isFraction = true;
|
|
22
22
|
/**
|
|
23
23
|
* Get a JSON representation of a Fraction containing type information
|
|
24
24
|
* @returns {Object} Returns a JSON object structured as:
|
|
25
25
|
* `{"mathjs": "Fraction", "n": 3, "d": 8}`
|
|
26
26
|
*/
|
|
27
27
|
|
|
28
|
-
_fraction
|
|
28
|
+
_fraction.default.prototype.toJSON = function () {
|
|
29
29
|
return {
|
|
30
30
|
mathjs: 'Fraction',
|
|
31
31
|
n: this.s * this.n,
|
|
@@ -40,11 +40,11 @@ var createFractionClass = /* #__PURE__ */(0, _factory.factory)(name, dependencie
|
|
|
40
40
|
*/
|
|
41
41
|
|
|
42
42
|
|
|
43
|
-
_fraction
|
|
44
|
-
return new _fraction
|
|
43
|
+
_fraction.default.fromJSON = function (json) {
|
|
44
|
+
return new _fraction.default(json);
|
|
45
45
|
};
|
|
46
46
|
|
|
47
|
-
return _fraction
|
|
47
|
+
return _fraction.default;
|
|
48
48
|
}, {
|
|
49
49
|
isClass: true
|
|
50
50
|
});
|
|
@@ -16,27 +16,39 @@ var createFraction = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fu
|
|
|
16
16
|
Fraction = _ref.Fraction;
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
|
-
* Create a fraction convert a value to a fraction.
|
|
19
|
+
* Create a fraction or convert a value to a fraction.
|
|
20
|
+
*
|
|
21
|
+
* With one numeric argument, produces the closest rational approximation to the
|
|
22
|
+
* input.
|
|
23
|
+
* With two arguments, the first is the numerator and the second is the denominator,
|
|
24
|
+
* and creates the corresponding fraction. Both numerator and denominator must be
|
|
25
|
+
* integers.
|
|
26
|
+
* With one object argument, looks for the integer numerator as the value of property
|
|
27
|
+
* 'n' and the integer denominator as the value of property 'd'.
|
|
28
|
+
* With a matrix argument, creates a matrix of the same shape with entries
|
|
29
|
+
* converted into fractions.
|
|
20
30
|
*
|
|
21
31
|
* Syntax:
|
|
32
|
+
* math.fraction(value)
|
|
22
33
|
* math.fraction(numerator, denominator)
|
|
23
34
|
* math.fraction({n: numerator, d: denominator})
|
|
24
|
-
* math.fraction(matrix: Array | Matrix)
|
|
25
|
-
* into fractions
|
|
35
|
+
* math.fraction(matrix: Array | Matrix)
|
|
26
36
|
*
|
|
27
37
|
* Examples:
|
|
28
38
|
*
|
|
29
|
-
* math.fraction(
|
|
30
|
-
* math.fraction(
|
|
31
|
-
* math.fraction(
|
|
32
|
-
* math.fraction(
|
|
39
|
+
* math.fraction(6.283) // returns Fraction 6283/1000
|
|
40
|
+
* math.fraction(1, 3) // returns Fraction 1/3
|
|
41
|
+
* math.fraction('2/3') // returns Fraction 2/3
|
|
42
|
+
* math.fraction({n: 2, d: 3}) // returns Fraction 2/3
|
|
43
|
+
* math.fraction([0.2, 0.25, 1.25]) // returns Array [1/5, 1/4, 5/4]
|
|
44
|
+
* math.fraction(4, 5.1) // throws Error: Parameters must be integer
|
|
33
45
|
*
|
|
34
46
|
* See also:
|
|
35
47
|
*
|
|
36
48
|
* bignumber, number, string, unit
|
|
37
49
|
*
|
|
38
50
|
* @param {number | string | Fraction | BigNumber | Array | Matrix} [args]
|
|
39
|
-
* Arguments specifying the numerator and denominator of
|
|
51
|
+
* Arguments specifying the value, or numerator and denominator of
|
|
40
52
|
* the fraction
|
|
41
53
|
* @return {Fraction | Array | Matrix} Returns a fraction
|
|
42
54
|
*/
|
|
@@ -54,7 +66,7 @@ var createFraction = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fu
|
|
|
54
66
|
'number, number': function numberNumber(numerator, denominator) {
|
|
55
67
|
return new Fraction(numerator, denominator);
|
|
56
68
|
},
|
|
57
|
-
|
|
69
|
+
null: function _null(x) {
|
|
58
70
|
return new Fraction(0);
|
|
59
71
|
},
|
|
60
72
|
BigNumber: function BigNumber(x) {
|
|
@@ -23,7 +23,7 @@ var _DimensionError = require("../../error/DimensionError.js");
|
|
|
23
23
|
|
|
24
24
|
var _factory = require("../../utils/factory.js");
|
|
25
25
|
|
|
26
|
-
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it
|
|
26
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
27
27
|
|
|
28
28
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
29
29
|
|
|
@@ -648,15 +648,15 @@ var createDenseMatrixClass = /* #__PURE__ */(0, _factory.factory)(name, dependen
|
|
|
648
648
|
*/
|
|
649
649
|
|
|
650
650
|
|
|
651
|
-
DenseMatrix.prototype[Symbol.iterator] = /*#__PURE__*/_regenerator
|
|
651
|
+
DenseMatrix.prototype[Symbol.iterator] = /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
652
652
|
var recurse;
|
|
653
|
-
return _regenerator
|
|
653
|
+
return _regenerator.default.wrap(function _callee$(_context2) {
|
|
654
654
|
while (1) {
|
|
655
655
|
switch (_context2.prev = _context2.next) {
|
|
656
656
|
case 0:
|
|
657
|
-
recurse = /*#__PURE__*/_regenerator
|
|
657
|
+
recurse = /*#__PURE__*/_regenerator.default.mark(function recurse(value, index) {
|
|
658
658
|
var i;
|
|
659
|
-
return _regenerator
|
|
659
|
+
return _regenerator.default.wrap(function recurse$(_context) {
|
|
660
660
|
while (1) {
|
|
661
661
|
switch (_context.prev = _context.next) {
|
|
662
662
|
case 0:
|
|
@@ -1087,9 +1087,9 @@ var createSparseMatrixClass = /* #__PURE__ */(0, _factory.factory)(name, depende
|
|
|
1087
1087
|
*/
|
|
1088
1088
|
|
|
1089
1089
|
|
|
1090
|
-
SparseMatrix.prototype[Symbol.iterator] = /*#__PURE__*/_regenerator
|
|
1090
|
+
SparseMatrix.prototype[Symbol.iterator] = /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
1091
1091
|
var columns, j, k0, k1, k, i;
|
|
1092
|
-
return _regenerator
|
|
1092
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
1093
1093
|
while (1) {
|
|
1094
1094
|
switch (_context.prev = _context.next) {
|
|
1095
1095
|
case 0:
|
package/lib/cjs/type/number.js
CHANGED
|
@@ -147,7 +147,7 @@ var createNumber = /* #__PURE__ */(0, _factory.factory)(name, dependencies, func
|
|
|
147
147
|
Unit: function Unit(x) {
|
|
148
148
|
throw new Error('Second argument with valueless unit expected');
|
|
149
149
|
},
|
|
150
|
-
|
|
150
|
+
null: function _null(x) {
|
|
151
151
|
return 0;
|
|
152
152
|
},
|
|
153
153
|
'Unit, string | Unit': function UnitStringUnit(unit, valuelessUnit) {
|
package/lib/cjs/type/string.js
CHANGED
|
@@ -46,10 +46,10 @@ var createString = /* #__PURE__ */(0, _factory.factory)(name, dependencies, func
|
|
|
46
46
|
return '';
|
|
47
47
|
},
|
|
48
48
|
number: _number.format,
|
|
49
|
-
|
|
49
|
+
null: function _null(x) {
|
|
50
50
|
return 'null';
|
|
51
51
|
},
|
|
52
|
-
|
|
52
|
+
boolean: function boolean(x) {
|
|
53
53
|
return x + '';
|
|
54
54
|
},
|
|
55
55
|
string: function string(x) {
|