mathjs 10.1.1 → 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 +17 -0
- package/docs/expressions/algebra.md +27 -0
- 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 +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 +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 +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 +3 -0
- 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.generated.js +24 -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 +67 -29
- package/lib/cjs/entry/impureFunctionsNumber.generated.js +96 -64
- package/lib/cjs/entry/pureFunctionsAny.generated.js +53 -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 +14 -5
- 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/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 +24 -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 +554 -207
- 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/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 +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 +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.generated.js +3 -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 +57 -22
- package/lib/esm/entry/impureFunctionsNumber.generated.js +83 -53
- package/lib/esm/entry/pureFunctionsAny.generated.js +42 -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 +6 -0
- 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/factoriesAny.js +3 -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 +549 -202
- package/lib/esm/function/algebra/{simplify/simplifyCore.js → simplifyCore.js} +60 -44
- package/lib/esm/plain/number/combinations.js +18 -6
- package/lib/esm/version.js +1 -1
- package/package.json +15 -10
- package/types/index.d.ts +44 -2
- package/lib/cjs/function/algebra/simplify/resolve.js +0 -76
- package/lib/esm/function/algebra/simplify/resolve.js +0 -67
@@ -4,7 +4,7 @@
|
|
4
4
|
*/
|
5
5
|
import { config } from './configReadonly.js';
|
6
6
|
import { createBigNumberClass, createComplexClass, createE, createFalse, createFineStructure, createFractionClass, createI, createInfinity, createLN10, createLOG10E, createMatrixClass, createNaN, createNull, createPhi, createRangeClass, createResultSet, createSQRT1_2, // eslint-disable-line camelcase
|
7
|
-
createSackurTetrode, createTau, createTrue, createVersion, createDenseMatrixClass, createEfimovFactor, createLN2, createPi, createReplacer, createSQRT2, createTyped, createUnaryPlus, createWeakMixingAngle, createAbs, createAcos, createAcot, createAcsc, createAddScalar, createArg, createAsech, createAsinh, createAtan, createAtanh, createBignumber, createBitNot, createBoolean, createClone, createCombinations, createComplex, createConj, createCosh, createCoth, createCsc, createCube, createEqualScalar, createErf, createExp, createExpm1, createFilter, createForEach, createFormat, createGetMatrixDataType, createHex, createIm, createIsInteger, createIsNegative, createIsPositive, createIsZero, createLOG2E, createLog10, createLog2, createMap, createMultiplyScalar, createNot, createNumber, createOct, createPickRandom, createPrint, createRandom, createRe, createSec, createSign, createSin, createSparseMatrixClass, createSplitUnit, createSquare, createString, createTan, createTypeOf, createAcosh, createAcsch, createApply, createAsec, createBin, createCombinationsWithRep, createCos, createCsch, createIsNaN, createIsPrime, createRandomInt, createSech, createSinh, createSparse, createSqrt, createTanh, createUnaryMinus, createAcoth, createCot, createFraction, createIsNumeric, createMatrix, createMatrixFromFunction, createMod, createNthRoot, createNumeric, createOr, createProd, createReshape, createSize, createSmaller, createSqueeze, createSubset, createSubtract, createTo, createTranspose, createXgcd, createZeros, createAnd, createBitAnd, createBitXor, createCbrt, createCompare, createCompareText, createConcat, createCount, createCtranspose, createDiag, createDivideScalar, createDotDivide, createEqual, createFlatten, createGcd, createHasNumericValue, createHypot, createImmutableDenseMatrixClass, createIndexClass, createKron, createLargerEq, createLeftShift, createLsolve, createMatrixFromColumns, createMin, createMode, createNthRoots, createOnes, createPartitionSelect, createResize,
|
7
|
+
createSackurTetrode, createTau, createTrue, createVersion, createDenseMatrixClass, createEfimovFactor, createLN2, createPi, createReplacer, createSQRT2, createTyped, createUnaryPlus, createWeakMixingAngle, createAbs, createAcos, createAcot, createAcsc, createAddScalar, createArg, createAsech, createAsinh, createAtan, createAtanh, createBignumber, createBitNot, createBoolean, createClone, createCombinations, createComplex, createConj, createCosh, createCoth, createCsc, createCube, createEqualScalar, createErf, createExp, createExpm1, createFilter, createForEach, createFormat, createGetMatrixDataType, createHex, createIm, createIsInteger, createIsNegative, createIsPositive, createIsZero, createLOG2E, createLog10, createLog2, createMap, createMultiplyScalar, createNot, createNumber, createOct, createPickRandom, createPrint, createRandom, createRe, createSec, createSign, createSin, createSparseMatrixClass, createSplitUnit, createSquare, createString, createTan, createTypeOf, createAcosh, createAcsch, createApply, createAsec, createBin, createCombinationsWithRep, createCos, createCsch, createIsNaN, createIsPrime, createRandomInt, createSech, createSinh, createSparse, createSqrt, createTanh, createUnaryMinus, createAcoth, createCot, createFraction, createIsNumeric, createMatrix, createMatrixFromFunction, createMod, createNthRoot, createNumeric, createOr, createProd, createReshape, createSize, createSmaller, createSqueeze, createSubset, createSubtract, createTo, createTranspose, createXgcd, createZeros, createAnd, createBitAnd, createBitXor, createCbrt, createCompare, createCompareText, createConcat, createCount, createCtranspose, createDiag, createDivideScalar, createDotDivide, createEqual, createFlatten, createGcd, createHasNumericValue, createHypot, createImmutableDenseMatrixClass, createIndexClass, createKron, createLargerEq, createLeftShift, createLsolve, createMatrixFromColumns, createMin, createMode, createNthRoots, createOnes, createPartitionSelect, createResize, createRightArithShift, createRound, createSmallerEq, createUnequal, createUsolve, createXor, createAdd, createAtan2, createBitOr, createCatalan, createCompareNatural, createDeepEqual, createDiff, createDot, createEqualText, createFloor, createIdentity, createInvmod, createLarger, createLog, createLsolveAll, createMatrixFromRows, createMultiply, createPow, createQr, createRange, createRightLogShift, createRow, createSetCartesian, createSetDistinct, createSetIsSubset, createSetPowerset, createSlu, createSum, createTrace, createUsolveAll, createAsin, createCeil, createColumn, createComposition, createCross, createDistance, createDotMultiply, createFibonacciHeapClass, createFix, createGamma, createIndex, createLcm, createLog1p, createMax, createQuantileSeq, createSetDifference, createSetMultiplicity, createSetSymDifference, createSort, createUnitClass, createVacuumImpedance, createWienDisplacement, createAtomicMass, createBohrMagneton, createBoltzmann, createConductanceQuantum, createCreateUnit, createDeuteronMass, createDotPow, createElectricConstant, createElementaryCharge, createFactorial, createFermiCoupling, createGasConstant, createGravity, createIntersect, createInverseConductanceQuantum, createKlitzing, createLoschmidt, createMagneticConstant, createMolarMass, createMolarPlanckConstant, createNeutronMass, createNuclearMagneton, createPermutations, createPlanckConstant, createPlanckMass, createPlanckTime, createQuantumOfCirculation, createReducedPlanckConstant, createRydberg, createSetIntersect, createSetUnion, createSpaClass, createStefanBoltzmann, createUnitFunction, createAvogadro, createBohrRadius, createCoulomb, createElectronMass, createFaraday, createHartreeEnergy, createLup, createMagneticFluxQuantum, createMolarMassC12, createPlanckCharge, createPlanckTemperature, createSecondRadiation, createSpeedOfLight, createStirlingS2, createBellNumbers, createDet, createFirstRadiation, createMolarVolume, createProtonMass, createSetSize, createThomsonCrossSection, createClassicalElectronRadius, createGravitationConstant, createInv, createLusolve, createSqrtm, createDivide, createExpm, createKldivergence, createMean, createMedian, createPlanckLength, createVariance, createEigs, createMad, createMultinomial, createStd, createNorm, createRotationMatrix, createRotate } from '../factoriesAny.js';
|
8
8
|
export var BigNumber = /* #__PURE__ */createBigNumberClass({
|
9
9
|
config
|
10
10
|
});
|
@@ -645,7 +645,7 @@ export var resize = /* #__PURE__ */createResize({
|
|
645
645
|
config,
|
646
646
|
matrix
|
647
647
|
});
|
648
|
-
export var
|
648
|
+
export var rightArithShift = /* #__PURE__ */createRightArithShift({
|
649
649
|
DenseMatrix,
|
650
650
|
equalScalar,
|
651
651
|
matrix,
|
@@ -841,7 +841,7 @@ export var range = /* #__PURE__ */createRange({
|
|
841
841
|
smallerEq,
|
842
842
|
typed
|
843
843
|
});
|
844
|
-
export var
|
844
|
+
export var rightLogShift = /* #__PURE__ */createRightLogShift({
|
845
845
|
DenseMatrix,
|
846
846
|
equalScalar,
|
847
847
|
matrix,
|
@@ -993,6 +993,13 @@ export var lcm = /* #__PURE__ */createLcm({
|
|
993
993
|
matrix,
|
994
994
|
typed
|
995
995
|
});
|
996
|
+
export var log1p = /* #__PURE__ */createLog1p({
|
997
|
+
Complex,
|
998
|
+
config,
|
999
|
+
divideScalar,
|
1000
|
+
log,
|
1001
|
+
typed
|
1002
|
+
});
|
996
1003
|
export var max = /* #__PURE__ */createMax({
|
997
1004
|
config,
|
998
1005
|
larger,
|
@@ -1280,12 +1287,20 @@ export var hartreeEnergy = /* #__PURE__ */createHartreeEnergy({
|
|
1280
1287
|
Unit,
|
1281
1288
|
config
|
1282
1289
|
});
|
1283
|
-
export var
|
1284
|
-
|
1285
|
-
|
1290
|
+
export var lup = /* #__PURE__ */createLup({
|
1291
|
+
DenseMatrix,
|
1292
|
+
Spa,
|
1293
|
+
SparseMatrix,
|
1294
|
+
abs,
|
1295
|
+
addScalar,
|
1286
1296
|
divideScalar,
|
1287
|
-
|
1288
|
-
|
1297
|
+
equalScalar,
|
1298
|
+
larger,
|
1299
|
+
matrix,
|
1300
|
+
multiplyScalar,
|
1301
|
+
subtract,
|
1302
|
+
typed,
|
1303
|
+
unaryMinus
|
1289
1304
|
});
|
1290
1305
|
export var magneticFluxQuantum = /* #__PURE__ */createMagneticFluxQuantum({
|
1291
1306
|
BigNumber,
|
@@ -1337,26 +1352,19 @@ export var bellNumbers = /* #__PURE__ */createBellNumbers({
|
|
1337
1352
|
stirlingS2,
|
1338
1353
|
typed
|
1339
1354
|
});
|
1340
|
-
export var
|
1341
|
-
|
1342
|
-
Unit,
|
1343
|
-
config
|
1344
|
-
});
|
1345
|
-
export var lup = /* #__PURE__ */createLup({
|
1346
|
-
DenseMatrix,
|
1347
|
-
Spa,
|
1348
|
-
SparseMatrix,
|
1349
|
-
abs,
|
1350
|
-
addScalar,
|
1351
|
-
divideScalar,
|
1352
|
-
equalScalar,
|
1353
|
-
larger,
|
1355
|
+
export var det = /* #__PURE__ */createDet({
|
1356
|
+
lup,
|
1354
1357
|
matrix,
|
1355
|
-
|
1358
|
+
multiply,
|
1356
1359
|
subtract,
|
1357
1360
|
typed,
|
1358
1361
|
unaryMinus
|
1359
1362
|
});
|
1363
|
+
export var firstRadiation = /* #__PURE__ */createFirstRadiation({
|
1364
|
+
BigNumber,
|
1365
|
+
Unit,
|
1366
|
+
config
|
1367
|
+
});
|
1360
1368
|
export var molarVolume = /* #__PURE__ */createMolarVolume({
|
1361
1369
|
BigNumber,
|
1362
1370
|
Unit,
|
@@ -1381,14 +1389,6 @@ export var classicalElectronRadius = /* #__PURE__ */createClassicalElectronRadiu
|
|
1381
1389
|
Unit,
|
1382
1390
|
config
|
1383
1391
|
});
|
1384
|
-
export var det = /* #__PURE__ */createDet({
|
1385
|
-
lup,
|
1386
|
-
matrix,
|
1387
|
-
multiply,
|
1388
|
-
subtract,
|
1389
|
-
typed,
|
1390
|
-
unaryMinus
|
1391
|
-
});
|
1392
1392
|
export var gravitationConstant = /* #__PURE__ */createGravitationConstant({
|
1393
1393
|
BigNumber,
|
1394
1394
|
Unit,
|
@@ -1478,11 +1478,6 @@ export var variance = /* #__PURE__ */createVariance({
|
|
1478
1478
|
subtract,
|
1479
1479
|
typed
|
1480
1480
|
});
|
1481
|
-
export var std = /* #__PURE__ */createStd({
|
1482
|
-
sqrt,
|
1483
|
-
typed,
|
1484
|
-
variance
|
1485
|
-
});
|
1486
1481
|
export var eigs = /* #__PURE__ */createEigs({
|
1487
1482
|
abs,
|
1488
1483
|
add,
|
@@ -1516,6 +1511,13 @@ export var eigs = /* #__PURE__ */createEigs({
|
|
1516
1511
|
usolve,
|
1517
1512
|
usolveAll
|
1518
1513
|
});
|
1514
|
+
export var mad = /* #__PURE__ */createMad({
|
1515
|
+
abs,
|
1516
|
+
map,
|
1517
|
+
median,
|
1518
|
+
subtract,
|
1519
|
+
typed
|
1520
|
+
});
|
1519
1521
|
export var multinomial = /* #__PURE__ */createMultinomial({
|
1520
1522
|
add,
|
1521
1523
|
divide,
|
@@ -1525,12 +1527,10 @@ export var multinomial = /* #__PURE__ */createMultinomial({
|
|
1525
1527
|
multiply,
|
1526
1528
|
typed
|
1527
1529
|
});
|
1528
|
-
export var
|
1529
|
-
|
1530
|
-
|
1531
|
-
|
1532
|
-
subtract,
|
1533
|
-
typed
|
1530
|
+
export var std = /* #__PURE__ */createStd({
|
1531
|
+
sqrt,
|
1532
|
+
typed,
|
1533
|
+
variance
|
1534
1534
|
});
|
1535
1535
|
export var norm = /* #__PURE__ */createNorm({
|
1536
1536
|
abs,
|
@@ -3,8 +3,8 @@
|
|
3
3
|
* DON'T MAKE CHANGES HERE
|
4
4
|
*/
|
5
5
|
import { config } from './configReadonly.js';
|
6
|
-
import { createE, createFalse, createIndex, createInfinity, createLN10, createLOG10E, createMatrix, createNaN, createNull, createPhi, createRangeClass, createReplacer, createSQRT1_2, // eslint-disable-line camelcase
|
7
|
-
createSubset, createTau, createTyped, createUnaryPlus, createVersion, createXor, createAbs, createAcos, createAcot, createAcsc, createAdd, createAnd, createAsec, createAsin, createAtan, createAtanh, createBitAnd, createBitOr, createBoolean, createCbrt, createCombinations, createCompare, createCompareText, createCos, createCot, createCsc, createCube, createDivide, createEqualScalar, createErf, createExp, createFilter, createFix, createForEach, createFormat, createGamma, createIsInteger, createIsNegative, createIsPositive, createIsZero, createLOG2E, createLargerEq, createLeftShift, createLog10, createLog2, createMap, createMean, createMod, createMultiply, createNot, createNumber, createOr, createPi, createPow, createRandom,
|
6
|
+
import { createE, createFalse, createIndex, createInfinity, createLN10, createLOG10E, createMatrix, createNaN, createNull, createPhi, createRangeClass, createReplacer, createResultSet, createSQRT1_2, // eslint-disable-line camelcase
|
7
|
+
createSubset, createTau, createTyped, createUnaryPlus, createVersion, createXor, createAbs, createAcos, createAcot, createAcsc, createAdd, createAnd, createAsec, createAsin, createAtan, createAtanh, createBitAnd, createBitOr, createBoolean, createCbrt, createCombinations, createCompare, createCompareText, createCos, createCot, createCsc, createCube, createDivide, createEqualScalar, createErf, createExp, createFilter, createFix, createForEach, createFormat, createGamma, createIsInteger, createIsNegative, createIsPositive, createIsZero, createLOG2E, createLargerEq, createLeftShift, createLog10, createLog2, createMap, createMean, createMod, createMultiply, createNot, createNumber, createOr, createPi, createPow, createRandom, createRightLogShift, createSQRT2, createSech, createSin, createSize, createSmallerEq, createSquare, createString, createSubtract, createTanh, createTypeOf, createUnequal, createXgcd, createAcoth, createAddScalar, createAsech, createBitNot, createCeil, createCombinationsWithRep, createCosh, createCsch, createDivideScalar, createEqualText, createExpm1, createIsNumeric, createLN2, createLcm, createLog1p, createMultiplyScalar, createNthRoot, createPickRandom, createRandomInt, createRightArithShift, createSec, createSinh, createSqrt, createTan, createUnaryMinus, createAcosh, createApply, createAsinh, createBitXor, createClone, createEqual, createFactorial, createHasNumericValue, createIsNaN, createLarger, createMode, createNorm, createPartitionSelect, createPrint, createQuantileSeq, createRound, createSmaller, createStirlingS2, createTrue, createVariance, createAcsch, createAtan2, createCatalan, createComposition, createDeepEqual, createFloor, createHypot, createLog, createMedian, createMultinomial, createPermutations, createRange, createSign, createStd, createCompareNatural, createCoth, createGcd, createIsPrime, createNumeric, createProd, createSum, createBellNumbers, createMad, createMax, createMin } from '../factoriesNumber.js';
|
8
8
|
export var e = /* #__PURE__ */createE({
|
9
9
|
config
|
10
10
|
});
|
@@ -29,6 +29,7 @@ export var phi = /* #__PURE__ */createPhi({
|
|
29
29
|
});
|
30
30
|
export var Range = /* #__PURE__ */createRangeClass({});
|
31
31
|
export var replacer = /* #__PURE__ */createReplacer({});
|
32
|
+
export var ResultSet = /* #__PURE__ */createResultSet({});
|
32
33
|
export var SQRT1_2 = /* #__PURE__ */createSQRT1_2({
|
33
34
|
config
|
34
35
|
});
|
@@ -197,16 +198,13 @@ export var random = /* #__PURE__ */createRandom({
|
|
197
198
|
config,
|
198
199
|
typed
|
199
200
|
});
|
200
|
-
export var
|
201
|
-
typed
|
202
|
-
});
|
203
|
-
export var round = /* #__PURE__ */createRound({
|
201
|
+
export var rightLogShift = /* #__PURE__ */createRightLogShift({
|
204
202
|
typed
|
205
203
|
});
|
206
|
-
export var
|
207
|
-
|
204
|
+
export var SQRT2 = /* #__PURE__ */createSQRT2({
|
205
|
+
config
|
208
206
|
});
|
209
|
-
export var
|
207
|
+
export var sech = /* #__PURE__ */createSech({
|
210
208
|
typed
|
211
209
|
});
|
212
210
|
export var sin = /* #__PURE__ */createSin({
|
@@ -304,9 +302,11 @@ export var randomInt = /* #__PURE__ */createRandomInt({
|
|
304
302
|
config,
|
305
303
|
typed
|
306
304
|
});
|
307
|
-
export var
|
308
|
-
|
309
|
-
|
305
|
+
export var rightArithShift = /* #__PURE__ */createRightArithShift({
|
306
|
+
typed
|
307
|
+
});
|
308
|
+
export var sec = /* #__PURE__ */createSec({
|
309
|
+
typed
|
310
310
|
});
|
311
311
|
export var sinh = /* #__PURE__ */createSinh({
|
312
312
|
typed
|
@@ -333,17 +333,7 @@ export var asinh = /* #__PURE__ */createAsinh({
|
|
333
333
|
export var bitXor = /* #__PURE__ */createBitXor({
|
334
334
|
typed
|
335
335
|
});
|
336
|
-
export var
|
337
|
-
addScalar,
|
338
|
-
combinations,
|
339
|
-
divideScalar,
|
340
|
-
isInteger,
|
341
|
-
isNegative,
|
342
|
-
multiplyScalar,
|
343
|
-
typed
|
344
|
-
});
|
345
|
-
export var compareNatural = /* #__PURE__ */createCompareNatural({
|
346
|
-
compare,
|
336
|
+
export var clone = /* #__PURE__ */createClone({
|
347
337
|
typed
|
348
338
|
});
|
349
339
|
export var equal = /* #__PURE__ */createEqual({
|
@@ -389,7 +379,7 @@ export var quantileSeq = /* #__PURE__ */createQuantileSeq({
|
|
389
379
|
partitionSelect,
|
390
380
|
typed
|
391
381
|
});
|
392
|
-
export var
|
382
|
+
export var round = /* #__PURE__ */createRound({
|
393
383
|
typed
|
394
384
|
});
|
395
385
|
export var smaller = /* #__PURE__ */createSmaller({
|
@@ -425,6 +415,15 @@ export var acsch = /* #__PURE__ */createAcsch({
|
|
425
415
|
export var atan2 = /* #__PURE__ */createAtan2({
|
426
416
|
typed
|
427
417
|
});
|
418
|
+
export var catalan = /* #__PURE__ */createCatalan({
|
419
|
+
addScalar,
|
420
|
+
combinations,
|
421
|
+
divideScalar,
|
422
|
+
isInteger,
|
423
|
+
isNegative,
|
424
|
+
multiplyScalar,
|
425
|
+
typed
|
426
|
+
});
|
428
427
|
export var composition = /* #__PURE__ */createComposition({
|
429
428
|
addScalar,
|
430
429
|
combinations,
|
@@ -483,7 +482,7 @@ export var range = /* #__PURE__ */createRange({
|
|
483
482
|
smallerEq,
|
484
483
|
typed
|
485
484
|
});
|
486
|
-
export var
|
485
|
+
export var sign = /* #__PURE__ */createSign({
|
487
486
|
typed
|
488
487
|
});
|
489
488
|
export var std = /* #__PURE__ */createStd({
|
@@ -491,7 +490,8 @@ export var std = /* #__PURE__ */createStd({
|
|
491
490
|
typed,
|
492
491
|
variance
|
493
492
|
});
|
494
|
-
export var
|
493
|
+
export var compareNatural = /* #__PURE__ */createCompareNatural({
|
494
|
+
compare,
|
495
495
|
typed
|
496
496
|
});
|
497
497
|
export var coth = /* #__PURE__ */createCoth({
|
@@ -512,6 +512,12 @@ export var prod = /* #__PURE__ */createProd({
|
|
512
512
|
numeric,
|
513
513
|
typed
|
514
514
|
});
|
515
|
+
export var sum = /* #__PURE__ */createSum({
|
516
|
+
add,
|
517
|
+
config,
|
518
|
+
numeric,
|
519
|
+
typed
|
520
|
+
});
|
515
521
|
export var bellNumbers = /* #__PURE__ */createBellNumbers({
|
516
522
|
addScalar,
|
517
523
|
isInteger,
|
@@ -526,12 +532,6 @@ export var mad = /* #__PURE__ */createMad({
|
|
526
532
|
subtract,
|
527
533
|
typed
|
528
534
|
});
|
529
|
-
export var sum = /* #__PURE__ */createSum({
|
530
|
-
add,
|
531
|
-
config,
|
532
|
-
numeric,
|
533
|
-
typed
|
534
|
-
});
|
535
535
|
export var max = /* #__PURE__ */createMax({
|
536
536
|
config,
|
537
537
|
larger,
|
@@ -87,6 +87,10 @@ export var createHelpClass = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
87
87
|
desc += '\n';
|
88
88
|
}
|
89
89
|
|
90
|
+
if (doc.mayThrow && doc.mayThrow.length) {
|
91
|
+
desc += 'Throws: ' + doc.mayThrow.join(', ') + '\n\n';
|
92
|
+
}
|
93
|
+
|
90
94
|
if (doc.seealso && doc.seealso.length) {
|
91
95
|
desc += 'See also: ' + doc.seealso.join(', ') + '\n';
|
92
96
|
}
|
@@ -3,6 +3,6 @@ export var typedDocs = {
|
|
3
3
|
category: 'Core',
|
4
4
|
syntax: ['typed(signatures)', 'typed(name, signatures)'],
|
5
5
|
description: 'Create a typed function.',
|
6
|
-
examples: ['double = typed({ "number
|
6
|
+
examples: ['double = typed({ "number": f(x)=x+x })', 'double(2)', 'double("hello")'],
|
7
7
|
seealso: []
|
8
8
|
};
|
@@ -175,8 +175,11 @@ import { qrDocs } from './function/algebra/qr.js';
|
|
175
175
|
import { usolveDocs } from './function/algebra/usolve.js';
|
176
176
|
import { usolveAllDocs } from './function/algebra/usolveAll.js';
|
177
177
|
import { sluDocs } from './function/algebra/slu.js';
|
178
|
+
import { leafCountDocs } from './function/algebra/leafCount.js';
|
178
179
|
import { rationalizeDocs } from './function/algebra/rationalize.js';
|
179
180
|
import { simplifyDocs } from './function/algebra/simplify.js';
|
181
|
+
import { simplifyCoreDocs } from './function/algebra/simplifyCore.js';
|
182
|
+
import { resolveDocs } from './function/algebra/resolve.js';
|
180
183
|
import { lupDocs } from './function/algebra/lup.js';
|
181
184
|
import { lsolveDocs } from './function/algebra/lsolve.js';
|
182
185
|
import { lsolveAllDocs } from './function/algebra/lsolveAll.js';
|
@@ -466,7 +469,10 @@ export var embeddedDocs = {
|
|
466
469
|
lsolveAll: lsolveAllDocs,
|
467
470
|
lup: lupDocs,
|
468
471
|
lusolve: lusolveDocs,
|
472
|
+
leafCount: leafCountDocs,
|
469
473
|
simplify: simplifyDocs,
|
474
|
+
resolve: resolveDocs,
|
475
|
+
simplifyCore: simplifyCoreDocs,
|
470
476
|
rationalize: rationalizeDocs,
|
471
477
|
slu: sluDocs,
|
472
478
|
usolve: usolveDocs,
|
@@ -0,0 +1,8 @@
|
|
1
|
+
export var leafCountDocs = {
|
2
|
+
name: 'leafCount',
|
3
|
+
category: 'Algebra',
|
4
|
+
syntax: ['leafCount(expr)'],
|
5
|
+
description: 'Computes the number of leaves in the parse tree of the given expression',
|
6
|
+
examples: ['leafCount("e^(i*pi)-1")', 'leafCount(parse("{a: 22/7, b: 10^(1/2)}"))'],
|
7
|
+
seealso: ['simplify']
|
8
|
+
};
|
@@ -0,0 +1,9 @@
|
|
1
|
+
export var resolveDocs = {
|
2
|
+
name: 'resolve',
|
3
|
+
category: 'Algebra',
|
4
|
+
syntax: ['resolve(node, scope)'],
|
5
|
+
description: 'Recursively substitute variables in an expression tree.',
|
6
|
+
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") })'],
|
7
|
+
seealso: ['simplify', 'evaluate'],
|
8
|
+
mayThrow: ['ReferenceError']
|
9
|
+
};
|
@@ -4,5 +4,5 @@ export var simplifyDocs = {
|
|
4
4
|
syntax: ['simplify(expr)', 'simplify(expr, rules)'],
|
5
5
|
description: 'Simplify an expression tree.',
|
6
6
|
examples: ['simplify("3 + 2 / 4")', 'simplify("2x + x")', 'f = parse("x * (x + 2 + x)")', 'simplified = simplify(f)', 'simplified.evaluate({x: 2})'],
|
7
|
-
seealso: ['derivative', 'parse', '
|
7
|
+
seealso: ['simplifyCore', 'derivative', 'evaluate', 'parse', 'rationalize', 'resolve']
|
8
8
|
};
|
@@ -0,0 +1,8 @@
|
|
1
|
+
export var simplifyCoreDocs = {
|
2
|
+
name: 'simplifyCore',
|
3
|
+
category: 'Algebra',
|
4
|
+
syntax: ['simplifyCore(node)'],
|
5
|
+
description: 'Perform simple one-pass simplifications on an expression tree.',
|
6
|
+
examples: ['simplifyCore(parse("0*x"))', 'simplifyCore(parse("(x+0)*2"))'],
|
7
|
+
seealso: ['simplify', 'evaluate']
|
8
|
+
};
|
package/lib/esm/factoriesAny.js
CHANGED
@@ -241,7 +241,10 @@ export { createStirlingS2 } from './function/combinatorics/stirlingS2.js';
|
|
241
241
|
export { createBellNumbers } from './function/combinatorics/bellNumbers.js';
|
242
242
|
export { createCatalan } from './function/combinatorics/catalan.js';
|
243
243
|
export { createComposition } from './function/combinatorics/composition.js';
|
244
|
+
export { createLeafCount } from './function/algebra/leafCount.js';
|
244
245
|
export { createSimplify } from './function/algebra/simplify.js';
|
246
|
+
export { createSimplifyCore } from './function/algebra/simplifyCore.js';
|
247
|
+
export { createResolve } from './function/algebra/resolve.js';
|
245
248
|
export { createDerivative } from './function/algebra/derivative.js';
|
246
249
|
export { createRationalize } from './function/algebra/rationalize.js';
|
247
250
|
export { createReviver } from './json/reviver.js';
|
@@ -13,7 +13,9 @@ export { createChainClass } from './type/chain/Chain.js';
|
|
13
13
|
export { createHelp } from './expression/function/help.js';
|
14
14
|
export { createChain } from './type/chain/function/chain.js'; // algebra
|
15
15
|
|
16
|
+
export { createResolve } from './function/algebra/resolve.js';
|
16
17
|
export { createSimplify } from './function/algebra/simplify.js';
|
18
|
+
export { createSimplifyCore } from './function/algebra/simplifyCore.js';
|
17
19
|
export { createDerivative } from './function/algebra/derivative.js';
|
18
20
|
export { createRationalize } from './function/algebra/rationalize.js'; // arithmetic
|
19
21
|
|
@@ -0,0 +1,59 @@
|
|
1
|
+
import { factory } from '../../utils/factory.js';
|
2
|
+
var name = 'leafCount';
|
3
|
+
var dependencies = ['parse', 'typed'];
|
4
|
+
export var createLeafCount = /* #__PURE__ */factory(name, dependencies, _ref => {
|
5
|
+
var {
|
6
|
+
parse,
|
7
|
+
typed
|
8
|
+
} = _ref;
|
9
|
+
|
10
|
+
// This does the real work, but we don't have to recurse through
|
11
|
+
// a typed call if we separate it out
|
12
|
+
function countLeaves(node) {
|
13
|
+
var count = 0;
|
14
|
+
node.forEach(n => {
|
15
|
+
count += countLeaves(n);
|
16
|
+
});
|
17
|
+
return count || 1;
|
18
|
+
}
|
19
|
+
/**
|
20
|
+
* Gives the number of "leaf nodes" in the parse tree of the given expression
|
21
|
+
* A leaf node is one that has no subexpressions, essentially either a
|
22
|
+
* symbol or a constant. Note that `5!` has just one leaf, the '5'; the
|
23
|
+
* unary factorial operator does not add a leaf. On the other hand,
|
24
|
+
* function symbols do add leaves, so `sin(x)/cos(x)` has four leaves.
|
25
|
+
*
|
26
|
+
* The `simplify()` function should generally not increase the `leafCount()`
|
27
|
+
* of an expression, although currently there is no guarantee that it never
|
28
|
+
* does so. In many cases, `simplify()` reduces the leaf count.
|
29
|
+
*
|
30
|
+
* Syntax:
|
31
|
+
*
|
32
|
+
* leafCount(expr)
|
33
|
+
*
|
34
|
+
* Examples:
|
35
|
+
*
|
36
|
+
* math.leafCount('x') // 1
|
37
|
+
* math.leafCount(math.parse('a*d-b*c')) // 4
|
38
|
+
* math.leafCount('[a,b;c,d][0,1]') // 6
|
39
|
+
*
|
40
|
+
* See also:
|
41
|
+
*
|
42
|
+
* simplify
|
43
|
+
*
|
44
|
+
* @param {Node|string} expr The expression to count the leaves of
|
45
|
+
*
|
46
|
+
* @return {number} The number of leaves of `expr`
|
47
|
+
*
|
48
|
+
*/
|
49
|
+
|
50
|
+
|
51
|
+
return typed(name, {
|
52
|
+
string: function string(expr) {
|
53
|
+
return this(parse(expr));
|
54
|
+
},
|
55
|
+
Node: function Node(expr) {
|
56
|
+
return countLeaves(expr);
|
57
|
+
}
|
58
|
+
});
|
59
|
+
});
|
@@ -1,9 +1,8 @@
|
|
1
1
|
import { isInteger } from '../../utils/number.js';
|
2
2
|
import { factory } from '../../utils/factory.js';
|
3
3
|
import { createSimplifyConstant } from './simplify/simplifyConstant.js';
|
4
|
-
import { createSimplifyCore } from './simplify/simplifyCore.js';
|
5
4
|
var name = 'rationalize';
|
6
|
-
var dependencies = ['config', 'typed', 'equal', 'isZero', 'add', 'subtract', 'multiply', 'divide', 'pow', 'parse', 'simplify', '?bignumber', '?fraction', 'mathWithTransform', 'matrix', 'AccessorNode', 'ArrayNode', 'ConstantNode', 'FunctionNode', 'IndexNode', 'ObjectNode', 'OperatorNode', 'SymbolNode', 'ParenthesisNode'];
|
5
|
+
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'];
|
7
6
|
export var createRationalize = /* #__PURE__ */factory(name, dependencies, _ref => {
|
8
7
|
var {
|
9
8
|
config,
|
@@ -16,6 +15,7 @@ export var createRationalize = /* #__PURE__ */factory(name, dependencies, _ref =
|
|
16
15
|
divide,
|
17
16
|
pow,
|
18
17
|
parse,
|
18
|
+
simplifyCore,
|
19
19
|
simplify,
|
20
20
|
fraction,
|
21
21
|
bignumber,
|
@@ -47,23 +47,6 @@ export var createRationalize = /* #__PURE__ */factory(name, dependencies, _ref =
|
|
47
47
|
OperatorNode,
|
48
48
|
SymbolNode
|
49
49
|
});
|
50
|
-
var simplifyCore = createSimplifyCore({
|
51
|
-
equal,
|
52
|
-
isZero,
|
53
|
-
add,
|
54
|
-
subtract,
|
55
|
-
multiply,
|
56
|
-
divide,
|
57
|
-
pow,
|
58
|
-
AccessorNode,
|
59
|
-
ArrayNode,
|
60
|
-
ConstantNode,
|
61
|
-
FunctionNode,
|
62
|
-
IndexNode,
|
63
|
-
ObjectNode,
|
64
|
-
OperatorNode,
|
65
|
-
ParenthesisNode
|
66
|
-
});
|
67
50
|
/**
|
68
51
|
* Transform a rationalizable expression in a rational fraction.
|
69
52
|
* If rational fraction is one variable polynomial then converts
|
@@ -107,13 +90,13 @@ export var createRationalize = /* #__PURE__ */factory(name, dependencies, _ref =
|
|
107
90
|
* @param {Object|boolean} optional scope of expression or true for already evaluated rational expression at input
|
108
91
|
* @param {Boolean} detailed optional True if return an object, false if return expression node (default)
|
109
92
|
*
|
110
|
-
* @return {Object | Node} The rational polynomial of `expr` or
|
111
|
-
* {
|
112
|
-
*
|
113
|
-
*
|
114
|
-
*
|
115
|
-
*
|
116
|
-
*
|
93
|
+
* @return {Object | Node} The rational polynomial of `expr` or an object
|
94
|
+
* `{expression, numerator, denominator, variables, coefficients}`, where
|
95
|
+
* `expression` is a `Node` with the node simplified expression,
|
96
|
+
* `numerator` is a `Node` with the simplified numerator of expression,
|
97
|
+
* `denominator` is a `Node` or `boolean` with the simplified denominator or `false` (if there is no denominator),
|
98
|
+
* `variables` is an array with variable names,
|
99
|
+
* and `coefficients` is an array with coefficients of numerator sorted by increased exponent
|
117
100
|
* {Expression Node} node simplified expression
|
118
101
|
*
|
119
102
|
*/
|
@@ -146,6 +129,12 @@ export var createRationalize = /* #__PURE__ */factory(name, dependencies, _ref =
|
|
146
129
|
var polyRet = polynomial(expr, scope, true, setRules.firstRules); // Check if expression is a rationalizable polynomial
|
147
130
|
|
148
131
|
var nVars = polyRet.variables.length;
|
132
|
+
var noExactFractions = {
|
133
|
+
exactFractions: false
|
134
|
+
};
|
135
|
+
var withExactFractions = {
|
136
|
+
exactFractions: true
|
137
|
+
};
|
149
138
|
expr = polyRet.expression;
|
150
139
|
|
151
140
|
if (nVars >= 1) {
|
@@ -156,18 +145,16 @@ export var createRationalize = /* #__PURE__ */factory(name, dependencies, _ref =
|
|
156
145
|
|
157
146
|
var rules;
|
158
147
|
var eDistrDiv = true;
|
159
|
-
var redoInic = false;
|
160
|
-
expr = simplify(expr, setRules.firstRules, {}, {
|
161
|
-
exactFractions: false
|
162
|
-
}); // Apply the initial rules, including succ div rules
|
148
|
+
var redoInic = false; // Apply the initial rules, including succ div rules:
|
163
149
|
|
150
|
+
expr = simplify(expr, setRules.firstRules, {}, noExactFractions);
|
164
151
|
var s;
|
165
152
|
|
166
153
|
while (true) {
|
167
|
-
//
|
154
|
+
// Alternate applying successive division rules and distr.div.rules
|
155
|
+
// until there are no more changes:
|
168
156
|
rules = eDistrDiv ? setRules.distrDivRules : setRules.sucDivRules;
|
169
|
-
expr = simplify(expr, rules);
|
170
|
-
|
157
|
+
expr = simplify(expr, rules, {}, withExactFractions);
|
171
158
|
eDistrDiv = !eDistrDiv; // Swap between Distr.Div and Succ. Div. Rules
|
172
159
|
|
173
160
|
s = expr.toString();
|
@@ -182,14 +169,11 @@ export var createRationalize = /* #__PURE__ */factory(name, dependencies, _ref =
|
|
182
169
|
|
183
170
|
if (redoInic) {
|
184
171
|
// Apply first rules again without succ div rules (if there are changes)
|
185
|
-
expr = simplify(expr, setRules.firstRulesAgain, {},
|
186
|
-
|
187
|
-
|
188
|
-
}
|
172
|
+
expr = simplify(expr, setRules.firstRulesAgain, {}, noExactFractions);
|
173
|
+
} // Apply final rules:
|
174
|
+
|
189
175
|
|
190
|
-
expr = simplify(expr, setRules.finalRules, {},
|
191
|
-
exactFractions: false
|
192
|
-
}); // Apply final rules
|
176
|
+
expr = simplify(expr, setRules.finalRules, {}, noExactFractions);
|
193
177
|
} // NVars >= 1
|
194
178
|
|
195
179
|
|