mathjs 10.1.0 → 10.3.0
Sign up to get free protection for your applications and to get access to all the features.
- package/HISTORY.md +38 -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/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 +6 -0
- 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 +47 -7
- 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 +6 -0
- 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 +5 -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/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 +32 -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 +16 -0
- package/lib/cjs/entry/impureFunctionsAny.generated.js +80 -34
- package/lib/cjs/entry/impureFunctionsNumber.generated.js +96 -64
- package/lib/cjs/entry/pureFunctionsAny.generated.js +62 -64
- package/lib/cjs/entry/pureFunctionsNumber.generated.js +46 -48
- package/lib/cjs/expression/Help.js +4 -0
- package/lib/cjs/expression/Parser.js +1 -1
- package/lib/cjs/expression/embeddedDocs/core/typed.js +1 -1
- package/lib/cjs/expression/embeddedDocs/embeddedDocs.js +247 -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/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/factoriesAny.js +32 -0
- package/lib/cjs/factoriesNumber.js +16 -0
- 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 +588 -211
- package/lib/cjs/function/algebra/{simplify/simplifyCore.js → simplifyCore.js} +67 -43
- 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/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 +1 -1
- 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/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/version.js +1 -1
- 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 +4 -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 +2 -0
- package/lib/esm/entry/impureFunctionsAny.generated.js +69 -27
- package/lib/esm/entry/impureFunctionsNumber.generated.js +83 -53
- package/lib/esm/entry/pureFunctionsAny.generated.js +49 -49
- package/lib/esm/entry/pureFunctionsNumber.generated.js +32 -32
- package/lib/esm/expression/Help.js +4 -0
- package/lib/esm/expression/embeddedDocs/core/typed.js +1 -1
- package/lib/esm/expression/embeddedDocs/embeddedDocs.js +220 -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/node/FunctionNode.js +70 -53
- package/lib/esm/factoriesAny.js +4 -0
- package/lib/esm/factoriesNumber.js +2 -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 +583 -206
- package/lib/esm/function/algebra/{simplify/simplifyCore.js → simplifyCore.js} +60 -44
- 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/plain/number/combinations.js +18 -6
- package/lib/esm/version.js +1 -1
- package/package.json +20 -15
- package/types/index.d.ts +52 -10
- 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;
|
@@ -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
|
|
package/lib/cjs/factoriesAny.js
CHANGED
@@ -987,6 +987,12 @@ Object.defineProperty(exports, "createLcm", {
|
|
987
987
|
return _lcm.createLcm;
|
988
988
|
}
|
989
989
|
});
|
990
|
+
Object.defineProperty(exports, "createLeafCount", {
|
991
|
+
enumerable: true,
|
992
|
+
get: function get() {
|
993
|
+
return _leafCount.createLeafCount;
|
994
|
+
}
|
995
|
+
});
|
990
996
|
Object.defineProperty(exports, "createLeftShift", {
|
991
997
|
enumerable: true,
|
992
998
|
get: function get() {
|
@@ -1509,6 +1515,12 @@ Object.defineProperty(exports, "createResize", {
|
|
1509
1515
|
return _resize.createResize;
|
1510
1516
|
}
|
1511
1517
|
});
|
1518
|
+
Object.defineProperty(exports, "createResolve", {
|
1519
|
+
enumerable: true,
|
1520
|
+
get: function get() {
|
1521
|
+
return _resolve.createResolve;
|
1522
|
+
}
|
1523
|
+
});
|
1512
1524
|
Object.defineProperty(exports, "createResultSet", {
|
1513
1525
|
enumerable: true,
|
1514
1526
|
get: function get() {
|
@@ -1677,6 +1689,12 @@ Object.defineProperty(exports, "createSimplify", {
|
|
1677
1689
|
return _simplify.createSimplify;
|
1678
1690
|
}
|
1679
1691
|
});
|
1692
|
+
Object.defineProperty(exports, "createSimplifyCore", {
|
1693
|
+
enumerable: true,
|
1694
|
+
get: function get() {
|
1695
|
+
return _simplifyCore.createSimplifyCore;
|
1696
|
+
}
|
1697
|
+
});
|
1680
1698
|
Object.defineProperty(exports, "createSin", {
|
1681
1699
|
enumerable: true,
|
1682
1700
|
get: function get() {
|
@@ -1839,6 +1857,12 @@ Object.defineProperty(exports, "createSymbolNode", {
|
|
1839
1857
|
return _SymbolNode.createSymbolNode;
|
1840
1858
|
}
|
1841
1859
|
});
|
1860
|
+
Object.defineProperty(exports, "createSymbolicEqual", {
|
1861
|
+
enumerable: true,
|
1862
|
+
get: function get() {
|
1863
|
+
return _symbolicEqual.createSymbolicEqual;
|
1864
|
+
}
|
1865
|
+
});
|
1842
1866
|
Object.defineProperty(exports, "createTan", {
|
1843
1867
|
enumerable: true,
|
1844
1868
|
get: function get() {
|
@@ -2494,8 +2518,16 @@ var _catalan = require("./function/combinatorics/catalan.js");
|
|
2494
2518
|
|
2495
2519
|
var _composition = require("./function/combinatorics/composition.js");
|
2496
2520
|
|
2521
|
+
var _leafCount = require("./function/algebra/leafCount.js");
|
2522
|
+
|
2497
2523
|
var _simplify = require("./function/algebra/simplify.js");
|
2498
2524
|
|
2525
|
+
var _simplifyCore = require("./function/algebra/simplifyCore.js");
|
2526
|
+
|
2527
|
+
var _resolve = require("./function/algebra/resolve.js");
|
2528
|
+
|
2529
|
+
var _symbolicEqual = require("./function/algebra/symbolicEqual.js");
|
2530
|
+
|
2499
2531
|
var _derivative = require("./function/algebra/derivative.js");
|
2500
2532
|
|
2501
2533
|
var _rationalize = require("./function/algebra/rationalize.js");
|
@@ -579,6 +579,12 @@ Object.defineProperty(exports, "createReplacer", {
|
|
579
579
|
return _replacer.createReplacer;
|
580
580
|
}
|
581
581
|
});
|
582
|
+
Object.defineProperty(exports, "createResolve", {
|
583
|
+
enumerable: true,
|
584
|
+
get: function get() {
|
585
|
+
return _resolve.createResolve;
|
586
|
+
}
|
587
|
+
});
|
582
588
|
Object.defineProperty(exports, "createResultSet", {
|
583
589
|
enumerable: true,
|
584
590
|
get: function get() {
|
@@ -617,6 +623,12 @@ Object.defineProperty(exports, "createSimplify", {
|
|
617
623
|
return _simplify.createSimplify;
|
618
624
|
}
|
619
625
|
});
|
626
|
+
Object.defineProperty(exports, "createSimplifyCore", {
|
627
|
+
enumerable: true,
|
628
|
+
get: function get() {
|
629
|
+
return _simplifyCore.createSimplifyCore;
|
630
|
+
}
|
631
|
+
});
|
620
632
|
exports.createSinh = exports.createSin = void 0;
|
621
633
|
Object.defineProperty(exports, "createSize", {
|
622
634
|
enumerable: true,
|
@@ -764,8 +776,12 @@ var _help = require("./expression/function/help.js");
|
|
764
776
|
|
765
777
|
var _chain = require("./type/chain/function/chain.js");
|
766
778
|
|
779
|
+
var _resolve = require("./function/algebra/resolve.js");
|
780
|
+
|
767
781
|
var _simplify = require("./function/algebra/simplify.js");
|
768
782
|
|
783
|
+
var _simplifyCore = require("./function/algebra/simplifyCore.js");
|
784
|
+
|
769
785
|
var _derivative = require("./function/algebra/derivative.js");
|
770
786
|
|
771
787
|
var _rationalize = require("./function/algebra/rationalize.js");
|
@@ -73,7 +73,7 @@ var createQr = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function
|
|
73
73
|
* @return {{Q: Array | Matrix, R: Array | Matrix}} Q: the orthogonal
|
74
74
|
* matrix and R: the upper triangular matrix
|
75
75
|
*/
|
76
|
-
return (0, _extends2
|
76
|
+
return (0, _extends2.default)(typed(name, {
|
77
77
|
DenseMatrix: function DenseMatrix(m) {
|
78
78
|
return _denseQR(m);
|
79
79
|
},
|
@@ -0,0 +1,66 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.createLeafCount = void 0;
|
7
|
+
|
8
|
+
var _factory = require("../../utils/factory.js");
|
9
|
+
|
10
|
+
var name = 'leafCount';
|
11
|
+
var dependencies = ['parse', 'typed'];
|
12
|
+
var createLeafCount = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
|
13
|
+
var parse = _ref.parse,
|
14
|
+
typed = _ref.typed;
|
15
|
+
|
16
|
+
// This does the real work, but we don't have to recurse through
|
17
|
+
// a typed call if we separate it out
|
18
|
+
function countLeaves(node) {
|
19
|
+
var count = 0;
|
20
|
+
node.forEach(function (n) {
|
21
|
+
count += countLeaves(n);
|
22
|
+
});
|
23
|
+
return count || 1;
|
24
|
+
}
|
25
|
+
/**
|
26
|
+
* Gives the number of "leaf nodes" in the parse tree of the given expression
|
27
|
+
* A leaf node is one that has no subexpressions, essentially either a
|
28
|
+
* symbol or a constant. Note that `5!` has just one leaf, the '5'; the
|
29
|
+
* unary factorial operator does not add a leaf. On the other hand,
|
30
|
+
* function symbols do add leaves, so `sin(x)/cos(x)` has four leaves.
|
31
|
+
*
|
32
|
+
* The `simplify()` function should generally not increase the `leafCount()`
|
33
|
+
* of an expression, although currently there is no guarantee that it never
|
34
|
+
* does so. In many cases, `simplify()` reduces the leaf count.
|
35
|
+
*
|
36
|
+
* Syntax:
|
37
|
+
*
|
38
|
+
* leafCount(expr)
|
39
|
+
*
|
40
|
+
* Examples:
|
41
|
+
*
|
42
|
+
* math.leafCount('x') // 1
|
43
|
+
* math.leafCount(math.parse('a*d-b*c')) // 4
|
44
|
+
* math.leafCount('[a,b;c,d][0,1]') // 6
|
45
|
+
*
|
46
|
+
* See also:
|
47
|
+
*
|
48
|
+
* simplify
|
49
|
+
*
|
50
|
+
* @param {Node|string} expr The expression to count the leaves of
|
51
|
+
*
|
52
|
+
* @return {number} The number of leaves of `expr`
|
53
|
+
*
|
54
|
+
*/
|
55
|
+
|
56
|
+
|
57
|
+
return typed(name, {
|
58
|
+
string: function string(expr) {
|
59
|
+
return this(parse(expr));
|
60
|
+
},
|
61
|
+
Node: function Node(expr) {
|
62
|
+
return countLeaves(expr);
|
63
|
+
}
|
64
|
+
});
|
65
|
+
});
|
66
|
+
exports.createLeafCount = createLeafCount;
|