mathjs 8.1.0 → 12.2.1
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/CONTRIBUTING.md +11 -10
- package/HISTORY.md +772 -1
- package/NOTICE +1 -1
- package/README.md +33 -16
- package/bin/cli.js +12 -12
- package/lib/browser/math.js +2 -40
- package/lib/browser/math.js.LICENSE.txt +43 -0
- package/lib/browser/math.js.map +1 -1
- package/lib/cjs/constants.js +40 -61
- package/lib/cjs/core/config.js +2 -3
- package/lib/cjs/core/create.js +31 -46
- package/lib/cjs/core/function/config.js +15 -20
- package/lib/cjs/core/function/import.js +28 -82
- package/lib/cjs/core/function/typed.js +71 -49
- package/lib/cjs/defaultInstance.js +4 -12
- package/lib/cjs/entry/allFactoriesAny.js +5 -10
- package/lib/cjs/entry/allFactoriesNumber.js +5 -10
- package/lib/cjs/entry/configReadonly.js +4 -11
- package/lib/cjs/entry/dependenciesAny/dependenciesAbs.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesAccessorNode.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesAcos.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesAcosh.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesAcot.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesAcoth.generated.js +3 -8
- package/lib/cjs/entry/dependenciesAny/dependenciesAcsc.generated.js +3 -8
- package/lib/cjs/entry/dependenciesAny/dependenciesAcsch.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesAdd.generated.js +5 -11
- package/lib/cjs/entry/dependenciesAny/dependenciesAddScalar.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesAnd.generated.js +5 -10
- package/lib/cjs/entry/dependenciesAny/dependenciesAndTransform.generated.js +29 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesApply.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesApplyTransform.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesArg.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesArrayNode.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesAsec.generated.js +3 -8
- package/lib/cjs/entry/dependenciesAny/dependenciesAsech.generated.js +3 -8
- package/lib/cjs/entry/dependenciesAny/dependenciesAsin.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesAsinh.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesAssignmentNode.generated.js +3 -8
- package/lib/cjs/entry/dependenciesAny/dependenciesAtan.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesAtan2.generated.js +5 -10
- package/lib/cjs/entry/dependenciesAny/dependenciesAtanh.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesAtomicMass.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesAvogadro.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesBellNumbers.generated.js +3 -10
- package/lib/cjs/entry/dependenciesAny/dependenciesBigNumberClass.generated.js +3 -5
- package/lib/cjs/entry/dependenciesAny/dependenciesBignumber.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesBin.generated.js +5 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesBitAnd.generated.js +5 -8
- package/lib/cjs/entry/dependenciesAny/dependenciesBitAndTransform.generated.js +29 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesBitNot.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesBitOr.generated.js +5 -9
- package/lib/cjs/entry/dependenciesAny/dependenciesBitOrTransform.generated.js +25 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesBitXor.generated.js +5 -8
- package/lib/cjs/entry/dependenciesAny/dependenciesBlockNode.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesBohrMagneton.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesBohrRadius.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesBoltzmann.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesBoolean.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesCatalan.generated.js +3 -12
- package/lib/cjs/entry/dependenciesAny/dependenciesCbrt.generated.js +3 -12
- package/lib/cjs/entry/dependenciesAny/dependenciesCeil.generated.js +7 -9
- package/lib/cjs/entry/dependenciesAny/dependenciesChain.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesChainClass.generated.js +5 -5
- package/lib/cjs/entry/dependenciesAny/dependenciesClassicalElectronRadius.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesClone.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesColumn.generated.js +3 -9
- package/lib/cjs/entry/dependenciesAny/dependenciesColumnTransform.generated.js +3 -9
- package/lib/cjs/entry/dependenciesAny/dependenciesCombinations.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesCombinationsWithRep.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesCompare.generated.js +5 -11
- package/lib/cjs/entry/dependenciesAny/dependenciesCompareNatural.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesCompareText.generated.js +5 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesCompile.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesComplex.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesComplexClass.generated.js +3 -5
- package/lib/cjs/entry/dependenciesAny/dependenciesComposition.generated.js +3 -12
- package/lib/cjs/entry/dependenciesAny/dependenciesConcat.generated.js +3 -8
- package/lib/cjs/entry/dependenciesAny/dependenciesConcatTransform.generated.js +3 -8
- package/lib/cjs/entry/dependenciesAny/dependenciesConditionalNode.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesConductanceQuantum.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesConj.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesConstantNode.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesCorr.generated.js +35 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesCos.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesCosh.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesCot.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesCoth.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesCoulomb.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesCount.generated.js +21 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesCreateUnit.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesCross.generated.js +3 -9
- package/lib/cjs/entry/dependenciesAny/dependenciesCsc.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesCsch.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesCtranspose.generated.js +3 -8
- package/lib/cjs/entry/dependenciesAny/dependenciesCube.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesCumSum.generated.js +21 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesCumSumTransform.generated.js +21 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesDeepEqual.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesDenseMatrixClass.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesDerivative.generated.js +3 -16
- package/lib/cjs/entry/dependenciesAny/dependenciesDet.generated.js +9 -15
- package/lib/cjs/entry/dependenciesAny/dependenciesDeuteronMass.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesDiag.generated.js +3 -9
- package/lib/cjs/entry/dependenciesAny/dependenciesDiff.generated.js +3 -9
- package/lib/cjs/entry/dependenciesAny/dependenciesDiffTransform.generated.js +3 -10
- package/lib/cjs/entry/dependenciesAny/dependenciesDistance.generated.js +7 -17
- package/lib/cjs/entry/dependenciesAny/dependenciesDivide.generated.js +3 -11
- package/lib/cjs/entry/dependenciesAny/dependenciesDivideScalar.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesDot.generated.js +3 -10
- package/lib/cjs/entry/dependenciesAny/dependenciesDotDivide.generated.js +5 -10
- package/lib/cjs/entry/dependenciesAny/dependenciesDotMultiply.generated.js +5 -9
- package/lib/cjs/entry/dependenciesAny/dependenciesDotPow.generated.js +5 -10
- package/lib/cjs/entry/dependenciesAny/dependenciesE.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesEfimovFactor.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesEigs.generated.js +39 -19
- package/lib/cjs/entry/dependenciesAny/dependenciesElectricConstant.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesElectronMass.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesElementaryCharge.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesEqual.generated.js +5 -9
- package/lib/cjs/entry/dependenciesAny/dependenciesEqualScalar.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesEqualText.generated.js +3 -8
- package/lib/cjs/entry/dependenciesAny/dependenciesErf.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesEvaluate.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesExp.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesExpm.generated.js +3 -11
- package/lib/cjs/entry/dependenciesAny/dependenciesExpm1.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesFactorial.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesFalse.generated.js +3 -5
- package/lib/cjs/entry/dependenciesAny/dependenciesFaraday.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesFermiCoupling.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesFft.generated.js +41 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesFibonacciHeapClass.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesFilter.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesFilterTransform.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesFineStructure.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesFirstRadiation.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesFix.generated.js +9 -10
- package/lib/cjs/entry/dependenciesAny/dependenciesFlatten.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesFloor.generated.js +7 -9
- package/lib/cjs/entry/dependenciesAny/dependenciesForEach.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesForEachTransform.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesFormat.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesFraction.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesFractionClass.generated.js +3 -5
- package/lib/cjs/entry/dependenciesAny/dependenciesFreqz.generated.js +27 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesFunctionAssignmentNode.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesFunctionNode.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesGamma.generated.js +3 -10
- package/lib/cjs/entry/dependenciesAny/dependenciesGasConstant.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesGcd.generated.js +9 -10
- package/lib/cjs/entry/dependenciesAny/dependenciesGetMatrixDataType.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesGravitationConstant.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesGravity.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesHartreeEnergy.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesHasNumericValue.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesHelp.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesHelpClass.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesHex.generated.js +5 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesHypot.generated.js +3 -13
- package/lib/cjs/entry/dependenciesAny/dependenciesI.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesIdentity.generated.js +3 -10
- package/lib/cjs/entry/dependenciesAny/dependenciesIfft.generated.js +23 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesIm.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesImmutableDenseMatrixClass.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesIndex.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesIndexClass.generated.js +5 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesIndexNode.generated.js +3 -10
- package/lib/cjs/entry/dependenciesAny/dependenciesIndexTransform.generated.js +5 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesInfinity.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesIntersect.generated.js +9 -16
- package/lib/cjs/entry/dependenciesAny/dependenciesInv.generated.js +3 -14
- package/lib/cjs/entry/dependenciesAny/dependenciesInverseConductanceQuantum.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesInvmod.generated.js +31 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesIsInteger.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesIsNaN.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesIsNegative.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesIsNumeric.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesIsPositive.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesIsPrime.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesIsZero.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesKldivergence.generated.js +5 -13
- package/lib/cjs/entry/dependenciesAny/dependenciesKlitzing.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesKron.generated.js +3 -8
- package/lib/cjs/entry/dependenciesAny/dependenciesLN10.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesLN2.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesLOG10E.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesLOG2E.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesLarger.generated.js +5 -8
- package/lib/cjs/entry/dependenciesAny/dependenciesLargerEq.generated.js +5 -8
- package/lib/cjs/entry/dependenciesAny/dependenciesLcm.generated.js +5 -8
- package/lib/cjs/entry/dependenciesAny/dependenciesLeafCount.generated.js +19 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesLeftShift.generated.js +5 -10
- package/lib/cjs/entry/dependenciesAny/dependenciesLgamma.generated.js +19 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesLog.generated.js +3 -8
- package/lib/cjs/entry/dependenciesAny/dependenciesLog10.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesLog1p.generated.js +3 -9
- package/lib/cjs/entry/dependenciesAny/dependenciesLog2.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesLoschmidt.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesLsolve.generated.js +5 -14
- package/lib/cjs/entry/dependenciesAny/dependenciesLsolveAll.generated.js +5 -14
- package/lib/cjs/entry/dependenciesAny/dependenciesLup.generated.js +5 -20
- package/lib/cjs/entry/dependenciesAny/dependenciesLusolve.generated.js +3 -12
- package/lib/cjs/entry/dependenciesAny/dependenciesLyap.generated.js +25 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesMad.generated.js +3 -10
- package/lib/cjs/entry/dependenciesAny/dependenciesMagneticConstant.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesMagneticFluxQuantum.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesMap.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesMapTransform.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesMatrix.generated.js +3 -9
- package/lib/cjs/entry/dependenciesAny/dependenciesMatrixClass.generated.js +3 -5
- package/lib/cjs/entry/dependenciesAny/dependenciesMatrixFromColumns.generated.js +23 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesMatrixFromFunction.generated.js +21 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesMatrixFromRows.generated.js +23 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesMax.generated.js +3 -8
- package/lib/cjs/entry/dependenciesAny/dependenciesMaxTransform.generated.js +3 -8
- package/lib/cjs/entry/dependenciesAny/dependenciesMean.generated.js +3 -8
- package/lib/cjs/entry/dependenciesAny/dependenciesMeanTransform.generated.js +3 -8
- package/lib/cjs/entry/dependenciesAny/dependenciesMedian.generated.js +3 -10
- package/lib/cjs/entry/dependenciesAny/dependenciesMin.generated.js +3 -8
- package/lib/cjs/entry/dependenciesAny/dependenciesMinTransform.generated.js +3 -8
- package/lib/cjs/entry/dependenciesAny/dependenciesMod.generated.js +9 -9
- package/lib/cjs/entry/dependenciesAny/dependenciesMode.generated.js +3 -8
- package/lib/cjs/entry/dependenciesAny/dependenciesMolarMass.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesMolarMassC12.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesMolarPlanckConstant.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesMolarVolume.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesMultinomial.generated.js +3 -12
- package/lib/cjs/entry/dependenciesAny/dependenciesMultiply.generated.js +3 -11
- package/lib/cjs/entry/dependenciesAny/dependenciesMultiplyScalar.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesNaN.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesNeutronMass.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesNode.generated.js +3 -5
- package/lib/cjs/entry/dependenciesAny/dependenciesNorm.generated.js +3 -18
- package/lib/cjs/entry/dependenciesAny/dependenciesNot.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesNthRoot.generated.js +5 -9
- package/lib/cjs/entry/dependenciesAny/dependenciesNthRoots.generated.js +3 -8
- package/lib/cjs/entry/dependenciesAny/dependenciesNuclearMagneton.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesNull.generated.js +3 -5
- package/lib/cjs/entry/dependenciesAny/dependenciesNumber.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesNumeric.generated.js +3 -8
- package/lib/cjs/entry/dependenciesAny/dependenciesObjectNode.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesOct.generated.js +5 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesOnes.generated.js +3 -8
- package/lib/cjs/entry/dependenciesAny/dependenciesOperatorNode.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesOr.generated.js +5 -9
- package/lib/cjs/entry/dependenciesAny/dependenciesOrTransform.generated.js +25 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesParenthesisNode.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesParse.generated.js +3 -22
- package/lib/cjs/entry/dependenciesAny/dependenciesParser.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesParserClass.generated.js +5 -8
- package/lib/cjs/entry/dependenciesAny/dependenciesPartitionSelect.generated.js +3 -9
- package/lib/cjs/entry/dependenciesAny/dependenciesPermutations.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesPhi.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesPi.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesPickRandom.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesPinv.generated.js +39 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesPlanckCharge.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesPlanckConstant.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesPlanckLength.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesPlanckMass.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesPlanckTemperature.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesPlanckTime.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesPolynomialRoot.generated.js +41 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesPow.generated.js +5 -12
- package/lib/cjs/entry/dependenciesAny/dependenciesPrint.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesPrintTransform.generated.js +23 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesProd.generated.js +3 -8
- package/lib/cjs/entry/dependenciesAny/dependenciesProtonMass.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesQr.generated.js +5 -22
- package/lib/cjs/entry/dependenciesAny/dependenciesQuantileSeq.generated.js +17 -10
- package/lib/cjs/entry/dependenciesAny/dependenciesQuantileSeqTransform.generated.js +39 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesQuantumOfCirculation.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesRandom.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesRandomInt.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesRange.generated.js +7 -12
- package/lib/cjs/entry/dependenciesAny/dependenciesRangeClass.generated.js +3 -5
- package/lib/cjs/entry/dependenciesAny/dependenciesRangeNode.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesRangeTransform.generated.js +7 -12
- package/lib/cjs/entry/dependenciesAny/dependenciesRationalize.generated.js +17 -22
- package/lib/cjs/entry/dependenciesAny/dependenciesRe.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesReducedPlanckConstant.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesRelationalNode.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesReplacer.generated.js +3 -5
- package/lib/cjs/entry/dependenciesAny/dependenciesReshape.generated.js +3 -8
- package/lib/cjs/entry/dependenciesAny/dependenciesResize.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesResolve.generated.js +27 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesResultSet.generated.js +3 -5
- package/lib/cjs/entry/dependenciesAny/dependenciesReviver.generated.js +3 -5
- package/lib/cjs/entry/dependenciesAny/dependenciesRightArithShift.generated.js +5 -10
- package/lib/cjs/entry/dependenciesAny/dependenciesRightLogShift.generated.js +5 -10
- package/lib/cjs/entry/dependenciesAny/dependenciesRotate.generated.js +3 -8
- package/lib/cjs/entry/dependenciesAny/dependenciesRotationMatrix.generated.js +3 -16
- package/lib/cjs/entry/dependenciesAny/dependenciesRound.generated.js +3 -11
- package/lib/cjs/entry/dependenciesAny/dependenciesRow.generated.js +3 -9
- package/lib/cjs/entry/dependenciesAny/dependenciesRowTransform.generated.js +3 -9
- package/lib/cjs/entry/dependenciesAny/dependenciesRydberg.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesSQRT1_2.generated.js +4 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesSQRT2.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesSackurTetrode.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesSchur.generated.js +29 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesSec.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesSech.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesSecondRadiation.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesSetCartesian.generated.js +3 -11
- package/lib/cjs/entry/dependenciesAny/dependenciesSetDifference.generated.js +3 -11
- package/lib/cjs/entry/dependenciesAny/dependenciesSetDistinct.generated.js +3 -11
- package/lib/cjs/entry/dependenciesAny/dependenciesSetIntersect.generated.js +3 -11
- package/lib/cjs/entry/dependenciesAny/dependenciesSetIsSubset.generated.js +3 -10
- package/lib/cjs/entry/dependenciesAny/dependenciesSetMultiplicity.generated.js +3 -10
- package/lib/cjs/entry/dependenciesAny/dependenciesSetPowerset.generated.js +3 -10
- package/lib/cjs/entry/dependenciesAny/dependenciesSetSize.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesSetSymDifference.generated.js +3 -11
- package/lib/cjs/entry/dependenciesAny/dependenciesSetUnion.generated.js +3 -12
- package/lib/cjs/entry/dependenciesAny/dependenciesSign.generated.js +3 -9
- package/lib/cjs/entry/dependenciesAny/dependenciesSimplify.generated.js +19 -21
- package/lib/cjs/entry/dependenciesAny/dependenciesSimplifyConstant.generated.js +39 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesSimplifyCore.generated.js +51 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesSin.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesSinh.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesSize.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesSlu.generated.js +3 -15
- package/lib/cjs/entry/dependenciesAny/dependenciesSmaller.generated.js +5 -8
- package/lib/cjs/entry/dependenciesAny/dependenciesSmallerEq.generated.js +5 -8
- package/lib/cjs/entry/dependenciesAny/dependenciesSolveODE.generated.js +45 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesSort.generated.js +3 -9
- package/lib/cjs/entry/dependenciesAny/dependenciesSpaClass.generated.js +3 -8
- package/lib/cjs/entry/dependenciesAny/dependenciesSparse.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesSparseMatrixClass.generated.js +3 -8
- package/lib/cjs/entry/dependenciesAny/dependenciesSpeedOfLight.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesSplitUnit.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesSqrt.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesSqrtm.generated.js +5 -15
- package/lib/cjs/entry/dependenciesAny/dependenciesSquare.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesSqueeze.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesStd.generated.js +5 -8
- package/lib/cjs/entry/dependenciesAny/dependenciesStdTransform.generated.js +5 -8
- package/lib/cjs/entry/dependenciesAny/dependenciesStefanBoltzmann.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesStirlingS2.generated.js +9 -18
- package/lib/cjs/entry/dependenciesAny/dependenciesString.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesSubset.generated.js +7 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesSubsetTransform.generated.js +7 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesSubtract.generated.js +7 -13
- package/lib/cjs/entry/dependenciesAny/dependenciesSubtractScalar.generated.js +17 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesSum.generated.js +3 -8
- package/lib/cjs/entry/dependenciesAny/dependenciesSumTransform.generated.js +3 -8
- package/lib/cjs/entry/dependenciesAny/dependenciesSylvester.generated.js +45 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesSymbolNode.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesSymbolicEqual.generated.js +23 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesTan.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesTanh.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesTau.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesThomsonCrossSection.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesTo.generated.js +5 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesTrace.generated.js +3 -8
- package/lib/cjs/entry/dependenciesAny/dependenciesTranspose.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesTrue.generated.js +3 -5
- package/lib/cjs/entry/dependenciesAny/dependenciesTypeOf.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesTyped.generated.js +3 -9
- package/lib/cjs/entry/dependenciesAny/dependenciesUnaryMinus.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesUnaryPlus.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesUnequal.generated.js +5 -9
- package/lib/cjs/entry/dependenciesAny/dependenciesUnitClass.generated.js +5 -22
- package/lib/cjs/entry/dependenciesAny/dependenciesUnitFunction.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesUppercaseE.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesUppercasePi.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesUsolve.generated.js +5 -14
- package/lib/cjs/entry/dependenciesAny/dependenciesUsolveAll.generated.js +5 -14
- package/lib/cjs/entry/dependenciesAny/dependenciesVacuumImpedance.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesVariance.generated.js +3 -12
- package/lib/cjs/entry/dependenciesAny/dependenciesVarianceTransform.generated.js +3 -12
- package/lib/cjs/entry/dependenciesAny/dependenciesVersion.generated.js +3 -5
- package/lib/cjs/entry/dependenciesAny/dependenciesWeakMixingAngle.generated.js +3 -6
- package/lib/cjs/entry/dependenciesAny/dependenciesWienDisplacement.generated.js +3 -7
- package/lib/cjs/entry/dependenciesAny/dependenciesXgcd.generated.js +3 -8
- package/lib/cjs/entry/dependenciesAny/dependenciesXor.generated.js +5 -8
- package/lib/cjs/entry/dependenciesAny/dependenciesZeros.generated.js +3 -8
- package/lib/cjs/entry/dependenciesAny/dependenciesZeta.generated.js +45 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesZpk2tf.generated.js +25 -0
- package/lib/cjs/entry/dependenciesAny.generated.js +1150 -1256
- package/lib/cjs/entry/dependenciesNumber/dependenciesAbs.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesAccessorNode.generated.js +3 -7
- package/lib/cjs/entry/dependenciesNumber/dependenciesAcos.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesAcosh.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesAcot.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesAcoth.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesAcsc.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesAcsch.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesAdd.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesAddScalar.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesAnd.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesApply.generated.js +3 -7
- package/lib/cjs/entry/dependenciesNumber/dependenciesApplyTransform.generated.js +3 -7
- package/lib/cjs/entry/dependenciesNumber/dependenciesArrayNode.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesAsec.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesAsech.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesAsin.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesAsinh.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesAssignmentNode.generated.js +3 -8
- package/lib/cjs/entry/dependenciesNumber/dependenciesAtan.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesAtan2.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesAtanh.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesBellNumbers.generated.js +3 -10
- package/lib/cjs/entry/dependenciesNumber/dependenciesBitAnd.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesBitNot.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesBitOr.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesBitXor.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesBlockNode.generated.js +3 -7
- package/lib/cjs/entry/dependenciesNumber/dependenciesBoolean.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesCatalan.generated.js +3 -12
- package/lib/cjs/entry/dependenciesNumber/dependenciesCbrt.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesCeil.generated.js +5 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesChain.generated.js +3 -7
- package/lib/cjs/entry/dependenciesNumber/dependenciesChainClass.generated.js +5 -5
- package/lib/cjs/entry/dependenciesNumber/dependenciesClone.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesCombinations.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesCombinationsWithRep.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesCompare.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesCompareNatural.generated.js +3 -7
- package/lib/cjs/entry/dependenciesNumber/dependenciesCompareText.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesCompile.generated.js +3 -7
- package/lib/cjs/entry/dependenciesNumber/dependenciesComposition.generated.js +3 -12
- package/lib/cjs/entry/dependenciesNumber/dependenciesConditionalNode.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesConstantNode.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesCorr.generated.js +35 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesCos.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesCosh.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesCot.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesCoth.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesCsc.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesCsch.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesCube.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesCumSum.generated.js +21 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesCumSumTransform.generated.js +21 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesDeepEqual.generated.js +3 -7
- package/lib/cjs/entry/dependenciesNumber/dependenciesDerivative.generated.js +3 -16
- package/lib/cjs/entry/dependenciesNumber/dependenciesDivide.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesDivideScalar.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesE.generated.js +3 -5
- package/lib/cjs/entry/dependenciesNumber/dependenciesEqual.generated.js +3 -7
- package/lib/cjs/entry/dependenciesNumber/dependenciesEqualScalar.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesEqualText.generated.js +3 -8
- package/lib/cjs/entry/dependenciesNumber/dependenciesErf.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesEvaluate.generated.js +3 -7
- package/lib/cjs/entry/dependenciesNumber/dependenciesExp.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesExpm1.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesFactorial.generated.js +3 -7
- package/lib/cjs/entry/dependenciesNumber/dependenciesFalse.generated.js +3 -5
- package/lib/cjs/entry/dependenciesNumber/dependenciesFilter.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesFilterTransform.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesFix.generated.js +7 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesFloor.generated.js +5 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesForEach.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesForEachTransform.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesFormat.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesFunctionAssignmentNode.generated.js +3 -7
- package/lib/cjs/entry/dependenciesNumber/dependenciesFunctionNode.generated.js +3 -7
- package/lib/cjs/entry/dependenciesNumber/dependenciesGamma.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesGcd.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesHasNumericValue.generated.js +3 -7
- package/lib/cjs/entry/dependenciesNumber/dependenciesHelp.generated.js +3 -7
- package/lib/cjs/entry/dependenciesNumber/dependenciesHelpClass.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesHypot.generated.js +3 -13
- package/lib/cjs/entry/dependenciesNumber/dependenciesIndex.generated.js +3 -5
- package/lib/cjs/entry/dependenciesNumber/dependenciesIndexNode.generated.js +3 -10
- package/lib/cjs/entry/dependenciesNumber/dependenciesInfinity.generated.js +3 -5
- package/lib/cjs/entry/dependenciesNumber/dependenciesIsInteger.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesIsNaN.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesIsNegative.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesIsNumeric.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesIsPositive.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesIsPrime.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesIsZero.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesLN10.generated.js +3 -5
- package/lib/cjs/entry/dependenciesNumber/dependenciesLN2.generated.js +3 -5
- package/lib/cjs/entry/dependenciesNumber/dependenciesLOG10E.generated.js +3 -5
- package/lib/cjs/entry/dependenciesNumber/dependenciesLOG2E.generated.js +3 -5
- package/lib/cjs/entry/dependenciesNumber/dependenciesLarger.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesLargerEq.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesLcm.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesLeftShift.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesLgamma.generated.js +17 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesLog.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesLog10.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesLog1p.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesLog2.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesMad.generated.js +3 -10
- package/lib/cjs/entry/dependenciesNumber/dependenciesMap.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesMapTransform.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesMatrix.generated.js +3 -5
- package/lib/cjs/entry/dependenciesNumber/dependenciesMax.generated.js +3 -8
- package/lib/cjs/entry/dependenciesNumber/dependenciesMaxTransform.generated.js +3 -8
- package/lib/cjs/entry/dependenciesNumber/dependenciesMean.generated.js +3 -8
- package/lib/cjs/entry/dependenciesNumber/dependenciesMeanTransform.generated.js +3 -8
- package/lib/cjs/entry/dependenciesNumber/dependenciesMedian.generated.js +3 -10
- package/lib/cjs/entry/dependenciesNumber/dependenciesMin.generated.js +3 -8
- package/lib/cjs/entry/dependenciesNumber/dependenciesMinTransform.generated.js +3 -8
- package/lib/cjs/entry/dependenciesNumber/dependenciesMod.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesMode.generated.js +3 -8
- package/lib/cjs/entry/dependenciesNumber/dependenciesMultinomial.generated.js +3 -12
- package/lib/cjs/entry/dependenciesNumber/dependenciesMultiply.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesMultiplyScalar.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesNaN.generated.js +3 -5
- package/lib/cjs/entry/dependenciesNumber/dependenciesNode.generated.js +3 -5
- package/lib/cjs/entry/dependenciesNumber/dependenciesNorm.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesNot.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesNthRoot.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesNull.generated.js +3 -5
- package/lib/cjs/entry/dependenciesNumber/dependenciesNumber.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesNumeric.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesObjectNode.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesOperatorNode.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesOr.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesParenthesisNode.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesParse.generated.js +3 -22
- package/lib/cjs/entry/dependenciesNumber/dependenciesParser.generated.js +3 -7
- package/lib/cjs/entry/dependenciesNumber/dependenciesParserClass.generated.js +5 -8
- package/lib/cjs/entry/dependenciesNumber/dependenciesPartitionSelect.generated.js +3 -9
- package/lib/cjs/entry/dependenciesNumber/dependenciesPermutations.generated.js +3 -7
- package/lib/cjs/entry/dependenciesNumber/dependenciesPhi.generated.js +3 -5
- package/lib/cjs/entry/dependenciesNumber/dependenciesPi.generated.js +3 -5
- package/lib/cjs/entry/dependenciesNumber/dependenciesPickRandom.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesPow.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesPrint.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesProd.generated.js +3 -8
- package/lib/cjs/entry/dependenciesNumber/dependenciesQuantileSeq.generated.js +15 -10
- package/lib/cjs/entry/dependenciesNumber/dependenciesRandom.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesRandomInt.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesRange.generated.js +7 -11
- package/lib/cjs/entry/dependenciesNumber/dependenciesRangeClass.generated.js +3 -5
- package/lib/cjs/entry/dependenciesNumber/dependenciesRangeNode.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesRangeTransform.generated.js +7 -11
- package/lib/cjs/entry/dependenciesNumber/dependenciesRationalize.generated.js +17 -20
- package/lib/cjs/entry/dependenciesNumber/dependenciesRelationalNode.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesReplacer.generated.js +3 -5
- package/lib/cjs/entry/dependenciesNumber/dependenciesResolve.generated.js +27 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesResultSet.generated.js +3 -5
- package/lib/cjs/entry/dependenciesNumber/dependenciesReviver.generated.js +3 -5
- package/lib/cjs/entry/dependenciesNumber/dependenciesRightArithShift.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesRightLogShift.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesRound.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesSQRT1_2.generated.js +3 -5
- package/lib/cjs/entry/dependenciesNumber/dependenciesSQRT2.generated.js +3 -5
- package/lib/cjs/entry/dependenciesNumber/dependenciesSec.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesSech.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesSign.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesSimplify.generated.js +19 -19
- package/lib/cjs/entry/dependenciesNumber/dependenciesSimplifyConstant.generated.js +35 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesSimplifyCore.generated.js +51 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesSin.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesSinh.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesSize.generated.js +3 -7
- package/lib/cjs/entry/dependenciesNumber/dependenciesSmaller.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesSmallerEq.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesSqrt.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesSquare.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesStd.generated.js +5 -8
- package/lib/cjs/entry/dependenciesNumber/dependenciesStdTransform.generated.js +5 -8
- package/lib/cjs/entry/dependenciesNumber/dependenciesStirlingS2.generated.js +7 -18
- package/lib/cjs/entry/dependenciesNumber/dependenciesString.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesSubset.generated.js +3 -5
- package/lib/cjs/entry/dependenciesNumber/dependenciesSubsetTransform.generated.js +3 -5
- package/lib/cjs/entry/dependenciesNumber/dependenciesSubtract.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesSubtractScalar.generated.js +17 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesSum.generated.js +3 -8
- package/lib/cjs/entry/dependenciesNumber/dependenciesSumTransform.generated.js +3 -8
- package/lib/cjs/entry/dependenciesNumber/dependenciesSymbolNode.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesTan.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesTanh.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesTau.generated.js +3 -5
- package/lib/cjs/entry/dependenciesNumber/dependenciesTrue.generated.js +3 -5
- package/lib/cjs/entry/dependenciesNumber/dependenciesTypeOf.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesTyped.generated.js +3 -5
- package/lib/cjs/entry/dependenciesNumber/dependenciesUnaryMinus.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesUnaryPlus.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesUnequal.generated.js +3 -7
- package/lib/cjs/entry/dependenciesNumber/dependenciesUppercaseE.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesUppercasePi.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesVariance.generated.js +3 -12
- package/lib/cjs/entry/dependenciesNumber/dependenciesVarianceTransform.generated.js +3 -12
- package/lib/cjs/entry/dependenciesNumber/dependenciesVersion.generated.js +3 -5
- package/lib/cjs/entry/dependenciesNumber/dependenciesXgcd.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesXor.generated.js +3 -6
- package/lib/cjs/entry/dependenciesNumber/dependenciesZeta.generated.js +41 -0
- package/lib/cjs/entry/dependenciesNumber.generated.js +627 -760
- package/lib/cjs/entry/impureFunctionsAny.generated.js +446 -323
- package/lib/cjs/entry/impureFunctionsNumber.generated.js +299 -260
- package/lib/cjs/entry/mainAny.js +8 -24
- package/lib/cjs/entry/mainNumber.js +8 -24
- package/lib/cjs/entry/pureFunctionsAny.generated.js +1038 -1058
- package/lib/cjs/entry/pureFunctionsNumber.generated.js +296 -407
- package/lib/cjs/entry/typeChecks.js +18 -13
- package/lib/cjs/error/ArgumentsError.js +0 -3
- package/lib/cjs/error/DimensionError.js +0 -3
- package/lib/cjs/error/IndexError.js +0 -6
- package/lib/cjs/expression/Help.js +10 -30
- package/lib/cjs/expression/Parser.js +37 -43
- package/lib/cjs/expression/embeddedDocs/constants/Infinity.js +2 -3
- package/lib/cjs/expression/embeddedDocs/constants/LN10.js +2 -3
- package/lib/cjs/expression/embeddedDocs/constants/LN2.js +2 -3
- package/lib/cjs/expression/embeddedDocs/constants/LOG10E.js +2 -3
- package/lib/cjs/expression/embeddedDocs/constants/LOG2E.js +2 -3
- package/lib/cjs/expression/embeddedDocs/constants/NaN.js +2 -3
- package/lib/cjs/expression/embeddedDocs/constants/SQRT1_2.js +2 -3
- package/lib/cjs/expression/embeddedDocs/constants/SQRT2.js +2 -3
- package/lib/cjs/expression/embeddedDocs/constants/e.js +2 -3
- package/lib/cjs/expression/embeddedDocs/constants/false.js +2 -3
- package/lib/cjs/expression/embeddedDocs/constants/i.js +2 -3
- package/lib/cjs/expression/embeddedDocs/constants/null.js +2 -3
- package/lib/cjs/expression/embeddedDocs/constants/phi.js +2 -3
- package/lib/cjs/expression/embeddedDocs/constants/pi.js +2 -3
- package/lib/cjs/expression/embeddedDocs/constants/tau.js +2 -3
- package/lib/cjs/expression/embeddedDocs/constants/true.js +2 -3
- package/lib/cjs/expression/embeddedDocs/constants/version.js +2 -3
- package/lib/cjs/expression/embeddedDocs/construction/bignumber.js +2 -3
- package/lib/cjs/expression/embeddedDocs/construction/boolean.js +2 -3
- package/lib/cjs/expression/embeddedDocs/construction/complex.js +2 -3
- package/lib/cjs/expression/embeddedDocs/construction/createUnit.js +2 -3
- package/lib/cjs/expression/embeddedDocs/construction/fraction.js +5 -6
- package/lib/cjs/expression/embeddedDocs/construction/index.js +3 -4
- package/lib/cjs/expression/embeddedDocs/construction/matrix.js +2 -3
- package/lib/cjs/expression/embeddedDocs/construction/number.js +2 -3
- package/lib/cjs/expression/embeddedDocs/construction/sparse.js +2 -3
- package/lib/cjs/expression/embeddedDocs/construction/splitUnit.js +2 -3
- package/lib/cjs/expression/embeddedDocs/construction/string.js +2 -3
- package/lib/cjs/expression/embeddedDocs/construction/unit.js +2 -3
- package/lib/cjs/expression/embeddedDocs/core/config.js +2 -3
- package/lib/cjs/expression/embeddedDocs/core/import.js +2 -3
- package/lib/cjs/expression/embeddedDocs/core/typed.js +3 -4
- package/lib/cjs/expression/embeddedDocs/embeddedDocs.js +272 -440
- package/lib/cjs/expression/embeddedDocs/function/algebra/derivative.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/algebra/leafCount.js +14 -0
- package/lib/cjs/expression/embeddedDocs/function/algebra/lsolve.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/algebra/lsolveAll.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/algebra/lup.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/algebra/lusolve.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/algebra/lyap.js +14 -0
- package/lib/cjs/expression/embeddedDocs/function/algebra/polynomialRoot.js +14 -0
- package/lib/cjs/expression/embeddedDocs/function/algebra/qr.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/algebra/rationalize.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/algebra/resolve.js +15 -0
- package/lib/cjs/expression/embeddedDocs/function/algebra/schur.js +14 -0
- package/lib/cjs/expression/embeddedDocs/function/algebra/simplify.js +3 -4
- package/lib/cjs/expression/embeddedDocs/function/algebra/simplifyConstant.js +14 -0
- package/lib/cjs/expression/embeddedDocs/function/algebra/simplifyCore.js +14 -0
- package/lib/cjs/expression/embeddedDocs/function/algebra/slu.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/algebra/sylvester.js +14 -0
- package/lib/cjs/expression/embeddedDocs/function/algebra/symbolicEqual.js +14 -0
- package/lib/cjs/expression/embeddedDocs/function/algebra/usolve.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/algebra/usolveAll.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/arithmetic/abs.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/arithmetic/add.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/arithmetic/cbrt.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/arithmetic/ceil.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/arithmetic/cube.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/arithmetic/divide.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/arithmetic/dotDivide.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/arithmetic/dotMultiply.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/arithmetic/dotPow.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/arithmetic/exp.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/arithmetic/expm.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/arithmetic/expm1.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/arithmetic/fix.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/arithmetic/floor.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/arithmetic/gcd.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/arithmetic/hypot.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/arithmetic/invmod.js +14 -0
- package/lib/cjs/expression/embeddedDocs/function/arithmetic/lcm.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/arithmetic/log.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/arithmetic/log10.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/arithmetic/log1p.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/arithmetic/log2.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/arithmetic/mod.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/arithmetic/multiply.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/arithmetic/norm.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/arithmetic/nthRoot.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/arithmetic/nthRoots.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/arithmetic/pow.js +3 -4
- package/lib/cjs/expression/embeddedDocs/function/arithmetic/round.js +4 -5
- package/lib/cjs/expression/embeddedDocs/function/arithmetic/sign.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/arithmetic/sqrt.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/arithmetic/sqrtm.js +3 -4
- package/lib/cjs/expression/embeddedDocs/function/arithmetic/square.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/arithmetic/subtract.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/arithmetic/unaryMinus.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/arithmetic/unaryPlus.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/arithmetic/xgcd.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/bitwise/bitAnd.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/bitwise/bitNot.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/bitwise/bitOr.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/bitwise/bitXor.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/bitwise/leftShift.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/bitwise/rightArithShift.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/bitwise/rightLogShift.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/combinatorics/bellNumbers.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/combinatorics/catalan.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/combinatorics/composition.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/combinatorics/stirlingS2.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/complex/arg.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/complex/conj.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/complex/im.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/complex/re.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/expression/evaluate.js +4 -5
- package/lib/cjs/expression/embeddedDocs/function/expression/help.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/geometry/distance.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/geometry/intersect.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/logical/and.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/logical/not.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/logical/or.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/logical/xor.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/matrix/column.js +3 -4
- package/lib/cjs/expression/embeddedDocs/function/matrix/concat.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/matrix/count.js +14 -0
- package/lib/cjs/expression/embeddedDocs/function/matrix/cross.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/matrix/ctranspose.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/matrix/det.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/matrix/diag.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/matrix/diff.js +3 -4
- package/lib/cjs/expression/embeddedDocs/function/matrix/dot.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/matrix/eigs.js +4 -5
- package/lib/cjs/expression/embeddedDocs/function/matrix/fft.js +14 -0
- package/lib/cjs/expression/embeddedDocs/function/matrix/filter.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/matrix/flatten.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/matrix/forEach.js +3 -4
- package/lib/cjs/expression/embeddedDocs/function/matrix/getMatrixDataType.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/matrix/identity.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/matrix/ifft.js +14 -0
- package/lib/cjs/expression/embeddedDocs/function/matrix/inv.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/matrix/kron.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/matrix/map.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/matrix/matrixFromColumns.js +14 -0
- package/lib/cjs/expression/embeddedDocs/function/matrix/matrixFromFunction.js +14 -0
- package/lib/cjs/expression/embeddedDocs/function/matrix/matrixFromRows.js +14 -0
- package/lib/cjs/expression/embeddedDocs/function/matrix/ones.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/matrix/partitionSelect.js +3 -4
- package/lib/cjs/expression/embeddedDocs/function/matrix/pinv.js +14 -0
- package/lib/cjs/expression/embeddedDocs/function/matrix/range.js +3 -4
- package/lib/cjs/expression/embeddedDocs/function/matrix/reshape.js +3 -4
- package/lib/cjs/expression/embeddedDocs/function/matrix/resize.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/matrix/rotate.js +3 -4
- package/lib/cjs/expression/embeddedDocs/function/matrix/rotationMatrix.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/matrix/row.js +3 -4
- package/lib/cjs/expression/embeddedDocs/function/matrix/size.js +3 -4
- package/lib/cjs/expression/embeddedDocs/function/matrix/sort.js +3 -4
- package/lib/cjs/expression/embeddedDocs/function/matrix/squeeze.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/matrix/subset.js +4 -5
- package/lib/cjs/expression/embeddedDocs/function/matrix/trace.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/matrix/transpose.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/matrix/zeros.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/numeric/solveODE.js +14 -0
- package/lib/cjs/expression/embeddedDocs/function/probability/combinations.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/probability/combinationsWithRep.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/probability/distribution.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/probability/factorial.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/probability/gamma.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/probability/kldivergence.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/probability/lgamma.js +14 -0
- package/lib/cjs/expression/embeddedDocs/function/probability/multinomial.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/probability/permutations.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/probability/pickRandom.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/probability/random.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/probability/randomInt.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/relational/compare.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/relational/compareNatural.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/relational/compareText.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/relational/deepEqual.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/relational/equal.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/relational/equalText.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/relational/larger.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/relational/largerEq.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/relational/smaller.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/relational/smallerEq.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/relational/unequal.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/set/setCartesian.js +3 -4
- package/lib/cjs/expression/embeddedDocs/function/set/setDifference.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/set/setDistinct.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/set/setIntersect.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/set/setIsSubset.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/set/setMultiplicity.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/set/setPowerset.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/set/setSize.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/set/setSymDifference.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/set/setUnion.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/signal/freqz.js +14 -0
- package/lib/cjs/expression/embeddedDocs/function/signal/zpk2tf.js +14 -0
- package/lib/cjs/expression/embeddedDocs/function/special/erf.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/special/zeta.js +14 -0
- package/lib/cjs/expression/embeddedDocs/function/statistics/corr.js +14 -0
- package/lib/cjs/expression/embeddedDocs/function/statistics/cumsum.js +14 -0
- package/lib/cjs/expression/embeddedDocs/function/statistics/mad.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/statistics/max.js +3 -4
- package/lib/cjs/expression/embeddedDocs/function/statistics/mean.js +3 -4
- package/lib/cjs/expression/embeddedDocs/function/statistics/median.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/statistics/min.js +3 -4
- package/lib/cjs/expression/embeddedDocs/function/statistics/mode.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/statistics/prod.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/statistics/quantileSeq.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/statistics/std.js +3 -4
- package/lib/cjs/expression/embeddedDocs/function/statistics/sum.js +3 -4
- package/lib/cjs/expression/embeddedDocs/function/statistics/variance.js +3 -4
- package/lib/cjs/expression/embeddedDocs/function/trigonometry/acos.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/trigonometry/acosh.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/trigonometry/acot.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/trigonometry/acoth.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/trigonometry/acsc.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/trigonometry/acsch.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/trigonometry/asec.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/trigonometry/asech.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/trigonometry/asin.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/trigonometry/asinh.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/trigonometry/atan.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/trigonometry/atan2.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/trigonometry/atanh.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/trigonometry/cos.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/trigonometry/cosh.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/trigonometry/cot.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/trigonometry/coth.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/trigonometry/csc.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/trigonometry/csch.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/trigonometry/sec.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/trigonometry/sech.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/trigonometry/sin.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/trigonometry/sinh.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/trigonometry/tan.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/trigonometry/tanh.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/units/to.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/utils/bin.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/utils/clone.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/utils/format.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/utils/hasNumericValue.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/utils/hex.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/utils/isInteger.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/utils/isNaN.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/utils/isNegative.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/utils/isNumeric.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/utils/isPositive.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/utils/isPrime.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/utils/isZero.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/utils/numeric.js +3 -4
- package/lib/cjs/expression/embeddedDocs/function/utils/oct.js +2 -3
- package/lib/cjs/expression/embeddedDocs/function/utils/print.js +3 -4
- package/lib/cjs/expression/embeddedDocs/function/utils/typeOf.js +2 -3
- package/lib/cjs/expression/function/compile.js +3 -8
- package/lib/cjs/expression/function/evaluate.js +8 -12
- package/lib/cjs/expression/function/help.js +5 -16
- package/lib/cjs/expression/function/parser.js +8 -12
- package/lib/cjs/expression/keywords.js +1 -4
- package/lib/cjs/expression/node/AccessorNode.js +193 -180
- package/lib/cjs/expression/node/ArrayNode.js +199 -177
- package/lib/cjs/expression/node/AssignmentNode.js +301 -288
- package/lib/cjs/expression/node/BlockNode.js +207 -183
- package/lib/cjs/expression/node/ConditionalNode.js +224 -207
- package/lib/cjs/expression/node/ConstantNode.js +194 -181
- package/lib/cjs/expression/node/FunctionAssignmentNode.js +257 -218
- package/lib/cjs/expression/node/FunctionNode.js +424 -367
- package/lib/cjs/expression/node/IndexNode.js +241 -268
- package/lib/cjs/expression/node/Node.js +385 -393
- package/lib/cjs/expression/node/ObjectNode.js +200 -194
- package/lib/cjs/expression/node/OperatorNode.js +447 -470
- package/lib/cjs/expression/node/ParenthesisNode.js +179 -156
- package/lib/cjs/expression/node/RangeNode.js +249 -253
- package/lib/cjs/expression/node/RelationalNode.js +218 -204
- package/lib/cjs/expression/node/SymbolNode.js +210 -191
- package/lib/cjs/expression/node/utils/access.js +3 -8
- package/lib/cjs/expression/node/utils/assign.js +11 -11
- package/lib/cjs/expression/operators.js +116 -42
- package/lib/cjs/expression/parse.js +292 -412
- package/lib/cjs/expression/transform/and.transform.js +39 -0
- package/lib/cjs/expression/transform/apply.transform.js +6 -13
- package/lib/cjs/expression/transform/bitAnd.transform.js +44 -0
- package/lib/cjs/expression/transform/bitOr.transform.js +45 -0
- package/lib/cjs/expression/transform/column.transform.js +8 -15
- package/lib/cjs/expression/transform/concat.transform.js +5 -13
- package/lib/cjs/expression/transform/cumsum.transform.js +49 -0
- package/lib/cjs/expression/transform/diff.transform.js +9 -25
- package/lib/cjs/expression/transform/filter.transform.js +8 -29
- package/lib/cjs/expression/transform/forEach.transform.js +7 -30
- package/lib/cjs/expression/transform/index.transform.js +14 -17
- package/lib/cjs/expression/transform/map.transform.js +8 -31
- package/lib/cjs/expression/transform/max.transform.js +8 -24
- package/lib/cjs/expression/transform/mean.transform.js +7 -23
- package/lib/cjs/expression/transform/min.transform.js +8 -24
- package/lib/cjs/expression/transform/or.transform.js +37 -0
- package/lib/cjs/expression/transform/print.transform.js +46 -0
- package/lib/cjs/expression/transform/quantileSeq.transform.js +71 -0
- package/lib/cjs/expression/transform/range.transform.js +16 -18
- package/lib/cjs/expression/transform/row.transform.js +8 -15
- package/lib/cjs/expression/transform/std.transform.js +10 -24
- package/lib/cjs/expression/transform/subset.transform.js +10 -11
- package/lib/cjs/expression/transform/sum.transform.js +8 -24
- package/lib/cjs/expression/transform/utils/compileInlineExpression.js +6 -9
- package/lib/cjs/expression/transform/utils/errorTransform.js +0 -3
- package/lib/cjs/expression/transform/utils/lastDimToZeroBase.js +22 -0
- package/lib/cjs/expression/transform/variance.transform.js +11 -27
- package/lib/cjs/factoriesAny.js +877 -915
- package/lib/cjs/factoriesNumber.js +443 -495
- package/lib/cjs/function/algebra/decomposition/lup.js +140 -178
- package/lib/cjs/function/algebra/decomposition/qr.js +44 -61
- package/lib/cjs/function/algebra/decomposition/schur.js +74 -0
- package/lib/cjs/function/algebra/decomposition/slu.js +20 -25
- package/lib/cjs/function/algebra/derivative.js +75 -180
- package/lib/cjs/function/algebra/leafCount.js +58 -0
- package/lib/cjs/function/algebra/lyap.js +56 -0
- package/lib/cjs/function/algebra/polynomialRoot.js +138 -0
- package/lib/cjs/function/algebra/rationalize.js +238 -294
- package/lib/cjs/function/algebra/resolve.js +131 -0
- package/lib/cjs/function/algebra/simplify/util.js +151 -74
- package/lib/cjs/function/algebra/simplify/wildcards.js +38 -0
- package/lib/cjs/function/algebra/simplify.js +855 -419
- package/lib/cjs/function/algebra/simplifyConstant.js +488 -0
- package/lib/cjs/function/algebra/simplifyCore.js +299 -0
- package/lib/cjs/function/algebra/solver/lsolve.js +33 -41
- package/lib/cjs/function/algebra/solver/lsolveAll.js +42 -59
- package/lib/cjs/function/algebra/solver/lusolve.js +17 -28
- package/lib/cjs/function/algebra/solver/usolve.js +37 -46
- package/lib/cjs/function/algebra/solver/usolveAll.js +46 -59
- package/lib/cjs/function/algebra/solver/utils/solveValidation.js +4 -32
- package/lib/cjs/function/algebra/sparse/csAmd.js +252 -307
- package/lib/cjs/function/algebra/sparse/csChol.js +74 -91
- package/lib/cjs/function/algebra/sparse/csCounts.js +39 -58
- package/lib/cjs/function/algebra/sparse/csCumsum.js +8 -11
- package/lib/cjs/function/algebra/sparse/csDfs.js +34 -42
- package/lib/cjs/function/algebra/sparse/csEreach.js +24 -31
- package/lib/cjs/function/algebra/sparse/csEtree.js +23 -28
- package/lib/cjs/function/algebra/sparse/csFkeep.js +20 -25
- package/lib/cjs/function/algebra/sparse/csFlip.js +0 -1
- package/lib/cjs/function/algebra/sparse/csIpvec.js +2 -4
- package/lib/cjs/function/algebra/sparse/csLeaf.js +13 -16
- package/lib/cjs/function/algebra/sparse/csLu.js +73 -95
- package/lib/cjs/function/algebra/sparse/csMark.js +0 -2
- package/lib/cjs/function/algebra/sparse/csMarked.js +0 -1
- package/lib/cjs/function/algebra/sparse/csPermute.js +20 -25
- package/lib/cjs/function/algebra/sparse/csPost.js +14 -24
- package/lib/cjs/function/algebra/sparse/csReach.js +14 -20
- package/lib/cjs/function/algebra/sparse/csSpsolve.js +34 -43
- package/lib/cjs/function/algebra/sparse/csSqr.js +64 -89
- package/lib/cjs/function/algebra/sparse/csSymperm.js +35 -47
- package/lib/cjs/function/algebra/sparse/csTdfs.js +12 -15
- package/lib/cjs/function/algebra/sparse/csUnflip.js +0 -2
- package/lib/cjs/function/algebra/sylvester.js +126 -0
- package/lib/cjs/function/algebra/symbolicEqual.js +64 -0
- package/lib/cjs/function/arithmetic/abs.js +9 -22
- package/lib/cjs/function/arithmetic/add.js +69 -121
- package/lib/cjs/function/arithmetic/addScalar.js +17 -16
- package/lib/cjs/function/arithmetic/cbrt.js +24 -40
- package/lib/cjs/function/arithmetic/ceil.js +102 -86
- package/lib/cjs/function/arithmetic/cube.js +7 -17
- package/lib/cjs/function/arithmetic/divide.js +16 -21
- package/lib/cjs/function/arithmetic/divideScalar.js +7 -25
- package/lib/cjs/function/arithmetic/dotDivide.js +32 -82
- package/lib/cjs/function/arithmetic/dotMultiply.js +25 -75
- package/lib/cjs/function/arithmetic/dotPow.js +38 -79
- package/lib/cjs/function/arithmetic/exp.js +10 -19
- package/lib/cjs/function/arithmetic/expm1.js +13 -18
- package/lib/cjs/function/arithmetic/fix.js +75 -41
- package/lib/cjs/function/arithmetic/floor.js +107 -85
- package/lib/cjs/function/arithmetic/gcd.js +97 -90
- package/lib/cjs/function/arithmetic/hypot.js +17 -23
- package/lib/cjs/function/arithmetic/invmod.js +64 -0
- package/lib/cjs/function/arithmetic/lcm.js +37 -90
- package/lib/cjs/function/arithmetic/log.js +15 -22
- package/lib/cjs/function/arithmetic/log10.js +9 -13
- package/lib/cjs/function/arithmetic/log1p.js +18 -21
- package/lib/cjs/function/arithmetic/log2.js +10 -14
- package/lib/cjs/function/arithmetic/mod.js +62 -92
- package/lib/cjs/function/arithmetic/multiply.js +352 -371
- package/lib/cjs/function/arithmetic/multiplyScalar.js +4 -16
- package/lib/cjs/function/arithmetic/norm.js +45 -78
- package/lib/cjs/function/arithmetic/nthRoot.js +98 -128
- package/lib/cjs/function/arithmetic/nthRoots.js +13 -22
- package/lib/cjs/function/arithmetic/pow.js +52 -51
- package/lib/cjs/function/arithmetic/round.js +122 -100
- package/lib/cjs/function/arithmetic/sign.js +20 -19
- package/lib/cjs/function/arithmetic/sqrt.js +10 -18
- package/lib/cjs/function/arithmetic/square.js +8 -17
- package/lib/cjs/function/arithmetic/subtract.js +40 -135
- package/lib/cjs/function/arithmetic/subtractScalar.js +52 -0
- package/lib/cjs/function/arithmetic/unaryMinus.js +17 -24
- package/lib/cjs/function/arithmetic/unaryPlus.js +10 -14
- package/lib/cjs/function/arithmetic/xgcd.js +14 -21
- package/lib/cjs/function/bitwise/bitAnd.js +24 -75
- package/lib/cjs/function/bitwise/bitNot.js +8 -13
- package/lib/cjs/function/bitwise/bitOr.js +25 -76
- package/lib/cjs/function/bitwise/bitXor.js +24 -75
- package/lib/cjs/function/bitwise/leftShift.js +73 -101
- package/lib/cjs/function/bitwise/rightArithShift.js +74 -102
- package/lib/cjs/function/bitwise/rightLogShift.js +73 -98
- package/lib/cjs/function/bitwise/useMatrixForArrayScalar.js +33 -0
- package/lib/cjs/function/combinatorics/bellNumbers.js +8 -14
- package/lib/cjs/function/combinatorics/catalan.js +8 -13
- package/lib/cjs/function/combinatorics/composition.js +8 -13
- package/lib/cjs/function/combinatorics/stirlingS2.js +49 -31
- package/lib/cjs/function/complex/arg.js +8 -10
- package/lib/cjs/function/complex/conj.js +8 -14
- package/lib/cjs/function/complex/im.js +9 -12
- package/lib/cjs/function/complex/re.js +8 -14
- package/lib/cjs/function/geometry/distance.js +44 -91
- package/lib/cjs/function/geometry/intersect.js +100 -102
- package/lib/cjs/function/logical/and.js +83 -100
- package/lib/cjs/function/logical/not.js +15 -14
- package/lib/cjs/function/logical/or.js +29 -77
- package/lib/cjs/function/logical/xor.js +28 -76
- package/lib/cjs/function/matrix/apply.js +4 -25
- package/lib/cjs/function/matrix/column.js +9 -14
- package/lib/cjs/function/matrix/concat.js +11 -56
- package/lib/cjs/function/matrix/count.js +43 -0
- package/lib/cjs/function/matrix/cross.js +6 -14
- package/lib/cjs/function/matrix/ctranspose.js +4 -8
- package/lib/cjs/function/matrix/det.js +48 -57
- package/lib/cjs/function/matrix/diag.js +23 -38
- package/lib/cjs/function/matrix/diff.js +23 -40
- package/lib/cjs/function/matrix/dot.js +24 -49
- package/lib/cjs/function/matrix/eigs/complexEigs.js +744 -0
- package/lib/cjs/function/matrix/eigs/realSymmetric.js +303 -0
- package/lib/cjs/function/matrix/eigs.js +271 -379
- package/lib/cjs/function/matrix/expm.js +28 -45
- package/lib/cjs/function/matrix/fft.js +152 -0
- package/lib/cjs/function/matrix/filter.js +4 -20
- package/lib/cjs/function/matrix/flatten.js +8 -14
- package/lib/cjs/function/matrix/forEach.js +6 -24
- package/lib/cjs/function/matrix/getMatrixDataType.js +3 -9
- package/lib/cjs/function/matrix/identity.js +16 -33
- package/lib/cjs/function/matrix/ifft.js +43 -0
- package/lib/cjs/function/matrix/inv.js +22 -47
- package/lib/cjs/function/matrix/kron.js +5 -13
- package/lib/cjs/function/matrix/map.js +23 -28
- package/lib/cjs/function/matrix/matrixFromColumns.js +106 -0
- package/lib/cjs/function/matrix/matrixFromFunction.js +78 -0
- package/lib/cjs/function/matrix/matrixFromRows.js +94 -0
- package/lib/cjs/function/matrix/ones.js +12 -26
- package/lib/cjs/function/matrix/partitionSelect.js +24 -32
- package/lib/cjs/function/matrix/pinv.js +190 -0
- package/lib/cjs/function/matrix/range.js +45 -148
- package/lib/cjs/function/matrix/reshape.js +9 -15
- package/lib/cjs/function/matrix/resize.js +8 -31
- package/lib/cjs/function/matrix/rotate.js +9 -22
- package/lib/cjs/function/matrix/rotationMatrix.js +16 -36
- package/lib/cjs/function/matrix/row.js +9 -14
- package/lib/cjs/function/matrix/size.js +5 -11
- package/lib/cjs/function/matrix/sort.js +9 -23
- package/lib/cjs/function/matrix/sqrtm.js +18 -31
- package/lib/cjs/function/matrix/squeeze.js +5 -11
- package/lib/cjs/function/matrix/subset.js +114 -66
- package/lib/cjs/function/matrix/trace.js +24 -39
- package/lib/cjs/function/matrix/transpose.js +81 -99
- package/lib/cjs/function/matrix/zeros.js +13 -26
- package/lib/cjs/function/numeric/solveODE.js +314 -0
- package/lib/cjs/function/probability/combinations.js +4 -14
- package/lib/cjs/function/probability/combinationsWithRep.js +2 -19
- package/lib/cjs/function/probability/factorial.js +8 -13
- package/lib/cjs/function/probability/gamma.js +52 -68
- package/lib/cjs/function/probability/kldivergence.js +16 -26
- package/lib/cjs/function/probability/lgamma.js +141 -0
- package/lib/cjs/function/probability/multinomial.js +8 -14
- package/lib/cjs/function/probability/permutations.js +7 -21
- package/lib/cjs/function/probability/pickRandom.js +12 -34
- package/lib/cjs/function/probability/random.js +12 -25
- package/lib/cjs/function/probability/randomInt.js +5 -15
- package/lib/cjs/function/probability/util/randomMatrix.js +0 -3
- package/lib/cjs/function/probability/util/seededRNG.js +7 -10
- package/lib/cjs/function/relational/compare.js +35 -90
- package/lib/cjs/function/relational/compareNatural.js +75 -102
- package/lib/cjs/function/relational/compareText.js +18 -55
- package/lib/cjs/function/relational/compareUnits.js +20 -0
- package/lib/cjs/function/relational/deepEqual.js +4 -11
- package/lib/cjs/function/relational/equal.js +30 -101
- package/lib/cjs/function/relational/equalScalar.js +10 -20
- package/lib/cjs/function/relational/equalText.js +4 -8
- package/lib/cjs/function/relational/larger.js +32 -87
- package/lib/cjs/function/relational/largerEq.js +32 -87
- package/lib/cjs/function/relational/smaller.js +32 -87
- package/lib/cjs/function/relational/smallerEq.js +32 -87
- package/lib/cjs/function/relational/unequal.js +31 -103
- package/lib/cjs/function/set/setCartesian.js +14 -21
- package/lib/cjs/function/set/setDifference.js +11 -22
- package/lib/cjs/function/set/setDistinct.js +11 -20
- package/lib/cjs/function/set/setIntersect.js +11 -20
- package/lib/cjs/function/set/setIsSubset.js +7 -17
- package/lib/cjs/function/set/setMultiplicity.js +6 -14
- package/lib/cjs/function/set/setPowerset.js +12 -23
- package/lib/cjs/function/set/setSize.js +6 -12
- package/lib/cjs/function/set/setSymDifference.js +7 -13
- package/lib/cjs/function/set/setUnion.js +8 -14
- package/lib/cjs/function/signal/freqz.js +116 -0
- package/lib/cjs/function/signal/zpk2tf.js +94 -0
- package/lib/cjs/function/special/erf.js +20 -31
- package/lib/cjs/function/special/zeta.js +170 -0
- package/lib/cjs/function/statistics/corr.js +94 -0
- package/lib/cjs/function/statistics/cumsum.js +127 -0
- package/lib/cjs/function/statistics/mad.js +6 -15
- package/lib/cjs/function/statistics/max.js +12 -22
- package/lib/cjs/function/statistics/mean.js +8 -19
- package/lib/cjs/function/statistics/median.js +15 -24
- package/lib/cjs/function/statistics/min.js +11 -21
- package/lib/cjs/function/statistics/mode.js +6 -19
- package/lib/cjs/function/statistics/prod.js +11 -17
- package/lib/cjs/function/statistics/quantileSeq.js +108 -209
- package/lib/cjs/function/statistics/std.js +13 -12
- package/lib/cjs/function/statistics/sum.js +12 -20
- package/lib/cjs/function/statistics/utils/improveErrorMessage.js +0 -5
- package/lib/cjs/function/statistics/variance.js +14 -28
- package/lib/cjs/function/string/bin.js +21 -4
- package/lib/cjs/function/string/format.js +40 -28
- package/lib/cjs/function/string/hex.js +22 -6
- package/lib/cjs/function/string/oct.js +24 -6
- package/lib/cjs/function/string/print.js +7 -13
- package/lib/cjs/function/trigonometry/acos.js +8 -16
- package/lib/cjs/function/trigonometry/acosh.js +6 -18
- package/lib/cjs/function/trigonometry/acot.js +9 -19
- package/lib/cjs/function/trigonometry/acoth.js +9 -19
- package/lib/cjs/function/trigonometry/acsc.js +11 -22
- package/lib/cjs/function/trigonometry/acsch.js +7 -16
- package/lib/cjs/function/trigonometry/asec.js +11 -21
- package/lib/cjs/function/trigonometry/asech.js +9 -21
- package/lib/cjs/function/trigonometry/asin.js +9 -18
- package/lib/cjs/function/trigonometry/asinh.js +6 -16
- package/lib/cjs/function/trigonometry/atan.js +7 -17
- package/lib/cjs/function/trigonometry/atan2.js +36 -80
- package/lib/cjs/function/trigonometry/atanh.js +8 -19
- package/lib/cjs/function/trigonometry/cos.js +12 -25
- package/lib/cjs/function/trigonometry/cosh.js +7 -26
- package/lib/cjs/function/trigonometry/cot.js +10 -21
- package/lib/cjs/function/trigonometry/coth.js +7 -23
- package/lib/cjs/function/trigonometry/csc.js +12 -23
- package/lib/cjs/function/trigonometry/csch.js +7 -23
- package/lib/cjs/function/trigonometry/sec.js +12 -23
- package/lib/cjs/function/trigonometry/sech.js +7 -23
- package/lib/cjs/function/trigonometry/sin.js +12 -26
- package/lib/cjs/function/trigonometry/sinh.js +7 -27
- package/lib/cjs/function/trigonometry/tan.js +12 -26
- package/lib/cjs/function/trigonometry/tanh.js +7 -27
- package/lib/cjs/function/trigonometry/trigUnit.js +20 -0
- package/lib/cjs/function/unit/to.js +17 -53
- package/lib/cjs/function/utils/clone.js +3 -8
- package/lib/cjs/function/utils/hasNumericValue.js +8 -8
- package/lib/cjs/function/utils/isInteger.js +9 -12
- package/lib/cjs/function/utils/isNaN.js +3 -9
- package/lib/cjs/function/utils/isNegative.js +13 -15
- package/lib/cjs/function/utils/isNumeric.js +8 -11
- package/lib/cjs/function/utils/isPositive.js +13 -15
- package/lib/cjs/function/utils/isPrime.js +63 -19
- package/lib/cjs/function/utils/isZero.js +23 -25
- package/lib/cjs/function/utils/numeric.js +16 -18
- package/lib/cjs/function/utils/typeOf.js +40 -51
- package/lib/cjs/header.js +3 -3
- package/lib/cjs/index.js +0 -2
- package/lib/cjs/json/replacer.js +2 -6
- package/lib/cjs/json/reviver.js +2 -8
- package/lib/cjs/number.js +0 -2
- package/lib/cjs/plain/bignumber/arithmetic.js +2 -12
- package/lib/cjs/plain/bignumber/index.js +1 -8
- package/lib/cjs/plain/number/arithmetic.js +47 -131
- package/lib/cjs/plain/number/bitwise.js +0 -23
- package/lib/cjs/plain/number/combinations.js +17 -15
- package/lib/cjs/plain/number/constants.js +5 -10
- package/lib/cjs/plain/number/index.js +0 -18
- package/lib/cjs/plain/number/logical.js +1 -9
- package/lib/cjs/plain/number/probability.js +41 -18
- package/lib/cjs/plain/number/trigonometry.js +1 -53
- package/lib/cjs/plain/number/utils.js +1 -13
- package/lib/cjs/type/bignumber/BigNumber.js +9 -19
- package/lib/cjs/type/bignumber/function/bignumber.js +31 -11
- package/lib/cjs/type/boolean.js +9 -15
- package/lib/cjs/type/chain/Chain.js +36 -42
- package/lib/cjs/type/chain/function/chain.js +3 -7
- package/lib/cjs/type/complex/Complex.js +17 -41
- package/lib/cjs/type/complex/function/complex.js +8 -13
- package/lib/cjs/type/fraction/Fraction.js +9 -12
- package/lib/cjs/type/fraction/function/fraction.js +36 -21
- package/lib/cjs/type/matrix/DenseMatrix.js +288 -227
- package/lib/cjs/type/matrix/FibonacciHeap.js +121 -162
- package/lib/cjs/type/matrix/ImmutableDenseMatrix.js +22 -46
- package/lib/cjs/type/matrix/Matrix.js +28 -39
- package/lib/cjs/type/matrix/MatrixIndex.js +62 -72
- package/lib/cjs/type/matrix/Range.js +16 -53
- package/lib/cjs/type/matrix/Spa.js +36 -57
- package/lib/cjs/type/matrix/SparseMatrix.js +524 -551
- package/lib/cjs/type/matrix/function/index.js +9 -12
- package/lib/cjs/type/matrix/function/matrix.js +8 -13
- package/lib/cjs/type/matrix/function/sparse.js +9 -7
- package/lib/cjs/type/matrix/utils/broadcast.js +77 -0
- package/lib/cjs/type/matrix/utils/{algorithm01.js → matAlgo01xDSid.js} +40 -41
- package/lib/cjs/type/matrix/utils/{algorithm02.js → matAlgo02xDS0.js} +48 -49
- package/lib/cjs/type/matrix/utils/{algorithm03.js → matAlgo03xDSf.js} +45 -46
- package/lib/cjs/type/matrix/utils/{algorithm04.js → matAlgo04xSidSid.js} +78 -79
- package/lib/cjs/type/matrix/utils/{algorithm05.js → matAlgo05xSfSf.js} +78 -80
- package/lib/cjs/type/matrix/utils/{algorithm06.js → matAlgo06xS0S0.js} +66 -67
- package/lib/cjs/type/matrix/utils/{algorithm07.js → matAlgo07xSSf.js} +52 -55
- package/lib/cjs/type/matrix/utils/{algorithm08.js → matAlgo08xS0Sid.js} +73 -74
- package/lib/cjs/type/matrix/utils/{algorithm09.js → matAlgo09xS0Sf.js} +62 -62
- package/lib/cjs/type/matrix/utils/{algorithm10.js → matAlgo10xSids.js} +38 -39
- package/lib/cjs/type/matrix/utils/{algorithm11.js → matAlgo11xS0s.js} +44 -44
- package/lib/cjs/type/matrix/utils/{algorithm12.js → matAlgo12xSfs.js} +38 -39
- package/lib/cjs/type/matrix/utils/{algorithm13.js → matAlgo13xDD.js} +31 -34
- package/lib/cjs/type/matrix/utils/{algorithm14.js → matAlgo14xDs.js} +23 -25
- package/lib/cjs/type/matrix/utils/matrixAlgorithmSuite.js +222 -0
- package/lib/cjs/type/number.js +83 -25
- package/lib/cjs/type/resultset/ResultSet.js +7 -16
- package/lib/cjs/type/string.js +7 -11
- package/lib/cjs/type/unit/Unit.js +382 -515
- package/lib/cjs/type/unit/function/createUnit.js +5 -8
- package/lib/cjs/type/unit/function/splitUnit.js +3 -7
- package/lib/cjs/type/unit/function/unit.js +20 -15
- package/lib/cjs/type/unit/physicalConstants.js +66 -114
- package/lib/cjs/utils/applyCallback.js +73 -0
- package/lib/cjs/utils/array.js +368 -174
- package/lib/cjs/utils/bignumber/bitwise.js +14 -97
- package/lib/cjs/utils/bignumber/constants.js +20 -19
- package/lib/cjs/utils/bignumber/formatter.js +92 -31
- package/lib/cjs/utils/bignumber/nearlyEqual.js +8 -10
- package/lib/cjs/utils/collection.js +25 -68
- package/lib/cjs/utils/complex.js +0 -2
- package/lib/cjs/utils/customs.js +39 -48
- package/lib/cjs/utils/emitter.js +3 -5
- package/lib/cjs/utils/factory.js +14 -31
- package/lib/cjs/utils/function.js +31 -27
- package/lib/cjs/utils/is.js +64 -92
- package/lib/cjs/utils/latex.js +17 -24
- package/lib/cjs/utils/log.js +2 -9
- package/lib/cjs/utils/lruQueue.js +57 -0
- package/lib/cjs/utils/map.js +166 -0
- package/lib/cjs/utils/noop.js +1 -6
- package/lib/cjs/utils/number.js +176 -167
- package/lib/cjs/utils/object.js +43 -98
- package/lib/cjs/utils/print.js +7 -0
- package/lib/cjs/utils/product.js +0 -4
- package/lib/cjs/utils/scope.js +29 -0
- package/lib/cjs/utils/snapshot.js +53 -108
- package/lib/cjs/utils/string.js +41 -61
- package/lib/cjs/utils/switch.js +26 -0
- package/lib/cjs/version.js +3 -4
- package/lib/esm/constants.js +24 -20
- package/lib/esm/core/create.js +29 -30
- package/lib/esm/core/function/config.js +12 -10
- package/lib/esm/core/function/import.js +23 -70
- package/lib/esm/core/function/typed.js +63 -39
- package/lib/esm/entry/configReadonly.js +3 -5
- package/lib/esm/entry/dependenciesAny/dependenciesAdd.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesAnd.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesAndTransform.generated.js +22 -0
- package/lib/esm/entry/dependenciesAny/dependenciesAtan2.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesBin.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesBitAnd.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesBitAndTransform.generated.js +22 -0
- package/lib/esm/entry/dependenciesAny/dependenciesBitOr.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesBitOrTransform.generated.js +18 -0
- package/lib/esm/entry/dependenciesAny/dependenciesBitXor.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesCeil.generated.js +4 -0
- package/lib/esm/entry/dependenciesAny/dependenciesChainClass.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesCompare.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesCompareText.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesCorr.generated.js +28 -0
- package/lib/esm/entry/dependenciesAny/dependenciesCount.generated.js +14 -0
- package/lib/esm/entry/dependenciesAny/dependenciesCumSum.generated.js +14 -0
- package/lib/esm/entry/dependenciesAny/dependenciesCumSumTransform.generated.js +14 -0
- package/lib/esm/entry/dependenciesAny/dependenciesDet.generated.js +6 -4
- package/lib/esm/entry/dependenciesAny/dependenciesDistance.generated.js +4 -4
- package/lib/esm/entry/dependenciesAny/dependenciesDotDivide.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesDotMultiply.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesDotPow.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesEigs.generated.js +36 -0
- package/lib/esm/entry/dependenciesAny/dependenciesEqual.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesFft.generated.js +34 -0
- package/lib/esm/entry/dependenciesAny/dependenciesFix.generated.js +6 -0
- package/lib/esm/entry/dependenciesAny/dependenciesFloor.generated.js +4 -0
- package/lib/esm/entry/dependenciesAny/dependenciesFreqz.generated.js +20 -0
- package/lib/esm/entry/dependenciesAny/dependenciesGcd.generated.js +6 -0
- package/lib/esm/entry/dependenciesAny/dependenciesHex.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesIfft.generated.js +16 -0
- package/lib/esm/entry/dependenciesAny/dependenciesIndexClass.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesIndexNode.generated.js +0 -2
- package/lib/esm/entry/dependenciesAny/dependenciesIndexTransform.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesIntersect.generated.js +6 -0
- package/lib/esm/entry/dependenciesAny/dependenciesInvmod.generated.js +24 -0
- package/lib/esm/entry/dependenciesAny/dependenciesKldivergence.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesLarger.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesLargerEq.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesLcm.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesLeafCount.generated.js +12 -0
- package/lib/esm/entry/dependenciesAny/dependenciesLeftShift.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesLgamma.generated.js +12 -0
- package/lib/esm/entry/dependenciesAny/dependenciesLsolve.generated.js +2 -2
- package/lib/esm/entry/dependenciesAny/dependenciesLsolveAll.generated.js +2 -2
- package/lib/esm/entry/dependenciesAny/dependenciesLup.generated.js +2 -2
- package/lib/esm/entry/dependenciesAny/dependenciesLyap.generated.js +18 -0
- package/lib/esm/entry/dependenciesAny/dependenciesMatrixFromColumns.generated.js +16 -0
- package/lib/esm/entry/dependenciesAny/dependenciesMatrixFromFunction.generated.js +14 -0
- package/lib/esm/entry/dependenciesAny/dependenciesMatrixFromRows.generated.js +16 -0
- package/lib/esm/entry/dependenciesAny/dependenciesMod.generated.js +6 -0
- package/lib/esm/entry/dependenciesAny/dependenciesNthRoot.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesOct.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesOr.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesOrTransform.generated.js +18 -0
- package/lib/esm/entry/dependenciesAny/dependenciesParserClass.generated.js +2 -2
- package/lib/esm/entry/dependenciesAny/dependenciesPinv.generated.js +32 -0
- package/lib/esm/entry/dependenciesAny/dependenciesPolynomialRoot.generated.js +34 -0
- package/lib/esm/entry/dependenciesAny/dependenciesPow.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesPrintTransform.generated.js +16 -0
- package/lib/esm/entry/dependenciesAny/dependenciesQr.generated.js +2 -2
- package/lib/esm/entry/dependenciesAny/dependenciesQuantileSeq.generated.js +14 -0
- package/lib/esm/entry/dependenciesAny/dependenciesQuantileSeqTransform.generated.js +32 -0
- package/lib/esm/entry/dependenciesAny/dependenciesRange.generated.js +4 -0
- package/lib/esm/entry/dependenciesAny/dependenciesRangeTransform.generated.js +4 -0
- package/lib/esm/entry/dependenciesAny/dependenciesRationalize.generated.js +14 -0
- package/lib/esm/entry/dependenciesAny/dependenciesResolve.generated.js +20 -0
- package/lib/esm/entry/dependenciesAny/dependenciesRightArithShift.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesRightLogShift.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesSchur.generated.js +22 -0
- package/lib/esm/entry/dependenciesAny/dependenciesSimplify.generated.js +16 -0
- package/lib/esm/entry/dependenciesAny/dependenciesSimplifyConstant.generated.js +32 -0
- package/lib/esm/entry/dependenciesAny/dependenciesSimplifyCore.generated.js +44 -0
- package/lib/esm/entry/dependenciesAny/dependenciesSmaller.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesSmallerEq.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesSolveODE.generated.js +38 -0
- package/lib/esm/entry/dependenciesAny/dependenciesSqrtm.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesStd.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesStdTransform.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesStirlingS2.generated.js +6 -2
- package/lib/esm/entry/dependenciesAny/dependenciesSubset.generated.js +4 -0
- package/lib/esm/entry/dependenciesAny/dependenciesSubsetTransform.generated.js +4 -0
- package/lib/esm/entry/dependenciesAny/dependenciesSubtract.generated.js +4 -2
- package/lib/esm/entry/dependenciesAny/dependenciesSubtractScalar.generated.js +10 -0
- package/lib/esm/entry/dependenciesAny/dependenciesSylvester.generated.js +38 -0
- package/lib/esm/entry/dependenciesAny/dependenciesSymbolicEqual.generated.js +16 -0
- package/lib/esm/entry/dependenciesAny/dependenciesTo.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesUnequal.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesUnitClass.generated.js +2 -2
- package/lib/esm/entry/dependenciesAny/dependenciesUsolve.generated.js +2 -2
- package/lib/esm/entry/dependenciesAny/dependenciesUsolveAll.generated.js +2 -2
- package/lib/esm/entry/dependenciesAny/dependenciesXor.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesZeta.generated.js +38 -0
- package/lib/esm/entry/dependenciesAny/dependenciesZpk2tf.generated.js +18 -0
- package/lib/esm/entry/dependenciesAny.generated.js +297 -266
- package/lib/esm/entry/dependenciesNumber/dependenciesCeil.generated.js +2 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesChainClass.generated.js +2 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesCorr.generated.js +28 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesCumSum.generated.js +14 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesCumSumTransform.generated.js +14 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesFix.generated.js +4 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesFloor.generated.js +2 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesIndexNode.generated.js +0 -2
- package/lib/esm/entry/dependenciesNumber/dependenciesLgamma.generated.js +10 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesParserClass.generated.js +2 -2
- package/lib/esm/entry/dependenciesNumber/dependenciesQuantileSeq.generated.js +12 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesRange.generated.js +4 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesRangeTransform.generated.js +4 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesRationalize.generated.js +14 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesResolve.generated.js +20 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesSimplify.generated.js +16 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesSimplifyConstant.generated.js +28 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesSimplifyCore.generated.js +44 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesStd.generated.js +2 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesStdTransform.generated.js +2 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesStirlingS2.generated.js +4 -2
- package/lib/esm/entry/dependenciesNumber/dependenciesSubtractScalar.generated.js +10 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesZeta.generated.js +34 -0
- package/lib/esm/entry/dependenciesNumber.generated.js +171 -163
- package/lib/esm/entry/impureFunctionsAny.generated.js +425 -274
- package/lib/esm/entry/impureFunctionsNumber.generated.js +283 -216
- package/lib/esm/entry/mainAny.js +10 -5
- package/lib/esm/entry/mainNumber.js +10 -5
- package/lib/esm/entry/pureFunctionsAny.generated.js +1028 -753
- package/lib/esm/entry/pureFunctionsNumber.generated.js +279 -223
- package/lib/esm/entry/typeChecks.js +1 -1
- package/lib/esm/error/ArgumentsError.js +0 -1
- package/lib/esm/error/DimensionError.js +0 -1
- package/lib/esm/error/IndexError.js +0 -4
- package/lib/esm/expression/Help.js +9 -23
- package/lib/esm/expression/Parser.js +36 -37
- package/lib/esm/expression/embeddedDocs/construction/fraction.js +3 -3
- package/lib/esm/expression/embeddedDocs/construction/index.js +1 -1
- package/lib/esm/expression/embeddedDocs/core/typed.js +1 -1
- package/lib/esm/expression/embeddedDocs/embeddedDocs.js +261 -209
- package/lib/esm/expression/embeddedDocs/function/algebra/leafCount.js +8 -0
- package/lib/esm/expression/embeddedDocs/function/algebra/lyap.js +8 -0
- package/lib/esm/expression/embeddedDocs/function/algebra/polynomialRoot.js +8 -0
- package/lib/esm/expression/embeddedDocs/function/algebra/resolve.js +9 -0
- package/lib/esm/expression/embeddedDocs/function/algebra/schur.js +8 -0
- package/lib/esm/expression/embeddedDocs/function/algebra/simplify.js +1 -1
- package/lib/esm/expression/embeddedDocs/function/algebra/simplifyConstant.js +8 -0
- package/lib/esm/expression/embeddedDocs/function/algebra/simplifyCore.js +8 -0
- package/lib/esm/expression/embeddedDocs/function/algebra/sylvester.js +8 -0
- package/lib/esm/expression/embeddedDocs/function/algebra/symbolicEqual.js +8 -0
- package/lib/esm/expression/embeddedDocs/function/arithmetic/invmod.js +8 -0
- package/lib/esm/expression/embeddedDocs/function/arithmetic/pow.js +1 -1
- package/lib/esm/expression/embeddedDocs/function/arithmetic/round.js +2 -2
- package/lib/esm/expression/embeddedDocs/function/arithmetic/sqrtm.js +1 -1
- package/lib/esm/expression/embeddedDocs/function/expression/evaluate.js +2 -2
- package/lib/esm/expression/embeddedDocs/function/matrix/column.js +1 -1
- package/lib/esm/expression/embeddedDocs/function/matrix/count.js +8 -0
- package/lib/esm/expression/embeddedDocs/function/matrix/diff.js +1 -1
- package/lib/esm/expression/embeddedDocs/function/matrix/eigs.js +2 -2
- package/lib/esm/expression/embeddedDocs/function/matrix/fft.js +8 -0
- package/lib/esm/expression/embeddedDocs/function/matrix/forEach.js +1 -1
- package/lib/esm/expression/embeddedDocs/function/matrix/ifft.js +8 -0
- package/lib/esm/expression/embeddedDocs/function/matrix/matrixFromColumns.js +8 -0
- package/lib/esm/expression/embeddedDocs/function/matrix/matrixFromFunction.js +8 -0
- package/lib/esm/expression/embeddedDocs/function/matrix/matrixFromRows.js +8 -0
- package/lib/esm/expression/embeddedDocs/function/matrix/partitionSelect.js +1 -1
- package/lib/esm/expression/embeddedDocs/function/matrix/pinv.js +8 -0
- package/lib/esm/expression/embeddedDocs/function/matrix/range.js +1 -1
- package/lib/esm/expression/embeddedDocs/function/matrix/reshape.js +1 -1
- package/lib/esm/expression/embeddedDocs/function/matrix/rotate.js +1 -1
- package/lib/esm/expression/embeddedDocs/function/matrix/row.js +1 -1
- package/lib/esm/expression/embeddedDocs/function/matrix/size.js +1 -1
- package/lib/esm/expression/embeddedDocs/function/matrix/sort.js +1 -1
- package/lib/esm/expression/embeddedDocs/function/matrix/subset.js +2 -2
- package/lib/esm/expression/embeddedDocs/function/numeric/solveODE.js +8 -0
- package/lib/esm/expression/embeddedDocs/function/probability/lgamma.js +8 -0
- package/lib/esm/expression/embeddedDocs/function/set/setCartesian.js +1 -1
- package/lib/esm/expression/embeddedDocs/function/signal/freqz.js +8 -0
- package/lib/esm/expression/embeddedDocs/function/signal/zpk2tf.js +8 -0
- package/lib/esm/expression/embeddedDocs/function/special/zeta.js +8 -0
- package/lib/esm/expression/embeddedDocs/function/statistics/corr.js +8 -0
- package/lib/esm/expression/embeddedDocs/function/statistics/cumsum.js +8 -0
- package/lib/esm/expression/embeddedDocs/function/statistics/max.js +1 -1
- package/lib/esm/expression/embeddedDocs/function/statistics/mean.js +1 -1
- package/lib/esm/expression/embeddedDocs/function/statistics/min.js +1 -1
- package/lib/esm/expression/embeddedDocs/function/statistics/std.js +1 -1
- package/lib/esm/expression/embeddedDocs/function/statistics/sum.js +1 -1
- package/lib/esm/expression/embeddedDocs/function/statistics/variance.js +1 -1
- package/lib/esm/expression/embeddedDocs/function/utils/numeric.js +1 -1
- package/lib/esm/expression/embeddedDocs/function/utils/print.js +1 -1
- package/lib/esm/expression/function/compile.js +1 -2
- package/lib/esm/expression/function/evaluate.js +6 -6
- package/lib/esm/expression/function/help.js +2 -7
- package/lib/esm/expression/function/parser.js +6 -7
- package/lib/esm/expression/keywords.js +1 -3
- package/lib/esm/expression/node/AccessorNode.js +150 -170
- package/lib/esm/expression/node/ArrayNode.js +149 -159
- package/lib/esm/expression/node/AssignmentNode.js +249 -267
- package/lib/esm/expression/node/BlockNode.js +156 -164
- package/lib/esm/expression/node/ConditionalNode.js +186 -201
- package/lib/esm/expression/node/ConstantNode.js +145 -163
- package/lib/esm/expression/node/FunctionAssignmentNode.js +195 -195
- package/lib/esm/expression/node/FunctionNode.js +367 -357
- package/lib/esm/expression/node/IndexNode.js +178 -230
- package/lib/esm/expression/node/Node.js +316 -375
- package/lib/esm/expression/node/ObjectNode.js +154 -177
- package/lib/esm/expression/node/OperatorNode.js +399 -456
- package/lib/esm/expression/node/ParenthesisNode.js +126 -138
- package/lib/esm/expression/node/RangeNode.js +200 -238
- package/lib/esm/expression/node/RelationalNode.js +169 -183
- package/lib/esm/expression/node/SymbolNode.js +156 -170
- package/lib/esm/expression/node/utils/access.js +0 -2
- package/lib/esm/expression/node/utils/assign.js +7 -4
- package/lib/esm/expression/operators.js +101 -33
- package/lib/esm/expression/parse.js +273 -388
- package/lib/esm/expression/transform/and.transform.js +35 -0
- package/lib/esm/expression/transform/apply.transform.js +4 -5
- package/lib/esm/expression/transform/bitAnd.transform.js +40 -0
- package/lib/esm/expression/transform/bitOr.transform.js +41 -0
- package/lib/esm/expression/transform/column.transform.js +4 -5
- package/lib/esm/expression/transform/concat.transform.js +2 -4
- package/lib/esm/expression/transform/cumsum.transform.js +46 -0
- package/lib/esm/expression/transform/diff.transform.js +4 -14
- package/lib/esm/expression/transform/filter.transform.js +8 -21
- package/lib/esm/expression/transform/forEach.transform.js +6 -22
- package/lib/esm/expression/transform/index.transform.js +13 -12
- package/lib/esm/expression/transform/map.transform.js +8 -23
- package/lib/esm/expression/transform/max.transform.js +4 -14
- package/lib/esm/expression/transform/mean.transform.js +4 -14
- package/lib/esm/expression/transform/min.transform.js +4 -14
- package/lib/esm/expression/transform/or.transform.js +33 -0
- package/lib/esm/expression/transform/print.transform.js +42 -0
- package/lib/esm/expression/transform/quantileSeq.transform.js +59 -0
- package/lib/esm/expression/transform/range.transform.js +9 -7
- package/lib/esm/expression/transform/row.transform.js +4 -5
- package/lib/esm/expression/transform/std.transform.js +7 -15
- package/lib/esm/expression/transform/subset.transform.js +9 -5
- package/lib/esm/expression/transform/sum.transform.js +5 -15
- package/lib/esm/expression/transform/utils/compileInlineExpression.js +7 -8
- package/lib/esm/expression/transform/utils/errorTransform.js +1 -2
- package/lib/esm/expression/transform/utils/lastDimToZeroBase.js +17 -0
- package/lib/esm/expression/transform/variance.transform.js +4 -14
- package/lib/esm/factoriesAny.js +36 -3
- package/lib/esm/factoriesNumber.js +83 -38
- package/lib/esm/function/algebra/decomposition/lup.js +128 -162
- package/lib/esm/function/algebra/decomposition/qr.js +30 -45
- package/lib/esm/function/algebra/decomposition/schur.js +70 -0
- package/lib/esm/function/algebra/decomposition/slu.js +10 -9
- package/lib/esm/function/algebra/derivative.js +63 -164
- package/lib/esm/function/algebra/leafCount.js +54 -0
- package/lib/esm/function/algebra/lyap.js +52 -0
- package/lib/esm/function/algebra/polynomialRoot.js +122 -0
- package/lib/esm/function/algebra/rationalize.js +220 -272
- package/lib/esm/function/algebra/resolve.js +97 -0
- package/lib/esm/function/algebra/simplify/util.js +148 -67
- package/lib/esm/function/algebra/simplify/wildcards.js +20 -0
- package/lib/esm/function/algebra/simplify.js +823 -380
- package/lib/esm/function/algebra/simplifyConstant.js +457 -0
- package/lib/esm/function/algebra/simplifyCore.js +288 -0
- package/lib/esm/function/algebra/solver/lsolve.js +27 -31
- package/lib/esm/function/algebra/solver/lsolveAll.js +34 -35
- package/lib/esm/function/algebra/solver/lusolve.js +10 -15
- package/lib/esm/function/algebra/solver/usolve.js +31 -36
- package/lib/esm/function/algebra/solver/usolveAll.js +38 -35
- package/lib/esm/function/algebra/solver/utils/solveValidation.js +9 -33
- package/lib/esm/function/algebra/sparse/csAmd.js +249 -298
- package/lib/esm/function/algebra/sparse/csChol.js +66 -78
- package/lib/esm/function/algebra/sparse/csCounts.js +38 -53
- package/lib/esm/function/algebra/sparse/csCumsum.js +8 -10
- package/lib/esm/function/algebra/sparse/csDfs.js +35 -39
- package/lib/esm/function/algebra/sparse/csEreach.js +25 -29
- package/lib/esm/function/algebra/sparse/csEtree.js +23 -27
- package/lib/esm/function/algebra/sparse/csFkeep.js +20 -24
- package/lib/esm/function/algebra/sparse/csIpvec.js +2 -3
- package/lib/esm/function/algebra/sparse/csLeaf.js +15 -17
- package/lib/esm/function/algebra/sparse/csLu.js +69 -87
- package/lib/esm/function/algebra/sparse/csMark.js +1 -1
- package/lib/esm/function/algebra/sparse/csPermute.js +20 -24
- package/lib/esm/function/algebra/sparse/csPost.js +15 -23
- package/lib/esm/function/algebra/sparse/csReach.js +15 -17
- package/lib/esm/function/algebra/sparse/csSpsolve.js +31 -36
- package/lib/esm/function/algebra/sparse/csSqr.js +61 -78
- package/lib/esm/function/algebra/sparse/csSymperm.js +33 -41
- package/lib/esm/function/algebra/sparse/csTdfs.js +12 -14
- package/lib/esm/function/algebra/sparse/csUnflip.js +1 -1
- package/lib/esm/function/algebra/sylvester.js +118 -0
- package/lib/esm/function/algebra/symbolicEqual.js +60 -0
- package/lib/esm/function/arithmetic/abs.js +4 -18
- package/lib/esm/function/arithmetic/add.js +59 -104
- package/lib/esm/function/arithmetic/addScalar.js +10 -7
- package/lib/esm/function/arithmetic/cbrt.js +16 -26
- package/lib/esm/function/arithmetic/ceil.js +76 -42
- package/lib/esm/function/arithmetic/cube.js +6 -11
- package/lib/esm/function/arithmetic/divide.js +10 -9
- package/lib/esm/function/arithmetic/divideScalar.js +3 -21
- package/lib/esm/function/arithmetic/dotDivide.js +28 -68
- package/lib/esm/function/arithmetic/dotMultiply.js +22 -64
- package/lib/esm/function/arithmetic/dotPow.js +34 -66
- package/lib/esm/function/arithmetic/exp.js +9 -13
- package/lib/esm/function/arithmetic/expm1.js +11 -11
- package/lib/esm/function/arithmetic/fix.js +60 -25
- package/lib/esm/function/arithmetic/floor.js +81 -42
- package/lib/esm/function/arithmetic/gcd.js +86 -79
- package/lib/esm/function/arithmetic/hypot.js +8 -12
- package/lib/esm/function/arithmetic/invmod.js +55 -0
- package/lib/esm/function/arithmetic/lcm.js +33 -81
- package/lib/esm/function/arithmetic/log.js +8 -12
- package/lib/esm/function/arithmetic/log10.js +2 -5
- package/lib/esm/function/arithmetic/log1p.js +6 -10
- package/lib/esm/function/arithmetic/log2.js +3 -6
- package/lib/esm/function/arithmetic/mod.js +59 -78
- package/lib/esm/function/arithmetic/multiply.js +330 -351
- package/lib/esm/function/arithmetic/multiplyScalar.js +3 -15
- package/lib/esm/function/arithmetic/norm.js +32 -62
- package/lib/esm/function/arithmetic/nthRoot.js +53 -96
- package/lib/esm/function/arithmetic/nthRoots.js +10 -16
- package/lib/esm/function/arithmetic/pow.js +44 -37
- package/lib/esm/function/arithmetic/round.js +71 -77
- package/lib/esm/function/arithmetic/sign.js +10 -10
- package/lib/esm/function/arithmetic/sqrt.js +7 -11
- package/lib/esm/function/arithmetic/square.js +7 -11
- package/lib/esm/function/arithmetic/subtract.js +37 -121
- package/lib/esm/function/arithmetic/subtractScalar.js +46 -0
- package/lib/esm/function/arithmetic/unaryMinus.js +8 -18
- package/lib/esm/function/arithmetic/unaryPlus.js +3 -6
- package/lib/esm/function/arithmetic/xgcd.js +10 -13
- package/lib/esm/function/bitwise/bitAnd.js +22 -63
- package/lib/esm/function/bitwise/bitNot.js +3 -6
- package/lib/esm/function/bitwise/bitOr.js +22 -63
- package/lib/esm/function/bitwise/bitXor.js +22 -63
- package/lib/esm/function/bitwise/leftShift.js +45 -69
- package/lib/esm/function/bitwise/rightArithShift.js +46 -70
- package/lib/esm/function/bitwise/rightLogShift.js +46 -68
- package/lib/esm/function/bitwise/useMatrixForArrayScalar.js +13 -0
- package/lib/esm/function/combinatorics/bellNumbers.js +3 -6
- package/lib/esm/function/combinatorics/catalan.js +1 -3
- package/lib/esm/function/combinatorics/composition.js +1 -3
- package/lib/esm/function/combinatorics/stirlingS2.js +39 -18
- package/lib/esm/function/complex/arg.js +3 -5
- package/lib/esm/function/complex/conj.js +4 -14
- package/lib/esm/function/complex/im.js +5 -14
- package/lib/esm/function/complex/re.js +4 -14
- package/lib/esm/function/geometry/distance.js +38 -81
- package/lib/esm/function/geometry/intersect.js +87 -87
- package/lib/esm/function/logical/and.js +41 -65
- package/lib/esm/function/logical/not.js +4 -8
- package/lib/esm/function/logical/or.js +22 -65
- package/lib/esm/function/logical/xor.js +22 -65
- package/lib/esm/function/matrix/apply.js +3 -17
- package/lib/esm/function/matrix/column.js +5 -5
- package/lib/esm/function/matrix/concat.js +10 -46
- package/lib/esm/function/matrix/count.js +39 -0
- package/lib/esm/function/matrix/cross.js +2 -6
- package/lib/esm/function/matrix/ctranspose.js +1 -2
- package/lib/esm/function/matrix/det.js +43 -48
- package/lib/esm/function/matrix/diag.js +19 -28
- package/lib/esm/function/matrix/diff.js +11 -31
- package/lib/esm/function/matrix/dot.js +19 -40
- package/lib/esm/function/matrix/eigs/complexEigs.js +698 -0
- package/lib/esm/function/matrix/eigs/realSymmetric.js +297 -0
- package/lib/esm/function/matrix/eigs.js +258 -360
- package/lib/esm/function/matrix/expm.js +24 -36
- package/lib/esm/function/matrix/fft.js +128 -0
- package/lib/esm/function/matrix/filter.js +4 -14
- package/lib/esm/function/matrix/flatten.js +6 -7
- package/lib/esm/function/matrix/forEach.js +6 -18
- package/lib/esm/function/matrix/getMatrixDataType.js +2 -3
- package/lib/esm/function/matrix/identity.js +10 -21
- package/lib/esm/function/matrix/ifft.js +37 -0
- package/lib/esm/function/matrix/inv.js +13 -32
- package/lib/esm/function/matrix/kron.js +2 -6
- package/lib/esm/function/matrix/map.js +23 -23
- package/lib/esm/function/matrix/matrixFromColumns.js +88 -0
- package/lib/esm/function/matrix/matrixFromFunction.js +74 -0
- package/lib/esm/function/matrix/matrixFromRows.js +76 -0
- package/lib/esm/function/matrix/ones.js +8 -16
- package/lib/esm/function/matrix/partitionSelect.js +20 -23
- package/lib/esm/function/matrix/pinv.js +179 -0
- package/lib/esm/function/matrix/range.js +38 -137
- package/lib/esm/function/matrix/reshape.js +8 -10
- package/lib/esm/function/matrix/resize.js +6 -19
- package/lib/esm/function/matrix/rotate.js +6 -15
- package/lib/esm/function/matrix/rotationMatrix.js +4 -20
- package/lib/esm/function/matrix/row.js +5 -5
- package/lib/esm/function/matrix/size.js +2 -3
- package/lib/esm/function/matrix/sort.js +5 -15
- package/lib/esm/function/matrix/sqrtm.js +8 -15
- package/lib/esm/function/matrix/squeeze.js +3 -4
- package/lib/esm/function/matrix/subset.js +113 -58
- package/lib/esm/function/matrix/trace.js +21 -31
- package/lib/esm/function/matrix/transpose.js +79 -94
- package/lib/esm/function/matrix/zeros.js +11 -17
- package/lib/esm/function/numeric/solveODE.js +284 -0
- package/lib/esm/function/probability/combinations.js +4 -9
- package/lib/esm/function/probability/combinationsWithRep.js +2 -13
- package/lib/esm/function/probability/factorial.js +2 -7
- package/lib/esm/function/probability/gamma.js +48 -59
- package/lib/esm/function/probability/kldivergence.js +6 -15
- package/lib/esm/function/probability/lgamma.js +137 -0
- package/lib/esm/function/probability/multinomial.js +1 -3
- package/lib/esm/function/probability/permutations.js +6 -14
- package/lib/esm/function/probability/pickRandom.js +6 -22
- package/lib/esm/function/probability/random.js +6 -12
- package/lib/esm/function/probability/randomInt.js +2 -6
- package/lib/esm/function/probability/util/randomMatrix.js +0 -2
- package/lib/esm/function/probability/util/seededRNG.js +6 -5
- package/lib/esm/function/relational/compare.js +28 -72
- package/lib/esm/function/relational/compareNatural.js +73 -93
- package/lib/esm/function/relational/compareText.js +17 -47
- package/lib/esm/function/relational/compareUnits.js +14 -0
- package/lib/esm/function/relational/deepEqual.js +2 -6
- package/lib/esm/function/relational/equal.js +26 -88
- package/lib/esm/function/relational/equalScalar.js +7 -10
- package/lib/esm/function/relational/equalText.js +1 -2
- package/lib/esm/function/relational/larger.js +30 -78
- package/lib/esm/function/relational/largerEq.js +30 -78
- package/lib/esm/function/relational/smaller.js +30 -78
- package/lib/esm/function/relational/smallerEq.js +30 -78
- package/lib/esm/function/relational/unequal.js +26 -89
- package/lib/esm/function/set/setCartesian.js +8 -11
- package/lib/esm/function/set/setDifference.js +5 -12
- package/lib/esm/function/set/setDistinct.js +5 -10
- package/lib/esm/function/set/setIntersect.js +5 -10
- package/lib/esm/function/set/setIsSubset.js +2 -8
- package/lib/esm/function/set/setMultiplicity.js +1 -5
- package/lib/esm/function/set/setPowerset.js +7 -14
- package/lib/esm/function/set/setSize.js +4 -6
- package/lib/esm/function/set/setSymDifference.js +1 -3
- package/lib/esm/function/set/setUnion.js +1 -3
- package/lib/esm/function/signal/freqz.js +115 -0
- package/lib/esm/function/signal/zpk2tf.js +82 -0
- package/lib/esm/function/special/erf.js +16 -26
- package/lib/esm/function/special/zeta.js +148 -0
- package/lib/esm/function/statistics/corr.js +84 -0
- package/lib/esm/function/statistics/cumsum.js +123 -0
- package/lib/esm/function/statistics/mad.js +1 -5
- package/lib/esm/function/statistics/max.js +8 -13
- package/lib/esm/function/statistics/mean.js +5 -10
- package/lib/esm/function/statistics/median.js +10 -13
- package/lib/esm/function/statistics/min.js +7 -12
- package/lib/esm/function/statistics/mode.js +3 -12
- package/lib/esm/function/statistics/prod.js +7 -8
- package/lib/esm/function/statistics/quantileSeq.js +91 -200
- package/lib/esm/function/statistics/std.js +10 -6
- package/lib/esm/function/statistics/sum.js +8 -11
- package/lib/esm/function/statistics/utils/improveErrorMessage.js +1 -4
- package/lib/esm/function/statistics/variance.js +7 -15
- package/lib/esm/function/string/bin.js +24 -3
- package/lib/esm/function/string/format.js +39 -23
- package/lib/esm/function/string/hex.js +25 -5
- package/lib/esm/function/string/oct.js +26 -4
- package/lib/esm/function/string/print.js +7 -7
- package/lib/esm/function/trigonometry/acos.js +5 -9
- package/lib/esm/function/trigonometry/acosh.js +3 -10
- package/lib/esm/function/trigonometry/acot.js +7 -12
- package/lib/esm/function/trigonometry/acoth.js +5 -10
- package/lib/esm/function/trigonometry/acsc.js +7 -13
- package/lib/esm/function/trigonometry/acsch.js +5 -9
- package/lib/esm/function/trigonometry/asec.js +7 -12
- package/lib/esm/function/trigonometry/asech.js +5 -12
- package/lib/esm/function/trigonometry/asin.js +6 -11
- package/lib/esm/function/trigonometry/asinh.js +5 -10
- package/lib/esm/function/trigonometry/atan.js +6 -12
- package/lib/esm/function/trigonometry/atan2.js +33 -69
- package/lib/esm/function/trigonometry/atanh.js +5 -11
- package/lib/esm/function/trigonometry/cos.js +11 -22
- package/lib/esm/function/trigonometry/cosh.js +6 -22
- package/lib/esm/function/trigonometry/cot.js +10 -20
- package/lib/esm/function/trigonometry/coth.js +7 -22
- package/lib/esm/function/trigonometry/csc.js +12 -22
- package/lib/esm/function/trigonometry/csch.js +7 -22
- package/lib/esm/function/trigonometry/sec.js +12 -22
- package/lib/esm/function/trigonometry/sech.js +7 -22
- package/lib/esm/function/trigonometry/sin.js +11 -23
- package/lib/esm/function/trigonometry/sinh.js +6 -23
- package/lib/esm/function/trigonometry/tan.js +11 -23
- package/lib/esm/function/trigonometry/tanh.js +6 -23
- package/lib/esm/function/trigonometry/trigUnit.js +14 -0
- package/lib/esm/function/unit/to.js +17 -50
- package/lib/esm/function/utils/clone.js +2 -3
- package/lib/esm/function/utils/hasNumericValue.js +4 -3
- package/lib/esm/function/utils/isInteger.js +4 -6
- package/lib/esm/function/utils/isNaN.js +2 -3
- package/lib/esm/function/utils/isNegative.js +4 -9
- package/lib/esm/function/utils/isNumeric.js +5 -12
- package/lib/esm/function/utils/isPositive.js +4 -9
- package/lib/esm/function/utils/isPrime.js +56 -14
- package/lib/esm/function/utils/isZero.js +14 -19
- package/lib/esm/function/utils/numeric.js +13 -10
- package/lib/esm/function/utils/typeOf.js +39 -46
- package/lib/esm/header.js +1 -1
- package/lib/esm/json/replacer.js +0 -1
- package/lib/esm/json/reviver.js +1 -4
- package/lib/esm/plain/bignumber/index.js +2 -1
- package/lib/esm/plain/number/arithmetic.js +41 -74
- package/lib/esm/plain/number/bitwise.js +0 -7
- package/lib/esm/plain/number/combinations.js +17 -11
- package/lib/esm/plain/number/probability.js +37 -11
- package/lib/esm/type/bignumber/BigNumber.js +6 -10
- package/lib/esm/type/bignumber/function/bignumber.js +23 -5
- package/lib/esm/type/boolean.js +4 -10
- package/lib/esm/type/chain/Chain.js +35 -35
- package/lib/esm/type/chain/function/chain.js +1 -2
- package/lib/esm/type/complex/Complex.js +14 -30
- package/lib/esm/type/complex/function/complex.js +2 -7
- package/lib/esm/type/fraction/Fraction.js +6 -4
- package/lib/esm/type/fraction/function/fraction.js +28 -15
- package/lib/esm/type/matrix/DenseMatrix.js +240 -220
- package/lib/esm/type/matrix/FibonacciHeap.js +121 -159
- package/lib/esm/type/matrix/ImmutableDenseMatrix.js +20 -39
- package/lib/esm/type/matrix/Matrix.js +26 -34
- package/lib/esm/type/matrix/MatrixIndex.js +64 -68
- package/lib/esm/type/matrix/Range.js +14 -46
- package/lib/esm/type/matrix/Spa.js +33 -51
- package/lib/esm/type/matrix/SparseMatrix.js +504 -553
- package/lib/esm/type/matrix/function/index.js +7 -6
- package/lib/esm/type/matrix/function/matrix.js +4 -6
- package/lib/esm/type/matrix/function/sparse.js +7 -2
- package/lib/esm/type/matrix/utils/broadcast.js +69 -0
- package/lib/esm/type/matrix/utils/{algorithm01.js → matAlgo01xDSid.js} +38 -35
- package/lib/esm/type/matrix/utils/{algorithm02.js → matAlgo02xDS0.js} +45 -42
- package/lib/esm/type/matrix/utils/{algorithm03.js → matAlgo03xDSf.js} +43 -40
- package/lib/esm/type/matrix/utils/{algorithm04.js → matAlgo04xSidSid.js} +75 -72
- package/lib/esm/type/matrix/utils/{algorithm05.js → matAlgo05xSfSf.js} +75 -73
- package/lib/esm/type/matrix/utils/{algorithm06.js → matAlgo06xS0S0.js} +63 -59
- package/lib/esm/type/matrix/utils/{algorithm07.js → matAlgo07xSSf.js} +49 -48
- package/lib/esm/type/matrix/utils/{algorithm08.js → matAlgo08xS0Sid.js} +70 -67
- package/lib/esm/type/matrix/utils/{algorithm09.js → matAlgo09xS0Sf.js} +59 -55
- package/lib/esm/type/matrix/utils/{algorithm10.js → matAlgo10xSids.js} +35 -33
- package/lib/esm/type/matrix/utils/{algorithm11.js → matAlgo11xS0s.js} +41 -38
- package/lib/esm/type/matrix/utils/{algorithm12.js → matAlgo12xSfs.js} +35 -33
- package/lib/esm/type/matrix/utils/{algorithm13.js → matAlgo13xDD.js} +29 -28
- package/lib/esm/type/matrix/utils/{algorithm14.js → matAlgo14xDs.js} +21 -19
- package/lib/esm/type/matrix/utils/matrixAlgorithmSuite.js +156 -0
- package/lib/esm/type/number.js +76 -20
- package/lib/esm/type/resultset/ResultSet.js +5 -11
- package/lib/esm/type/string.js +2 -5
- package/lib/esm/type/unit/Unit.js +361 -493
- package/lib/esm/type/unit/function/createUnit.js +3 -3
- package/lib/esm/type/unit/function/splitUnit.js +2 -3
- package/lib/esm/type/unit/function/unit.js +14 -9
- package/lib/esm/type/unit/physicalConstants.js +24 -17
- package/lib/esm/utils/applyCallback.js +67 -0
- package/lib/esm/utils/array.js +341 -137
- package/lib/esm/utils/bignumber/bitwise.js +13 -89
- package/lib/esm/utils/bignumber/constants.js +17 -9
- package/lib/esm/utils/bignumber/formatter.js +94 -28
- package/lib/esm/utils/bignumber/nearlyEqual.js +8 -9
- package/lib/esm/utils/collection.js +25 -60
- package/lib/esm/utils/complex.js +1 -1
- package/lib/esm/utils/customs.js +31 -40
- package/lib/esm/utils/emitter.js +3 -2
- package/lib/esm/utils/factory.js +12 -20
- package/lib/esm/utils/function.js +29 -20
- package/lib/esm/utils/is.js +33 -23
- package/lib/esm/utils/latex.js +10 -8
- package/lib/esm/utils/log.js +0 -2
- package/lib/esm/utils/lruQueue.js +51 -0
- package/lib/esm/utils/map.js +120 -0
- package/lib/esm/utils/number.js +158 -106
- package/lib/esm/utils/object.js +34 -70
- package/lib/esm/utils/print.js +1 -0
- package/lib/esm/utils/product.js +0 -3
- package/lib/esm/utils/scope.js +24 -0
- package/lib/esm/utils/snapshot.js +37 -86
- package/lib/esm/utils/string.js +36 -48
- package/lib/esm/utils/switch.js +20 -0
- package/lib/esm/version.js +2 -1
- package/package.json +71 -45
- package/types/EXPLANATION.md +54 -0
- package/types/index.d.ts +6967 -0
- package/types/tslint.json +6 -0
- package/docs/command_line_interface.md +0 -87
- package/docs/core/chaining.md +0 -41
- package/docs/core/configuration.md +0 -144
- package/docs/core/extension.md +0 -263
- package/docs/core/index.md +0 -21
- package/docs/core/serialization.md +0 -50
- package/docs/custom_bundling.md +0 -116
- package/docs/datatypes/bignumbers.md +0 -102
- package/docs/datatypes/complex_numbers.md +0 -168
- package/docs/datatypes/fractions.md +0 -75
- package/docs/datatypes/index.md +0 -67
- package/docs/datatypes/matrices.md +0 -343
- package/docs/datatypes/numbers.md +0 -106
- package/docs/datatypes/units.md +0 -444
- package/docs/expressions/algebra.md +0 -83
- package/docs/expressions/customization.md +0 -379
- package/docs/expressions/expression_trees.md +0 -699
- package/docs/expressions/html_classes.md +0 -38
- package/docs/expressions/index.md +0 -21
- package/docs/expressions/parsing.md +0 -207
- package/docs/expressions/security.md +0 -89
- package/docs/expressions/syntax.md +0 -648
- package/docs/getting_started.md +0 -124
- package/docs/index.md +0 -39
- package/docs/reference/.gitignore +0 -1
- package/docs/reference/.npmignore +0 -1
- package/docs/reference/classes/densematrix.md +0 -247
- package/docs/reference/classes/fibonacciheap.md +0 -70
- package/docs/reference/classes/matrixindex.md +0 -133
- package/docs/reference/classes/matrixrange.md +0 -158
- package/docs/reference/classes/resultset.md +0 -47
- package/docs/reference/classes/sparsematrix.md +0 -245
- package/docs/reference/classes/unit.md +0 -242
- package/docs/reference/classes.md +0 -86
- package/docs/reference/constants.md +0 -29
- package/docs/reference/functions/.gitignore +0 -1
- package/docs/reference/functions/.npmignore +0 -1
- package/docs/reference/functions/abs.md +0 -40
- package/docs/reference/functions/acos.md +0 -43
- package/docs/reference/functions/acosh.md +0 -41
- package/docs/reference/functions/acot.md +0 -42
- package/docs/reference/functions/acoth.md +0 -40
- package/docs/reference/functions/acsc.md +0 -43
- package/docs/reference/functions/acsch.md +0 -40
- package/docs/reference/functions/add.md +0 -53
- package/docs/reference/functions/and.md +0 -47
- package/docs/reference/functions/apply.md +0 -50
- package/docs/reference/functions/arg.md +0 -47
- package/docs/reference/functions/asec.md +0 -43
- package/docs/reference/functions/asech.md +0 -40
- package/docs/reference/functions/asin.md +0 -43
- package/docs/reference/functions/asinh.md +0 -40
- package/docs/reference/functions/atan.md +0 -43
- package/docs/reference/functions/atan2.md +0 -50
- package/docs/reference/functions/atanh.md +0 -40
- package/docs/reference/functions/bellNumbers.md +0 -39
- package/docs/reference/functions/bignumber.md +0 -47
- package/docs/reference/functions/bin.md +0 -38
- package/docs/reference/functions/bitAnd.md +0 -45
- package/docs/reference/functions/bitNot.md +0 -45
- package/docs/reference/functions/bitOr.md +0 -46
- package/docs/reference/functions/bitXor.md +0 -45
- package/docs/reference/functions/boolean.md +0 -50
- package/docs/reference/functions/catalan.md +0 -39
- package/docs/reference/functions/cbrt.md +0 -54
- package/docs/reference/functions/ceil.md +0 -57
- package/docs/reference/functions/chain.md +0 -54
- package/docs/reference/functions/clone.md +0 -37
- package/docs/reference/functions/column.md +0 -39
- package/docs/reference/functions/combinations.md +0 -43
- package/docs/reference/functions/combinationsWithRep.md +0 -43
- package/docs/reference/functions/compare.md +0 -61
- package/docs/reference/functions/compareNatural.md +0 -86
- package/docs/reference/functions/compareText.md +0 -48
- package/docs/reference/functions/compile.md +0 -50
- package/docs/reference/functions/complex.md +0 -61
- package/docs/reference/functions/composition.md +0 -40
- package/docs/reference/functions/concat.md +0 -50
- package/docs/reference/functions/config.md +0 -44
- package/docs/reference/functions/conj.md +0 -44
- package/docs/reference/functions/cos.md +0 -45
- package/docs/reference/functions/cosh.md +0 -40
- package/docs/reference/functions/cot.md +0 -41
- package/docs/reference/functions/coth.md +0 -43
- package/docs/reference/functions/createUnit.md +0 -52
- package/docs/reference/functions/cross.md +0 -52
- package/docs/reference/functions/csc.md +0 -41
- package/docs/reference/functions/csch.md +0 -43
- package/docs/reference/functions/ctranspose.md +0 -44
- package/docs/reference/functions/cube.md +0 -45
- package/docs/reference/functions/deepEqual.md +0 -47
- package/docs/reference/functions/derivative.md +0 -55
- package/docs/reference/functions/det.md +0 -43
- package/docs/reference/functions/diag.md +0 -55
- package/docs/reference/functions/diff.md +0 -64
- package/docs/reference/functions/distance.md +0 -74
- package/docs/reference/functions/divide.md +0 -49
- package/docs/reference/functions/dot.md +0 -42
- package/docs/reference/functions/dotDivide.md +0 -46
- package/docs/reference/functions/dotMultiply.md +0 -46
- package/docs/reference/functions/dotPow.md +0 -43
- package/docs/reference/functions/eigs.md +0 -48
- package/docs/reference/functions/equal.md +0 -69
- package/docs/reference/functions/equalText.md +0 -47
- package/docs/reference/functions/erf.md +0 -43
- package/docs/reference/functions/evaluate.md +0 -50
- package/docs/reference/functions/exp.md +0 -48
- package/docs/reference/functions/expm.md +0 -43
- package/docs/reference/functions/expm1.md +0 -48
- package/docs/reference/functions/factorial.md +0 -43
- package/docs/reference/functions/filter.md +0 -44
- package/docs/reference/functions/fix.md +0 -55
- package/docs/reference/functions/flatten.md +0 -39
- package/docs/reference/functions/floor.md +0 -56
- package/docs/reference/functions/forEach.md +0 -35
- package/docs/reference/functions/format.md +0 -104
- package/docs/reference/functions/fraction.md +0 -45
- package/docs/reference/functions/gamma.md +0 -43
- package/docs/reference/functions/gcd.md +0 -44
- package/docs/reference/functions/getMatrixDataType.md +0 -53
- package/docs/reference/functions/hasNumericValue.md +0 -49
- package/docs/reference/functions/help.md +0 -36
- package/docs/reference/functions/hex.md +0 -38
- package/docs/reference/functions/hypot.md +0 -45
- package/docs/reference/functions/identity.md +0 -51
- package/docs/reference/functions/im.md +0 -47
- package/docs/reference/functions/import.md +0 -68
- package/docs/reference/functions/index.md +0 -55
- package/docs/reference/functions/intersect.md +0 -44
- package/docs/reference/functions/inv.md +0 -39
- package/docs/reference/functions/isInteger.md +0 -49
- package/docs/reference/functions/isNaN.md +0 -50
- package/docs/reference/functions/isNegative.md +0 -49
- package/docs/reference/functions/isNumeric.md +0 -49
- package/docs/reference/functions/isPositive.md +0 -51
- package/docs/reference/functions/isPrime.md +0 -48
- package/docs/reference/functions/isZero.md +0 -53
- package/docs/reference/functions/kldivergence.md +0 -35
- package/docs/reference/functions/kron.md +0 -47
- package/docs/reference/functions/larger.md +0 -54
- package/docs/reference/functions/largerEq.md +0 -50
- package/docs/reference/functions/lcm.md +0 -48
- package/docs/reference/functions/leftShift.md +0 -46
- package/docs/reference/functions/log.md +0 -51
- package/docs/reference/functions/log10.md +0 -44
- package/docs/reference/functions/log1p.md +0 -48
- package/docs/reference/functions/log2.md +0 -44
- package/docs/reference/functions/lsolve.md +0 -45
- package/docs/reference/functions/lsolveAll.md +0 -45
- package/docs/reference/functions/lup.md +0 -46
- package/docs/reference/functions/lusolve.md +0 -53
- package/docs/reference/functions/mad.md +0 -44
- package/docs/reference/functions/map.md +0 -42
- package/docs/reference/functions/matrix.md +0 -56
- package/docs/reference/functions/max.md +0 -55
- package/docs/reference/functions/mean.md +0 -51
- package/docs/reference/functions/median.md +0 -51
- package/docs/reference/functions/min.md +0 -55
- package/docs/reference/functions/mod.md +0 -53
- package/docs/reference/functions/mode.md +0 -44
- package/docs/reference/functions/multinomial.md +0 -40
- package/docs/reference/functions/multiply.md +0 -54
- package/docs/reference/functions/norm.md +0 -53
- package/docs/reference/functions/not.md +0 -44
- package/docs/reference/functions/nthRoot.md +0 -47
- package/docs/reference/functions/nthRoots.md +0 -52
- package/docs/reference/functions/number.md +0 -49
- package/docs/reference/functions/numeric.md +0 -46
- package/docs/reference/functions/oct.md +0 -38
- package/docs/reference/functions/ones.md +0 -53
- package/docs/reference/functions/or.md +0 -47
- package/docs/reference/functions/parse.md +0 -56
- package/docs/reference/functions/parser.md +0 -64
- package/docs/reference/functions/partitionSelect.md +0 -47
- package/docs/reference/functions/permutations.md +0 -45
- package/docs/reference/functions/pickRandom.md +0 -53
- package/docs/reference/functions/pow.md +0 -53
- package/docs/reference/functions/print.md +0 -58
- package/docs/reference/functions/prod.md +0 -49
- package/docs/reference/functions/qr.md +0 -59
- package/docs/reference/functions/quantileSeq.md +0 -56
- package/docs/reference/functions/random.md +0 -48
- package/docs/reference/functions/randomInt.md +0 -47
- package/docs/reference/functions/range.md +0 -64
- package/docs/reference/functions/rationalize.md +0 -62
- package/docs/reference/functions/re.md +0 -47
- package/docs/reference/functions/reshape.md +0 -50
- package/docs/reference/functions/resize.md +0 -45
- package/docs/reference/functions/rightArithShift.md +0 -46
- package/docs/reference/functions/rightLogShift.md +0 -46
- package/docs/reference/functions/rotate.md +0 -47
- package/docs/reference/functions/rotationMatrix.md +0 -51
- package/docs/reference/functions/round.md +0 -55
- package/docs/reference/functions/row.md +0 -39
- package/docs/reference/functions/sec.md +0 -41
- package/docs/reference/functions/sech.md +0 -43
- package/docs/reference/functions/setCartesian.md +0 -41
- package/docs/reference/functions/setDifference.md +0 -41
- package/docs/reference/functions/setDistinct.md +0 -37
- package/docs/reference/functions/setIntersect.md +0 -40
- package/docs/reference/functions/setIsSubset.md +0 -41
- package/docs/reference/functions/setMultiplicity.md +0 -40
- package/docs/reference/functions/setPowerset.md +0 -37
- package/docs/reference/functions/setSize.md +0 -41
- package/docs/reference/functions/setSymDifference.md +0 -41
- package/docs/reference/functions/setUnion.md +0 -40
- package/docs/reference/functions/sign.md +0 -46
- package/docs/reference/functions/simplify.md +0 -90
- package/docs/reference/functions/sin.md +0 -45
- package/docs/reference/functions/sinh.md +0 -40
- package/docs/reference/functions/size.md +0 -43
- package/docs/reference/functions/slu.md +0 -51
- package/docs/reference/functions/smaller.md +0 -54
- package/docs/reference/functions/smallerEq.md +0 -50
- package/docs/reference/functions/sort.md +0 -50
- package/docs/reference/functions/sparse.md +0 -51
- package/docs/reference/functions/splitUnit.md +0 -37
- package/docs/reference/functions/sqrt.md +0 -44
- package/docs/reference/functions/sqrtm.md +0 -40
- package/docs/reference/functions/square.md +0 -45
- package/docs/reference/functions/squeeze.md +0 -47
- package/docs/reference/functions/std.md +0 -70
- package/docs/reference/functions/stirlingS2.md +0 -42
- package/docs/reference/functions/string.md +0 -49
- package/docs/reference/functions/subset.md +0 -51
- package/docs/reference/functions/subtract.md +0 -48
- package/docs/reference/functions/sum.md +0 -47
- package/docs/reference/functions/tan.md +0 -43
- package/docs/reference/functions/tanh.md +0 -44
- package/docs/reference/functions/to.md +0 -41
- package/docs/reference/functions/trace.md +0 -44
- package/docs/reference/functions/transpose.md +0 -43
- package/docs/reference/functions/typeOf.md +0 -75
- package/docs/reference/functions/typed.md +0 -56
- package/docs/reference/functions/unaryMinus.md +0 -43
- package/docs/reference/functions/unaryPlus.md +0 -42
- package/docs/reference/functions/unequal.md +0 -68
- package/docs/reference/functions/unit.md +0 -48
- package/docs/reference/functions/usolve.md +0 -45
- package/docs/reference/functions/usolveAll.md +0 -45
- package/docs/reference/functions/variance.md +0 -72
- package/docs/reference/functions/xgcd.md +0 -41
- package/docs/reference/functions/xor.md +0 -47
- package/docs/reference/functions/zeros.md +0 -51
- package/docs/reference/functions.md +0 -285
- package/docs/reference/index.md +0 -5
- package/examples/advanced/convert_fraction_to_bignumber.js +0 -59
- package/examples/advanced/custom_argument_parsing.js +0 -98
- package/examples/advanced/custom_datatype.js +0 -53
- package/examples/advanced/custom_evaluate_using_factories.js +0 -19
- package/examples/advanced/custom_evaluate_using_import.js +0 -18
- package/examples/advanced/custom_loading.js +0 -33
- package/examples/advanced/custom_relational_functions.js +0 -62
- package/examples/advanced/expression_trees.js +0 -55
- package/examples/advanced/function_transform.js +0 -50
- package/examples/advanced/more_secure_eval.js +0 -36
- package/examples/advanced/use_bigint.js +0 -43
- package/examples/advanced/web_server/math_worker.js +0 -24
- package/examples/advanced/web_server/server.js +0 -80
- package/examples/algebra.js +0 -34
- package/examples/basic_usage.js +0 -49
- package/examples/bignumbers.js +0 -52
- package/examples/browser/angle_configuration.html +0 -134
- package/examples/browser/basic_usage.html +0 -39
- package/examples/browser/currency_conversion.html +0 -125
- package/examples/browser/custom_separators.html +0 -81
- package/examples/browser/plot.html +0 -78
- package/examples/browser/pretty_printing_with_mathjax.html +0 -122
- package/examples/browser/printing_html.html +0 -170
- package/examples/browser/requirejs_loading.html +0 -20
- package/examples/browser/rocket_trajectory_optimization.html +0 -152
- package/examples/browser/webworkers/webworkers.html +0 -80
- package/examples/browser/webworkers/worker.js +0 -28
- package/examples/chaining.js +0 -56
- package/examples/complex_numbers.js +0 -67
- package/examples/expressions.js +0 -188
- package/examples/fractions.js +0 -74
- package/examples/import.js +0 -95
- package/examples/matrices.js +0 -101
- package/examples/objects.js +0 -35
- package/examples/package.json +0 -3
- package/examples/serialization.js +0 -16
- package/examples/sparse_matrices.js +0 -19
- package/examples/units.js +0 -108
- package/lib/cjs/function/algebra/simplify/resolve.js +0 -70
- package/lib/cjs/function/algebra/simplify/simplifyConstant.js +0 -332
- package/lib/cjs/function/algebra/simplify/simplifyCore.js +0 -199
- package/lib/cjs/function/string/baseUtils.js +0 -45
- package/lib/cjs/utils/polyfills.js +0 -14
- package/lib/esm/function/algebra/simplify/resolve.js +0 -62
- package/lib/esm/function/algebra/simplify/simplifyConstant.js +0 -316
- package/lib/esm/function/algebra/simplify/simplifyCore.js +0 -191
- package/lib/esm/function/string/baseUtils.js +0 -38
- package/lib/esm/utils/polyfills.js +0 -12
@@ -1,89 +1,63 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
4
5
|
value: true
|
5
6
|
});
|
6
7
|
exports.createSimplify = void 0;
|
7
|
-
|
8
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
8
9
|
var _is = require("../../utils/is.js");
|
9
|
-
|
10
|
+
var _wildcards = require("./simplify/wildcards.js");
|
10
11
|
var _factory = require("../../utils/factory.js");
|
11
|
-
|
12
12
|
var _util = require("./simplify/util.js");
|
13
|
-
|
14
|
-
var _simplifyCore = require("./simplify/simplifyCore.js");
|
15
|
-
|
16
|
-
var _simplifyConstant = require("./simplify/simplifyConstant.js");
|
17
|
-
|
18
|
-
var _resolve = require("./simplify/resolve.js");
|
19
|
-
|
20
13
|
var _object = require("../../utils/object.js");
|
21
|
-
|
22
|
-
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
23
|
-
|
14
|
+
var _map = require("../../utils/map.js");
|
24
15
|
var name = 'simplify';
|
25
|
-
var dependencies = ['config', 'typed', 'parse', 'add', 'subtract', 'multiply', 'divide', 'pow', 'isZero', 'equal', '?fraction', '?bignumber', 'mathWithTransform', 'ConstantNode', 'FunctionNode', 'OperatorNode', 'ParenthesisNode', 'SymbolNode'];
|
26
|
-
var createSimplify = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
|
16
|
+
var dependencies = ['config', 'typed', 'parse', 'add', 'subtract', 'multiply', 'divide', 'pow', 'isZero', 'equal', 'resolve', 'simplifyConstant', 'simplifyCore', '?fraction', '?bignumber', 'mathWithTransform', 'matrix', 'AccessorNode', 'ArrayNode', 'ConstantNode', 'FunctionNode', 'IndexNode', 'ObjectNode', 'OperatorNode', 'ParenthesisNode', 'SymbolNode'];
|
17
|
+
var createSimplify = exports.createSimplify = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
|
27
18
|
var config = _ref.config,
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
FunctionNode: FunctionNode,
|
54
|
-
SymbolNode: SymbolNode
|
55
|
-
});
|
56
|
-
var simplifyCore = (0, _simplifyCore.createSimplifyCore)({
|
57
|
-
equal: equal,
|
58
|
-
isZero: isZero,
|
59
|
-
add: add,
|
60
|
-
subtract: subtract,
|
61
|
-
multiply: multiply,
|
62
|
-
divide: divide,
|
63
|
-
pow: pow,
|
64
|
-
ConstantNode: ConstantNode,
|
65
|
-
OperatorNode: OperatorNode,
|
66
|
-
FunctionNode: FunctionNode,
|
67
|
-
ParenthesisNode: ParenthesisNode
|
68
|
-
});
|
69
|
-
var resolve = (0, _resolve.createResolve)({
|
70
|
-
parse: parse,
|
71
|
-
FunctionNode: FunctionNode,
|
72
|
-
OperatorNode: OperatorNode,
|
73
|
-
ParenthesisNode: ParenthesisNode
|
74
|
-
});
|
75
|
-
|
19
|
+
typed = _ref.typed,
|
20
|
+
parse = _ref.parse,
|
21
|
+
add = _ref.add,
|
22
|
+
subtract = _ref.subtract,
|
23
|
+
multiply = _ref.multiply,
|
24
|
+
divide = _ref.divide,
|
25
|
+
pow = _ref.pow,
|
26
|
+
isZero = _ref.isZero,
|
27
|
+
equal = _ref.equal,
|
28
|
+
resolve = _ref.resolve,
|
29
|
+
simplifyConstant = _ref.simplifyConstant,
|
30
|
+
simplifyCore = _ref.simplifyCore,
|
31
|
+
fraction = _ref.fraction,
|
32
|
+
bignumber = _ref.bignumber,
|
33
|
+
mathWithTransform = _ref.mathWithTransform,
|
34
|
+
matrix = _ref.matrix,
|
35
|
+
AccessorNode = _ref.AccessorNode,
|
36
|
+
ArrayNode = _ref.ArrayNode,
|
37
|
+
ConstantNode = _ref.ConstantNode,
|
38
|
+
FunctionNode = _ref.FunctionNode,
|
39
|
+
IndexNode = _ref.IndexNode,
|
40
|
+
ObjectNode = _ref.ObjectNode,
|
41
|
+
OperatorNode = _ref.OperatorNode,
|
42
|
+
ParenthesisNode = _ref.ParenthesisNode,
|
43
|
+
SymbolNode = _ref.SymbolNode;
|
76
44
|
var _createUtil = (0, _util.createUtil)({
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
45
|
+
FunctionNode: FunctionNode,
|
46
|
+
OperatorNode: OperatorNode,
|
47
|
+
SymbolNode: SymbolNode
|
48
|
+
}),
|
49
|
+
hasProperty = _createUtil.hasProperty,
|
50
|
+
isCommutative = _createUtil.isCommutative,
|
51
|
+
isAssociative = _createUtil.isAssociative,
|
52
|
+
mergeContext = _createUtil.mergeContext,
|
53
|
+
flatten = _createUtil.flatten,
|
54
|
+
unflattenr = _createUtil.unflattenr,
|
55
|
+
unflattenl = _createUtil.unflattenl,
|
56
|
+
createMakeNodeFunction = _createUtil.createMakeNodeFunction,
|
57
|
+
defaultContext = _createUtil.defaultContext,
|
58
|
+
realContext = _createUtil.realContext,
|
59
|
+
positiveContext = _createUtil.positiveContext;
|
60
|
+
|
87
61
|
/**
|
88
62
|
* Simplify an expression tree.
|
89
63
|
*
|
@@ -107,12 +81,34 @@ var createSimplify = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fu
|
|
107
81
|
* expression is that variables starting with the following characters are
|
108
82
|
* interpreted as wildcards:
|
109
83
|
*
|
110
|
-
* - 'n' -
|
111
|
-
* - 'c' -
|
112
|
-
* - '
|
84
|
+
* - 'n' - Matches any node [Node]
|
85
|
+
* - 'c' - Matches a constant literal (5 or 3.2) [ConstantNode]
|
86
|
+
* - 'cl' - Matches a constant literal; same as c [ConstantNode]
|
87
|
+
* - 'cd' - Matches a decimal literal (5 or -3.2) [ConstantNode or unaryMinus wrapping a ConstantNode]
|
88
|
+
* - 'ce' - Matches a constant expression (-5 or √3) [Expressions consisting of only ConstantNodes, functions, and operators]
|
89
|
+
* - 'v' - Matches a variable; anything not matched by c (-5 or x) [Node that is not a ConstantNode]
|
90
|
+
* - 'vl' - Matches a variable literal (x or y) [SymbolNode]
|
91
|
+
* - 'vd' - Matches a non-decimal expression; anything not matched by cd (x or √3) [Node that is not a ConstantNode or unaryMinus that is wrapping a ConstantNode]
|
92
|
+
* - 've' - Matches a variable expression; anything not matched by ce (x or 2x) [Expressions that contain a SymbolNode or other non-constant term]
|
113
93
|
*
|
114
94
|
* The default list of rules is exposed on the function as `simplify.rules`
|
115
|
-
* and can be used as a basis to built a set of custom rules.
|
95
|
+
* and can be used as a basis to built a set of custom rules. Note that since
|
96
|
+
* the `simplifyCore` function is in the default list of rules, by default
|
97
|
+
* simplify will convert any function calls in the expression that have
|
98
|
+
* operator equivalents to their operator forms.
|
99
|
+
*
|
100
|
+
* To specify a rule as a string, separate the left and right pattern by '->'
|
101
|
+
* When specifying a rule as an object, the following keys are meaningful:
|
102
|
+
* - l - the left pattern
|
103
|
+
* - r - the right pattern
|
104
|
+
* - s - in lieu of l and r, the string form that is broken at -> to give them
|
105
|
+
* - repeat - whether to repeat this rule until the expression stabilizes
|
106
|
+
* - assuming - gives a context object, as in the 'context' option to
|
107
|
+
* simplify. Every property in the context object must match the current
|
108
|
+
* context in order, or else the rule will not be applied.
|
109
|
+
* - imposeContext - gives a context object, as in the 'context' option to
|
110
|
+
* simplify. Any settings specified will override the incoming context
|
111
|
+
* for all matches of this rule.
|
116
112
|
*
|
117
113
|
* For more details on the theory, see:
|
118
114
|
*
|
@@ -120,21 +116,40 @@ var createSimplify = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fu
|
|
120
116
|
* - [Symbolic computation - Simplification (Wikipedia)](https://en.wikipedia.org/wiki/Symbolic_computation#Simplification)
|
121
117
|
*
|
122
118
|
* An optional `options` argument can be passed as last argument of `simplify`.
|
123
|
-
*
|
124
|
-
* - `
|
125
|
-
*
|
126
|
-
*
|
127
|
-
*
|
119
|
+
* Currently available options (defaults in parentheses):
|
120
|
+
* - `consoleDebug` (false): whether to write the expression being simplified
|
121
|
+
* and any changes to it, along with the rule responsible, to console
|
122
|
+
* - `context` (simplify.defaultContext): an object giving properties of
|
123
|
+
* each operator, which determine what simplifications are allowed. The
|
124
|
+
* currently meaningful properties are commutative, associative,
|
125
|
+
* total (whether the operation is defined for all arguments), and
|
126
|
+
* trivial (whether the operation applied to a single argument leaves
|
127
|
+
* that argument unchanged). The default context is very permissive and
|
128
|
+
* allows almost all simplifications. Only properties differing from
|
129
|
+
* the default need to be specified; the default context is used as a
|
130
|
+
* fallback. Additional contexts `simplify.realContext` and
|
131
|
+
* `simplify.positiveContext` are supplied to cause simplify to perform
|
132
|
+
* just simplifications guaranteed to preserve all values of the expression
|
133
|
+
* assuming all variables and subexpressions are real numbers or
|
134
|
+
* positive real numbers, respectively. (Note that these are in some cases
|
135
|
+
* more restrictive than the default context; for example, the default
|
136
|
+
* context will allow `x/x` to simplify to 1, whereas
|
137
|
+
* `simplify.realContext` will not, as `0/0` is not equal to 1.)
|
138
|
+
* - `exactFractions` (true): whether to try to convert all constants to
|
139
|
+
* exact rational numbers.
|
140
|
+
* - `fractionsLimit` (10000): when `exactFractions` is true, constants will
|
141
|
+
* be expressed as fractions only when both numerator and denominator
|
142
|
+
* are smaller than `fractionsLimit`.
|
128
143
|
*
|
129
144
|
* Syntax:
|
130
145
|
*
|
131
|
-
* simplify(expr)
|
132
|
-
* simplify(expr, rules)
|
133
|
-
* simplify(expr, rules)
|
134
|
-
* simplify(expr, rules, scope)
|
135
|
-
* simplify(expr, rules, scope, options)
|
136
|
-
* simplify(expr, scope)
|
137
|
-
* simplify(expr, scope, options)
|
146
|
+
* math.simplify(expr)
|
147
|
+
* math.simplify(expr, rules)
|
148
|
+
* math.simplify(expr, rules)
|
149
|
+
* math.simplify(expr, rules, scope)
|
150
|
+
* math.simplify(expr, rules, scope, options)
|
151
|
+
* math.simplify(expr, scope)
|
152
|
+
* math.simplify(expr, scope, options)
|
138
153
|
*
|
139
154
|
* Examples:
|
140
155
|
*
|
@@ -147,92 +162,48 @@ var createSimplify = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fu
|
|
147
162
|
*
|
148
163
|
* See also:
|
149
164
|
*
|
150
|
-
* derivative, parse,
|
165
|
+
* simplifyCore, derivative, evaluate, parse, rationalize, resolve
|
151
166
|
*
|
152
167
|
* @param {Node | string} expr
|
153
168
|
* The expression to be simplified
|
154
|
-
* @param {
|
169
|
+
* @param {SimplifyRule[]} [rules]
|
155
170
|
* Optional list with custom rules
|
171
|
+
* @param {Object} [scope] Optional scope with variables
|
172
|
+
* @param {SimplifyOptions} [options] Optional configuration settings
|
156
173
|
* @return {Node} Returns the simplified form of `expr`
|
157
174
|
*/
|
158
|
-
|
159
|
-
|
175
|
+
typed.addConversion({
|
176
|
+
from: 'Object',
|
177
|
+
to: 'Map',
|
178
|
+
convert: _map.createMap
|
179
|
+
});
|
160
180
|
var simplify = typed('simplify', {
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
'string, Object': function stringObject(expr, scope) {
|
165
|
-
return this(parse(expr), this.rules, scope, {});
|
166
|
-
},
|
167
|
-
'string, Object, Object': function stringObjectObject(expr, scope, options) {
|
168
|
-
return this(parse(expr), this.rules, scope, options);
|
169
|
-
},
|
170
|
-
'string, Array': function stringArray(expr, rules) {
|
171
|
-
return this(parse(expr), rules, {}, {});
|
172
|
-
},
|
173
|
-
'string, Array, Object': function stringArrayObject(expr, rules, scope) {
|
174
|
-
return this(parse(expr), rules, scope, {});
|
175
|
-
},
|
176
|
-
'string, Array, Object, Object': function stringArrayObjectObject(expr, rules, scope, options) {
|
177
|
-
return this(parse(expr), rules, scope, options);
|
181
|
+
Node: _simplify,
|
182
|
+
'Node, Map': function NodeMap(expr, scope) {
|
183
|
+
return _simplify(expr, false, scope);
|
178
184
|
},
|
179
|
-
'Node, Object': function
|
180
|
-
return
|
185
|
+
'Node, Map, Object': function NodeMapObject(expr, scope, options) {
|
186
|
+
return _simplify(expr, false, scope, options);
|
181
187
|
},
|
182
|
-
'Node,
|
183
|
-
|
184
|
-
|
185
|
-
Node: function Node(expr) {
|
186
|
-
return this(expr, this.rules, {}, {});
|
187
|
-
},
|
188
|
-
'Node, Array': function NodeArray(expr, rules) {
|
189
|
-
return this(expr, rules, {}, {});
|
190
|
-
},
|
191
|
-
'Node, Array, Object': function NodeArrayObject(expr, rules, scope) {
|
192
|
-
return this(expr, rules, scope, {});
|
193
|
-
},
|
194
|
-
'Node, Array, Object, Object': function NodeArrayObjectObject(expr, rules, scope, options) {
|
195
|
-
rules = _buildRules(rules);
|
196
|
-
var res = resolve(expr, scope);
|
197
|
-
res = removeParens(res);
|
198
|
-
var visited = {};
|
199
|
-
var str = res.toString({
|
200
|
-
parenthesis: 'all'
|
201
|
-
});
|
202
|
-
|
203
|
-
while (!visited[str]) {
|
204
|
-
visited[str] = true;
|
205
|
-
_lastsym = 0; // counter for placeholder symbols
|
206
|
-
|
207
|
-
for (var i = 0; i < rules.length; i++) {
|
208
|
-
if (typeof rules[i] === 'function') {
|
209
|
-
res = rules[i](res, options);
|
210
|
-
} else {
|
211
|
-
flatten(res);
|
212
|
-
res = applyRule(res, rules[i]);
|
213
|
-
}
|
214
|
-
|
215
|
-
unflattenl(res); // using left-heavy binary tree here since custom rule functions may expect it
|
216
|
-
}
|
217
|
-
|
218
|
-
str = res.toString({
|
219
|
-
parenthesis: 'all'
|
220
|
-
});
|
221
|
-
}
|
222
|
-
|
223
|
-
return res;
|
224
|
-
}
|
188
|
+
'Node, Array': _simplify,
|
189
|
+
'Node, Array, Map': _simplify,
|
190
|
+
'Node, Array, Map, Object': _simplify
|
225
191
|
});
|
226
|
-
|
227
|
-
|
228
|
-
|
192
|
+
typed.removeConversion({
|
193
|
+
from: 'Object',
|
194
|
+
to: 'Map',
|
195
|
+
convert: _map.createMap
|
196
|
+
});
|
197
|
+
simplify.defaultContext = defaultContext;
|
198
|
+
simplify.realContext = realContext;
|
199
|
+
simplify.positiveContext = positiveContext;
|
229
200
|
function removeParens(node) {
|
230
201
|
return node.transform(function (node, path, parent) {
|
231
202
|
return (0, _is.isParenthesisNode)(node) ? removeParens(node.content) : node;
|
232
203
|
});
|
233
|
-
}
|
234
|
-
|
204
|
+
}
|
235
205
|
|
206
|
+
// All constants that are allowed in rules
|
236
207
|
var SUPPORTED_CONSTANTS = {
|
237
208
|
"true": true,
|
238
209
|
"false": true,
|
@@ -248,11 +219,13 @@ var createSimplify = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fu
|
|
248
219
|
pi: true,
|
249
220
|
SQRT1_2: true,
|
250
221
|
SQRT2: true,
|
251
|
-
tau: true
|
222
|
+
tau: true
|
223
|
+
// null: false,
|
252
224
|
// undefined: false,
|
253
225
|
// version: false,
|
226
|
+
};
|
254
227
|
|
255
|
-
|
228
|
+
// Array of strings, used to build the ruleSet.
|
256
229
|
// Each l (left side) and r (right side) are parsed by
|
257
230
|
// the expression parser into a node tree.
|
258
231
|
// Left hand sides are matched to subtrees within the
|
@@ -261,8 +234,8 @@ var createSimplify = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fu
|
|
261
234
|
// TODO: Add support for constraints on constants (either in the form of a '=' expression or a callback [callback allows things like comparing symbols alphabetically])
|
262
235
|
// To evaluate lhs constants for rhs constants, use: { l: 'c1+c2', r: 'c3', evaluate: 'c3 = c1 + c2' }. Multiple assignments are separated by ';' in block format.
|
263
236
|
// It is possible to get into an infinite loop with conflicting rules
|
264
|
-
|
265
|
-
|
237
|
+
simplify.rules = [simplifyCore,
|
238
|
+
// { l: 'n+0', r: 'n' }, // simplifyCore
|
266
239
|
// { l: 'n^0', r: '1' }, // simplifyCore
|
267
240
|
// { l: '0*n', r: '0' }, // simplifyCore
|
268
241
|
// { l: 'n/n', r: '1'}, // simplifyCore
|
@@ -272,111 +245,436 @@ var createSimplify = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fu
|
|
272
245
|
{
|
273
246
|
l: 'log(e)',
|
274
247
|
r: '1'
|
275
|
-
},
|
248
|
+
},
|
249
|
+
// temporary rules
|
250
|
+
// Note initially we tend constants to the right because like-term
|
251
|
+
// collection prefers the left, and we would rather collect nonconstants
|
276
252
|
{
|
277
|
-
|
278
|
-
|
279
|
-
|
253
|
+
s: 'n-n1 -> n+-n1',
|
254
|
+
// temporarily replace 'subtract' so we can further flatten the 'add' operator
|
255
|
+
assuming: {
|
256
|
+
subtract: {
|
257
|
+
total: true
|
258
|
+
}
|
259
|
+
}
|
260
|
+
}, {
|
261
|
+
s: 'n-n -> 0',
|
262
|
+
// partial alternative when we can't always subtract
|
263
|
+
assuming: {
|
264
|
+
subtract: {
|
265
|
+
total: false
|
266
|
+
}
|
267
|
+
}
|
268
|
+
}, {
|
269
|
+
s: '-(cl*v) -> v * (-cl)',
|
270
|
+
// make non-constant terms positive
|
271
|
+
assuming: {
|
272
|
+
multiply: {
|
273
|
+
commutative: true
|
274
|
+
},
|
275
|
+
subtract: {
|
276
|
+
total: true
|
277
|
+
}
|
278
|
+
}
|
279
|
+
}, {
|
280
|
+
s: '-(cl*v) -> (-cl) * v',
|
281
|
+
// non-commutative version, part 1
|
282
|
+
assuming: {
|
283
|
+
multiply: {
|
284
|
+
commutative: false
|
285
|
+
},
|
286
|
+
subtract: {
|
287
|
+
total: true
|
288
|
+
}
|
289
|
+
}
|
290
|
+
}, {
|
291
|
+
s: '-(v*cl) -> v * (-cl)',
|
292
|
+
// non-commutative version, part 2
|
293
|
+
assuming: {
|
294
|
+
multiply: {
|
295
|
+
commutative: false
|
296
|
+
},
|
297
|
+
subtract: {
|
298
|
+
total: true
|
299
|
+
}
|
300
|
+
}
|
301
|
+
}, {
|
302
|
+
l: '-(n1/n2)',
|
303
|
+
r: '-n1/n2'
|
304
|
+
}, {
|
305
|
+
l: '-v',
|
306
|
+
r: 'v * (-1)'
|
307
|
+
},
|
308
|
+
// finish making non-constant terms positive
|
280
309
|
{
|
281
|
-
l: '
|
282
|
-
r: '(-
|
283
|
-
|
310
|
+
l: '(n1 + n2)*(-1)',
|
311
|
+
r: 'n1*(-1) + n2*(-1)',
|
312
|
+
repeat: true
|
313
|
+
},
|
314
|
+
// expand negations to achieve as much sign cancellation as possible
|
284
315
|
{
|
285
|
-
l: '-v',
|
286
|
-
r: '(-1) * v'
|
287
|
-
}, {
|
288
316
|
l: 'n/n1^n2',
|
289
317
|
r: 'n*n1^-n2'
|
290
|
-
},
|
318
|
+
},
|
319
|
+
// temporarily replace 'divide' so we can further flatten the 'multiply' operator
|
291
320
|
{
|
292
321
|
l: 'n/n1',
|
293
322
|
r: 'n*n1^-1'
|
294
|
-
},
|
323
|
+
}, {
|
324
|
+
s: '(n1*n2)^n3 -> n1^n3 * n2^n3',
|
325
|
+
assuming: {
|
326
|
+
multiply: {
|
327
|
+
commutative: true
|
328
|
+
}
|
329
|
+
}
|
330
|
+
}, {
|
331
|
+
s: '(n1*n2)^(-1) -> n2^(-1) * n1^(-1)',
|
332
|
+
assuming: {
|
333
|
+
multiply: {
|
334
|
+
commutative: false
|
335
|
+
}
|
336
|
+
}
|
337
|
+
},
|
338
|
+
// expand nested exponentiation
|
295
339
|
{
|
296
|
-
|
297
|
-
|
298
|
-
|
340
|
+
s: '(n ^ n1) ^ n2 -> n ^ (n1 * n2)',
|
341
|
+
assuming: {
|
342
|
+
divide: {
|
343
|
+
total: true
|
344
|
+
}
|
345
|
+
} // 1/(1/n) = n needs 1/n to exist
|
346
|
+
},
|
347
|
+
// collect like factors; into a sum, only do this for nonconstants
|
299
348
|
{
|
349
|
+
l: ' vd * ( vd * n1 + n2)',
|
350
|
+
r: 'vd^2 * n1 + vd * n2'
|
351
|
+
}, {
|
352
|
+
s: ' vd * (vd^n4 * n1 + n2) -> vd^(1+n4) * n1 + vd * n2',
|
353
|
+
assuming: {
|
354
|
+
divide: {
|
355
|
+
total: true
|
356
|
+
}
|
357
|
+
} // v*1/v = v^(1+-1) needs 1/v
|
358
|
+
}, {
|
359
|
+
s: 'vd^n3 * ( vd * n1 + n2) -> vd^(n3+1) * n1 + vd^n3 * n2',
|
360
|
+
assuming: {
|
361
|
+
divide: {
|
362
|
+
total: true
|
363
|
+
}
|
364
|
+
}
|
365
|
+
}, {
|
366
|
+
s: 'vd^n3 * (vd^n4 * n1 + n2) -> vd^(n3+n4) * n1 + vd^n3 * n2',
|
367
|
+
assuming: {
|
368
|
+
divide: {
|
369
|
+
total: true
|
370
|
+
}
|
371
|
+
}
|
372
|
+
}, {
|
300
373
|
l: 'n*n',
|
301
374
|
r: 'n^2'
|
302
375
|
}, {
|
303
|
-
|
304
|
-
|
376
|
+
s: 'n * n^n1 -> n^(n1+1)',
|
377
|
+
assuming: {
|
378
|
+
divide: {
|
379
|
+
total: true
|
380
|
+
}
|
381
|
+
} // n*1/n = n^(-1+1) needs 1/n
|
305
382
|
}, {
|
306
|
-
|
307
|
-
|
308
|
-
|
383
|
+
s: 'n^n1 * n^n2 -> n^(n1+n2)',
|
384
|
+
assuming: {
|
385
|
+
divide: {
|
386
|
+
total: true
|
387
|
+
}
|
388
|
+
} // ditto for n^2*1/n^2
|
389
|
+
},
|
390
|
+
// Unfortunately, to deal with more complicated cancellations, it
|
391
|
+
// becomes necessary to simplify constants twice per pass. It's not
|
392
|
+
// terribly expensive compared to matching rules, so this should not
|
393
|
+
// pose a performance problem.
|
394
|
+
simplifyConstant,
|
395
|
+
// First: before collecting like terms
|
396
|
+
|
397
|
+
// collect like terms
|
309
398
|
{
|
310
|
-
|
311
|
-
|
399
|
+
s: 'n+n -> 2*n',
|
400
|
+
assuming: {
|
401
|
+
add: {
|
402
|
+
total: true
|
403
|
+
}
|
404
|
+
} // 2 = 1 + 1 needs to exist
|
312
405
|
}, {
|
313
406
|
l: 'n+-n',
|
314
407
|
r: '0'
|
315
408
|
}, {
|
316
|
-
l: '
|
317
|
-
r: '(
|
409
|
+
l: 'vd*n + vd',
|
410
|
+
r: 'vd*(n+1)'
|
411
|
+
},
|
412
|
+
// NOTE: leftmost position is special:
|
413
|
+
{
|
414
|
+
l: 'n3*n1 + n3*n2',
|
415
|
+
r: 'n3*(n1+n2)'
|
416
|
+
},
|
417
|
+
// All sub-monomials tried there.
|
418
|
+
{
|
419
|
+
l: 'n3^(-n4)*n1 + n3 * n2',
|
420
|
+
r: 'n3^(-n4)*(n1 + n3^(n4+1) *n2)'
|
318
421
|
}, {
|
319
|
-
l: 'n1
|
320
|
-
r: '(n1+n2)
|
321
|
-
},
|
422
|
+
l: 'n3^(-n4)*n1 + n3^n5 * n2',
|
423
|
+
r: 'n3^(-n4)*(n1 + n3^(n4+n5)*n2)'
|
424
|
+
},
|
425
|
+
// noncommutative additional cases (term collection & factoring)
|
322
426
|
{
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
427
|
+
s: 'n*vd + vd -> (n+1)*vd',
|
428
|
+
assuming: {
|
429
|
+
multiply: {
|
430
|
+
commutative: false
|
431
|
+
}
|
432
|
+
}
|
433
|
+
}, {
|
434
|
+
s: 'vd + n*vd -> (1+n)*vd',
|
435
|
+
assuming: {
|
436
|
+
multiply: {
|
437
|
+
commutative: false
|
438
|
+
}
|
439
|
+
}
|
440
|
+
}, {
|
441
|
+
s: 'n1*n3 + n2*n3 -> (n1+n2)*n3',
|
442
|
+
assuming: {
|
443
|
+
multiply: {
|
444
|
+
commutative: false
|
445
|
+
}
|
446
|
+
}
|
447
|
+
}, {
|
448
|
+
s: 'n^n1 * n -> n^(n1+1)',
|
449
|
+
assuming: {
|
450
|
+
divide: {
|
451
|
+
total: true
|
452
|
+
},
|
453
|
+
multiply: {
|
454
|
+
commutative: false
|
455
|
+
}
|
456
|
+
}
|
457
|
+
}, {
|
458
|
+
s: 'n1*n3^(-n4) + n2 * n3 -> (n1 + n2*n3^(n4 + 1))*n3^(-n4)',
|
459
|
+
assuming: {
|
460
|
+
multiply: {
|
461
|
+
commutative: false
|
462
|
+
}
|
463
|
+
}
|
464
|
+
}, {
|
465
|
+
s: 'n1*n3^(-n4) + n2 * n3^n5 -> (n1 + n2*n3^(n4 + n5))*n3^(-n4)',
|
466
|
+
assuming: {
|
467
|
+
multiply: {
|
468
|
+
commutative: false
|
469
|
+
}
|
470
|
+
}
|
471
|
+
}, {
|
472
|
+
l: 'n*cd + cd',
|
473
|
+
r: '(n+1)*cd'
|
474
|
+
}, {
|
475
|
+
s: 'cd*n + cd -> cd*(n+1)',
|
476
|
+
assuming: {
|
477
|
+
multiply: {
|
478
|
+
commutative: false
|
479
|
+
}
|
480
|
+
}
|
481
|
+
}, {
|
482
|
+
s: 'cd + cd*n -> cd*(1+n)',
|
483
|
+
assuming: {
|
484
|
+
multiply: {
|
485
|
+
commutative: false
|
486
|
+
}
|
487
|
+
}
|
488
|
+
}, simplifyConstant,
|
489
|
+
// Second: before returning expressions to "standard form"
|
490
|
+
|
491
|
+
// make factors positive (and undo 'make non-constant terms positive')
|
330
492
|
{
|
331
|
-
|
332
|
-
|
333
|
-
|
493
|
+
s: '(-n)*n1 -> -(n*n1)',
|
494
|
+
assuming: {
|
495
|
+
subtract: {
|
496
|
+
total: true
|
497
|
+
}
|
498
|
+
}
|
499
|
+
}, {
|
500
|
+
s: 'n1*(-n) -> -(n1*n)',
|
501
|
+
// in case * non-commutative
|
502
|
+
assuming: {
|
503
|
+
subtract: {
|
504
|
+
total: true
|
505
|
+
},
|
506
|
+
multiply: {
|
507
|
+
commutative: false
|
508
|
+
}
|
509
|
+
}
|
510
|
+
},
|
511
|
+
// final ordering of constants
|
512
|
+
{
|
513
|
+
s: 'ce+ve -> ve+ce',
|
514
|
+
assuming: {
|
515
|
+
add: {
|
516
|
+
commutative: true
|
517
|
+
}
|
518
|
+
},
|
519
|
+
imposeContext: {
|
334
520
|
add: {
|
335
521
|
commutative: false
|
336
522
|
}
|
337
523
|
}
|
338
524
|
}, {
|
339
|
-
|
340
|
-
|
341
|
-
|
525
|
+
s: 'vd*cd -> cd*vd',
|
526
|
+
assuming: {
|
527
|
+
multiply: {
|
528
|
+
commutative: true
|
529
|
+
}
|
530
|
+
},
|
531
|
+
imposeContext: {
|
342
532
|
multiply: {
|
343
533
|
commutative: false
|
344
534
|
}
|
345
535
|
}
|
346
|
-
},
|
536
|
+
},
|
537
|
+
// undo temporary rules
|
347
538
|
// { l: '(-1) * n', r: '-n' }, // #811 added test which proved this is redundant
|
348
539
|
{
|
349
540
|
l: 'n+-n1',
|
350
541
|
r: 'n-n1'
|
351
|
-
},
|
352
|
-
|
353
|
-
l: 'n*(n1^-1)',
|
354
|
-
r: 'n/n1'
|
355
|
-
}, // undo replace 'divide'
|
542
|
+
},
|
543
|
+
// undo replace 'subtract'
|
356
544
|
{
|
357
|
-
l: 'n
|
358
|
-
r: 'n
|
545
|
+
l: 'n+-(n1)',
|
546
|
+
r: 'n-(n1)'
|
359
547
|
}, {
|
360
|
-
|
361
|
-
|
548
|
+
s: 'n*(n1^-1) -> n/n1',
|
549
|
+
// undo replace 'divide'; for * commutative
|
550
|
+
assuming: {
|
551
|
+
multiply: {
|
552
|
+
commutative: true
|
553
|
+
}
|
554
|
+
} // o.w. / not conventional
|
555
|
+
}, {
|
556
|
+
s: 'n*n1^-n2 -> n/n1^n2',
|
557
|
+
assuming: {
|
558
|
+
multiply: {
|
559
|
+
commutative: true
|
560
|
+
}
|
561
|
+
} // o.w. / not conventional
|
362
562
|
}, {
|
363
|
-
|
364
|
-
|
365
|
-
|
563
|
+
s: 'n^-1 -> 1/n',
|
564
|
+
assuming: {
|
565
|
+
multiply: {
|
566
|
+
commutative: true
|
567
|
+
}
|
568
|
+
} // o.w. / not conventional
|
569
|
+
}, {
|
570
|
+
l: 'n^1',
|
571
|
+
r: 'n'
|
572
|
+
},
|
573
|
+
// can be produced by power cancellation
|
366
574
|
{
|
367
|
-
|
368
|
-
|
369
|
-
|
575
|
+
s: 'n*(n1/n2) -> (n*n1)/n2',
|
576
|
+
// '*' before '/'
|
577
|
+
assuming: {
|
578
|
+
multiply: {
|
579
|
+
associative: true
|
580
|
+
}
|
581
|
+
}
|
582
|
+
}, {
|
583
|
+
s: 'n-(n1+n2) -> n-n1-n2',
|
584
|
+
// '-' before '+'
|
585
|
+
assuming: {
|
586
|
+
addition: {
|
587
|
+
associative: true,
|
588
|
+
commutative: true
|
589
|
+
}
|
590
|
+
}
|
591
|
+
},
|
370
592
|
// { l: '(n1/n2)/n3', r: 'n1/(n2*n3)' },
|
371
593
|
// { l: '(n*n1)/(n*n2)', r: 'n1/n2' },
|
594
|
+
|
595
|
+
// simplifyConstant can leave an extra factor of 1, which can always
|
596
|
+
// be eliminated, since the identity always commutes
|
372
597
|
{
|
373
598
|
l: '1*n',
|
374
|
-
r: 'n'
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
599
|
+
r: 'n',
|
600
|
+
imposeContext: {
|
601
|
+
multiply: {
|
602
|
+
commutative: true
|
603
|
+
}
|
604
|
+
}
|
605
|
+
}, {
|
606
|
+
s: 'n1/(n2/n3) -> (n1*n3)/n2',
|
607
|
+
assuming: {
|
608
|
+
multiply: {
|
609
|
+
associative: true
|
610
|
+
}
|
611
|
+
}
|
612
|
+
}, {
|
613
|
+
l: 'n1/(-n2)',
|
614
|
+
r: '-n1/n2'
|
379
615
|
}];
|
616
|
+
|
617
|
+
/**
|
618
|
+
* Takes any rule object as allowed by the specification in simplify
|
619
|
+
* and puts it in a standard form used by applyRule
|
620
|
+
*/
|
621
|
+
function _canonicalizeRule(ruleObject, context) {
|
622
|
+
var newRule = {};
|
623
|
+
if (ruleObject.s) {
|
624
|
+
var lr = ruleObject.s.split('->');
|
625
|
+
if (lr.length === 2) {
|
626
|
+
newRule.l = lr[0];
|
627
|
+
newRule.r = lr[1];
|
628
|
+
} else {
|
629
|
+
throw SyntaxError('Could not parse rule: ' + ruleObject.s);
|
630
|
+
}
|
631
|
+
} else {
|
632
|
+
newRule.l = ruleObject.l;
|
633
|
+
newRule.r = ruleObject.r;
|
634
|
+
}
|
635
|
+
newRule.l = removeParens(parse(newRule.l));
|
636
|
+
newRule.r = removeParens(parse(newRule.r));
|
637
|
+
for (var _i = 0, _arr = ['imposeContext', 'repeat', 'assuming']; _i < _arr.length; _i++) {
|
638
|
+
var prop = _arr[_i];
|
639
|
+
if (prop in ruleObject) {
|
640
|
+
newRule[prop] = ruleObject[prop];
|
641
|
+
}
|
642
|
+
}
|
643
|
+
if (ruleObject.evaluate) {
|
644
|
+
newRule.evaluate = parse(ruleObject.evaluate);
|
645
|
+
}
|
646
|
+
if (isAssociative(newRule.l, context)) {
|
647
|
+
var nonCommutative = !isCommutative(newRule.l, context);
|
648
|
+
var leftExpandsym;
|
649
|
+
// Gen. the LHS placeholder used in this NC-context specific expansion rules
|
650
|
+
if (nonCommutative) leftExpandsym = _getExpandPlaceholderSymbol();
|
651
|
+
var makeNode = createMakeNodeFunction(newRule.l);
|
652
|
+
var expandsym = _getExpandPlaceholderSymbol();
|
653
|
+
newRule.expanded = {};
|
654
|
+
newRule.expanded.l = makeNode([newRule.l, expandsym]);
|
655
|
+
// Push the expandsym into the deepest possible branch.
|
656
|
+
// This helps to match the newRule against nodes returned from getSplits() later on.
|
657
|
+
flatten(newRule.expanded.l, context);
|
658
|
+
unflattenr(newRule.expanded.l, context);
|
659
|
+
newRule.expanded.r = makeNode([newRule.r, expandsym]);
|
660
|
+
|
661
|
+
// In and for a non-commutative context, attempting with yet additional expansion rules makes
|
662
|
+
// way for more matches cases of multi-arg expressions; such that associative rules (such as
|
663
|
+
// 'n*n -> n^2') can be applied to exprs. such as 'a * b * b' and 'a * b * b * a'.
|
664
|
+
if (nonCommutative) {
|
665
|
+
// 'Non-commutative' 1: LHS (placeholder) only
|
666
|
+
newRule.expandedNC1 = {};
|
667
|
+
newRule.expandedNC1.l = makeNode([leftExpandsym, newRule.l]);
|
668
|
+
newRule.expandedNC1.r = makeNode([leftExpandsym, newRule.r]);
|
669
|
+
// 'Non-commutative' 2: farmost LHS and RHS placeholders
|
670
|
+
newRule.expandedNC2 = {};
|
671
|
+
newRule.expandedNC2.l = makeNode([leftExpandsym, newRule.expanded.l]);
|
672
|
+
newRule.expandedNC2.r = makeNode([leftExpandsym, newRule.expanded.r]);
|
673
|
+
}
|
674
|
+
}
|
675
|
+
return newRule;
|
676
|
+
}
|
677
|
+
|
380
678
|
/**
|
381
679
|
* Parse the string array of rules into nodes
|
382
680
|
*
|
@@ -393,150 +691,230 @@ var createSimplify = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fu
|
|
393
691
|
* Short hand notation:
|
394
692
|
* 'n1 * c1 -> c1 * n1'
|
395
693
|
*/
|
396
|
-
|
397
|
-
function _buildRules(rules) {
|
694
|
+
function _buildRules(rules, context) {
|
398
695
|
// Array of rules to be used to simplify expressions
|
399
696
|
var ruleSet = [];
|
400
|
-
|
401
697
|
for (var i = 0; i < rules.length; i++) {
|
402
698
|
var rule = rules[i];
|
403
699
|
var newRule = void 0;
|
404
|
-
|
405
|
-
var ruleType = _typeof(rule);
|
406
|
-
|
700
|
+
var ruleType = (0, _typeof2["default"])(rule);
|
407
701
|
switch (ruleType) {
|
408
702
|
case 'string':
|
409
|
-
{
|
410
|
-
|
411
|
-
|
412
|
-
if (lr.length === 2) {
|
413
|
-
rule = {
|
414
|
-
l: lr[0],
|
415
|
-
r: lr[1]
|
416
|
-
};
|
417
|
-
} else {
|
418
|
-
throw SyntaxError('Could not parse rule: ' + rule);
|
419
|
-
}
|
420
|
-
}
|
421
|
-
|
703
|
+
rule = {
|
704
|
+
s: rule
|
705
|
+
};
|
422
706
|
/* falls through */
|
423
|
-
|
424
707
|
case 'object':
|
425
|
-
newRule =
|
426
|
-
l: removeParens(parse(rule.l)),
|
427
|
-
r: removeParens(parse(rule.r))
|
428
|
-
};
|
429
|
-
|
430
|
-
if (rule.context) {
|
431
|
-
newRule.evaluate = rule.context;
|
432
|
-
}
|
433
|
-
|
434
|
-
if (rule.evaluate) {
|
435
|
-
newRule.evaluate = parse(rule.evaluate);
|
436
|
-
}
|
437
|
-
|
438
|
-
if (isAssociative(newRule.l)) {
|
439
|
-
var makeNode = createMakeNodeFunction(newRule.l);
|
440
|
-
|
441
|
-
var expandsym = _getExpandPlaceholderSymbol();
|
442
|
-
|
443
|
-
newRule.expanded = {};
|
444
|
-
newRule.expanded.l = makeNode([newRule.l.clone(), expandsym]); // Push the expandsym into the deepest possible branch.
|
445
|
-
// This helps to match the newRule against nodes returned from getSplits() later on.
|
446
|
-
|
447
|
-
flatten(newRule.expanded.l);
|
448
|
-
unflattenr(newRule.expanded.l);
|
449
|
-
newRule.expanded.r = makeNode([newRule.r, expandsym]);
|
450
|
-
}
|
451
|
-
|
708
|
+
newRule = _canonicalizeRule(rule, context);
|
452
709
|
break;
|
453
|
-
|
454
710
|
case 'function':
|
455
711
|
newRule = rule;
|
456
712
|
break;
|
457
|
-
|
458
713
|
default:
|
459
714
|
throw TypeError('Unsupported type of rule: ' + ruleType);
|
460
|
-
}
|
715
|
+
}
|
716
|
+
// console.log('Adding rule: ' + rules[i])
|
461
717
|
// console.log(newRule)
|
462
|
-
|
463
|
-
|
464
718
|
ruleSet.push(newRule);
|
465
719
|
}
|
466
|
-
|
467
720
|
return ruleSet;
|
468
721
|
}
|
469
|
-
|
470
722
|
var _lastsym = 0;
|
471
|
-
|
472
723
|
function _getExpandPlaceholderSymbol() {
|
473
724
|
return new SymbolNode('_p' + _lastsym++);
|
474
725
|
}
|
726
|
+
function _simplify(expr, rules) {
|
727
|
+
var scope = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : (0, _map.createEmptyMap)();
|
728
|
+
var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
|
729
|
+
var debug = options.consoleDebug;
|
730
|
+
rules = _buildRules(rules || simplify.rules, options.context);
|
731
|
+
var res = resolve(expr, scope);
|
732
|
+
res = removeParens(res);
|
733
|
+
var visited = {};
|
734
|
+
var str = res.toString({
|
735
|
+
parenthesis: 'all'
|
736
|
+
});
|
737
|
+
while (!visited[str]) {
|
738
|
+
visited[str] = true;
|
739
|
+
_lastsym = 0; // counter for placeholder symbols
|
740
|
+
var laststr = str;
|
741
|
+
if (debug) console.log('Working on: ', str);
|
742
|
+
for (var i = 0; i < rules.length; i++) {
|
743
|
+
var rulestr = '';
|
744
|
+
if (typeof rules[i] === 'function') {
|
745
|
+
res = rules[i](res, options);
|
746
|
+
if (debug) rulestr = rules[i].name;
|
747
|
+
} else {
|
748
|
+
flatten(res, options.context);
|
749
|
+
res = applyRule(res, rules[i], options.context);
|
750
|
+
if (debug) {
|
751
|
+
rulestr = "".concat(rules[i].l.toString(), " -> ").concat(rules[i].r.toString());
|
752
|
+
}
|
753
|
+
}
|
754
|
+
if (debug) {
|
755
|
+
var newstr = res.toString({
|
756
|
+
parenthesis: 'all'
|
757
|
+
});
|
758
|
+
if (newstr !== laststr) {
|
759
|
+
console.log('Applying', rulestr, 'produced', newstr);
|
760
|
+
laststr = newstr;
|
761
|
+
}
|
762
|
+
}
|
763
|
+
/* Use left-heavy binary tree internally,
|
764
|
+
* since custom rule functions may expect it
|
765
|
+
*/
|
766
|
+
unflattenl(res, options.context);
|
767
|
+
}
|
768
|
+
str = res.toString({
|
769
|
+
parenthesis: 'all'
|
770
|
+
});
|
771
|
+
}
|
772
|
+
return res;
|
773
|
+
}
|
774
|
+
function mapRule(nodes, rule, context) {
|
775
|
+
var resNodes = nodes;
|
776
|
+
if (nodes) {
|
777
|
+
for (var i = 0; i < nodes.length; ++i) {
|
778
|
+
var newNode = applyRule(nodes[i], rule, context);
|
779
|
+
if (newNode !== nodes[i]) {
|
780
|
+
if (resNodes === nodes) {
|
781
|
+
resNodes = nodes.slice();
|
782
|
+
}
|
783
|
+
resNodes[i] = newNode;
|
784
|
+
}
|
785
|
+
}
|
786
|
+
}
|
787
|
+
return resNodes;
|
788
|
+
}
|
789
|
+
|
475
790
|
/**
|
476
791
|
* Returns a simplfied form of node, or the original node if no simplification was possible.
|
477
792
|
*
|
478
793
|
* @param {ConstantNode | SymbolNode | ParenthesisNode | FunctionNode | OperatorNode} node
|
794
|
+
* @param {Object | Function} rule
|
795
|
+
* @param {Object} context -- information about assumed properties of operators
|
479
796
|
* @return {ConstantNode | SymbolNode | ParenthesisNode | FunctionNode | OperatorNode} The simplified form of `expr`, or the original node if no simplification was possible.
|
480
797
|
*/
|
481
|
-
|
482
|
-
|
483
|
-
|
484
|
-
|
485
|
-
|
486
|
-
|
487
|
-
var
|
488
|
-
|
489
|
-
|
490
|
-
|
491
|
-
if (res instanceof OperatorNode || res instanceof FunctionNode) {
|
492
|
-
if (res.args) {
|
493
|
-
for (var i = 0; i < res.args.length; i++) {
|
494
|
-
res.args[i] = applyRule(res.args[i], rule);
|
798
|
+
function applyRule(node, rule, context) {
|
799
|
+
// console.log('Entering applyRule("', rule.l.toString({parenthesis:'all'}), '->', rule.r.toString({parenthesis:'all'}), '",', node.toString({parenthesis:'all'}),')')
|
800
|
+
|
801
|
+
// check that the assumptions for this rule are satisfied by the current
|
802
|
+
// context:
|
803
|
+
if (rule.assuming) {
|
804
|
+
for (var symbol in rule.assuming) {
|
805
|
+
for (var property in rule.assuming[symbol]) {
|
806
|
+
if (hasProperty(symbol, property, context) !== rule.assuming[symbol][property]) {
|
807
|
+
return node;
|
495
808
|
}
|
496
809
|
}
|
497
|
-
}
|
498
|
-
|
499
|
-
|
810
|
+
}
|
811
|
+
}
|
812
|
+
var mergedContext = mergeContext(rule.imposeContext, context);
|
813
|
+
|
814
|
+
// Do not clone node unless we find a match
|
815
|
+
var res = node;
|
816
|
+
|
817
|
+
// First replace our child nodes with their simplified versions
|
818
|
+
// If a child could not be simplified, applying the rule to it
|
819
|
+
// will have no effect since the node is returned unchanged
|
820
|
+
if (res instanceof OperatorNode || res instanceof FunctionNode) {
|
821
|
+
var newArgs = mapRule(res.args, rule, context);
|
822
|
+
if (newArgs !== res.args) {
|
823
|
+
res = res.clone();
|
824
|
+
res.args = newArgs;
|
825
|
+
}
|
826
|
+
} else if (res instanceof ParenthesisNode) {
|
827
|
+
if (res.content) {
|
828
|
+
var newContent = applyRule(res.content, rule, context);
|
829
|
+
if (newContent !== res.content) {
|
830
|
+
res = new ParenthesisNode(newContent);
|
500
831
|
}
|
501
|
-
} // Try to match a rule against this node
|
502
|
-
|
503
|
-
|
504
|
-
var repl = rule.r;
|
505
|
-
|
506
|
-
var matches = _ruleMatch(rule.l, res)[0]; // If the rule is associative operator, we can try matching it while allowing additional terms.
|
507
|
-
// This allows us to match rules like 'n+n' to the expression '(1+x)+x' or even 'x+1+x' if the operator is commutative.
|
508
|
-
|
509
|
-
|
510
|
-
if (!matches && rule.expanded) {
|
511
|
-
repl = rule.expanded.r;
|
512
|
-
matches = _ruleMatch(rule.expanded.l, res)[0];
|
513
832
|
}
|
833
|
+
} else if (res instanceof ArrayNode) {
|
834
|
+
var newItems = mapRule(res.items, rule, context);
|
835
|
+
if (newItems !== res.items) {
|
836
|
+
res = new ArrayNode(newItems);
|
837
|
+
}
|
838
|
+
} else if (res instanceof AccessorNode) {
|
839
|
+
var newObj = res.object;
|
840
|
+
if (res.object) {
|
841
|
+
newObj = applyRule(res.object, rule, context);
|
842
|
+
}
|
843
|
+
var newIndex = res.index;
|
844
|
+
if (res.index) {
|
845
|
+
newIndex = applyRule(res.index, rule, context);
|
846
|
+
}
|
847
|
+
if (newObj !== res.object || newIndex !== res.index) {
|
848
|
+
res = new AccessorNode(newObj, newIndex);
|
849
|
+
}
|
850
|
+
} else if (res instanceof IndexNode) {
|
851
|
+
var newDims = mapRule(res.dimensions, rule, context);
|
852
|
+
if (newDims !== res.dimensions) {
|
853
|
+
res = new IndexNode(newDims);
|
854
|
+
}
|
855
|
+
} else if (res instanceof ObjectNode) {
|
856
|
+
var changed = false;
|
857
|
+
var newProps = {};
|
858
|
+
for (var prop in res.properties) {
|
859
|
+
newProps[prop] = applyRule(res.properties[prop], rule, context);
|
860
|
+
if (newProps[prop] !== res.properties[prop]) {
|
861
|
+
changed = true;
|
862
|
+
}
|
863
|
+
}
|
864
|
+
if (changed) {
|
865
|
+
res = new ObjectNode(newProps);
|
866
|
+
}
|
867
|
+
}
|
514
868
|
|
515
|
-
|
516
|
-
|
517
|
-
|
518
|
-
// we keep any implicit multiplication state if relevant
|
519
|
-
var implicit = res.implicit;
|
520
|
-
res = repl.clone();
|
521
|
-
|
522
|
-
if (implicit && 'implicit' in repl) {
|
523
|
-
res.implicit = true;
|
524
|
-
} // Replace placeholders with their respective nodes without traversing deeper into the replaced nodes
|
525
|
-
|
869
|
+
// Try to match a rule against this node
|
870
|
+
var repl = rule.r;
|
871
|
+
var matches = _ruleMatch(rule.l, res, mergedContext)[0];
|
526
872
|
|
527
|
-
|
528
|
-
|
529
|
-
|
530
|
-
|
531
|
-
|
532
|
-
|
533
|
-
|
534
|
-
|
873
|
+
// If the rule is associative operator, we can try matching it while allowing additional terms.
|
874
|
+
// This allows us to match rules like 'n+n' to the expression '(1+x)+x' or even 'x+1+x' if the operator is commutative.
|
875
|
+
if (!matches && rule.expanded) {
|
876
|
+
repl = rule.expanded.r;
|
877
|
+
matches = _ruleMatch(rule.expanded.l, res, mergedContext)[0];
|
878
|
+
}
|
879
|
+
// Additional, non-commutative context expansion-rules
|
880
|
+
if (!matches && rule.expandedNC1) {
|
881
|
+
repl = rule.expandedNC1.r;
|
882
|
+
matches = _ruleMatch(rule.expandedNC1.l, res, mergedContext)[0];
|
883
|
+
if (!matches) {
|
884
|
+
// Existence of NC1 implies NC2
|
885
|
+
repl = rule.expandedNC2.r;
|
886
|
+
matches = _ruleMatch(rule.expandedNC2.l, res, mergedContext)[0];
|
887
|
+
}
|
888
|
+
}
|
889
|
+
if (matches) {
|
890
|
+
// const before = res.toString({parenthesis: 'all'})
|
891
|
+
|
892
|
+
// Create a new node by cloning the rhs of the matched rule
|
893
|
+
// we keep any implicit multiplication state if relevant
|
894
|
+
var implicit = res.implicit;
|
895
|
+
res = repl.clone();
|
896
|
+
if (implicit && 'implicit' in repl) {
|
897
|
+
res.implicit = true;
|
535
898
|
}
|
536
899
|
|
537
|
-
|
900
|
+
// Replace placeholders with their respective nodes without traversing deeper into the replaced nodes
|
901
|
+
res = res.transform(function (node) {
|
902
|
+
if (node.isSymbolNode && (0, _object.hasOwnProperty)(matches.placeholders, node.name)) {
|
903
|
+
return matches.placeholders[node.name].clone();
|
904
|
+
} else {
|
905
|
+
return node;
|
906
|
+
}
|
907
|
+
});
|
908
|
+
|
909
|
+
// const after = res.toString({parenthesis: 'all'})
|
910
|
+
// console.log('Simplified ' + before + ' to ' + after)
|
538
911
|
}
|
539
|
-
|
912
|
+
if (rule.repeat && res !== node) {
|
913
|
+
res = applyRule(res, rule, context);
|
914
|
+
}
|
915
|
+
return res;
|
916
|
+
}
|
917
|
+
|
540
918
|
/**
|
541
919
|
* Get (binary) combinations of a flattened binary node
|
542
920
|
* e.g. +(node1, node2, node3) -> [
|
@@ -545,12 +923,10 @@ var createSimplify = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fu
|
|
545
923
|
* +(node3, +(node1, node2))]
|
546
924
|
*
|
547
925
|
*/
|
548
|
-
|
549
926
|
function getSplits(node, context) {
|
550
927
|
var res = [];
|
551
928
|
var right, rightArgs;
|
552
929
|
var makeNode = createMakeNodeFunction(node);
|
553
|
-
|
554
930
|
if (isCommutative(node, context)) {
|
555
931
|
for (var i = 0; i < node.args.length; i++) {
|
556
932
|
rightArgs = node.args.slice(0);
|
@@ -559,36 +935,41 @@ var createSimplify = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fu
|
|
559
935
|
res.push(makeNode([node.args[i], right]));
|
560
936
|
}
|
561
937
|
} else {
|
562
|
-
|
563
|
-
|
564
|
-
|
938
|
+
// Keep order, but try all parenthesizations
|
939
|
+
for (var _i2 = 1; _i2 < node.args.length; _i2++) {
|
940
|
+
var left = node.args[0];
|
941
|
+
if (_i2 > 1) {
|
942
|
+
left = makeNode(node.args.slice(0, _i2));
|
943
|
+
}
|
944
|
+
rightArgs = node.args.slice(_i2);
|
945
|
+
right = rightArgs.length === 1 ? rightArgs[0] : makeNode(rightArgs);
|
946
|
+
res.push(makeNode([left, right]));
|
947
|
+
}
|
565
948
|
}
|
566
|
-
|
567
949
|
return res;
|
568
950
|
}
|
951
|
+
|
569
952
|
/**
|
570
953
|
* Returns the set union of two match-placeholders or null if there is a conflict.
|
571
954
|
*/
|
572
|
-
|
573
|
-
|
574
955
|
function mergeMatch(match1, match2) {
|
575
956
|
var res = {
|
576
957
|
placeholders: {}
|
577
|
-
};
|
958
|
+
};
|
578
959
|
|
960
|
+
// Some matches may not have placeholders; this is OK
|
579
961
|
if (!match1.placeholders && !match2.placeholders) {
|
580
962
|
return res;
|
581
963
|
} else if (!match1.placeholders) {
|
582
964
|
return match2;
|
583
965
|
} else if (!match2.placeholders) {
|
584
966
|
return match1;
|
585
|
-
}
|
586
|
-
|
967
|
+
}
|
587
968
|
|
969
|
+
// Placeholders with the same key must match exactly
|
588
970
|
for (var key in match1.placeholders) {
|
589
971
|
if ((0, _object.hasOwnProperty)(match1.placeholders, key)) {
|
590
972
|
res.placeholders[key] = match1.placeholders[key];
|
591
|
-
|
592
973
|
if ((0, _object.hasOwnProperty)(match2.placeholders, key)) {
|
593
974
|
if (!_exactMatch(match1.placeholders[key], match2.placeholders[key])) {
|
594
975
|
return null;
|
@@ -596,87 +977,77 @@ var createSimplify = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fu
|
|
596
977
|
}
|
597
978
|
}
|
598
979
|
}
|
599
|
-
|
600
980
|
for (var _key in match2.placeholders) {
|
601
981
|
if ((0, _object.hasOwnProperty)(match2.placeholders, _key)) {
|
602
982
|
res.placeholders[_key] = match2.placeholders[_key];
|
603
983
|
}
|
604
984
|
}
|
605
|
-
|
606
985
|
return res;
|
607
986
|
}
|
987
|
+
|
608
988
|
/**
|
609
989
|
* Combine two lists of matches by applying mergeMatch to the cartesian product of two lists of matches.
|
610
990
|
* Each list represents matches found in one child of a node.
|
611
991
|
*/
|
612
|
-
|
613
|
-
|
614
992
|
function combineChildMatches(list1, list2) {
|
615
993
|
var res = [];
|
616
|
-
|
617
994
|
if (list1.length === 0 || list2.length === 0) {
|
618
995
|
return res;
|
619
996
|
}
|
620
|
-
|
621
997
|
var merged;
|
622
|
-
|
623
998
|
for (var i1 = 0; i1 < list1.length; i1++) {
|
624
999
|
for (var i2 = 0; i2 < list2.length; i2++) {
|
625
1000
|
merged = mergeMatch(list1[i1], list2[i2]);
|
626
|
-
|
627
1001
|
if (merged) {
|
628
1002
|
res.push(merged);
|
629
1003
|
}
|
630
1004
|
}
|
631
1005
|
}
|
632
|
-
|
633
1006
|
return res;
|
634
1007
|
}
|
1008
|
+
|
635
1009
|
/**
|
636
1010
|
* Combine multiple lists of matches by applying mergeMatch to the cartesian product of two lists of matches.
|
637
1011
|
* Each list represents matches found in one child of a node.
|
638
1012
|
* Returns a list of unique matches.
|
639
1013
|
*/
|
640
|
-
|
641
|
-
|
642
1014
|
function mergeChildMatches(childMatches) {
|
643
1015
|
if (childMatches.length === 0) {
|
644
1016
|
return childMatches;
|
645
1017
|
}
|
646
|
-
|
647
1018
|
var sets = childMatches.reduce(combineChildMatches);
|
648
1019
|
var uniqueSets = [];
|
649
1020
|
var unique = {};
|
650
|
-
|
651
1021
|
for (var i = 0; i < sets.length; i++) {
|
652
1022
|
var s = JSON.stringify(sets[i]);
|
653
|
-
|
654
1023
|
if (!unique[s]) {
|
655
1024
|
unique[s] = true;
|
656
1025
|
uniqueSets.push(sets[i]);
|
657
1026
|
}
|
658
1027
|
}
|
659
|
-
|
660
1028
|
return uniqueSets;
|
661
1029
|
}
|
1030
|
+
|
662
1031
|
/**
|
663
1032
|
* Determines whether node matches rule.
|
664
1033
|
*
|
665
1034
|
* @param {ConstantNode | SymbolNode | ParenthesisNode | FunctionNode | OperatorNode} rule
|
666
1035
|
* @param {ConstantNode | SymbolNode | ParenthesisNode | FunctionNode | OperatorNode} node
|
1036
|
+
* @param {Object} context -- provides assumed properties of operators
|
1037
|
+
* @param {Boolean} isSplit -- whether we are in process of splitting an
|
1038
|
+
* n-ary operator node into possible binary combinations.
|
1039
|
+
* Defaults to false.
|
667
1040
|
* @return {Object} Information about the match, if it exists.
|
668
1041
|
*/
|
669
|
-
|
670
|
-
|
671
|
-
function _ruleMatch(rule, node, isSplit) {
|
1042
|
+
function _ruleMatch(rule, node, context, isSplit) {
|
672
1043
|
// console.log('Entering _ruleMatch(' + JSON.stringify(rule) + ', ' + JSON.stringify(node) + ')')
|
673
1044
|
// console.log('rule = ' + rule)
|
674
1045
|
// console.log('node = ' + node)
|
675
|
-
|
1046
|
+
|
1047
|
+
// console.log('Entering _ruleMatch(', rule.toString({parenthesis:'all'}), ', ', node.toString({parenthesis:'all'}), ', ', context, ')')
|
676
1048
|
var res = [{
|
677
1049
|
placeholders: {}
|
678
1050
|
}];
|
679
|
-
|
680
1051
|
if (rule instanceof OperatorNode && node instanceof OperatorNode || rule instanceof FunctionNode && node instanceof FunctionNode) {
|
681
1052
|
// If the rule is an OperatorNode or a FunctionNode, then node must match exactly
|
682
1053
|
if (rule instanceof OperatorNode) {
|
@@ -687,40 +1058,58 @@ var createSimplify = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fu
|
|
687
1058
|
if (rule.name !== node.name) {
|
688
1059
|
return [];
|
689
1060
|
}
|
690
|
-
}
|
691
|
-
|
1061
|
+
}
|
692
1062
|
|
693
|
-
|
694
|
-
|
1063
|
+
// rule and node match. Search the children of rule and node.
|
1064
|
+
if (node.args.length === 1 && rule.args.length === 1 || !isAssociative(node, context) && node.args.length === rule.args.length || isSplit) {
|
1065
|
+
// Expect non-associative operators to match exactly,
|
1066
|
+
// except in any order if operator is commutative
|
695
1067
|
var childMatches = [];
|
696
|
-
|
697
1068
|
for (var i = 0; i < rule.args.length; i++) {
|
698
|
-
var childMatch = _ruleMatch(rule.args[i], node.args[i]);
|
699
|
-
|
1069
|
+
var childMatch = _ruleMatch(rule.args[i], node.args[i], context);
|
700
1070
|
if (childMatch.length === 0) {
|
701
1071
|
// Child did not match, so stop searching immediately
|
702
|
-
|
703
|
-
}
|
704
|
-
|
705
|
-
|
1072
|
+
break;
|
1073
|
+
}
|
1074
|
+
// The child matched, so add the information returned from the child to our result
|
706
1075
|
childMatches.push(childMatch);
|
707
1076
|
}
|
708
|
-
|
1077
|
+
if (childMatches.length !== rule.args.length) {
|
1078
|
+
if (!isCommutative(node, context) ||
|
1079
|
+
// exact match in order needed
|
1080
|
+
rule.args.length === 1) {
|
1081
|
+
// nothing to commute
|
1082
|
+
return [];
|
1083
|
+
}
|
1084
|
+
if (rule.args.length > 2) {
|
1085
|
+
/* Need to generate all permutations and try them.
|
1086
|
+
* It's a bit complicated, and unlikely to come up since there
|
1087
|
+
* are very few ternary or higher operators. So punt for now.
|
1088
|
+
*/
|
1089
|
+
throw new Error('permuting >2 commutative non-associative rule arguments not yet implemented');
|
1090
|
+
}
|
1091
|
+
/* Exactly two arguments, try them reversed */
|
1092
|
+
var leftMatch = _ruleMatch(rule.args[0], node.args[1], context);
|
1093
|
+
if (leftMatch.length === 0) {
|
1094
|
+
return [];
|
1095
|
+
}
|
1096
|
+
var rightMatch = _ruleMatch(rule.args[1], node.args[0], context);
|
1097
|
+
if (rightMatch.length === 0) {
|
1098
|
+
return [];
|
1099
|
+
}
|
1100
|
+
childMatches = [leftMatch, rightMatch];
|
1101
|
+
}
|
709
1102
|
res = mergeChildMatches(childMatches);
|
710
1103
|
} else if (node.args.length >= 2 && rule.args.length === 2) {
|
711
1104
|
// node is flattened, rule is not
|
712
|
-
// Associative operators/functions can be split in different ways so we check if the rule
|
713
|
-
// them and return their union.
|
714
|
-
var splits = getSplits(node,
|
1105
|
+
// Associative operators/functions can be split in different ways so we check if the rule
|
1106
|
+
// matches for each of them and return their union.
|
1107
|
+
var splits = getSplits(node, context);
|
715
1108
|
var splitMatches = [];
|
716
|
-
|
717
|
-
|
718
|
-
var matchSet = _ruleMatch(rule, splits[_i], true); // recursing at the same tree depth here
|
719
|
-
|
720
|
-
|
1109
|
+
for (var _i3 = 0; _i3 < splits.length; _i3++) {
|
1110
|
+
var matchSet = _ruleMatch(rule, splits[_i3], context, true); // recursing at the same tree depth here
|
721
1111
|
splitMatches = splitMatches.concat(matchSet);
|
722
1112
|
}
|
723
|
-
|
724
1113
|
return splitMatches;
|
725
1114
|
} else if (rule.args.length > 2) {
|
726
1115
|
throw Error('Unexpected non-binary associative function: ' + rule.toString());
|
@@ -730,41 +1119,93 @@ var createSimplify = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fu
|
|
730
1119
|
}
|
731
1120
|
} else if (rule instanceof SymbolNode) {
|
732
1121
|
// If the rule is a SymbolNode, then it carries a special meaning
|
733
|
-
// according to the first
|
734
|
-
//
|
735
|
-
// n.* matches any node
|
1122
|
+
// according to the first one or two characters of the symbol node name.
|
1123
|
+
// These meanings are expalined in the documentation for simplify()
|
736
1124
|
if (rule.name.length === 0) {
|
737
1125
|
throw new Error('Symbol in rule has 0 length...!?');
|
738
1126
|
}
|
739
|
-
|
740
1127
|
if (SUPPORTED_CONSTANTS[rule.name]) {
|
741
1128
|
// built-in constant must match exactly
|
742
1129
|
if (rule.name !== node.name) {
|
743
1130
|
return [];
|
744
1131
|
}
|
745
|
-
} else if (rule.name[0] === 'n' || rule.name.substring(0, 2) === '_p') {
|
746
|
-
// rule matches _anything_, so assign this node to the rule.name placeholder
|
747
|
-
// Assign node to the rule.name placeholder.
|
748
|
-
// Our parent will check for matches among placeholders.
|
749
|
-
res[0].placeholders[rule.name] = node;
|
750
|
-
} else if (rule.name[0] === 'v') {
|
751
|
-
// rule matches any variable thing (not a ConstantNode)
|
752
|
-
if (!(0, _is.isConstantNode)(node)) {
|
753
|
-
res[0].placeholders[rule.name] = node;
|
754
|
-
} else {
|
755
|
-
// Mis-match: rule was expecting something other than a ConstantNode
|
756
|
-
return [];
|
757
|
-
}
|
758
|
-
} else if (rule.name[0] === 'c') {
|
759
|
-
// rule matches any ConstantNode
|
760
|
-
if (node instanceof ConstantNode) {
|
761
|
-
res[0].placeholders[rule.name] = node;
|
762
|
-
} else {
|
763
|
-
// Mis-match: rule was expecting a ConstantNode
|
764
|
-
return [];
|
765
|
-
}
|
766
1132
|
} else {
|
767
|
-
|
1133
|
+
// wildcards are composed of up to two alphabetic or underscore characters
|
1134
|
+
switch (rule.name[1] >= 'a' && rule.name[1] <= 'z' ? rule.name.substring(0, 2) : rule.name[0]) {
|
1135
|
+
case 'n':
|
1136
|
+
case '_p':
|
1137
|
+
// rule matches _anything_, so assign this node to the rule.name placeholder
|
1138
|
+
// Assign node to the rule.name placeholder.
|
1139
|
+
// Our parent will check for matches among placeholders.
|
1140
|
+
res[0].placeholders[rule.name] = node;
|
1141
|
+
break;
|
1142
|
+
case 'c':
|
1143
|
+
case 'cl':
|
1144
|
+
// rule matches a ConstantNode
|
1145
|
+
if ((0, _wildcards.isConstantNode)(node)) {
|
1146
|
+
res[0].placeholders[rule.name] = node;
|
1147
|
+
} else {
|
1148
|
+
// mis-match: rule does not encompass current node
|
1149
|
+
return [];
|
1150
|
+
}
|
1151
|
+
break;
|
1152
|
+
case 'v':
|
1153
|
+
// rule matches anything other than a ConstantNode
|
1154
|
+
if (!(0, _wildcards.isConstantNode)(node)) {
|
1155
|
+
res[0].placeholders[rule.name] = node;
|
1156
|
+
} else {
|
1157
|
+
// mis-match: rule does not encompass current node
|
1158
|
+
return [];
|
1159
|
+
}
|
1160
|
+
break;
|
1161
|
+
case 'vl':
|
1162
|
+
// rule matches VariableNode
|
1163
|
+
if ((0, _wildcards.isVariableNode)(node)) {
|
1164
|
+
res[0].placeholders[rule.name] = node;
|
1165
|
+
} else {
|
1166
|
+
// mis-match: rule does not encompass current node
|
1167
|
+
return [];
|
1168
|
+
}
|
1169
|
+
break;
|
1170
|
+
case 'cd':
|
1171
|
+
// rule matches a ConstantNode or unaryMinus-wrapped ConstantNode
|
1172
|
+
if ((0, _wildcards.isNumericNode)(node)) {
|
1173
|
+
res[0].placeholders[rule.name] = node;
|
1174
|
+
} else {
|
1175
|
+
// mis-match: rule does not encompass current node
|
1176
|
+
return [];
|
1177
|
+
}
|
1178
|
+
break;
|
1179
|
+
case 'vd':
|
1180
|
+
// rule matches anything other than a ConstantNode or unaryMinus-wrapped ConstantNode
|
1181
|
+
if (!(0, _wildcards.isNumericNode)(node)) {
|
1182
|
+
res[0].placeholders[rule.name] = node;
|
1183
|
+
} else {
|
1184
|
+
// mis-match: rule does not encompass current node
|
1185
|
+
return [];
|
1186
|
+
}
|
1187
|
+
break;
|
1188
|
+
case 'ce':
|
1189
|
+
// rule matches expressions that have a constant value
|
1190
|
+
if ((0, _wildcards.isConstantExpression)(node)) {
|
1191
|
+
res[0].placeholders[rule.name] = node;
|
1192
|
+
} else {
|
1193
|
+
// mis-match: rule does not encompass current node
|
1194
|
+
return [];
|
1195
|
+
}
|
1196
|
+
break;
|
1197
|
+
case 've':
|
1198
|
+
// rule matches expressions that do not have a constant value
|
1199
|
+
if (!(0, _wildcards.isConstantExpression)(node)) {
|
1200
|
+
res[0].placeholders[rule.name] = node;
|
1201
|
+
} else {
|
1202
|
+
// mis-match: rule does not encompass current node
|
1203
|
+
return [];
|
1204
|
+
}
|
1205
|
+
break;
|
1206
|
+
default:
|
1207
|
+
throw new Error('Invalid symbol in rule: ' + rule.name);
|
1208
|
+
}
|
768
1209
|
}
|
769
1210
|
} else if (rule instanceof ConstantNode) {
|
770
1211
|
// Literal constant must match exactly
|
@@ -774,12 +1215,14 @@ var createSimplify = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fu
|
|
774
1215
|
} else {
|
775
1216
|
// Some other node was encountered which we aren't prepared for, so no match
|
776
1217
|
return [];
|
777
|
-
}
|
778
|
-
// console.log('_ruleMatch(' + rule.toString() + ', ' + node.toString() + ') found a match')
|
1218
|
+
}
|
779
1219
|
|
1220
|
+
// It's a match!
|
780
1221
|
|
1222
|
+
// console.log('_ruleMatch(' + rule.toString() + ', ' + node.toString() + ') found a match')
|
781
1223
|
return res;
|
782
1224
|
}
|
1225
|
+
|
783
1226
|
/**
|
784
1227
|
* Determines whether p and q (and all their children nodes) are identical.
|
785
1228
|
*
|
@@ -787,8 +1230,6 @@ var createSimplify = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fu
|
|
787
1230
|
* @param {ConstantNode | SymbolNode | ParenthesisNode | FunctionNode | OperatorNode} q
|
788
1231
|
* @return {Object} Information about the match, if it exists.
|
789
1232
|
*/
|
790
|
-
|
791
|
-
|
792
1233
|
function _exactMatch(p, q) {
|
793
1234
|
if (p instanceof ConstantNode && q instanceof ConstantNode) {
|
794
1235
|
if (!equal(p.value, q.value)) {
|
@@ -808,11 +1249,9 @@ var createSimplify = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fu
|
|
808
1249
|
return false;
|
809
1250
|
}
|
810
1251
|
}
|
811
|
-
|
812
1252
|
if (p.args.length !== q.args.length) {
|
813
1253
|
return false;
|
814
1254
|
}
|
815
|
-
|
816
1255
|
for (var i = 0; i < p.args.length; i++) {
|
817
1256
|
if (!_exactMatch(p.args[i], q.args[i])) {
|
818
1257
|
return false;
|
@@ -821,10 +1260,7 @@ var createSimplify = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fu
|
|
821
1260
|
} else {
|
822
1261
|
return false;
|
823
1262
|
}
|
824
|
-
|
825
1263
|
return true;
|
826
1264
|
}
|
827
|
-
|
828
1265
|
return simplify;
|
829
|
-
});
|
830
|
-
exports.createSimplify = createSimplify;
|
1266
|
+
});
|