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
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.leafCountDocs = void 0;
|
|
7
|
+
var leafCountDocs = {
|
|
8
|
+
name: 'leafCount',
|
|
9
|
+
category: 'Algebra',
|
|
10
|
+
syntax: ['leafCount(expr)'],
|
|
11
|
+
description: 'Computes the number of leaves in the parse tree of the given expression',
|
|
12
|
+
examples: ['leafCount("e^(i*pi)-1")', 'leafCount(parse("{a: 22/7, b: 10^(1/2)}"))'],
|
|
13
|
+
seealso: ['simplify']
|
|
14
|
+
};
|
|
15
|
+
exports.leafCountDocs = leafCountDocs;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.resolveDocs = void 0;
|
|
7
|
+
var resolveDocs = {
|
|
8
|
+
name: 'resolve',
|
|
9
|
+
category: 'Algebra',
|
|
10
|
+
syntax: ['resolve(node, scope)'],
|
|
11
|
+
description: 'Recursively substitute variables in an expression tree.',
|
|
12
|
+
examples: ['resolve(parse("1 + x"), { x: 7 })', 'resolve(parse("size(text)"), { text: "Hello World" })', 'resolve(parse("x + y"), { x: parse("3z") })', 'resolve(parse("3x"), { x: parse("y+z"), z: parse("w^y") })'],
|
|
13
|
+
seealso: ['simplify', 'evaluate'],
|
|
14
|
+
mayThrow: ['ReferenceError']
|
|
15
|
+
};
|
|
16
|
+
exports.resolveDocs = resolveDocs;
|
|
@@ -10,6 +10,6 @@ var simplifyDocs = {
|
|
|
10
10
|
syntax: ['simplify(expr)', 'simplify(expr, rules)'],
|
|
11
11
|
description: 'Simplify an expression tree.',
|
|
12
12
|
examples: ['simplify("3 + 2 / 4")', 'simplify("2x + x")', 'f = parse("x * (x + 2 + x)")', 'simplified = simplify(f)', 'simplified.evaluate({x: 2})'],
|
|
13
|
-
seealso: ['derivative', 'parse', '
|
|
13
|
+
seealso: ['simplifyCore', 'derivative', 'evaluate', 'parse', 'rationalize', 'resolve']
|
|
14
14
|
};
|
|
15
15
|
exports.simplifyDocs = simplifyDocs;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.simplifyCoreDocs = void 0;
|
|
7
|
+
var simplifyCoreDocs = {
|
|
8
|
+
name: 'simplifyCore',
|
|
9
|
+
category: 'Algebra',
|
|
10
|
+
syntax: ['simplifyCore(node)'],
|
|
11
|
+
description: 'Perform simple one-pass simplifications on an expression tree.',
|
|
12
|
+
examples: ['simplifyCore(parse("0*x"))', 'simplifyCore(parse("(x+0)*2"))'],
|
|
13
|
+
seealso: ['simplify', 'evaluate']
|
|
14
|
+
};
|
|
15
|
+
exports.simplifyCoreDocs = simplifyCoreDocs;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.symbolicEqualDocs = void 0;
|
|
7
|
+
var symbolicEqualDocs = {
|
|
8
|
+
name: 'symbolicEqual',
|
|
9
|
+
category: 'Algebra',
|
|
10
|
+
syntax: ['symbolicEqual(expr1, expr2)', 'symbolicEqual(expr1, expr2, options)'],
|
|
11
|
+
description: 'Returns true if the difference of the expressions simplifies to 0',
|
|
12
|
+
examples: ['symbolicEqual("x*y","y*x")', 'symbolicEqual("abs(x^2)", "x^2")', 'symbolicEqual("abs(x)", "x", {context: {abs: {trivial: true}}})'],
|
|
13
|
+
seealso: ['simplify', 'evaluate']
|
|
14
|
+
};
|
|
15
|
+
exports.symbolicEqualDocs = symbolicEqualDocs;
|
|
@@ -8,8 +8,8 @@ var subsetDocs = {
|
|
|
8
8
|
name: 'subset',
|
|
9
9
|
category: 'Matrix',
|
|
10
10
|
syntax: ['value(index)', 'value(index) = replacement', 'subset(value, [index])', 'subset(value, [index], replacement)'],
|
|
11
|
-
description: 'Get or set a subset of a matrix or string. ' + 'Indexes are one-based. ' + '
|
|
12
|
-
examples: ['d = [1, 2; 3, 4]', 'e = []', 'e[1, 1:2] = [5, 6]', 'e[2, :] = [7, 8]', 'f = d * e', 'f[2, 1]', 'f[:, 1]'],
|
|
11
|
+
description: 'Get or set a subset of the entries of a matrix or ' + 'characters of a string. ' + 'Indexes are one-based. There should be one index specification for ' + 'each dimension of the target. Each specification can be a single ' + 'index, a list of indices, or a range in colon notation `l:u`. ' + 'In a range, both the lower bound l and upper bound u are included; ' + 'and if a bound is omitted it defaults to the most extreme valid value. ' + 'The cartesian product of the indices specified in each dimension ' + 'determines the target of the operation.',
|
|
12
|
+
examples: ['d = [1, 2; 3, 4]', 'e = []', 'e[1, 1:2] = [5, 6]', 'e[2, :] = [7, 8]', 'f = d * e', 'f[2, 1]', 'f[:, 1]', 'f[[1,2], [1,3]] = [9, 10; 11, 12]', 'f'],
|
|
13
13
|
seealso: ['concat', 'det', 'diag', 'identity', 'inv', 'ones', 'range', 'size', 'squeeze', 'trace', 'transpose', 'zeros']
|
|
14
14
|
};
|
|
15
15
|
exports.subsetDocs = subsetDocs;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.cumSumDocs = void 0;
|
|
7
|
+
var cumSumDocs = {
|
|
8
|
+
name: 'cumsum',
|
|
9
|
+
category: 'Statistics',
|
|
10
|
+
syntax: ['cumsum(a, b, c, ...)', 'cumsum(A)'],
|
|
11
|
+
description: 'Compute the cumulative sum of all values.',
|
|
12
|
+
examples: ['cumsum(2, 3, 4, 1)', 'cumsum([2, 3, 4, 1])', 'cumsum([1, 2; 3, 4])', 'cumsum([1, 2; 3, 4], 1)', 'cumsum([1, 2; 3, 4], 2)'],
|
|
13
|
+
seealso: ['max', 'mean', 'median', 'min', 'prod', 'std', 'sum', 'variance']
|
|
14
|
+
};
|
|
15
|
+
exports.cumSumDocs = cumSumDocs;
|
|
@@ -97,78 +97,97 @@ var createFunctionNode = /* #__PURE__ */(0, _factory.factory)(name, dependencies
|
|
|
97
97
|
});
|
|
98
98
|
|
|
99
99
|
if ((0, _is.isSymbolNode)(this.fn)) {
|
|
100
|
-
// we can statically determine whether the function has an rawArgs property
|
|
101
100
|
var _name = this.fn.name;
|
|
102
|
-
var fn = _name in math ? (0, _customs.getSafeProperty)(math, _name) : undefined;
|
|
103
|
-
var isRaw = typeof fn === 'function' && fn.rawArgs === true;
|
|
104
101
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
102
|
+
if (!argNames[_name]) {
|
|
103
|
+
// we can statically determine whether the function has an rawArgs property
|
|
104
|
+
var fn = _name in math ? (0, _customs.getSafeProperty)(math, _name) : undefined;
|
|
105
|
+
var isRaw = typeof fn === 'function' && fn.rawArgs === true;
|
|
109
106
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
107
|
+
var resolveFn = function resolveFn(scope) {
|
|
108
|
+
if (scope.has(_name)) {
|
|
109
|
+
return scope.get(_name);
|
|
110
|
+
}
|
|
113
111
|
|
|
114
|
-
|
|
115
|
-
|
|
112
|
+
if (_name in math) {
|
|
113
|
+
return (0, _customs.getSafeProperty)(math, _name);
|
|
114
|
+
}
|
|
116
115
|
|
|
117
|
-
|
|
118
|
-
// pass unevaluated parameters (nodes) to the function
|
|
119
|
-
// "raw" evaluation
|
|
120
|
-
var rawArgs = this.args;
|
|
121
|
-
return function evalFunctionNode(scope, args, context) {
|
|
122
|
-
var fn = resolveFn(scope);
|
|
123
|
-
return fn(rawArgs, math, (0, _scope.createSubScope)(scope, args), scope);
|
|
116
|
+
return FunctionNode.onUndefinedFunction(_name);
|
|
124
117
|
};
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
return
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
118
|
+
|
|
119
|
+
if (isRaw) {
|
|
120
|
+
// pass unevaluated parameters (nodes) to the function
|
|
121
|
+
// "raw" evaluation
|
|
122
|
+
var rawArgs = this.args;
|
|
123
|
+
return function evalFunctionNode(scope, args, context) {
|
|
124
|
+
var fn = resolveFn(scope);
|
|
125
|
+
return fn(rawArgs, math, (0, _scope.createSubScope)(scope, args), scope);
|
|
126
|
+
};
|
|
127
|
+
} else {
|
|
128
|
+
// "regular" evaluation
|
|
129
|
+
switch (evalArgs.length) {
|
|
130
|
+
case 0:
|
|
131
|
+
return function evalFunctionNode(scope, args, context) {
|
|
132
|
+
var fn = resolveFn(scope);
|
|
133
|
+
return fn();
|
|
134
|
+
};
|
|
135
|
+
|
|
136
|
+
case 1:
|
|
137
|
+
return function evalFunctionNode(scope, args, context) {
|
|
138
|
+
var fn = resolveFn(scope);
|
|
139
|
+
var evalArg0 = evalArgs[0];
|
|
140
|
+
return fn(evalArg0(scope, args, context));
|
|
141
|
+
};
|
|
142
|
+
|
|
143
|
+
case 2:
|
|
144
|
+
return function evalFunctionNode(scope, args, context) {
|
|
145
|
+
var fn = resolveFn(scope);
|
|
146
|
+
var evalArg0 = evalArgs[0];
|
|
147
|
+
var evalArg1 = evalArgs[1];
|
|
148
|
+
return fn(evalArg0(scope, args, context), evalArg1(scope, args, context));
|
|
149
|
+
};
|
|
150
|
+
|
|
151
|
+
default:
|
|
152
|
+
return function evalFunctionNode(scope, args, context) {
|
|
153
|
+
var fn = resolveFn(scope);
|
|
154
|
+
var values = evalArgs.map(function (evalArg) {
|
|
155
|
+
return evalArg(scope, args, context);
|
|
156
|
+
});
|
|
157
|
+
return fn.apply(void 0, (0, _toConsumableArray2.default)(values));
|
|
158
|
+
};
|
|
159
|
+
}
|
|
157
160
|
}
|
|
161
|
+
} else {
|
|
162
|
+
// the function symbol is an argName
|
|
163
|
+
var _rawArgs = this.args;
|
|
164
|
+
return function evalFunctionNode(scope, args, context) {
|
|
165
|
+
var fn = args[_name];
|
|
166
|
+
var isRaw = fn && fn.rawArgs;
|
|
167
|
+
|
|
168
|
+
if (isRaw) {
|
|
169
|
+
return fn(_rawArgs, math, (0, _scope.createSubScope)(scope, args), scope); // "raw" evaluation
|
|
170
|
+
} else {
|
|
171
|
+
var values = evalArgs.map(function (evalArg) {
|
|
172
|
+
return evalArg(scope, args, context);
|
|
173
|
+
});
|
|
174
|
+
return fn.apply(fn, values);
|
|
175
|
+
}
|
|
176
|
+
};
|
|
158
177
|
}
|
|
159
178
|
} else if ((0, _is.isAccessorNode)(this.fn) && (0, _is.isIndexNode)(this.fn.index) && this.fn.index.isObjectProperty()) {
|
|
160
179
|
// execute the function with the right context: the object of the AccessorNode
|
|
161
180
|
var evalObject = this.fn.object._compile(math, argNames);
|
|
162
181
|
|
|
163
182
|
var prop = this.fn.index.getObjectProperty();
|
|
164
|
-
var
|
|
183
|
+
var _rawArgs2 = this.args;
|
|
165
184
|
return function evalFunctionNode(scope, args, context) {
|
|
166
185
|
var object = evalObject(scope, args, context);
|
|
167
186
|
(0, _customs.validateSafeMethod)(object, prop);
|
|
168
187
|
var isRaw = object[prop] && object[prop].rawArgs;
|
|
169
188
|
|
|
170
189
|
if (isRaw) {
|
|
171
|
-
return object[prop](
|
|
190
|
+
return object[prop](_rawArgs2, math, (0, _scope.createSubScope)(scope, args), scope); // "raw" evaluation
|
|
172
191
|
} else {
|
|
173
192
|
// "regular" evaluation
|
|
174
193
|
var values = evalArgs.map(function (evalArg) {
|
|
@@ -182,13 +201,13 @@ var createFunctionNode = /* #__PURE__ */(0, _factory.factory)(name, dependencies
|
|
|
182
201
|
// we have to dynamically determine whether the function has a rawArgs property
|
|
183
202
|
var evalFn = this.fn._compile(math, argNames);
|
|
184
203
|
|
|
185
|
-
var
|
|
204
|
+
var _rawArgs3 = this.args;
|
|
186
205
|
return function evalFunctionNode(scope, args, context) {
|
|
187
206
|
var fn = evalFn(scope, args, context);
|
|
188
207
|
var isRaw = fn && fn.rawArgs;
|
|
189
208
|
|
|
190
209
|
if (isRaw) {
|
|
191
|
-
return fn(
|
|
210
|
+
return fn(_rawArgs3, math, (0, _scope.createSubScope)(scope, args), scope); // "raw" evaluation
|
|
192
211
|
} else {
|
|
193
212
|
// "regular" evaluation
|
|
194
213
|
var values = evalArgs.map(function (evalArg) {
|
|
@@ -270,7 +289,7 @@ var createFunctionNode = /* #__PURE__ */(0, _factory.factory)(name, dependencies
|
|
|
270
289
|
var customString;
|
|
271
290
|
var name = this.fn.toString(options);
|
|
272
291
|
|
|
273
|
-
if (options && (0, _typeof2
|
|
292
|
+
if (options && (0, _typeof2.default)(options.handler) === 'object' && (0, _object.hasOwnProperty)(options.handler, name)) {
|
|
274
293
|
// callback is a map of callback functions
|
|
275
294
|
customString = options.handler[name](this, options);
|
|
276
295
|
}
|
|
@@ -376,7 +395,7 @@ var createFunctionNode = /* #__PURE__ */(0, _factory.factory)(name, dependencies
|
|
|
376
395
|
|
|
377
396
|
if (match[2] === undefined) {
|
|
378
397
|
// no square brackets
|
|
379
|
-
switch ((0, _typeof2
|
|
398
|
+
switch ((0, _typeof2.default)(property)) {
|
|
380
399
|
case 'string':
|
|
381
400
|
latex += property;
|
|
382
401
|
break;
|
|
@@ -436,7 +455,7 @@ var createFunctionNode = /* #__PURE__ */(0, _factory.factory)(name, dependencies
|
|
|
436
455
|
FunctionNode.prototype.toTex = function (options) {
|
|
437
456
|
var customTex;
|
|
438
457
|
|
|
439
|
-
if (options && (0, _typeof2
|
|
458
|
+
if (options && (0, _typeof2.default)(options.handler) === 'object' && (0, _object.hasOwnProperty)(options.handler, this.name)) {
|
|
440
459
|
// callback is a map of callback functions
|
|
441
460
|
customTex = options.handler[this.name](this, options);
|
|
442
461
|
}
|
|
@@ -467,14 +486,14 @@ var createFunctionNode = /* #__PURE__ */(0, _factory.factory)(name, dependencies
|
|
|
467
486
|
} // toTex property on the function itself
|
|
468
487
|
|
|
469
488
|
|
|
470
|
-
if (math[this.name] && (typeof math[this.name].toTex === 'function' || (0, _typeof2
|
|
489
|
+
if (math[this.name] && (typeof math[this.name].toTex === 'function' || (0, _typeof2.default)(math[this.name].toTex) === 'object' || typeof math[this.name].toTex === 'string')) {
|
|
471
490
|
// .toTex is a callback function
|
|
472
491
|
latexConverter = math[this.name].toTex;
|
|
473
492
|
}
|
|
474
493
|
|
|
475
494
|
var customToTex;
|
|
476
495
|
|
|
477
|
-
switch ((0, _typeof2
|
|
496
|
+
switch ((0, _typeof2.default)(latexConverter)) {
|
|
478
497
|
case 'function':
|
|
479
498
|
// a callback function
|
|
480
499
|
customToTex = latexConverter(this, options);
|
|
@@ -487,7 +506,7 @@ var createFunctionNode = /* #__PURE__ */(0, _factory.factory)(name, dependencies
|
|
|
487
506
|
|
|
488
507
|
case 'object':
|
|
489
508
|
// an object with different "converters" for different numbers of arguments
|
|
490
|
-
switch ((0, _typeof2
|
|
509
|
+
switch ((0, _typeof2.default)(latexConverter[args.length])) {
|
|
491
510
|
case 'function':
|
|
492
511
|
customToTex = latexConverter[args.length](this, options);
|
|
493
512
|
break;
|
|
@@ -143,7 +143,7 @@ var createIndexNode = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
|
|
|
143
143
|
var dimensions = (0, _array.map)(evalDimensions, function (evalDimension) {
|
|
144
144
|
return evalDimension(scope, args, context);
|
|
145
145
|
});
|
|
146
|
-
return index.apply(void 0, (0, _toConsumableArray2
|
|
146
|
+
return index.apply(void 0, (0, _toConsumableArray2.default)(dimensions));
|
|
147
147
|
};
|
|
148
148
|
};
|
|
149
149
|
/**
|
|
@@ -367,8 +367,8 @@ var createNode = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functi
|
|
|
367
367
|
|
|
368
368
|
|
|
369
369
|
Node.prototype._getCustomString = function (options) {
|
|
370
|
-
if (options && (0, _typeof2
|
|
371
|
-
switch ((0, _typeof2
|
|
370
|
+
if (options && (0, _typeof2.default)(options) === 'object') {
|
|
371
|
+
switch ((0, _typeof2.default)(options.handler)) {
|
|
372
372
|
case 'object':
|
|
373
373
|
case 'undefined':
|
|
374
374
|
return;
|
|
@@ -407,7 +407,7 @@ var createNode = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functi
|
|
|
407
407
|
|
|
408
408
|
|
|
409
409
|
function _validateScope(scope) {
|
|
410
|
-
for (var _i = 0, _arr = (0, _toConsumableArray2
|
|
410
|
+
for (var _i = 0, _arr = (0, _toConsumableArray2.default)(_keywords.keywords); _i < _arr.length; _i++) {
|
|
411
411
|
var symbol = _arr[_i];
|
|
412
412
|
|
|
413
413
|
if (scope.has(symbol)) {
|
|
@@ -38,7 +38,7 @@ var createObjectNode = /* #__PURE__ */(0, _factory.factory)(name, dependencies,
|
|
|
38
38
|
this.properties = properties || {}; // validate input
|
|
39
39
|
|
|
40
40
|
if (properties) {
|
|
41
|
-
if (!((0, _typeof2
|
|
41
|
+
if (!((0, _typeof2.default)(properties) === 'object') || !Object.keys(properties).every(function (key) {
|
|
42
42
|
return (0, _is.isNode)(properties[key]);
|
|
43
43
|
})) {
|
|
44
44
|
throw new TypeError('Object containing Nodes expected');
|
|
@@ -37,7 +37,7 @@ function accessFactory(_ref) {
|
|
|
37
37
|
} else if (typeof object === 'string') {
|
|
38
38
|
// TODO: move getStringSubset into a separate util file, use that
|
|
39
39
|
return subset(object, index);
|
|
40
|
-
} else if ((0, _typeof2
|
|
40
|
+
} else if ((0, _typeof2.default)(object) === 'object') {
|
|
41
41
|
if (!index.isObjectProperty()) {
|
|
42
42
|
throw new TypeError('Cannot apply a numeric index as object property');
|
|
43
43
|
}
|
|
@@ -42,7 +42,7 @@ function assignFactory(_ref) {
|
|
|
42
42
|
} else if (typeof object === 'string') {
|
|
43
43
|
// TODO: move setStringSubset into a separate util file, use that
|
|
44
44
|
return subset(object, index, value);
|
|
45
|
-
} else if ((0, _typeof2
|
|
45
|
+
} else if ((0, _typeof2.default)(object) === 'object') {
|
|
46
46
|
if (!index.isObjectProperty()) {
|
|
47
47
|
throw TypeError('Cannot apply a numeric index as object property');
|
|
48
48
|
}
|
|
@@ -153,16 +153,16 @@ var createParse = /* #__PURE__ */(0, _factory.factory)(name, dependencies, funct
|
|
|
153
153
|
var NAMED_DELIMITERS = {
|
|
154
154
|
mod: true,
|
|
155
155
|
to: true,
|
|
156
|
-
|
|
156
|
+
in: true,
|
|
157
157
|
and: true,
|
|
158
158
|
xor: true,
|
|
159
159
|
or: true,
|
|
160
160
|
not: true
|
|
161
161
|
};
|
|
162
162
|
var CONSTANTS = {
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
163
|
+
true: true,
|
|
164
|
+
false: false,
|
|
165
|
+
null: null,
|
|
166
166
|
undefined: undefined
|
|
167
167
|
};
|
|
168
168
|
var NUMERIC_CONSTANTS = ['NaN', 'Infinity'];
|
|
@@ -584,7 +584,7 @@ var createParse = /* #__PURE__ */(0, _factory.factory)(name, dependencies, funct
|
|
|
584
584
|
|
|
585
585
|
function parseStart(expression, extraNodes) {
|
|
586
586
|
var state = initialState();
|
|
587
|
-
(0, _extends2
|
|
587
|
+
(0, _extends2.default)(state, {
|
|
588
588
|
expression: expression,
|
|
589
589
|
extraNodes: extraNodes
|
|
590
590
|
});
|
|
@@ -930,7 +930,7 @@ var createParse = /* #__PURE__ */(0, _factory.factory)(name, dependencies, funct
|
|
|
930
930
|
node = parseRange(state);
|
|
931
931
|
var operators = {
|
|
932
932
|
to: 'to',
|
|
933
|
-
|
|
933
|
+
in: 'to' // alias of 'to'
|
|
934
934
|
|
|
935
935
|
};
|
|
936
936
|
|
|
@@ -1112,30 +1112,30 @@ var createParse = /* #__PURE__ */(0, _factory.factory)(name, dependencies, funct
|
|
|
1112
1112
|
// Match the "number /" part of the pattern "number / number symbol"
|
|
1113
1113
|
if (state.token === '/' && (0, _is.isConstantNode)(last)) {
|
|
1114
1114
|
// Look ahead to see if the next token is a number
|
|
1115
|
-
tokenStates.push((0, _extends2
|
|
1115
|
+
tokenStates.push((0, _extends2.default)({}, state));
|
|
1116
1116
|
getTokenSkipNewline(state); // Match the "number / number" part of the pattern
|
|
1117
1117
|
|
|
1118
1118
|
if (state.tokenType === TOKENTYPE.NUMBER) {
|
|
1119
1119
|
// Look ahead again
|
|
1120
|
-
tokenStates.push((0, _extends2
|
|
1120
|
+
tokenStates.push((0, _extends2.default)({}, state));
|
|
1121
1121
|
getTokenSkipNewline(state); // Match the "symbol" part of the pattern, or a left parenthesis
|
|
1122
1122
|
|
|
1123
1123
|
if (state.tokenType === TOKENTYPE.SYMBOL || state.token === '(') {
|
|
1124
1124
|
// We've matched the pattern "number / number symbol".
|
|
1125
1125
|
// Rewind once and build the "number / number" node; the symbol will be consumed later
|
|
1126
|
-
(0, _extends2
|
|
1126
|
+
(0, _extends2.default)(state, tokenStates.pop());
|
|
1127
1127
|
tokenStates.pop();
|
|
1128
1128
|
last = parsePercentage(state);
|
|
1129
1129
|
node = new OperatorNode('/', 'divide', [node, last]);
|
|
1130
1130
|
} else {
|
|
1131
1131
|
// Not a match, so rewind
|
|
1132
1132
|
tokenStates.pop();
|
|
1133
|
-
(0, _extends2
|
|
1133
|
+
(0, _extends2.default)(state, tokenStates.pop());
|
|
1134
1134
|
break;
|
|
1135
1135
|
}
|
|
1136
1136
|
} else {
|
|
1137
1137
|
// Not a match, so rewind
|
|
1138
|
-
(0, _extends2
|
|
1138
|
+
(0, _extends2.default)(state, tokenStates.pop());
|
|
1139
1139
|
break;
|
|
1140
1140
|
}
|
|
1141
1141
|
} else {
|
|
@@ -1783,7 +1783,7 @@ var createParse = /* #__PURE__ */(0, _factory.factory)(name, dependencies, funct
|
|
|
1783
1783
|
function createSyntaxError(state, message) {
|
|
1784
1784
|
var c = col(state);
|
|
1785
1785
|
var error = new SyntaxError(message + ' (char ' + c + ')');
|
|
1786
|
-
error
|
|
1786
|
+
error.char = c;
|
|
1787
1787
|
return error;
|
|
1788
1788
|
}
|
|
1789
1789
|
/**
|
|
@@ -1798,7 +1798,7 @@ var createParse = /* #__PURE__ */(0, _factory.factory)(name, dependencies, funct
|
|
|
1798
1798
|
function createError(state, message) {
|
|
1799
1799
|
var c = col(state);
|
|
1800
1800
|
var error = new SyntaxError(message + ' (char ' + c + ')');
|
|
1801
|
-
error
|
|
1801
|
+
error.char = c;
|
|
1802
1802
|
return error;
|
|
1803
1803
|
}
|
|
1804
1804
|
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createCumSumTransform = void 0;
|
|
7
|
+
|
|
8
|
+
var _is = require("../../utils/is.js");
|
|
9
|
+
|
|
10
|
+
var _factory = require("../../utils/factory.js");
|
|
11
|
+
|
|
12
|
+
var _errorTransform = require("./utils/errorTransform.js");
|
|
13
|
+
|
|
14
|
+
var _cumsum = require("../../function/statistics/cumsum.js");
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Attach a transform function to math.sum
|
|
18
|
+
* Adds a property transform containing the transform function.
|
|
19
|
+
*
|
|
20
|
+
* This transform changed the last `dim` parameter of function sum
|
|
21
|
+
* from one-based to zero based
|
|
22
|
+
*/
|
|
23
|
+
var name = 'cumsum';
|
|
24
|
+
var dependencies = ['typed', 'add', 'unaryPlus'];
|
|
25
|
+
var createCumSumTransform = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
|
|
26
|
+
var typed = _ref.typed,
|
|
27
|
+
add = _ref.add,
|
|
28
|
+
unaryPlus = _ref.unaryPlus;
|
|
29
|
+
var cumsum = (0, _cumsum.createCumSum)({
|
|
30
|
+
typed: typed,
|
|
31
|
+
add: add,
|
|
32
|
+
unaryPlus: unaryPlus
|
|
33
|
+
});
|
|
34
|
+
return typed(name, {
|
|
35
|
+
'...any': function any(args) {
|
|
36
|
+
// change last argument dim from one-based to zero-based
|
|
37
|
+
if (args.length === 2 && (0, _is.isCollection)(args[0])) {
|
|
38
|
+
var dim = args[1];
|
|
39
|
+
|
|
40
|
+
if ((0, _is.isNumber)(dim)) {
|
|
41
|
+
args[1] = dim - 1;
|
|
42
|
+
} else if ((0, _is.isBigNumber)(dim)) {
|
|
43
|
+
args[1] = dim.minus(1);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
try {
|
|
48
|
+
return cumsum.apply(null, args);
|
|
49
|
+
} catch (err) {
|
|
50
|
+
throw (0, _errorTransform.errorTransform)(err);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
}, {
|
|
55
|
+
isTransformFunction: true
|
|
56
|
+
});
|
|
57
|
+
exports.createCumSumTransform = createCumSumTransform;
|
|
@@ -17,7 +17,7 @@ var _lastDimToZeroBase = require("./utils/lastDimToZeroBase.js");
|
|
|
17
17
|
* Attach a transform function to math.sum
|
|
18
18
|
* Adds a property transform containing the transform function.
|
|
19
19
|
*
|
|
20
|
-
* This transform changed the last `dim` parameter of function
|
|
20
|
+
* This transform changed the last `dim` parameter of function sum
|
|
21
21
|
* from one-based to zero based
|
|
22
22
|
*/
|
|
23
23
|
var name = 'sum';
|
package/lib/cjs/factoriesAny.js
CHANGED
|
@@ -447,6 +447,18 @@ Object.defineProperty(exports, "createCube", {
|
|
|
447
447
|
return _cube.createCube;
|
|
448
448
|
}
|
|
449
449
|
});
|
|
450
|
+
Object.defineProperty(exports, "createCumSum", {
|
|
451
|
+
enumerable: true,
|
|
452
|
+
get: function get() {
|
|
453
|
+
return _cumsum.createCumSum;
|
|
454
|
+
}
|
|
455
|
+
});
|
|
456
|
+
Object.defineProperty(exports, "createCumSumTransform", {
|
|
457
|
+
enumerable: true,
|
|
458
|
+
get: function get() {
|
|
459
|
+
return _cumsumTransform.createCumSumTransform;
|
|
460
|
+
}
|
|
461
|
+
});
|
|
450
462
|
Object.defineProperty(exports, "createDeepEqual", {
|
|
451
463
|
enumerable: true,
|
|
452
464
|
get: function get() {
|
|
@@ -987,6 +999,12 @@ Object.defineProperty(exports, "createLcm", {
|
|
|
987
999
|
return _lcm.createLcm;
|
|
988
1000
|
}
|
|
989
1001
|
});
|
|
1002
|
+
Object.defineProperty(exports, "createLeafCount", {
|
|
1003
|
+
enumerable: true,
|
|
1004
|
+
get: function get() {
|
|
1005
|
+
return _leafCount.createLeafCount;
|
|
1006
|
+
}
|
|
1007
|
+
});
|
|
990
1008
|
Object.defineProperty(exports, "createLeftShift", {
|
|
991
1009
|
enumerable: true,
|
|
992
1010
|
get: function get() {
|
|
@@ -1509,6 +1527,12 @@ Object.defineProperty(exports, "createResize", {
|
|
|
1509
1527
|
return _resize.createResize;
|
|
1510
1528
|
}
|
|
1511
1529
|
});
|
|
1530
|
+
Object.defineProperty(exports, "createResolve", {
|
|
1531
|
+
enumerable: true,
|
|
1532
|
+
get: function get() {
|
|
1533
|
+
return _resolve.createResolve;
|
|
1534
|
+
}
|
|
1535
|
+
});
|
|
1512
1536
|
Object.defineProperty(exports, "createResultSet", {
|
|
1513
1537
|
enumerable: true,
|
|
1514
1538
|
get: function get() {
|
|
@@ -1677,6 +1701,12 @@ Object.defineProperty(exports, "createSimplify", {
|
|
|
1677
1701
|
return _simplify.createSimplify;
|
|
1678
1702
|
}
|
|
1679
1703
|
});
|
|
1704
|
+
Object.defineProperty(exports, "createSimplifyCore", {
|
|
1705
|
+
enumerable: true,
|
|
1706
|
+
get: function get() {
|
|
1707
|
+
return _simplifyCore.createSimplifyCore;
|
|
1708
|
+
}
|
|
1709
|
+
});
|
|
1680
1710
|
Object.defineProperty(exports, "createSin", {
|
|
1681
1711
|
enumerable: true,
|
|
1682
1712
|
get: function get() {
|
|
@@ -1839,6 +1869,12 @@ Object.defineProperty(exports, "createSymbolNode", {
|
|
|
1839
1869
|
return _SymbolNode.createSymbolNode;
|
|
1840
1870
|
}
|
|
1841
1871
|
});
|
|
1872
|
+
Object.defineProperty(exports, "createSymbolicEqual", {
|
|
1873
|
+
enumerable: true,
|
|
1874
|
+
get: function get() {
|
|
1875
|
+
return _symbolicEqual.createSymbolicEqual;
|
|
1876
|
+
}
|
|
1877
|
+
});
|
|
1842
1878
|
Object.defineProperty(exports, "createTan", {
|
|
1843
1879
|
enumerable: true,
|
|
1844
1880
|
get: function get() {
|
|
@@ -2454,6 +2490,8 @@ var _intersect = require("./function/geometry/intersect.js");
|
|
|
2454
2490
|
|
|
2455
2491
|
var _sum = require("./function/statistics/sum.js");
|
|
2456
2492
|
|
|
2493
|
+
var _cumsum = require("./function/statistics/cumsum.js");
|
|
2494
|
+
|
|
2457
2495
|
var _mean = require("./function/statistics/mean.js");
|
|
2458
2496
|
|
|
2459
2497
|
var _median = require("./function/statistics/median.js");
|
|
@@ -2494,8 +2532,16 @@ var _catalan = require("./function/combinatorics/catalan.js");
|
|
|
2494
2532
|
|
|
2495
2533
|
var _composition = require("./function/combinatorics/composition.js");
|
|
2496
2534
|
|
|
2535
|
+
var _leafCount = require("./function/algebra/leafCount.js");
|
|
2536
|
+
|
|
2497
2537
|
var _simplify = require("./function/algebra/simplify.js");
|
|
2498
2538
|
|
|
2539
|
+
var _simplifyCore = require("./function/algebra/simplifyCore.js");
|
|
2540
|
+
|
|
2541
|
+
var _resolve = require("./function/algebra/resolve.js");
|
|
2542
|
+
|
|
2543
|
+
var _symbolicEqual = require("./function/algebra/symbolicEqual.js");
|
|
2544
|
+
|
|
2499
2545
|
var _derivative = require("./function/algebra/derivative.js");
|
|
2500
2546
|
|
|
2501
2547
|
var _rationalize = require("./function/algebra/rationalize.js");
|
|
@@ -2540,4 +2586,6 @@ var _stdTransform = require("./expression/transform/std.transform.js");
|
|
|
2540
2586
|
|
|
2541
2587
|
var _sumTransform = require("./expression/transform/sum.transform.js");
|
|
2542
2588
|
|
|
2589
|
+
var _cumsumTransform = require("./expression/transform/cumsum.transform.js");
|
|
2590
|
+
|
|
2543
2591
|
var _varianceTransform = require("./expression/transform/variance.transform.js");
|