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