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,13 +1,12 @@
|
|
1
|
-
import {
|
1
|
+
import { isParenthesisNode } from '../../utils/is.js';
|
2
|
+
import { isConstantNode, isVariableNode, isNumericNode, isConstantExpression } from './simplify/wildcards.js';
|
2
3
|
import { factory } from '../../utils/factory.js';
|
3
4
|
import { createUtil } from './simplify/util.js';
|
4
|
-
import { createSimplifyCore } from './simplify/simplifyCore.js';
|
5
|
-
import { createSimplifyConstant } from './simplify/simplifyConstant.js';
|
6
|
-
import { createResolve } from './simplify/resolve.js';
|
7
5
|
import { hasOwnProperty } from '../../utils/object.js';
|
6
|
+
import { createEmptyMap, createMap } from '../../utils/map.js';
|
8
7
|
var name = 'simplify';
|
9
|
-
var dependencies = ['config', 'typed', 'parse', 'add', 'subtract', 'multiply', 'divide', 'pow', 'isZero', 'equal', '?fraction', '?bignumber', 'mathWithTransform', 'ConstantNode', 'FunctionNode', 'OperatorNode', 'ParenthesisNode', 'SymbolNode'];
|
10
|
-
export var createSimplify = /* #__PURE__ */factory(name, dependencies,
|
8
|
+
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'];
|
9
|
+
export var createSimplify = /* #__PURE__ */factory(name, dependencies, _ref => {
|
11
10
|
var {
|
12
11
|
config,
|
13
12
|
typed,
|
@@ -19,57 +18,41 @@ export var createSimplify = /* #__PURE__ */factory(name, dependencies, (_ref) =>
|
|
19
18
|
pow,
|
20
19
|
isZero,
|
21
20
|
equal,
|
21
|
+
resolve,
|
22
|
+
simplifyConstant,
|
23
|
+
simplifyCore,
|
22
24
|
fraction,
|
23
25
|
bignumber,
|
24
26
|
mathWithTransform,
|
27
|
+
matrix,
|
28
|
+
AccessorNode,
|
29
|
+
ArrayNode,
|
25
30
|
ConstantNode,
|
26
31
|
FunctionNode,
|
32
|
+
IndexNode,
|
33
|
+
ObjectNode,
|
27
34
|
OperatorNode,
|
28
35
|
ParenthesisNode,
|
29
36
|
SymbolNode
|
30
37
|
} = _ref;
|
31
|
-
var simplifyConstant = createSimplifyConstant({
|
32
|
-
typed,
|
33
|
-
config,
|
34
|
-
mathWithTransform,
|
35
|
-
fraction,
|
36
|
-
bignumber,
|
37
|
-
ConstantNode,
|
38
|
-
OperatorNode,
|
39
|
-
FunctionNode,
|
40
|
-
SymbolNode
|
41
|
-
});
|
42
|
-
var simplifyCore = createSimplifyCore({
|
43
|
-
equal,
|
44
|
-
isZero,
|
45
|
-
add,
|
46
|
-
subtract,
|
47
|
-
multiply,
|
48
|
-
divide,
|
49
|
-
pow,
|
50
|
-
ConstantNode,
|
51
|
-
OperatorNode,
|
52
|
-
FunctionNode,
|
53
|
-
ParenthesisNode
|
54
|
-
});
|
55
|
-
var resolve = createResolve({
|
56
|
-
parse,
|
57
|
-
FunctionNode,
|
58
|
-
OperatorNode,
|
59
|
-
ParenthesisNode
|
60
|
-
});
|
61
38
|
var {
|
39
|
+
hasProperty,
|
62
40
|
isCommutative,
|
63
41
|
isAssociative,
|
42
|
+
mergeContext,
|
64
43
|
flatten,
|
65
44
|
unflattenr,
|
66
45
|
unflattenl,
|
67
|
-
createMakeNodeFunction
|
46
|
+
createMakeNodeFunction,
|
47
|
+
defaultContext,
|
48
|
+
realContext,
|
49
|
+
positiveContext
|
68
50
|
} = createUtil({
|
69
51
|
FunctionNode,
|
70
52
|
OperatorNode,
|
71
53
|
SymbolNode
|
72
54
|
});
|
55
|
+
|
73
56
|
/**
|
74
57
|
* Simplify an expression tree.
|
75
58
|
*
|
@@ -93,12 +76,34 @@ export var createSimplify = /* #__PURE__ */factory(name, dependencies, (_ref) =>
|
|
93
76
|
* expression is that variables starting with the following characters are
|
94
77
|
* interpreted as wildcards:
|
95
78
|
*
|
96
|
-
* - 'n' -
|
97
|
-
* - 'c' -
|
98
|
-
* - '
|
79
|
+
* - 'n' - Matches any node [Node]
|
80
|
+
* - 'c' - Matches a constant literal (5 or 3.2) [ConstantNode]
|
81
|
+
* - 'cl' - Matches a constant literal; same as c [ConstantNode]
|
82
|
+
* - 'cd' - Matches a decimal literal (5 or -3.2) [ConstantNode or unaryMinus wrapping a ConstantNode]
|
83
|
+
* - 'ce' - Matches a constant expression (-5 or √3) [Expressions consisting of only ConstantNodes, functions, and operators]
|
84
|
+
* - 'v' - Matches a variable; anything not matched by c (-5 or x) [Node that is not a ConstantNode]
|
85
|
+
* - 'vl' - Matches a variable literal (x or y) [SymbolNode]
|
86
|
+
* - '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]
|
87
|
+
* - 've' - Matches a variable expression; anything not matched by ce (x or 2x) [Expressions that contain a SymbolNode or other non-constant term]
|
99
88
|
*
|
100
89
|
* The default list of rules is exposed on the function as `simplify.rules`
|
101
|
-
* and can be used as a basis to built a set of custom rules.
|
90
|
+
* and can be used as a basis to built a set of custom rules. Note that since
|
91
|
+
* the `simplifyCore` function is in the default list of rules, by default
|
92
|
+
* simplify will convert any function calls in the expression that have
|
93
|
+
* operator equivalents to their operator forms.
|
94
|
+
*
|
95
|
+
* To specify a rule as a string, separate the left and right pattern by '->'
|
96
|
+
* When specifying a rule as an object, the following keys are meaningful:
|
97
|
+
* - l - the left pattern
|
98
|
+
* - r - the right pattern
|
99
|
+
* - s - in lieu of l and r, the string form that is broken at -> to give them
|
100
|
+
* - repeat - whether to repeat this rule until the expression stabilizes
|
101
|
+
* - assuming - gives a context object, as in the 'context' option to
|
102
|
+
* simplify. Every property in the context object must match the current
|
103
|
+
* context in order, or else the rule will not be applied.
|
104
|
+
* - imposeContext - gives a context object, as in the 'context' option to
|
105
|
+
* simplify. Any settings specified will override the incoming context
|
106
|
+
* for all matches of this rule.
|
102
107
|
*
|
103
108
|
* For more details on the theory, see:
|
104
109
|
*
|
@@ -106,21 +111,40 @@ export var createSimplify = /* #__PURE__ */factory(name, dependencies, (_ref) =>
|
|
106
111
|
* - [Symbolic computation - Simplification (Wikipedia)](https://en.wikipedia.org/wiki/Symbolic_computation#Simplification)
|
107
112
|
*
|
108
113
|
* An optional `options` argument can be passed as last argument of `simplify`.
|
109
|
-
*
|
110
|
-
* - `
|
111
|
-
*
|
112
|
-
*
|
113
|
-
*
|
114
|
+
* Currently available options (defaults in parentheses):
|
115
|
+
* - `consoleDebug` (false): whether to write the expression being simplified
|
116
|
+
* and any changes to it, along with the rule responsible, to console
|
117
|
+
* - `context` (simplify.defaultContext): an object giving properties of
|
118
|
+
* each operator, which determine what simplifications are allowed. The
|
119
|
+
* currently meaningful properties are commutative, associative,
|
120
|
+
* total (whether the operation is defined for all arguments), and
|
121
|
+
* trivial (whether the operation applied to a single argument leaves
|
122
|
+
* that argument unchanged). The default context is very permissive and
|
123
|
+
* allows almost all simplifications. Only properties differing from
|
124
|
+
* the default need to be specified; the default context is used as a
|
125
|
+
* fallback. Additional contexts `simplify.realContext` and
|
126
|
+
* `simplify.positiveContext` are supplied to cause simplify to perform
|
127
|
+
* just simplifications guaranteed to preserve all values of the expression
|
128
|
+
* assuming all variables and subexpressions are real numbers or
|
129
|
+
* positive real numbers, respectively. (Note that these are in some cases
|
130
|
+
* more restrictive than the default context; for example, the default
|
131
|
+
* context will allow `x/x` to simplify to 1, whereas
|
132
|
+
* `simplify.realContext` will not, as `0/0` is not equal to 1.)
|
133
|
+
* - `exactFractions` (true): whether to try to convert all constants to
|
134
|
+
* exact rational numbers.
|
135
|
+
* - `fractionsLimit` (10000): when `exactFractions` is true, constants will
|
136
|
+
* be expressed as fractions only when both numerator and denominator
|
137
|
+
* are smaller than `fractionsLimit`.
|
114
138
|
*
|
115
139
|
* Syntax:
|
116
140
|
*
|
117
|
-
* simplify(expr)
|
118
|
-
* simplify(expr, rules)
|
119
|
-
* simplify(expr, rules)
|
120
|
-
* simplify(expr, rules, scope)
|
121
|
-
* simplify(expr, rules, scope, options)
|
122
|
-
* simplify(expr, scope)
|
123
|
-
* simplify(expr, scope, options)
|
141
|
+
* math.simplify(expr)
|
142
|
+
* math.simplify(expr, rules)
|
143
|
+
* math.simplify(expr, rules)
|
144
|
+
* math.simplify(expr, rules, scope)
|
145
|
+
* math.simplify(expr, rules, scope, options)
|
146
|
+
* math.simplify(expr, scope)
|
147
|
+
* math.simplify(expr, scope, options)
|
124
148
|
*
|
125
149
|
* Examples:
|
126
150
|
*
|
@@ -133,91 +157,44 @@ export var createSimplify = /* #__PURE__ */factory(name, dependencies, (_ref) =>
|
|
133
157
|
*
|
134
158
|
* See also:
|
135
159
|
*
|
136
|
-
* derivative, parse,
|
160
|
+
* simplifyCore, derivative, evaluate, parse, rationalize, resolve
|
137
161
|
*
|
138
162
|
* @param {Node | string} expr
|
139
163
|
* The expression to be simplified
|
140
|
-
* @param {
|
164
|
+
* @param {SimplifyRule[]} [rules]
|
141
165
|
* Optional list with custom rules
|
166
|
+
* @param {Object} [scope] Optional scope with variables
|
167
|
+
* @param {SimplifyOptions} [options] Optional configuration settings
|
142
168
|
* @return {Node} Returns the simplified form of `expr`
|
143
169
|
*/
|
144
|
-
|
170
|
+
typed.addConversion({
|
171
|
+
from: 'Object',
|
172
|
+
to: 'Map',
|
173
|
+
convert: createMap
|
174
|
+
});
|
145
175
|
var simplify = typed('simplify', {
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
'
|
150
|
-
|
151
|
-
|
152
|
-
'string, Object, Object': function stringObjectObject(expr, scope, options) {
|
153
|
-
return this(parse(expr), this.rules, scope, options);
|
154
|
-
},
|
155
|
-
'string, Array': function stringArray(expr, rules) {
|
156
|
-
return this(parse(expr), rules, {}, {});
|
157
|
-
},
|
158
|
-
'string, Array, Object': function stringArrayObject(expr, rules, scope) {
|
159
|
-
return this(parse(expr), rules, scope, {});
|
160
|
-
},
|
161
|
-
'string, Array, Object, Object': function stringArrayObjectObject(expr, rules, scope, options) {
|
162
|
-
return this(parse(expr), rules, scope, options);
|
163
|
-
},
|
164
|
-
'Node, Object': function NodeObject(expr, scope) {
|
165
|
-
return this(expr, this.rules, scope, {});
|
166
|
-
},
|
167
|
-
'Node, Object, Object': function NodeObjectObject(expr, scope, options) {
|
168
|
-
return this(expr, this.rules, scope, options);
|
169
|
-
},
|
170
|
-
Node: function Node(expr) {
|
171
|
-
return this(expr, this.rules, {}, {});
|
172
|
-
},
|
173
|
-
'Node, Array': function NodeArray(expr, rules) {
|
174
|
-
return this(expr, rules, {}, {});
|
175
|
-
},
|
176
|
-
'Node, Array, Object': function NodeArrayObject(expr, rules, scope) {
|
177
|
-
return this(expr, rules, scope, {});
|
178
|
-
},
|
179
|
-
'Node, Array, Object, Object': function NodeArrayObjectObject(expr, rules, scope, options) {
|
180
|
-
rules = _buildRules(rules);
|
181
|
-
var res = resolve(expr, scope);
|
182
|
-
res = removeParens(res);
|
183
|
-
var visited = {};
|
184
|
-
var str = res.toString({
|
185
|
-
parenthesis: 'all'
|
186
|
-
});
|
187
|
-
|
188
|
-
while (!visited[str]) {
|
189
|
-
visited[str] = true;
|
190
|
-
_lastsym = 0; // counter for placeholder symbols
|
191
|
-
|
192
|
-
for (var i = 0; i < rules.length; i++) {
|
193
|
-
if (typeof rules[i] === 'function') {
|
194
|
-
res = rules[i](res, options);
|
195
|
-
} else {
|
196
|
-
flatten(res);
|
197
|
-
res = applyRule(res, rules[i]);
|
198
|
-
}
|
199
|
-
|
200
|
-
unflattenl(res); // using left-heavy binary tree here since custom rule functions may expect it
|
201
|
-
}
|
202
|
-
|
203
|
-
str = res.toString({
|
204
|
-
parenthesis: 'all'
|
205
|
-
});
|
206
|
-
}
|
207
|
-
|
208
|
-
return res;
|
209
|
-
}
|
176
|
+
Node: _simplify,
|
177
|
+
'Node, Map': (expr, scope) => _simplify(expr, false, scope),
|
178
|
+
'Node, Map, Object': (expr, scope, options) => _simplify(expr, false, scope, options),
|
179
|
+
'Node, Array': _simplify,
|
180
|
+
'Node, Array, Map': _simplify,
|
181
|
+
'Node, Array, Map, Object': _simplify
|
210
182
|
});
|
211
|
-
|
212
|
-
|
213
|
-
|
183
|
+
typed.removeConversion({
|
184
|
+
from: 'Object',
|
185
|
+
to: 'Map',
|
186
|
+
convert: createMap
|
187
|
+
});
|
188
|
+
simplify.defaultContext = defaultContext;
|
189
|
+
simplify.realContext = realContext;
|
190
|
+
simplify.positiveContext = positiveContext;
|
214
191
|
function removeParens(node) {
|
215
192
|
return node.transform(function (node, path, parent) {
|
216
193
|
return isParenthesisNode(node) ? removeParens(node.content) : node;
|
217
194
|
});
|
218
|
-
}
|
219
|
-
|
195
|
+
}
|
220
196
|
|
197
|
+
// All constants that are allowed in rules
|
221
198
|
var SUPPORTED_CONSTANTS = {
|
222
199
|
true: true,
|
223
200
|
false: true,
|
@@ -233,11 +210,13 @@ export var createSimplify = /* #__PURE__ */factory(name, dependencies, (_ref) =>
|
|
233
210
|
pi: true,
|
234
211
|
SQRT1_2: true,
|
235
212
|
SQRT2: true,
|
236
|
-
tau: true
|
213
|
+
tau: true
|
214
|
+
// null: false,
|
237
215
|
// undefined: false,
|
238
216
|
// version: false,
|
217
|
+
};
|
239
218
|
|
240
|
-
|
219
|
+
// Array of strings, used to build the ruleSet.
|
241
220
|
// Each l (left side) and r (right side) are parsed by
|
242
221
|
// the expression parser into a node tree.
|
243
222
|
// Left hand sides are matched to subtrees within the
|
@@ -246,8 +225,8 @@ export var createSimplify = /* #__PURE__ */factory(name, dependencies, (_ref) =>
|
|
246
225
|
// TODO: Add support for constraints on constants (either in the form of a '=' expression or a callback [callback allows things like comparing symbols alphabetically])
|
247
226
|
// 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.
|
248
227
|
// It is possible to get into an infinite loop with conflicting rules
|
249
|
-
|
250
|
-
|
228
|
+
simplify.rules = [simplifyCore,
|
229
|
+
// { l: 'n+0', r: 'n' }, // simplifyCore
|
251
230
|
// { l: 'n^0', r: '1' }, // simplifyCore
|
252
231
|
// { l: '0*n', r: '0' }, // simplifyCore
|
253
232
|
// { l: 'n/n', r: '1'}, // simplifyCore
|
@@ -257,111 +236,435 @@ export var createSimplify = /* #__PURE__ */factory(name, dependencies, (_ref) =>
|
|
257
236
|
{
|
258
237
|
l: 'log(e)',
|
259
238
|
r: '1'
|
260
|
-
},
|
239
|
+
},
|
240
|
+
// temporary rules
|
241
|
+
// Note initially we tend constants to the right because like-term
|
242
|
+
// collection prefers the left, and we would rather collect nonconstants
|
261
243
|
{
|
262
|
-
|
263
|
-
|
264
|
-
|
244
|
+
s: 'n-n1 -> n+-n1',
|
245
|
+
// temporarily replace 'subtract' so we can further flatten the 'add' operator
|
246
|
+
assuming: {
|
247
|
+
subtract: {
|
248
|
+
total: true
|
249
|
+
}
|
250
|
+
}
|
251
|
+
}, {
|
252
|
+
s: 'n-n -> 0',
|
253
|
+
// partial alternative when we can't always subtract
|
254
|
+
assuming: {
|
255
|
+
subtract: {
|
256
|
+
total: false
|
257
|
+
}
|
258
|
+
}
|
259
|
+
}, {
|
260
|
+
s: '-(cl*v) -> v * (-cl)',
|
261
|
+
// make non-constant terms positive
|
262
|
+
assuming: {
|
263
|
+
multiply: {
|
264
|
+
commutative: true
|
265
|
+
},
|
266
|
+
subtract: {
|
267
|
+
total: true
|
268
|
+
}
|
269
|
+
}
|
270
|
+
}, {
|
271
|
+
s: '-(cl*v) -> (-cl) * v',
|
272
|
+
// non-commutative version, part 1
|
273
|
+
assuming: {
|
274
|
+
multiply: {
|
275
|
+
commutative: false
|
276
|
+
},
|
277
|
+
subtract: {
|
278
|
+
total: true
|
279
|
+
}
|
280
|
+
}
|
281
|
+
}, {
|
282
|
+
s: '-(v*cl) -> v * (-cl)',
|
283
|
+
// non-commutative version, part 2
|
284
|
+
assuming: {
|
285
|
+
multiply: {
|
286
|
+
commutative: false
|
287
|
+
},
|
288
|
+
subtract: {
|
289
|
+
total: true
|
290
|
+
}
|
291
|
+
}
|
292
|
+
}, {
|
293
|
+
l: '-(n1/n2)',
|
294
|
+
r: '-n1/n2'
|
295
|
+
}, {
|
296
|
+
l: '-v',
|
297
|
+
r: 'v * (-1)'
|
298
|
+
},
|
299
|
+
// finish making non-constant terms positive
|
265
300
|
{
|
266
|
-
l: '
|
267
|
-
r: '(-
|
268
|
-
|
301
|
+
l: '(n1 + n2)*(-1)',
|
302
|
+
r: 'n1*(-1) + n2*(-1)',
|
303
|
+
repeat: true
|
304
|
+
},
|
305
|
+
// expand negations to achieve as much sign cancellation as possible
|
269
306
|
{
|
270
|
-
l: '-v',
|
271
|
-
r: '(-1) * v'
|
272
|
-
}, {
|
273
307
|
l: 'n/n1^n2',
|
274
308
|
r: 'n*n1^-n2'
|
275
|
-
},
|
309
|
+
},
|
310
|
+
// temporarily replace 'divide' so we can further flatten the 'multiply' operator
|
276
311
|
{
|
277
312
|
l: 'n/n1',
|
278
313
|
r: 'n*n1^-1'
|
279
|
-
},
|
314
|
+
}, {
|
315
|
+
s: '(n1*n2)^n3 -> n1^n3 * n2^n3',
|
316
|
+
assuming: {
|
317
|
+
multiply: {
|
318
|
+
commutative: true
|
319
|
+
}
|
320
|
+
}
|
321
|
+
}, {
|
322
|
+
s: '(n1*n2)^(-1) -> n2^(-1) * n1^(-1)',
|
323
|
+
assuming: {
|
324
|
+
multiply: {
|
325
|
+
commutative: false
|
326
|
+
}
|
327
|
+
}
|
328
|
+
},
|
329
|
+
// expand nested exponentiation
|
280
330
|
{
|
281
|
-
|
282
|
-
|
283
|
-
|
331
|
+
s: '(n ^ n1) ^ n2 -> n ^ (n1 * n2)',
|
332
|
+
assuming: {
|
333
|
+
divide: {
|
334
|
+
total: true
|
335
|
+
}
|
336
|
+
} // 1/(1/n) = n needs 1/n to exist
|
337
|
+
},
|
338
|
+
// collect like factors; into a sum, only do this for nonconstants
|
284
339
|
{
|
340
|
+
l: ' vd * ( vd * n1 + n2)',
|
341
|
+
r: 'vd^2 * n1 + vd * n2'
|
342
|
+
}, {
|
343
|
+
s: ' vd * (vd^n4 * n1 + n2) -> vd^(1+n4) * n1 + vd * n2',
|
344
|
+
assuming: {
|
345
|
+
divide: {
|
346
|
+
total: true
|
347
|
+
}
|
348
|
+
} // v*1/v = v^(1+-1) needs 1/v
|
349
|
+
}, {
|
350
|
+
s: 'vd^n3 * ( vd * n1 + n2) -> vd^(n3+1) * n1 + vd^n3 * n2',
|
351
|
+
assuming: {
|
352
|
+
divide: {
|
353
|
+
total: true
|
354
|
+
}
|
355
|
+
}
|
356
|
+
}, {
|
357
|
+
s: 'vd^n3 * (vd^n4 * n1 + n2) -> vd^(n3+n4) * n1 + vd^n3 * n2',
|
358
|
+
assuming: {
|
359
|
+
divide: {
|
360
|
+
total: true
|
361
|
+
}
|
362
|
+
}
|
363
|
+
}, {
|
285
364
|
l: 'n*n',
|
286
365
|
r: 'n^2'
|
287
366
|
}, {
|
288
|
-
|
289
|
-
|
367
|
+
s: 'n * n^n1 -> n^(n1+1)',
|
368
|
+
assuming: {
|
369
|
+
divide: {
|
370
|
+
total: true
|
371
|
+
}
|
372
|
+
} // n*1/n = n^(-1+1) needs 1/n
|
290
373
|
}, {
|
291
|
-
|
292
|
-
|
293
|
-
|
374
|
+
s: 'n^n1 * n^n2 -> n^(n1+n2)',
|
375
|
+
assuming: {
|
376
|
+
divide: {
|
377
|
+
total: true
|
378
|
+
}
|
379
|
+
} // ditto for n^2*1/n^2
|
380
|
+
},
|
381
|
+
// Unfortunately, to deal with more complicated cancellations, it
|
382
|
+
// becomes necessary to simplify constants twice per pass. It's not
|
383
|
+
// terribly expensive compared to matching rules, so this should not
|
384
|
+
// pose a performance problem.
|
385
|
+
simplifyConstant,
|
386
|
+
// First: before collecting like terms
|
387
|
+
|
388
|
+
// collect like terms
|
294
389
|
{
|
295
|
-
|
296
|
-
|
390
|
+
s: 'n+n -> 2*n',
|
391
|
+
assuming: {
|
392
|
+
add: {
|
393
|
+
total: true
|
394
|
+
}
|
395
|
+
} // 2 = 1 + 1 needs to exist
|
297
396
|
}, {
|
298
397
|
l: 'n+-n',
|
299
398
|
r: '0'
|
300
399
|
}, {
|
301
|
-
l: '
|
302
|
-
r: '(
|
400
|
+
l: 'vd*n + vd',
|
401
|
+
r: 'vd*(n+1)'
|
402
|
+
},
|
403
|
+
// NOTE: leftmost position is special:
|
404
|
+
{
|
405
|
+
l: 'n3*n1 + n3*n2',
|
406
|
+
r: 'n3*(n1+n2)'
|
407
|
+
},
|
408
|
+
// All sub-monomials tried there.
|
409
|
+
{
|
410
|
+
l: 'n3^(-n4)*n1 + n3 * n2',
|
411
|
+
r: 'n3^(-n4)*(n1 + n3^(n4+1) *n2)'
|
303
412
|
}, {
|
304
|
-
l: 'n1
|
305
|
-
r: '(n1+n2)
|
306
|
-
},
|
413
|
+
l: 'n3^(-n4)*n1 + n3^n5 * n2',
|
414
|
+
r: 'n3^(-n4)*(n1 + n3^(n4+n5)*n2)'
|
415
|
+
},
|
416
|
+
// noncommutative additional cases (term collection & factoring)
|
307
417
|
{
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
418
|
+
s: 'n*vd + vd -> (n+1)*vd',
|
419
|
+
assuming: {
|
420
|
+
multiply: {
|
421
|
+
commutative: false
|
422
|
+
}
|
423
|
+
}
|
424
|
+
}, {
|
425
|
+
s: 'vd + n*vd -> (1+n)*vd',
|
426
|
+
assuming: {
|
427
|
+
multiply: {
|
428
|
+
commutative: false
|
429
|
+
}
|
430
|
+
}
|
431
|
+
}, {
|
432
|
+
s: 'n1*n3 + n2*n3 -> (n1+n2)*n3',
|
433
|
+
assuming: {
|
434
|
+
multiply: {
|
435
|
+
commutative: false
|
436
|
+
}
|
437
|
+
}
|
438
|
+
}, {
|
439
|
+
s: 'n^n1 * n -> n^(n1+1)',
|
440
|
+
assuming: {
|
441
|
+
divide: {
|
442
|
+
total: true
|
443
|
+
},
|
444
|
+
multiply: {
|
445
|
+
commutative: false
|
446
|
+
}
|
447
|
+
}
|
448
|
+
}, {
|
449
|
+
s: 'n1*n3^(-n4) + n2 * n3 -> (n1 + n2*n3^(n4 + 1))*n3^(-n4)',
|
450
|
+
assuming: {
|
451
|
+
multiply: {
|
452
|
+
commutative: false
|
453
|
+
}
|
454
|
+
}
|
455
|
+
}, {
|
456
|
+
s: 'n1*n3^(-n4) + n2 * n3^n5 -> (n1 + n2*n3^(n4 + n5))*n3^(-n4)',
|
457
|
+
assuming: {
|
458
|
+
multiply: {
|
459
|
+
commutative: false
|
460
|
+
}
|
461
|
+
}
|
462
|
+
}, {
|
463
|
+
l: 'n*cd + cd',
|
464
|
+
r: '(n+1)*cd'
|
465
|
+
}, {
|
466
|
+
s: 'cd*n + cd -> cd*(n+1)',
|
467
|
+
assuming: {
|
468
|
+
multiply: {
|
469
|
+
commutative: false
|
470
|
+
}
|
471
|
+
}
|
472
|
+
}, {
|
473
|
+
s: 'cd + cd*n -> cd*(1+n)',
|
474
|
+
assuming: {
|
475
|
+
multiply: {
|
476
|
+
commutative: false
|
477
|
+
}
|
478
|
+
}
|
479
|
+
}, simplifyConstant,
|
480
|
+
// Second: before returning expressions to "standard form"
|
481
|
+
|
482
|
+
// make factors positive (and undo 'make non-constant terms positive')
|
315
483
|
{
|
316
|
-
|
317
|
-
|
318
|
-
|
484
|
+
s: '(-n)*n1 -> -(n*n1)',
|
485
|
+
assuming: {
|
486
|
+
subtract: {
|
487
|
+
total: true
|
488
|
+
}
|
489
|
+
}
|
490
|
+
}, {
|
491
|
+
s: 'n1*(-n) -> -(n1*n)',
|
492
|
+
// in case * non-commutative
|
493
|
+
assuming: {
|
494
|
+
subtract: {
|
495
|
+
total: true
|
496
|
+
},
|
497
|
+
multiply: {
|
498
|
+
commutative: false
|
499
|
+
}
|
500
|
+
}
|
501
|
+
},
|
502
|
+
// final ordering of constants
|
503
|
+
{
|
504
|
+
s: 'ce+ve -> ve+ce',
|
505
|
+
assuming: {
|
506
|
+
add: {
|
507
|
+
commutative: true
|
508
|
+
}
|
509
|
+
},
|
510
|
+
imposeContext: {
|
319
511
|
add: {
|
320
512
|
commutative: false
|
321
513
|
}
|
322
514
|
}
|
323
515
|
}, {
|
324
|
-
|
325
|
-
|
326
|
-
|
516
|
+
s: 'vd*cd -> cd*vd',
|
517
|
+
assuming: {
|
518
|
+
multiply: {
|
519
|
+
commutative: true
|
520
|
+
}
|
521
|
+
},
|
522
|
+
imposeContext: {
|
327
523
|
multiply: {
|
328
524
|
commutative: false
|
329
525
|
}
|
330
526
|
}
|
331
|
-
},
|
527
|
+
},
|
528
|
+
// undo temporary rules
|
332
529
|
// { l: '(-1) * n', r: '-n' }, // #811 added test which proved this is redundant
|
333
530
|
{
|
334
531
|
l: 'n+-n1',
|
335
532
|
r: 'n-n1'
|
336
|
-
},
|
337
|
-
|
338
|
-
l: 'n*(n1^-1)',
|
339
|
-
r: 'n/n1'
|
340
|
-
}, // undo replace 'divide'
|
533
|
+
},
|
534
|
+
// undo replace 'subtract'
|
341
535
|
{
|
342
|
-
l: 'n
|
343
|
-
r: 'n
|
536
|
+
l: 'n+-(n1)',
|
537
|
+
r: 'n-(n1)'
|
538
|
+
}, {
|
539
|
+
s: 'n*(n1^-1) -> n/n1',
|
540
|
+
// undo replace 'divide'; for * commutative
|
541
|
+
assuming: {
|
542
|
+
multiply: {
|
543
|
+
commutative: true
|
544
|
+
}
|
545
|
+
} // o.w. / not conventional
|
546
|
+
}, {
|
547
|
+
s: 'n*n1^-n2 -> n/n1^n2',
|
548
|
+
assuming: {
|
549
|
+
multiply: {
|
550
|
+
commutative: true
|
551
|
+
}
|
552
|
+
} // o.w. / not conventional
|
344
553
|
}, {
|
345
|
-
|
346
|
-
|
554
|
+
s: 'n^-1 -> 1/n',
|
555
|
+
assuming: {
|
556
|
+
multiply: {
|
557
|
+
commutative: true
|
558
|
+
}
|
559
|
+
} // o.w. / not conventional
|
347
560
|
}, {
|
348
|
-
l: 'n
|
349
|
-
r: '
|
350
|
-
},
|
561
|
+
l: 'n^1',
|
562
|
+
r: 'n'
|
563
|
+
},
|
564
|
+
// can be produced by power cancellation
|
351
565
|
{
|
352
|
-
|
353
|
-
|
354
|
-
|
566
|
+
s: 'n*(n1/n2) -> (n*n1)/n2',
|
567
|
+
// '*' before '/'
|
568
|
+
assuming: {
|
569
|
+
multiply: {
|
570
|
+
associative: true
|
571
|
+
}
|
572
|
+
}
|
573
|
+
}, {
|
574
|
+
s: 'n-(n1+n2) -> n-n1-n2',
|
575
|
+
// '-' before '+'
|
576
|
+
assuming: {
|
577
|
+
addition: {
|
578
|
+
associative: true,
|
579
|
+
commutative: true
|
580
|
+
}
|
581
|
+
}
|
582
|
+
},
|
355
583
|
// { l: '(n1/n2)/n3', r: 'n1/(n2*n3)' },
|
356
584
|
// { l: '(n*n1)/(n*n2)', r: 'n1/n2' },
|
585
|
+
|
586
|
+
// simplifyConstant can leave an extra factor of 1, which can always
|
587
|
+
// be eliminated, since the identity always commutes
|
357
588
|
{
|
358
589
|
l: '1*n',
|
359
|
-
r: 'n'
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
590
|
+
r: 'n',
|
591
|
+
imposeContext: {
|
592
|
+
multiply: {
|
593
|
+
commutative: true
|
594
|
+
}
|
595
|
+
}
|
596
|
+
}, {
|
597
|
+
s: 'n1/(n2/n3) -> (n1*n3)/n2',
|
598
|
+
assuming: {
|
599
|
+
multiply: {
|
600
|
+
associative: true
|
601
|
+
}
|
602
|
+
}
|
603
|
+
}, {
|
604
|
+
l: 'n1/(-n2)',
|
605
|
+
r: '-n1/n2'
|
364
606
|
}];
|
607
|
+
|
608
|
+
/**
|
609
|
+
* Takes any rule object as allowed by the specification in simplify
|
610
|
+
* and puts it in a standard form used by applyRule
|
611
|
+
*/
|
612
|
+
function _canonicalizeRule(ruleObject, context) {
|
613
|
+
var newRule = {};
|
614
|
+
if (ruleObject.s) {
|
615
|
+
var lr = ruleObject.s.split('->');
|
616
|
+
if (lr.length === 2) {
|
617
|
+
newRule.l = lr[0];
|
618
|
+
newRule.r = lr[1];
|
619
|
+
} else {
|
620
|
+
throw SyntaxError('Could not parse rule: ' + ruleObject.s);
|
621
|
+
}
|
622
|
+
} else {
|
623
|
+
newRule.l = ruleObject.l;
|
624
|
+
newRule.r = ruleObject.r;
|
625
|
+
}
|
626
|
+
newRule.l = removeParens(parse(newRule.l));
|
627
|
+
newRule.r = removeParens(parse(newRule.r));
|
628
|
+
for (var prop of ['imposeContext', 'repeat', 'assuming']) {
|
629
|
+
if (prop in ruleObject) {
|
630
|
+
newRule[prop] = ruleObject[prop];
|
631
|
+
}
|
632
|
+
}
|
633
|
+
if (ruleObject.evaluate) {
|
634
|
+
newRule.evaluate = parse(ruleObject.evaluate);
|
635
|
+
}
|
636
|
+
if (isAssociative(newRule.l, context)) {
|
637
|
+
var nonCommutative = !isCommutative(newRule.l, context);
|
638
|
+
var leftExpandsym;
|
639
|
+
// Gen. the LHS placeholder used in this NC-context specific expansion rules
|
640
|
+
if (nonCommutative) leftExpandsym = _getExpandPlaceholderSymbol();
|
641
|
+
var makeNode = createMakeNodeFunction(newRule.l);
|
642
|
+
var expandsym = _getExpandPlaceholderSymbol();
|
643
|
+
newRule.expanded = {};
|
644
|
+
newRule.expanded.l = makeNode([newRule.l, expandsym]);
|
645
|
+
// Push the expandsym into the deepest possible branch.
|
646
|
+
// This helps to match the newRule against nodes returned from getSplits() later on.
|
647
|
+
flatten(newRule.expanded.l, context);
|
648
|
+
unflattenr(newRule.expanded.l, context);
|
649
|
+
newRule.expanded.r = makeNode([newRule.r, expandsym]);
|
650
|
+
|
651
|
+
// In and for a non-commutative context, attempting with yet additional expansion rules makes
|
652
|
+
// way for more matches cases of multi-arg expressions; such that associative rules (such as
|
653
|
+
// 'n*n -> n^2') can be applied to exprs. such as 'a * b * b' and 'a * b * b * a'.
|
654
|
+
if (nonCommutative) {
|
655
|
+
// 'Non-commutative' 1: LHS (placeholder) only
|
656
|
+
newRule.expandedNC1 = {};
|
657
|
+
newRule.expandedNC1.l = makeNode([leftExpandsym, newRule.l]);
|
658
|
+
newRule.expandedNC1.r = makeNode([leftExpandsym, newRule.r]);
|
659
|
+
// 'Non-commutative' 2: farmost LHS and RHS placeholders
|
660
|
+
newRule.expandedNC2 = {};
|
661
|
+
newRule.expandedNC2.l = makeNode([leftExpandsym, newRule.expanded.l]);
|
662
|
+
newRule.expandedNC2.r = makeNode([leftExpandsym, newRule.expanded.r]);
|
663
|
+
}
|
664
|
+
}
|
665
|
+
return newRule;
|
666
|
+
}
|
667
|
+
|
365
668
|
/**
|
366
669
|
* Parse the string array of rules into nodes
|
367
670
|
*
|
@@ -378,149 +681,230 @@ export var createSimplify = /* #__PURE__ */factory(name, dependencies, (_ref) =>
|
|
378
681
|
* Short hand notation:
|
379
682
|
* 'n1 * c1 -> c1 * n1'
|
380
683
|
*/
|
381
|
-
|
382
|
-
function _buildRules(rules) {
|
684
|
+
function _buildRules(rules, context) {
|
383
685
|
// Array of rules to be used to simplify expressions
|
384
686
|
var ruleSet = [];
|
385
|
-
|
386
687
|
for (var i = 0; i < rules.length; i++) {
|
387
688
|
var rule = rules[i];
|
388
689
|
var newRule = void 0;
|
389
690
|
var ruleType = typeof rule;
|
390
|
-
|
391
691
|
switch (ruleType) {
|
392
692
|
case 'string':
|
393
|
-
{
|
394
|
-
|
395
|
-
|
396
|
-
if (lr.length === 2) {
|
397
|
-
rule = {
|
398
|
-
l: lr[0],
|
399
|
-
r: lr[1]
|
400
|
-
};
|
401
|
-
} else {
|
402
|
-
throw SyntaxError('Could not parse rule: ' + rule);
|
403
|
-
}
|
404
|
-
}
|
405
|
-
|
693
|
+
rule = {
|
694
|
+
s: rule
|
695
|
+
};
|
406
696
|
/* falls through */
|
407
|
-
|
408
697
|
case 'object':
|
409
|
-
newRule =
|
410
|
-
l: removeParens(parse(rule.l)),
|
411
|
-
r: removeParens(parse(rule.r))
|
412
|
-
};
|
413
|
-
|
414
|
-
if (rule.context) {
|
415
|
-
newRule.evaluate = rule.context;
|
416
|
-
}
|
417
|
-
|
418
|
-
if (rule.evaluate) {
|
419
|
-
newRule.evaluate = parse(rule.evaluate);
|
420
|
-
}
|
421
|
-
|
422
|
-
if (isAssociative(newRule.l)) {
|
423
|
-
var makeNode = createMakeNodeFunction(newRule.l);
|
424
|
-
|
425
|
-
var expandsym = _getExpandPlaceholderSymbol();
|
426
|
-
|
427
|
-
newRule.expanded = {};
|
428
|
-
newRule.expanded.l = makeNode([newRule.l.clone(), expandsym]); // Push the expandsym into the deepest possible branch.
|
429
|
-
// This helps to match the newRule against nodes returned from getSplits() later on.
|
430
|
-
|
431
|
-
flatten(newRule.expanded.l);
|
432
|
-
unflattenr(newRule.expanded.l);
|
433
|
-
newRule.expanded.r = makeNode([newRule.r, expandsym]);
|
434
|
-
}
|
435
|
-
|
698
|
+
newRule = _canonicalizeRule(rule, context);
|
436
699
|
break;
|
437
|
-
|
438
700
|
case 'function':
|
439
701
|
newRule = rule;
|
440
702
|
break;
|
441
|
-
|
442
703
|
default:
|
443
704
|
throw TypeError('Unsupported type of rule: ' + ruleType);
|
444
|
-
}
|
705
|
+
}
|
706
|
+
// console.log('Adding rule: ' + rules[i])
|
445
707
|
// console.log(newRule)
|
446
|
-
|
447
|
-
|
448
708
|
ruleSet.push(newRule);
|
449
709
|
}
|
450
|
-
|
451
710
|
return ruleSet;
|
452
711
|
}
|
453
|
-
|
454
712
|
var _lastsym = 0;
|
455
|
-
|
456
713
|
function _getExpandPlaceholderSymbol() {
|
457
714
|
return new SymbolNode('_p' + _lastsym++);
|
458
715
|
}
|
716
|
+
function _simplify(expr, rules) {
|
717
|
+
var scope = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : createEmptyMap();
|
718
|
+
var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
|
719
|
+
var debug = options.consoleDebug;
|
720
|
+
rules = _buildRules(rules || simplify.rules, options.context);
|
721
|
+
var res = resolve(expr, scope);
|
722
|
+
res = removeParens(res);
|
723
|
+
var visited = {};
|
724
|
+
var str = res.toString({
|
725
|
+
parenthesis: 'all'
|
726
|
+
});
|
727
|
+
while (!visited[str]) {
|
728
|
+
visited[str] = true;
|
729
|
+
_lastsym = 0; // counter for placeholder symbols
|
730
|
+
var laststr = str;
|
731
|
+
if (debug) console.log('Working on: ', str);
|
732
|
+
for (var i = 0; i < rules.length; i++) {
|
733
|
+
var rulestr = '';
|
734
|
+
if (typeof rules[i] === 'function') {
|
735
|
+
res = rules[i](res, options);
|
736
|
+
if (debug) rulestr = rules[i].name;
|
737
|
+
} else {
|
738
|
+
flatten(res, options.context);
|
739
|
+
res = applyRule(res, rules[i], options.context);
|
740
|
+
if (debug) {
|
741
|
+
rulestr = "".concat(rules[i].l.toString(), " -> ").concat(rules[i].r.toString());
|
742
|
+
}
|
743
|
+
}
|
744
|
+
if (debug) {
|
745
|
+
var newstr = res.toString({
|
746
|
+
parenthesis: 'all'
|
747
|
+
});
|
748
|
+
if (newstr !== laststr) {
|
749
|
+
console.log('Applying', rulestr, 'produced', newstr);
|
750
|
+
laststr = newstr;
|
751
|
+
}
|
752
|
+
}
|
753
|
+
/* Use left-heavy binary tree internally,
|
754
|
+
* since custom rule functions may expect it
|
755
|
+
*/
|
756
|
+
unflattenl(res, options.context);
|
757
|
+
}
|
758
|
+
str = res.toString({
|
759
|
+
parenthesis: 'all'
|
760
|
+
});
|
761
|
+
}
|
762
|
+
return res;
|
763
|
+
}
|
764
|
+
function mapRule(nodes, rule, context) {
|
765
|
+
var resNodes = nodes;
|
766
|
+
if (nodes) {
|
767
|
+
for (var i = 0; i < nodes.length; ++i) {
|
768
|
+
var newNode = applyRule(nodes[i], rule, context);
|
769
|
+
if (newNode !== nodes[i]) {
|
770
|
+
if (resNodes === nodes) {
|
771
|
+
resNodes = nodes.slice();
|
772
|
+
}
|
773
|
+
resNodes[i] = newNode;
|
774
|
+
}
|
775
|
+
}
|
776
|
+
}
|
777
|
+
return resNodes;
|
778
|
+
}
|
779
|
+
|
459
780
|
/**
|
460
781
|
* Returns a simplfied form of node, or the original node if no simplification was possible.
|
461
782
|
*
|
462
783
|
* @param {ConstantNode | SymbolNode | ParenthesisNode | FunctionNode | OperatorNode} node
|
784
|
+
* @param {Object | Function} rule
|
785
|
+
* @param {Object} context -- information about assumed properties of operators
|
463
786
|
* @return {ConstantNode | SymbolNode | ParenthesisNode | FunctionNode | OperatorNode} The simplified form of `expr`, or the original node if no simplification was possible.
|
464
787
|
*/
|
465
|
-
|
466
|
-
|
467
|
-
|
468
|
-
|
469
|
-
|
470
|
-
|
471
|
-
var
|
472
|
-
|
473
|
-
|
474
|
-
|
475
|
-
if (res instanceof OperatorNode || res instanceof FunctionNode) {
|
476
|
-
if (res.args) {
|
477
|
-
for (var i = 0; i < res.args.length; i++) {
|
478
|
-
res.args[i] = applyRule(res.args[i], rule);
|
788
|
+
function applyRule(node, rule, context) {
|
789
|
+
// console.log('Entering applyRule("', rule.l.toString({parenthesis:'all'}), '->', rule.r.toString({parenthesis:'all'}), '",', node.toString({parenthesis:'all'}),')')
|
790
|
+
|
791
|
+
// check that the assumptions for this rule are satisfied by the current
|
792
|
+
// context:
|
793
|
+
if (rule.assuming) {
|
794
|
+
for (var symbol in rule.assuming) {
|
795
|
+
for (var property in rule.assuming[symbol]) {
|
796
|
+
if (hasProperty(symbol, property, context) !== rule.assuming[symbol][property]) {
|
797
|
+
return node;
|
479
798
|
}
|
480
799
|
}
|
481
|
-
}
|
482
|
-
|
483
|
-
|
800
|
+
}
|
801
|
+
}
|
802
|
+
var mergedContext = mergeContext(rule.imposeContext, context);
|
803
|
+
|
804
|
+
// Do not clone node unless we find a match
|
805
|
+
var res = node;
|
806
|
+
|
807
|
+
// First replace our child nodes with their simplified versions
|
808
|
+
// If a child could not be simplified, applying the rule to it
|
809
|
+
// will have no effect since the node is returned unchanged
|
810
|
+
if (res instanceof OperatorNode || res instanceof FunctionNode) {
|
811
|
+
var newArgs = mapRule(res.args, rule, context);
|
812
|
+
if (newArgs !== res.args) {
|
813
|
+
res = res.clone();
|
814
|
+
res.args = newArgs;
|
815
|
+
}
|
816
|
+
} else if (res instanceof ParenthesisNode) {
|
817
|
+
if (res.content) {
|
818
|
+
var newContent = applyRule(res.content, rule, context);
|
819
|
+
if (newContent !== res.content) {
|
820
|
+
res = new ParenthesisNode(newContent);
|
484
821
|
}
|
485
|
-
} // Try to match a rule against this node
|
486
|
-
|
487
|
-
|
488
|
-
var repl = rule.r;
|
489
|
-
|
490
|
-
var matches = _ruleMatch(rule.l, res)[0]; // If the rule is associative operator, we can try matching it while allowing additional terms.
|
491
|
-
// 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.
|
492
|
-
|
493
|
-
|
494
|
-
if (!matches && rule.expanded) {
|
495
|
-
repl = rule.expanded.r;
|
496
|
-
matches = _ruleMatch(rule.expanded.l, res)[0];
|
497
822
|
}
|
823
|
+
} else if (res instanceof ArrayNode) {
|
824
|
+
var newItems = mapRule(res.items, rule, context);
|
825
|
+
if (newItems !== res.items) {
|
826
|
+
res = new ArrayNode(newItems);
|
827
|
+
}
|
828
|
+
} else if (res instanceof AccessorNode) {
|
829
|
+
var newObj = res.object;
|
830
|
+
if (res.object) {
|
831
|
+
newObj = applyRule(res.object, rule, context);
|
832
|
+
}
|
833
|
+
var newIndex = res.index;
|
834
|
+
if (res.index) {
|
835
|
+
newIndex = applyRule(res.index, rule, context);
|
836
|
+
}
|
837
|
+
if (newObj !== res.object || newIndex !== res.index) {
|
838
|
+
res = new AccessorNode(newObj, newIndex);
|
839
|
+
}
|
840
|
+
} else if (res instanceof IndexNode) {
|
841
|
+
var newDims = mapRule(res.dimensions, rule, context);
|
842
|
+
if (newDims !== res.dimensions) {
|
843
|
+
res = new IndexNode(newDims);
|
844
|
+
}
|
845
|
+
} else if (res instanceof ObjectNode) {
|
846
|
+
var changed = false;
|
847
|
+
var newProps = {};
|
848
|
+
for (var prop in res.properties) {
|
849
|
+
newProps[prop] = applyRule(res.properties[prop], rule, context);
|
850
|
+
if (newProps[prop] !== res.properties[prop]) {
|
851
|
+
changed = true;
|
852
|
+
}
|
853
|
+
}
|
854
|
+
if (changed) {
|
855
|
+
res = new ObjectNode(newProps);
|
856
|
+
}
|
857
|
+
}
|
498
858
|
|
499
|
-
|
500
|
-
|
501
|
-
|
502
|
-
// we keep any implicit multiplication state if relevant
|
503
|
-
var implicit = res.implicit;
|
504
|
-
res = repl.clone();
|
505
|
-
|
506
|
-
if (implicit && 'implicit' in repl) {
|
507
|
-
res.implicit = true;
|
508
|
-
} // Replace placeholders with their respective nodes without traversing deeper into the replaced nodes
|
509
|
-
|
859
|
+
// Try to match a rule against this node
|
860
|
+
var repl = rule.r;
|
861
|
+
var matches = _ruleMatch(rule.l, res, mergedContext)[0];
|
510
862
|
|
511
|
-
|
512
|
-
|
513
|
-
|
514
|
-
|
515
|
-
|
516
|
-
|
517
|
-
|
518
|
-
|
863
|
+
// If the rule is associative operator, we can try matching it while allowing additional terms.
|
864
|
+
// 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.
|
865
|
+
if (!matches && rule.expanded) {
|
866
|
+
repl = rule.expanded.r;
|
867
|
+
matches = _ruleMatch(rule.expanded.l, res, mergedContext)[0];
|
868
|
+
}
|
869
|
+
// Additional, non-commutative context expansion-rules
|
870
|
+
if (!matches && rule.expandedNC1) {
|
871
|
+
repl = rule.expandedNC1.r;
|
872
|
+
matches = _ruleMatch(rule.expandedNC1.l, res, mergedContext)[0];
|
873
|
+
if (!matches) {
|
874
|
+
// Existence of NC1 implies NC2
|
875
|
+
repl = rule.expandedNC2.r;
|
876
|
+
matches = _ruleMatch(rule.expandedNC2.l, res, mergedContext)[0];
|
877
|
+
}
|
878
|
+
}
|
879
|
+
if (matches) {
|
880
|
+
// const before = res.toString({parenthesis: 'all'})
|
881
|
+
|
882
|
+
// Create a new node by cloning the rhs of the matched rule
|
883
|
+
// we keep any implicit multiplication state if relevant
|
884
|
+
var implicit = res.implicit;
|
885
|
+
res = repl.clone();
|
886
|
+
if (implicit && 'implicit' in repl) {
|
887
|
+
res.implicit = true;
|
519
888
|
}
|
520
889
|
|
521
|
-
|
890
|
+
// Replace placeholders with their respective nodes without traversing deeper into the replaced nodes
|
891
|
+
res = res.transform(function (node) {
|
892
|
+
if (node.isSymbolNode && hasOwnProperty(matches.placeholders, node.name)) {
|
893
|
+
return matches.placeholders[node.name].clone();
|
894
|
+
} else {
|
895
|
+
return node;
|
896
|
+
}
|
897
|
+
});
|
898
|
+
|
899
|
+
// const after = res.toString({parenthesis: 'all'})
|
900
|
+
// console.log('Simplified ' + before + ' to ' + after)
|
522
901
|
}
|
523
|
-
|
902
|
+
if (rule.repeat && res !== node) {
|
903
|
+
res = applyRule(res, rule, context);
|
904
|
+
}
|
905
|
+
return res;
|
906
|
+
}
|
907
|
+
|
524
908
|
/**
|
525
909
|
* Get (binary) combinations of a flattened binary node
|
526
910
|
* e.g. +(node1, node2, node3) -> [
|
@@ -529,12 +913,10 @@ export var createSimplify = /* #__PURE__ */factory(name, dependencies, (_ref) =>
|
|
529
913
|
* +(node3, +(node1, node2))]
|
530
914
|
*
|
531
915
|
*/
|
532
|
-
|
533
916
|
function getSplits(node, context) {
|
534
917
|
var res = [];
|
535
918
|
var right, rightArgs;
|
536
919
|
var makeNode = createMakeNodeFunction(node);
|
537
|
-
|
538
920
|
if (isCommutative(node, context)) {
|
539
921
|
for (var i = 0; i < node.args.length; i++) {
|
540
922
|
rightArgs = node.args.slice(0);
|
@@ -543,36 +925,41 @@ export var createSimplify = /* #__PURE__ */factory(name, dependencies, (_ref) =>
|
|
543
925
|
res.push(makeNode([node.args[i], right]));
|
544
926
|
}
|
545
927
|
} else {
|
546
|
-
|
547
|
-
|
548
|
-
|
928
|
+
// Keep order, but try all parenthesizations
|
929
|
+
for (var _i = 1; _i < node.args.length; _i++) {
|
930
|
+
var left = node.args[0];
|
931
|
+
if (_i > 1) {
|
932
|
+
left = makeNode(node.args.slice(0, _i));
|
933
|
+
}
|
934
|
+
rightArgs = node.args.slice(_i);
|
935
|
+
right = rightArgs.length === 1 ? rightArgs[0] : makeNode(rightArgs);
|
936
|
+
res.push(makeNode([left, right]));
|
937
|
+
}
|
549
938
|
}
|
550
|
-
|
551
939
|
return res;
|
552
940
|
}
|
941
|
+
|
553
942
|
/**
|
554
943
|
* Returns the set union of two match-placeholders or null if there is a conflict.
|
555
944
|
*/
|
556
|
-
|
557
|
-
|
558
945
|
function mergeMatch(match1, match2) {
|
559
946
|
var res = {
|
560
947
|
placeholders: {}
|
561
|
-
};
|
948
|
+
};
|
562
949
|
|
950
|
+
// Some matches may not have placeholders; this is OK
|
563
951
|
if (!match1.placeholders && !match2.placeholders) {
|
564
952
|
return res;
|
565
953
|
} else if (!match1.placeholders) {
|
566
954
|
return match2;
|
567
955
|
} else if (!match2.placeholders) {
|
568
956
|
return match1;
|
569
|
-
}
|
570
|
-
|
957
|
+
}
|
571
958
|
|
959
|
+
// Placeholders with the same key must match exactly
|
572
960
|
for (var key in match1.placeholders) {
|
573
961
|
if (hasOwnProperty(match1.placeholders, key)) {
|
574
962
|
res.placeholders[key] = match1.placeholders[key];
|
575
|
-
|
576
963
|
if (hasOwnProperty(match2.placeholders, key)) {
|
577
964
|
if (!_exactMatch(match1.placeholders[key], match2.placeholders[key])) {
|
578
965
|
return null;
|
@@ -580,87 +967,77 @@ export var createSimplify = /* #__PURE__ */factory(name, dependencies, (_ref) =>
|
|
580
967
|
}
|
581
968
|
}
|
582
969
|
}
|
583
|
-
|
584
970
|
for (var _key in match2.placeholders) {
|
585
971
|
if (hasOwnProperty(match2.placeholders, _key)) {
|
586
972
|
res.placeholders[_key] = match2.placeholders[_key];
|
587
973
|
}
|
588
974
|
}
|
589
|
-
|
590
975
|
return res;
|
591
976
|
}
|
977
|
+
|
592
978
|
/**
|
593
979
|
* Combine two lists of matches by applying mergeMatch to the cartesian product of two lists of matches.
|
594
980
|
* Each list represents matches found in one child of a node.
|
595
981
|
*/
|
596
|
-
|
597
|
-
|
598
982
|
function combineChildMatches(list1, list2) {
|
599
983
|
var res = [];
|
600
|
-
|
601
984
|
if (list1.length === 0 || list2.length === 0) {
|
602
985
|
return res;
|
603
986
|
}
|
604
|
-
|
605
987
|
var merged;
|
606
|
-
|
607
988
|
for (var i1 = 0; i1 < list1.length; i1++) {
|
608
989
|
for (var i2 = 0; i2 < list2.length; i2++) {
|
609
990
|
merged = mergeMatch(list1[i1], list2[i2]);
|
610
|
-
|
611
991
|
if (merged) {
|
612
992
|
res.push(merged);
|
613
993
|
}
|
614
994
|
}
|
615
995
|
}
|
616
|
-
|
617
996
|
return res;
|
618
997
|
}
|
998
|
+
|
619
999
|
/**
|
620
1000
|
* Combine multiple lists of matches by applying mergeMatch to the cartesian product of two lists of matches.
|
621
1001
|
* Each list represents matches found in one child of a node.
|
622
1002
|
* Returns a list of unique matches.
|
623
1003
|
*/
|
624
|
-
|
625
|
-
|
626
1004
|
function mergeChildMatches(childMatches) {
|
627
1005
|
if (childMatches.length === 0) {
|
628
1006
|
return childMatches;
|
629
1007
|
}
|
630
|
-
|
631
1008
|
var sets = childMatches.reduce(combineChildMatches);
|
632
1009
|
var uniqueSets = [];
|
633
1010
|
var unique = {};
|
634
|
-
|
635
1011
|
for (var i = 0; i < sets.length; i++) {
|
636
1012
|
var s = JSON.stringify(sets[i]);
|
637
|
-
|
638
1013
|
if (!unique[s]) {
|
639
1014
|
unique[s] = true;
|
640
1015
|
uniqueSets.push(sets[i]);
|
641
1016
|
}
|
642
1017
|
}
|
643
|
-
|
644
1018
|
return uniqueSets;
|
645
1019
|
}
|
1020
|
+
|
646
1021
|
/**
|
647
1022
|
* Determines whether node matches rule.
|
648
1023
|
*
|
649
1024
|
* @param {ConstantNode | SymbolNode | ParenthesisNode | FunctionNode | OperatorNode} rule
|
650
1025
|
* @param {ConstantNode | SymbolNode | ParenthesisNode | FunctionNode | OperatorNode} node
|
1026
|
+
* @param {Object} context -- provides assumed properties of operators
|
1027
|
+
* @param {Boolean} isSplit -- whether we are in process of splitting an
|
1028
|
+
* n-ary operator node into possible binary combinations.
|
1029
|
+
* Defaults to false.
|
651
1030
|
* @return {Object} Information about the match, if it exists.
|
652
1031
|
*/
|
653
|
-
|
654
|
-
|
655
|
-
function _ruleMatch(rule, node, isSplit) {
|
1032
|
+
function _ruleMatch(rule, node, context, isSplit) {
|
656
1033
|
// console.log('Entering _ruleMatch(' + JSON.stringify(rule) + ', ' + JSON.stringify(node) + ')')
|
657
1034
|
// console.log('rule = ' + rule)
|
658
1035
|
// console.log('node = ' + node)
|
659
|
-
|
1036
|
+
|
1037
|
+
// console.log('Entering _ruleMatch(', rule.toString({parenthesis:'all'}), ', ', node.toString({parenthesis:'all'}), ', ', context, ')')
|
660
1038
|
var res = [{
|
661
1039
|
placeholders: {}
|
662
1040
|
}];
|
663
|
-
|
664
1041
|
if (rule instanceof OperatorNode && node instanceof OperatorNode || rule instanceof FunctionNode && node instanceof FunctionNode) {
|
665
1042
|
// If the rule is an OperatorNode or a FunctionNode, then node must match exactly
|
666
1043
|
if (rule instanceof OperatorNode) {
|
@@ -671,40 +1048,58 @@ export var createSimplify = /* #__PURE__ */factory(name, dependencies, (_ref) =>
|
|
671
1048
|
if (rule.name !== node.name) {
|
672
1049
|
return [];
|
673
1050
|
}
|
674
|
-
}
|
675
|
-
|
1051
|
+
}
|
676
1052
|
|
677
|
-
|
678
|
-
|
1053
|
+
// rule and node match. Search the children of rule and node.
|
1054
|
+
if (node.args.length === 1 && rule.args.length === 1 || !isAssociative(node, context) && node.args.length === rule.args.length || isSplit) {
|
1055
|
+
// Expect non-associative operators to match exactly,
|
1056
|
+
// except in any order if operator is commutative
|
679
1057
|
var childMatches = [];
|
680
|
-
|
681
1058
|
for (var i = 0; i < rule.args.length; i++) {
|
682
|
-
var childMatch = _ruleMatch(rule.args[i], node.args[i]);
|
683
|
-
|
1059
|
+
var childMatch = _ruleMatch(rule.args[i], node.args[i], context);
|
684
1060
|
if (childMatch.length === 0) {
|
685
1061
|
// Child did not match, so stop searching immediately
|
686
|
-
|
687
|
-
}
|
688
|
-
|
689
|
-
|
1062
|
+
break;
|
1063
|
+
}
|
1064
|
+
// The child matched, so add the information returned from the child to our result
|
690
1065
|
childMatches.push(childMatch);
|
691
1066
|
}
|
692
|
-
|
1067
|
+
if (childMatches.length !== rule.args.length) {
|
1068
|
+
if (!isCommutative(node, context) ||
|
1069
|
+
// exact match in order needed
|
1070
|
+
rule.args.length === 1) {
|
1071
|
+
// nothing to commute
|
1072
|
+
return [];
|
1073
|
+
}
|
1074
|
+
if (rule.args.length > 2) {
|
1075
|
+
/* Need to generate all permutations and try them.
|
1076
|
+
* It's a bit complicated, and unlikely to come up since there
|
1077
|
+
* are very few ternary or higher operators. So punt for now.
|
1078
|
+
*/
|
1079
|
+
throw new Error('permuting >2 commutative non-associative rule arguments not yet implemented');
|
1080
|
+
}
|
1081
|
+
/* Exactly two arguments, try them reversed */
|
1082
|
+
var leftMatch = _ruleMatch(rule.args[0], node.args[1], context);
|
1083
|
+
if (leftMatch.length === 0) {
|
1084
|
+
return [];
|
1085
|
+
}
|
1086
|
+
var rightMatch = _ruleMatch(rule.args[1], node.args[0], context);
|
1087
|
+
if (rightMatch.length === 0) {
|
1088
|
+
return [];
|
1089
|
+
}
|
1090
|
+
childMatches = [leftMatch, rightMatch];
|
1091
|
+
}
|
693
1092
|
res = mergeChildMatches(childMatches);
|
694
1093
|
} else if (node.args.length >= 2 && rule.args.length === 2) {
|
695
1094
|
// node is flattened, rule is not
|
696
|
-
// Associative operators/functions can be split in different ways so we check if the rule
|
697
|
-
// them and return their union.
|
698
|
-
var splits = getSplits(node,
|
1095
|
+
// Associative operators/functions can be split in different ways so we check if the rule
|
1096
|
+
// matches for each of them and return their union.
|
1097
|
+
var splits = getSplits(node, context);
|
699
1098
|
var splitMatches = [];
|
700
|
-
|
701
|
-
|
702
|
-
var matchSet = _ruleMatch(rule, splits[_i], true); // recursing at the same tree depth here
|
703
|
-
|
704
|
-
|
1099
|
+
for (var _i2 = 0; _i2 < splits.length; _i2++) {
|
1100
|
+
var matchSet = _ruleMatch(rule, splits[_i2], context, true); // recursing at the same tree depth here
|
705
1101
|
splitMatches = splitMatches.concat(matchSet);
|
706
1102
|
}
|
707
|
-
|
708
1103
|
return splitMatches;
|
709
1104
|
} else if (rule.args.length > 2) {
|
710
1105
|
throw Error('Unexpected non-binary associative function: ' + rule.toString());
|
@@ -714,41 +1109,93 @@ export var createSimplify = /* #__PURE__ */factory(name, dependencies, (_ref) =>
|
|
714
1109
|
}
|
715
1110
|
} else if (rule instanceof SymbolNode) {
|
716
1111
|
// If the rule is a SymbolNode, then it carries a special meaning
|
717
|
-
// according to the first
|
718
|
-
//
|
719
|
-
// n.* matches any node
|
1112
|
+
// according to the first one or two characters of the symbol node name.
|
1113
|
+
// These meanings are expalined in the documentation for simplify()
|
720
1114
|
if (rule.name.length === 0) {
|
721
1115
|
throw new Error('Symbol in rule has 0 length...!?');
|
722
1116
|
}
|
723
|
-
|
724
1117
|
if (SUPPORTED_CONSTANTS[rule.name]) {
|
725
1118
|
// built-in constant must match exactly
|
726
1119
|
if (rule.name !== node.name) {
|
727
1120
|
return [];
|
728
1121
|
}
|
729
|
-
} else if (rule.name[0] === 'n' || rule.name.substring(0, 2) === '_p') {
|
730
|
-
// rule matches _anything_, so assign this node to the rule.name placeholder
|
731
|
-
// Assign node to the rule.name placeholder.
|
732
|
-
// Our parent will check for matches among placeholders.
|
733
|
-
res[0].placeholders[rule.name] = node;
|
734
|
-
} else if (rule.name[0] === 'v') {
|
735
|
-
// rule matches any variable thing (not a ConstantNode)
|
736
|
-
if (!isConstantNode(node)) {
|
737
|
-
res[0].placeholders[rule.name] = node;
|
738
|
-
} else {
|
739
|
-
// Mis-match: rule was expecting something other than a ConstantNode
|
740
|
-
return [];
|
741
|
-
}
|
742
|
-
} else if (rule.name[0] === 'c') {
|
743
|
-
// rule matches any ConstantNode
|
744
|
-
if (node instanceof ConstantNode) {
|
745
|
-
res[0].placeholders[rule.name] = node;
|
746
|
-
} else {
|
747
|
-
// Mis-match: rule was expecting a ConstantNode
|
748
|
-
return [];
|
749
|
-
}
|
750
1122
|
} else {
|
751
|
-
|
1123
|
+
// wildcards are composed of up to two alphabetic or underscore characters
|
1124
|
+
switch (rule.name[1] >= 'a' && rule.name[1] <= 'z' ? rule.name.substring(0, 2) : rule.name[0]) {
|
1125
|
+
case 'n':
|
1126
|
+
case '_p':
|
1127
|
+
// rule matches _anything_, so assign this node to the rule.name placeholder
|
1128
|
+
// Assign node to the rule.name placeholder.
|
1129
|
+
// Our parent will check for matches among placeholders.
|
1130
|
+
res[0].placeholders[rule.name] = node;
|
1131
|
+
break;
|
1132
|
+
case 'c':
|
1133
|
+
case 'cl':
|
1134
|
+
// rule matches a ConstantNode
|
1135
|
+
if (isConstantNode(node)) {
|
1136
|
+
res[0].placeholders[rule.name] = node;
|
1137
|
+
} else {
|
1138
|
+
// mis-match: rule does not encompass current node
|
1139
|
+
return [];
|
1140
|
+
}
|
1141
|
+
break;
|
1142
|
+
case 'v':
|
1143
|
+
// rule matches anything other than a ConstantNode
|
1144
|
+
if (!isConstantNode(node)) {
|
1145
|
+
res[0].placeholders[rule.name] = node;
|
1146
|
+
} else {
|
1147
|
+
// mis-match: rule does not encompass current node
|
1148
|
+
return [];
|
1149
|
+
}
|
1150
|
+
break;
|
1151
|
+
case 'vl':
|
1152
|
+
// rule matches VariableNode
|
1153
|
+
if (isVariableNode(node)) {
|
1154
|
+
res[0].placeholders[rule.name] = node;
|
1155
|
+
} else {
|
1156
|
+
// mis-match: rule does not encompass current node
|
1157
|
+
return [];
|
1158
|
+
}
|
1159
|
+
break;
|
1160
|
+
case 'cd':
|
1161
|
+
// rule matches a ConstantNode or unaryMinus-wrapped ConstantNode
|
1162
|
+
if (isNumericNode(node)) {
|
1163
|
+
res[0].placeholders[rule.name] = node;
|
1164
|
+
} else {
|
1165
|
+
// mis-match: rule does not encompass current node
|
1166
|
+
return [];
|
1167
|
+
}
|
1168
|
+
break;
|
1169
|
+
case 'vd':
|
1170
|
+
// rule matches anything other than a ConstantNode or unaryMinus-wrapped ConstantNode
|
1171
|
+
if (!isNumericNode(node)) {
|
1172
|
+
res[0].placeholders[rule.name] = node;
|
1173
|
+
} else {
|
1174
|
+
// mis-match: rule does not encompass current node
|
1175
|
+
return [];
|
1176
|
+
}
|
1177
|
+
break;
|
1178
|
+
case 'ce':
|
1179
|
+
// rule matches expressions that have a constant value
|
1180
|
+
if (isConstantExpression(node)) {
|
1181
|
+
res[0].placeholders[rule.name] = node;
|
1182
|
+
} else {
|
1183
|
+
// mis-match: rule does not encompass current node
|
1184
|
+
return [];
|
1185
|
+
}
|
1186
|
+
break;
|
1187
|
+
case 've':
|
1188
|
+
// rule matches expressions that do not have a constant value
|
1189
|
+
if (!isConstantExpression(node)) {
|
1190
|
+
res[0].placeholders[rule.name] = node;
|
1191
|
+
} else {
|
1192
|
+
// mis-match: rule does not encompass current node
|
1193
|
+
return [];
|
1194
|
+
}
|
1195
|
+
break;
|
1196
|
+
default:
|
1197
|
+
throw new Error('Invalid symbol in rule: ' + rule.name);
|
1198
|
+
}
|
752
1199
|
}
|
753
1200
|
} else if (rule instanceof ConstantNode) {
|
754
1201
|
// Literal constant must match exactly
|
@@ -758,12 +1205,14 @@ export var createSimplify = /* #__PURE__ */factory(name, dependencies, (_ref) =>
|
|
758
1205
|
} else {
|
759
1206
|
// Some other node was encountered which we aren't prepared for, so no match
|
760
1207
|
return [];
|
761
|
-
}
|
762
|
-
// console.log('_ruleMatch(' + rule.toString() + ', ' + node.toString() + ') found a match')
|
1208
|
+
}
|
763
1209
|
|
1210
|
+
// It's a match!
|
764
1211
|
|
1212
|
+
// console.log('_ruleMatch(' + rule.toString() + ', ' + node.toString() + ') found a match')
|
765
1213
|
return res;
|
766
1214
|
}
|
1215
|
+
|
767
1216
|
/**
|
768
1217
|
* Determines whether p and q (and all their children nodes) are identical.
|
769
1218
|
*
|
@@ -771,8 +1220,6 @@ export var createSimplify = /* #__PURE__ */factory(name, dependencies, (_ref) =>
|
|
771
1220
|
* @param {ConstantNode | SymbolNode | ParenthesisNode | FunctionNode | OperatorNode} q
|
772
1221
|
* @return {Object} Information about the match, if it exists.
|
773
1222
|
*/
|
774
|
-
|
775
|
-
|
776
1223
|
function _exactMatch(p, q) {
|
777
1224
|
if (p instanceof ConstantNode && q instanceof ConstantNode) {
|
778
1225
|
if (!equal(p.value, q.value)) {
|
@@ -792,11 +1239,9 @@ export var createSimplify = /* #__PURE__ */factory(name, dependencies, (_ref) =>
|
|
792
1239
|
return false;
|
793
1240
|
}
|
794
1241
|
}
|
795
|
-
|
796
1242
|
if (p.args.length !== q.args.length) {
|
797
1243
|
return false;
|
798
1244
|
}
|
799
|
-
|
800
1245
|
for (var i = 0; i < p.args.length; i++) {
|
801
1246
|
if (!_exactMatch(p.args[i], q.args[i])) {
|
802
1247
|
return false;
|
@@ -805,9 +1250,7 @@ export var createSimplify = /* #__PURE__ */factory(name, dependencies, (_ref) =>
|
|
805
1250
|
} else {
|
806
1251
|
return false;
|
807
1252
|
}
|
808
|
-
|
809
1253
|
return true;
|
810
1254
|
}
|
811
|
-
|
812
1255
|
return simplify;
|
813
1256
|
});
|