mathjs 10.0.2 → 10.2.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 +37 -0
- package/NOTICE +1 -1
- package/README.md +10 -2
- package/bin/cli.js +1 -1
- package/docs/expressions/algebra.md +27 -0
- package/docs/expressions/syntax.md +1 -1
- 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 +47 -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 +6 -0
- 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 +6 -0
- package/docs/reference/functions/subtract.md +6 -0
- package/docs/reference/functions/sum.md +6 -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 +4 -0
- package/lib/browser/math.js +7 -7
- 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/dependenciesInvmod.generated.js +41 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesLeafCount.generated.js +23 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesRationalize.generated.js +18 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesResolve.generated.js +32 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesSimplify.generated.js +21 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesSimplifyCore.generated.js +65 -0
- package/lib/cjs/entry/dependenciesAny.generated.js +32 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesRationalize.generated.js +18 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesResolve.generated.js +32 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesSimplify.generated.js +21 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesSimplifyCore.generated.js +65 -0
- package/lib/cjs/entry/dependenciesNumber.generated.js +16 -0
- package/lib/cjs/entry/impureFunctionsAny.generated.js +78 -29
- package/lib/cjs/entry/impureFunctionsNumber.generated.js +102 -60
- package/lib/cjs/entry/pureFunctionsAny.generated.js +65 -55
- 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 +20 -6
- 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/arithmetic/invmod.js +15 -0
- package/lib/cjs/expression/embeddedDocs/function/matrix/forEach.js +1 -1
- package/lib/cjs/expression/node/FunctionNode.js +7 -7
- 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 +36 -39
- package/lib/cjs/function/algebra/resolve.js +106 -0
- package/lib/cjs/function/algebra/simplify/simplifyConstant.js +226 -32
- package/lib/cjs/function/algebra/simplify/util.js +171 -33
- package/lib/cjs/function/algebra/simplify.js +608 -191
- package/lib/cjs/function/algebra/{simplify/simplifyCore.js → simplifyCore.js} +83 -31
- package/lib/cjs/function/algebra/solver/lsolveAll.js +2 -2
- package/lib/cjs/function/algebra/solver/usolveAll.js +2 -2
- 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 +73 -0
- 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 +5 -5
- package/lib/cjs/function/matrix/matrixFromColumns.js +1 -1
- package/lib/cjs/function/matrix/matrixFromRows.js +1 -1
- package/lib/cjs/function/probability/util/seededRNG.js +2 -2
- package/lib/cjs/function/relational/compareNatural.js +6 -6
- package/lib/cjs/header.js +3 -3
- 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/dependenciesInvmod.generated.js +24 -0
- package/lib/esm/entry/dependenciesAny/dependenciesLeafCount.generated.js +12 -0
- package/lib/esm/entry/dependenciesAny/dependenciesRationalize.generated.js +12 -0
- package/lib/esm/entry/dependenciesAny/dependenciesResolve.generated.js +18 -0
- package/lib/esm/entry/dependenciesAny/dependenciesSimplify.generated.js +14 -0
- package/lib/esm/entry/dependenciesAny/dependenciesSimplifyCore.generated.js +40 -0
- package/lib/esm/entry/dependenciesAny.generated.js +4 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesRationalize.generated.js +12 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesResolve.generated.js +18 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesSimplify.generated.js +14 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesSimplifyCore.generated.js +40 -0
- package/lib/esm/entry/dependenciesNumber.generated.js +2 -0
- package/lib/esm/entry/impureFunctionsAny.generated.js +68 -22
- package/lib/esm/entry/impureFunctionsNumber.generated.js +92 -52
- package/lib/esm/entry/pureFunctionsAny.generated.js +53 -42
- 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 +10 -1
- 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/arithmetic/invmod.js +8 -0
- package/lib/esm/expression/embeddedDocs/function/matrix/forEach.js +1 -1
- 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 +36 -38
- package/lib/esm/function/algebra/resolve.js +95 -0
- package/lib/esm/function/algebra/simplify/simplifyConstant.js +200 -32
- package/lib/esm/function/algebra/simplify/util.js +170 -34
- package/lib/esm/function/algebra/simplify.js +603 -186
- package/lib/esm/function/algebra/{simplify/simplifyCore.js → simplifyCore.js} +75 -31
- package/lib/esm/function/arithmetic/invmod.js +57 -0
- package/lib/esm/header.js +1 -1
- package/lib/esm/plain/number/combinations.js +18 -6
- package/lib/esm/version.js +1 -1
- package/package.json +21 -15
- package/types/index.d.ts +48 -6
- package/lib/cjs/function/algebra/simplify/resolve.js +0 -76
- package/lib/esm/function/algebra/simplify/resolve.js +0 -67
package/lib/cjs/factoriesAny.js
CHANGED
|
@@ -879,6 +879,12 @@ Object.defineProperty(exports, "createInverseConductanceQuantum", {
|
|
|
879
879
|
return _physicalConstants.createInverseConductanceQuantum;
|
|
880
880
|
}
|
|
881
881
|
});
|
|
882
|
+
Object.defineProperty(exports, "createInvmod", {
|
|
883
|
+
enumerable: true,
|
|
884
|
+
get: function get() {
|
|
885
|
+
return _invmod.createInvmod;
|
|
886
|
+
}
|
|
887
|
+
});
|
|
882
888
|
Object.defineProperty(exports, "createIsInteger", {
|
|
883
889
|
enumerable: true,
|
|
884
890
|
get: function get() {
|
|
@@ -981,6 +987,12 @@ Object.defineProperty(exports, "createLcm", {
|
|
|
981
987
|
return _lcm.createLcm;
|
|
982
988
|
}
|
|
983
989
|
});
|
|
990
|
+
Object.defineProperty(exports, "createLeafCount", {
|
|
991
|
+
enumerable: true,
|
|
992
|
+
get: function get() {
|
|
993
|
+
return _leafCount.createLeafCount;
|
|
994
|
+
}
|
|
995
|
+
});
|
|
984
996
|
Object.defineProperty(exports, "createLeftShift", {
|
|
985
997
|
enumerable: true,
|
|
986
998
|
get: function get() {
|
|
@@ -1503,6 +1515,12 @@ Object.defineProperty(exports, "createResize", {
|
|
|
1503
1515
|
return _resize.createResize;
|
|
1504
1516
|
}
|
|
1505
1517
|
});
|
|
1518
|
+
Object.defineProperty(exports, "createResolve", {
|
|
1519
|
+
enumerable: true,
|
|
1520
|
+
get: function get() {
|
|
1521
|
+
return _resolve.createResolve;
|
|
1522
|
+
}
|
|
1523
|
+
});
|
|
1506
1524
|
Object.defineProperty(exports, "createResultSet", {
|
|
1507
1525
|
enumerable: true,
|
|
1508
1526
|
get: function get() {
|
|
@@ -1671,6 +1689,12 @@ Object.defineProperty(exports, "createSimplify", {
|
|
|
1671
1689
|
return _simplify.createSimplify;
|
|
1672
1690
|
}
|
|
1673
1691
|
});
|
|
1692
|
+
Object.defineProperty(exports, "createSimplifyCore", {
|
|
1693
|
+
enumerable: true,
|
|
1694
|
+
get: function get() {
|
|
1695
|
+
return _simplifyCore.createSimplifyCore;
|
|
1696
|
+
}
|
|
1697
|
+
});
|
|
1674
1698
|
Object.defineProperty(exports, "createSin", {
|
|
1675
1699
|
enumerable: true,
|
|
1676
1700
|
get: function get() {
|
|
@@ -2112,6 +2136,8 @@ var _subtract = require("./function/arithmetic/subtract.js");
|
|
|
2112
2136
|
|
|
2113
2137
|
var _xgcd = require("./function/arithmetic/xgcd.js");
|
|
2114
2138
|
|
|
2139
|
+
var _invmod = require("./function/arithmetic/invmod.js");
|
|
2140
|
+
|
|
2115
2141
|
var _dotMultiply = require("./function/arithmetic/dotMultiply.js");
|
|
2116
2142
|
|
|
2117
2143
|
var _bitAnd = require("./function/bitwise/bitAnd.js");
|
|
@@ -2486,8 +2512,14 @@ var _catalan = require("./function/combinatorics/catalan.js");
|
|
|
2486
2512
|
|
|
2487
2513
|
var _composition = require("./function/combinatorics/composition.js");
|
|
2488
2514
|
|
|
2515
|
+
var _leafCount = require("./function/algebra/leafCount.js");
|
|
2516
|
+
|
|
2489
2517
|
var _simplify = require("./function/algebra/simplify.js");
|
|
2490
2518
|
|
|
2519
|
+
var _simplifyCore = require("./function/algebra/simplifyCore.js");
|
|
2520
|
+
|
|
2521
|
+
var _resolve = require("./function/algebra/resolve.js");
|
|
2522
|
+
|
|
2491
2523
|
var _derivative = require("./function/algebra/derivative.js");
|
|
2492
2524
|
|
|
2493
2525
|
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;
|
|
@@ -11,10 +11,8 @@ var _factory = require("../../utils/factory.js");
|
|
|
11
11
|
|
|
12
12
|
var _simplifyConstant = require("./simplify/simplifyConstant.js");
|
|
13
13
|
|
|
14
|
-
var _simplifyCore = require("./simplify/simplifyCore.js");
|
|
15
|
-
|
|
16
14
|
var name = 'rationalize';
|
|
17
|
-
var dependencies = ['config', 'typed', 'equal', 'isZero', 'add', 'subtract', 'multiply', 'divide', 'pow', 'parse', 'simplify', '?bignumber', '?fraction', 'mathWithTransform', '
|
|
15
|
+
var dependencies = ['config', 'typed', 'equal', 'isZero', 'add', 'subtract', 'multiply', 'divide', 'pow', 'parse', 'simplifyCore', 'simplify', '?bignumber', '?fraction', 'mathWithTransform', 'matrix', 'AccessorNode', 'ArrayNode', 'ConstantNode', 'FunctionNode', 'IndexNode', 'ObjectNode', 'OperatorNode', 'SymbolNode', 'ParenthesisNode'];
|
|
18
16
|
var createRationalize = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
|
|
19
17
|
var config = _ref.config,
|
|
20
18
|
typed = _ref.typed,
|
|
@@ -26,38 +24,36 @@ var createRationalize = /* #__PURE__ */(0, _factory.factory)(name, dependencies,
|
|
|
26
24
|
divide = _ref.divide,
|
|
27
25
|
pow = _ref.pow,
|
|
28
26
|
parse = _ref.parse,
|
|
27
|
+
simplifyCore = _ref.simplifyCore,
|
|
29
28
|
simplify = _ref.simplify,
|
|
30
29
|
fraction = _ref.fraction,
|
|
31
30
|
bignumber = _ref.bignumber,
|
|
32
31
|
mathWithTransform = _ref.mathWithTransform,
|
|
32
|
+
matrix = _ref.matrix,
|
|
33
|
+
AccessorNode = _ref.AccessorNode,
|
|
34
|
+
ArrayNode = _ref.ArrayNode,
|
|
33
35
|
ConstantNode = _ref.ConstantNode,
|
|
34
|
-
OperatorNode = _ref.OperatorNode,
|
|
35
36
|
FunctionNode = _ref.FunctionNode,
|
|
37
|
+
IndexNode = _ref.IndexNode,
|
|
38
|
+
ObjectNode = _ref.ObjectNode,
|
|
39
|
+
OperatorNode = _ref.OperatorNode,
|
|
36
40
|
SymbolNode = _ref.SymbolNode,
|
|
37
41
|
ParenthesisNode = _ref.ParenthesisNode;
|
|
38
42
|
var simplifyConstant = (0, _simplifyConstant.createSimplifyConstant)({
|
|
39
43
|
typed: typed,
|
|
40
44
|
config: config,
|
|
41
45
|
mathWithTransform: mathWithTransform,
|
|
46
|
+
matrix: matrix,
|
|
42
47
|
fraction: fraction,
|
|
43
48
|
bignumber: bignumber,
|
|
49
|
+
AccessorNode: AccessorNode,
|
|
50
|
+
ArrayNode: ArrayNode,
|
|
44
51
|
ConstantNode: ConstantNode,
|
|
45
|
-
OperatorNode: OperatorNode,
|
|
46
52
|
FunctionNode: FunctionNode,
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
var simplifyCore = (0, _simplifyCore.createSimplifyCore)({
|
|
50
|
-
equal: equal,
|
|
51
|
-
isZero: isZero,
|
|
52
|
-
add: add,
|
|
53
|
-
subtract: subtract,
|
|
54
|
-
multiply: multiply,
|
|
55
|
-
divide: divide,
|
|
56
|
-
pow: pow,
|
|
57
|
-
ConstantNode: ConstantNode,
|
|
53
|
+
IndexNode: IndexNode,
|
|
54
|
+
ObjectNode: ObjectNode,
|
|
58
55
|
OperatorNode: OperatorNode,
|
|
59
|
-
|
|
60
|
-
ParenthesisNode: ParenthesisNode
|
|
56
|
+
SymbolNode: SymbolNode
|
|
61
57
|
});
|
|
62
58
|
/**
|
|
63
59
|
* Transform a rationalizable expression in a rational fraction.
|
|
@@ -102,13 +98,13 @@ var createRationalize = /* #__PURE__ */(0, _factory.factory)(name, dependencies,
|
|
|
102
98
|
* @param {Object|boolean} optional scope of expression or true for already evaluated rational expression at input
|
|
103
99
|
* @param {Boolean} detailed optional True if return an object, false if return expression node (default)
|
|
104
100
|
*
|
|
105
|
-
* @return {Object | Node} The rational polynomial of `expr` or
|
|
106
|
-
* {
|
|
107
|
-
*
|
|
108
|
-
*
|
|
109
|
-
*
|
|
110
|
-
*
|
|
111
|
-
*
|
|
101
|
+
* @return {Object | Node} The rational polynomial of `expr` or an object
|
|
102
|
+
* `{expression, numerator, denominator, variables, coefficients}`, where
|
|
103
|
+
* `expression` is a `Node` with the node simplified expression,
|
|
104
|
+
* `numerator` is a `Node` with the simplified numerator of expression,
|
|
105
|
+
* `denominator` is a `Node` or `boolean` with the simplified denominator or `false` (if there is no denominator),
|
|
106
|
+
* `variables` is an array with variable names,
|
|
107
|
+
* and `coefficients` is an array with coefficients of numerator sorted by increased exponent
|
|
112
108
|
* {Expression Node} node simplified expression
|
|
113
109
|
*
|
|
114
110
|
*/
|
|
@@ -141,6 +137,12 @@ var createRationalize = /* #__PURE__ */(0, _factory.factory)(name, dependencies,
|
|
|
141
137
|
var polyRet = polynomial(expr, scope, true, setRules.firstRules); // Check if expression is a rationalizable polynomial
|
|
142
138
|
|
|
143
139
|
var nVars = polyRet.variables.length;
|
|
140
|
+
var noExactFractions = {
|
|
141
|
+
exactFractions: false
|
|
142
|
+
};
|
|
143
|
+
var withExactFractions = {
|
|
144
|
+
exactFractions: true
|
|
145
|
+
};
|
|
144
146
|
expr = polyRet.expression;
|
|
145
147
|
|
|
146
148
|
if (nVars >= 1) {
|
|
@@ -151,18 +153,16 @@ var createRationalize = /* #__PURE__ */(0, _factory.factory)(name, dependencies,
|
|
|
151
153
|
|
|
152
154
|
var rules;
|
|
153
155
|
var eDistrDiv = true;
|
|
154
|
-
var redoInic = false;
|
|
155
|
-
expr = simplify(expr, setRules.firstRules, {}, {
|
|
156
|
-
exactFractions: false
|
|
157
|
-
}); // Apply the initial rules, including succ div rules
|
|
156
|
+
var redoInic = false; // Apply the initial rules, including succ div rules:
|
|
158
157
|
|
|
158
|
+
expr = simplify(expr, setRules.firstRules, {}, noExactFractions);
|
|
159
159
|
var s;
|
|
160
160
|
|
|
161
161
|
while (true) {
|
|
162
|
-
//
|
|
162
|
+
// Alternate applying successive division rules and distr.div.rules
|
|
163
|
+
// until there are no more changes:
|
|
163
164
|
rules = eDistrDiv ? setRules.distrDivRules : setRules.sucDivRules;
|
|
164
|
-
expr = simplify(expr, rules);
|
|
165
|
-
|
|
165
|
+
expr = simplify(expr, rules, {}, withExactFractions);
|
|
166
166
|
eDistrDiv = !eDistrDiv; // Swap between Distr.Div and Succ. Div. Rules
|
|
167
167
|
|
|
168
168
|
s = expr.toString();
|
|
@@ -177,14 +177,11 @@ var createRationalize = /* #__PURE__ */(0, _factory.factory)(name, dependencies,
|
|
|
177
177
|
|
|
178
178
|
if (redoInic) {
|
|
179
179
|
// Apply first rules again without succ div rules (if there are changes)
|
|
180
|
-
expr = simplify(expr, setRules.firstRulesAgain, {},
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
}
|
|
180
|
+
expr = simplify(expr, setRules.firstRulesAgain, {}, noExactFractions);
|
|
181
|
+
} // Apply final rules:
|
|
182
|
+
|
|
184
183
|
|
|
185
|
-
expr = simplify(expr, setRules.finalRules, {},
|
|
186
|
-
exactFractions: false
|
|
187
|
-
}); // Apply final rules
|
|
184
|
+
expr = simplify(expr, setRules.finalRules, {}, noExactFractions);
|
|
188
185
|
} // NVars >= 1
|
|
189
186
|
|
|
190
187
|
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createResolve = void 0;
|
|
7
|
+
|
|
8
|
+
var _map = require("../../utils/map.js");
|
|
9
|
+
|
|
10
|
+
var _is = require("../../utils/is.js");
|
|
11
|
+
|
|
12
|
+
var _factory = require("../../utils/factory.js");
|
|
13
|
+
|
|
14
|
+
var name = 'resolve';
|
|
15
|
+
var dependencies = ['parse', 'ConstantNode', 'FunctionNode', 'OperatorNode', 'ParenthesisNode'];
|
|
16
|
+
var createResolve = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
|
|
17
|
+
var parse = _ref.parse,
|
|
18
|
+
ConstantNode = _ref.ConstantNode,
|
|
19
|
+
FunctionNode = _ref.FunctionNode,
|
|
20
|
+
OperatorNode = _ref.OperatorNode,
|
|
21
|
+
ParenthesisNode = _ref.ParenthesisNode;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* resolve(expr, scope) replaces variable nodes with their scoped values
|
|
25
|
+
*
|
|
26
|
+
* Syntax:
|
|
27
|
+
*
|
|
28
|
+
* resolve(expr, scope)
|
|
29
|
+
*
|
|
30
|
+
* Examples:
|
|
31
|
+
*
|
|
32
|
+
* math.resolve('x + y', {x:1, y:2}) // Node {1 + 2}
|
|
33
|
+
* math.resolve(math.parse('x+y'), {x:1, y:2}) // Node {1 + 2}
|
|
34
|
+
* math.simplify('x+y', {x:2, y:'x+x'}).toString() // "6"
|
|
35
|
+
*
|
|
36
|
+
* See also:
|
|
37
|
+
*
|
|
38
|
+
* simplify, evaluate
|
|
39
|
+
*
|
|
40
|
+
* @param {Node} node
|
|
41
|
+
* The expression tree to be simplified
|
|
42
|
+
* @param {Object} scope
|
|
43
|
+
* Scope specifying variables to be resolved
|
|
44
|
+
* @return {Node} Returns `node` with variables recursively substituted.
|
|
45
|
+
* @throws {ReferenceError}
|
|
46
|
+
* If there is a cyclic dependency among the variables in `scope`,
|
|
47
|
+
* resolution is impossible and a ReferenceError is thrown.
|
|
48
|
+
*/
|
|
49
|
+
function resolve(node, scope) {
|
|
50
|
+
var within = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : new Set();
|
|
51
|
+
|
|
52
|
+
// note `within`:
|
|
53
|
+
// `within` is not documented, since it is for internal cycle
|
|
54
|
+
// detection only
|
|
55
|
+
if (!scope) {
|
|
56
|
+
return node;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
if (!(0, _map.isMap)(scope)) {
|
|
60
|
+
scope = (0, _map.createMap)(scope);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
if ((0, _is.isSymbolNode)(node)) {
|
|
64
|
+
if (within.has(node.name)) {
|
|
65
|
+
var variables = Array.from(within).join(', ');
|
|
66
|
+
throw new ReferenceError("recursive loop of variable definitions among {".concat(variables, "}"));
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
var value = scope.get(node.name);
|
|
70
|
+
|
|
71
|
+
if ((0, _is.isNode)(value)) {
|
|
72
|
+
var nextWithin = new Set(within);
|
|
73
|
+
nextWithin.add(node.name);
|
|
74
|
+
return resolve(value, scope, nextWithin);
|
|
75
|
+
} else if (typeof value === 'number') {
|
|
76
|
+
return parse(String(value));
|
|
77
|
+
} else if (value !== undefined) {
|
|
78
|
+
return new ConstantNode(value);
|
|
79
|
+
} else {
|
|
80
|
+
return node;
|
|
81
|
+
}
|
|
82
|
+
} else if ((0, _is.isOperatorNode)(node)) {
|
|
83
|
+
var args = node.args.map(function (arg) {
|
|
84
|
+
return resolve(arg, scope, within);
|
|
85
|
+
});
|
|
86
|
+
return new OperatorNode(node.op, node.fn, args, node.implicit);
|
|
87
|
+
} else if ((0, _is.isParenthesisNode)(node)) {
|
|
88
|
+
return new ParenthesisNode(resolve(node.content, scope, within));
|
|
89
|
+
} else if ((0, _is.isFunctionNode)(node)) {
|
|
90
|
+
var _args = node.args.map(function (arg) {
|
|
91
|
+
return resolve(arg, scope, within);
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
return new FunctionNode(node.name, _args);
|
|
95
|
+
} // Otherwise just recursively resolve any children (might also work
|
|
96
|
+
// for some of the above special cases)
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
return node.map(function (child) {
|
|
100
|
+
return resolve(child, scope, within);
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
return resolve;
|
|
105
|
+
});
|
|
106
|
+
exports.createResolve = createResolve;
|