mathjs 10.1.1 → 10.4.0
Sign up to get free protection for your applications and to get access to all the features.
- 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) {
|