mathjs 12.3.0 → 12.3.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.
Files changed (37) hide show
  1. package/HISTORY.md +19 -0
  2. package/lib/browser/math.js +1 -1
  3. package/lib/browser/math.js.LICENSE.txt +2 -2
  4. package/lib/browser/math.js.map +1 -1
  5. package/lib/cjs/entry/configReadonly.js +1 -1
  6. package/lib/cjs/entry/dependenciesAny/dependenciesHelpClass.generated.js +2 -2
  7. package/lib/cjs/entry/dependenciesNumber/dependenciesHelpClass.generated.js +2 -2
  8. package/lib/cjs/entry/impureFunctionsAny.generated.js +14 -14
  9. package/lib/cjs/entry/impureFunctionsNumber.generated.js +1 -1
  10. package/lib/cjs/entry/pureFunctionsAny.generated.js +11 -11
  11. package/lib/cjs/expression/Help.js +21 -4
  12. package/lib/cjs/function/string/bin.js +3 -3
  13. package/lib/cjs/function/string/format.js +3 -3
  14. package/lib/cjs/function/string/hex.js +3 -3
  15. package/lib/cjs/function/string/oct.js +3 -3
  16. package/lib/cjs/header.js +2 -2
  17. package/lib/cjs/type/unit/physicalConstants.js +1 -1
  18. package/lib/cjs/utils/bignumber/formatter.js +17 -27
  19. package/lib/cjs/utils/number.js +75 -33
  20. package/lib/cjs/version.js +1 -1
  21. package/lib/esm/entry/configReadonly.js +1 -1
  22. package/lib/esm/entry/dependenciesAny/dependenciesHelpClass.generated.js +2 -2
  23. package/lib/esm/entry/dependenciesNumber/dependenciesHelpClass.generated.js +2 -2
  24. package/lib/esm/entry/impureFunctionsAny.generated.js +16 -16
  25. package/lib/esm/entry/impureFunctionsNumber.generated.js +1 -1
  26. package/lib/esm/entry/pureFunctionsAny.generated.js +12 -12
  27. package/lib/esm/expression/Help.js +21 -4
  28. package/lib/esm/function/string/bin.js +3 -3
  29. package/lib/esm/function/string/format.js +3 -3
  30. package/lib/esm/function/string/hex.js +3 -3
  31. package/lib/esm/function/string/oct.js +3 -3
  32. package/lib/esm/type/unit/physicalConstants.js +1 -1
  33. package/lib/esm/utils/bignumber/formatter.js +19 -28
  34. package/lib/esm/utils/number.js +76 -34
  35. package/lib/esm/version.js +1 -1
  36. package/package.json +11 -11
  37. package/types/index.d.ts +30 -18
@@ -4,10 +4,10 @@ import _extends from "@babel/runtime/helpers/extends";
4
4
  * DON'T MAKE CHANGES HERE
5
5
  */
6
6
  import { config } from './configReadonly.js';
7
- import { createNode, createObjectNode, createOperatorNode, createParenthesisNode, createRelationalNode, createArrayNode, createBlockNode, createConditionalNode, createConstantNode, createRangeNode, createReviver, createChainClass, createFunctionAssignmentNode, createChain, createIndexNode, createAccessorNode, createAssignmentNode, createSymbolNode, createFunctionNode, createParse, createResolve, createSimplifyConstant, createCompile, createHelpClass, createLeafCount, createSimplifyCore, createEvaluate, createHelp, createParserClass, createSimplify, createSymbolicEqual, createParser, createRationalize, createDerivative, createFilterTransform, createForEachTransform, createMapTransform, createApplyTransform, createOrTransform, createAndTransform, createConcatTransform, createMaxTransform, createPrintTransform, createBitAndTransform, createDiffTransform, createMinTransform, createSubsetTransform, createBitOrTransform, createCumSumTransform, createIndexTransform, createSumTransform, createRangeTransform, createRowTransform, createColumnTransform, createMeanTransform, createQuantileSeqTransform, createVarianceTransform, createStdTransform } from '../factoriesAny.js';
7
+ import { createNode, createObjectNode, createOperatorNode, createParenthesisNode, createRelationalNode, createArrayNode, createBlockNode, createConditionalNode, createConstantNode, createRangeNode, createReviver, createChainClass, createFunctionAssignmentNode, createChain, createIndexNode, createAccessorNode, createAssignmentNode, createSymbolNode, createFunctionNode, createParse, createResolve, createSimplifyConstant, createCompile, createSimplifyCore, createEvaluate, createHelpClass, createParserClass, createSimplify, createSymbolicEqual, createLeafCount, createParser, createRationalize, createDerivative, createHelp, createFilterTransform, createForEachTransform, createMapTransform, createApplyTransform, createOrTransform, createAndTransform, createConcatTransform, createMaxTransform, createPrintTransform, createBitAndTransform, createDiffTransform, createMinTransform, createSubsetTransform, createBitOrTransform, createCumSumTransform, createIndexTransform, createSumTransform, createRangeTransform, createRowTransform, createColumnTransform, createMeanTransform, createQuantileSeqTransform, createVarianceTransform, createStdTransform } from '../factoriesAny.js';
8
8
  import { BigNumber, Complex, e, _false, fineStructure, Fraction, i, _Infinity, LN10, LOG10E, Matrix, _NaN, _null, phi, Range, ResultSet, SQRT1_2,
9
9
  // eslint-disable-line camelcase
10
- sackurTetrode, tau, _true, version, DenseMatrix, efimovFactor, LN2, pi, replacer, SQRT2, typed, unaryPlus, weakMixingAngle, abs, acos, acot, acsc, addScalar, arg, asech, asinh, atan, atanh, bignumber, bitNot, boolean, clone, combinations, complex, conj, cos, cot, csc, cube, equalScalar, erf, exp, expm1, filter, forEach, format, getMatrixDataType, hex, im, isInteger, isNegative, isPositive, isZero, LOG2E, lgamma, log10, log2, map, multiplyScalar, not, number, oct, pickRandom, print, random, re, sec, sign, sin, SparseMatrix, splitUnit, square, string, subtractScalar, tan, typeOf, acosh, acsch, apply, asec, bin, combinationsWithRep, cosh, csch, isNaN, isPrime, randomInt, sech, sinh, sparse, sqrt, tanh, unaryMinus, acoth, coth, fraction, isNumeric, matrix, matrixFromFunction, mode, numeric, prod, reshape, size, squeeze, transpose, xgcd, zeros, asin, cbrt, concat, count, ctranspose, diag, divideScalar, dotDivide, equal, flatten, hasNumericValue, identity, kron, largerEq, leftShift, lsolve, matrixFromColumns, nthRoot, ones, qr, resize, rightArithShift, round, smaller, subtract, to, unequal, usolve, xor, add, atan2, bitAnd, bitOr, bitXor, catalan, compare, compareText, cumsum, deepEqual, diff, distance, dot, equalText, floor, gcd, hypot, ImmutableDenseMatrix, Index, larger, log, lsolveAll, matrixFromRows, min, mod, multiply, nthRoots, or, partitionSelect, rightLogShift, slu, subset, sum, trace, usolveAll, zpk2tf, ceil, compareNatural, composition, cross, det, dotMultiply, FibonacciHeap, fix, index, intersect, invmod, lcm, log1p, max, setCartesian, setDistinct, setIsSubset, setPowerset, smallerEq, sort, and, range, row, setDifference, setMultiplicity, setSymDifference, Spa, column, inv, lup, pinv, pow, setIntersect, setUnion, sqrtm, Unit, vacuumImpedance, wienDisplacement, atomicMass, bohrMagneton, boltzmann, conductanceQuantum, coulomb, deuteronMass, dotPow, electricConstant, elementaryCharge, expm, faraday, fft, gamma, gravitationConstant, hartreeEnergy, ifft, klitzing, loschmidt, magneticConstant, molarMass, molarPlanckConstant, neutronMass, nuclearMagneton, planckCharge, planckLength, planckTemperature, protonMass, quantumOfCirculation, reducedPlanckConstant, rydberg, secondRadiation, speedOfLight, stefanBoltzmann, thomsonCrossSection, avogadro, bohrRadius, createUnit, divide, electronMass, factorial, firstRadiation, gravity, inverseConductanceQuantum, lusolve, magneticFluxQuantum, molarMassC12, multinomial, permutations, planckMass, polynomialRoot, setSize, solveODE, stirlingS2, unit, bellNumbers, eigs, fermiCoupling, gasConstant, mean, molarVolume, planckConstant, quantileSeq, variance, classicalElectronRadius, median, corr, freqz, mad, std, zeta, norm, rotationMatrix, kldivergence, planckTime, schur, rotate, sylvester, lyap } from './pureFunctionsAny.generated.js';
10
+ sackurTetrode, tau, _true, version, DenseMatrix, efimovFactor, LN2, pi, replacer, SQRT2, typed, unaryPlus, weakMixingAngle, abs, acos, acot, acsc, addScalar, arg, asech, asinh, atan, atanh, bignumber, bitNot, boolean, clone, combinations, complex, conj, cos, cot, csc, cube, equalScalar, erf, exp, expm1, filter, forEach, format, getMatrixDataType, hex, im, isInteger, isNegative, isPositive, isZero, LOG2E, lgamma, log10, log2, map, multiplyScalar, not, number, oct, pickRandom, print, random, re, sec, sign, sin, SparseMatrix, splitUnit, square, string, subtractScalar, tan, typeOf, acosh, acsch, apply, asec, bin, combinationsWithRep, cosh, csch, isNaN, isPrime, randomInt, sech, sinh, sparse, sqrt, tanh, unaryMinus, acoth, coth, fraction, isNumeric, matrix, matrixFromFunction, mode, numeric, prod, reshape, size, squeeze, transpose, xgcd, zeros, asin, cbrt, concat, count, ctranspose, diag, divideScalar, dotDivide, equal, flatten, hasNumericValue, identity, kron, largerEq, leftShift, lsolve, matrixFromColumns, nthRoot, ones, qr, resize, rightArithShift, round, smaller, subtract, to, unequal, usolve, xor, add, atan2, bitAnd, bitOr, bitXor, catalan, compare, compareText, cumsum, deepEqual, diff, distance, dot, equalText, floor, gcd, hypot, ImmutableDenseMatrix, Index, larger, log, lsolveAll, matrixFromRows, min, mod, multiply, nthRoots, or, partitionSelect, rightLogShift, slu, subset, sum, trace, usolveAll, zpk2tf, ceil, compareNatural, composition, cross, det, dotMultiply, FibonacciHeap, fix, index, intersect, invmod, lcm, log1p, max, setCartesian, setDistinct, setIsSubset, setPowerset, smallerEq, sort, and, range, row, setDifference, setMultiplicity, setSymDifference, Spa, column, inv, lup, pinv, pow, setIntersect, setUnion, sqrtm, Unit, vacuumImpedance, wienDisplacement, atomicMass, bohrMagneton, boltzmann, conductanceQuantum, coulomb, deuteronMass, dotPow, electricConstant, elementaryCharge, expm, faraday, fft, gamma, gravitationConstant, hartreeEnergy, ifft, klitzing, loschmidt, magneticConstant, molarMass, molarPlanckConstant, neutronMass, nuclearMagneton, planckCharge, planckLength, planckTemperature, protonMass, quantumOfCirculation, reducedPlanckConstant, rydberg, secondRadiation, speedOfLight, stefanBoltzmann, thomsonCrossSection, avogadro, bohrRadius, createUnit, divide, electronMass, factorial, firstRadiation, gravity, inverseConductanceQuantum, lusolve, magneticFluxQuantum, molarMassC12, multinomial, permutations, planckMass, polynomialRoot, setSize, solveODE, stirlingS2, unit, bellNumbers, eigs, fermiCoupling, gasConstant, kldivergence, mean, molarVolume, planckConstant, quantileSeq, variance, classicalElectronRadius, median, corr, freqz, mad, std, zeta, norm, rotationMatrix, planckTime, schur, rotate, sylvester, lyap } from './pureFunctionsAny.generated.js';
11
11
  var math = {}; // NOT pure!
12
12
  var mathWithTransform = {}; // NOT pure!
13
13
  var classes = {}; // NOT pure!
@@ -129,13 +129,6 @@ export var compile = createCompile({
129
129
  parse,
130
130
  typed
131
131
  });
132
- export var Help = createHelpClass({
133
- parse
134
- });
135
- export var leafCount = createLeafCount({
136
- parse,
137
- typed
138
- });
139
132
  export var simplifyCore = createSimplifyCore({
140
133
  AccessorNode,
141
134
  ArrayNode,
@@ -160,10 +153,8 @@ export var evaluate = createEvaluate({
160
153
  parse,
161
154
  typed
162
155
  });
163
- export var help = createHelp({
164
- Help,
165
- mathWithTransform,
166
- typed
156
+ export var Help = createHelpClass({
157
+ evaluate
167
158
  });
168
159
  export var Parser = createParserClass({
169
160
  evaluate
@@ -202,6 +193,10 @@ export var symbolicEqual = createSymbolicEqual({
202
193
  simplify,
203
194
  typed
204
195
  });
196
+ export var leafCount = createLeafCount({
197
+ parse,
198
+ typed
199
+ });
205
200
  export var parser = createParser({
206
201
  Parser,
207
202
  typed
@@ -248,6 +243,11 @@ export var derivative = createDerivative({
248
243
  simplify,
249
244
  typed
250
245
  });
246
+ export var help = createHelp({
247
+ Help,
248
+ mathWithTransform,
249
+ typed
250
+ });
251
251
  _extends(math, {
252
252
  e,
253
253
  false: _false,
@@ -525,7 +525,7 @@ _extends(math, {
525
525
  eigs,
526
526
  fermiCoupling,
527
527
  gasConstant,
528
- leafCount,
528
+ kldivergence,
529
529
  mean,
530
530
  molarVolume,
531
531
  planckConstant,
@@ -534,12 +534,12 @@ _extends(math, {
534
534
  variance,
535
535
  classicalElectronRadius,
536
536
  evaluate,
537
- help,
538
537
  median,
539
538
  simplify,
540
539
  symbolicEqual,
541
540
  corr,
542
541
  freqz,
542
+ leafCount,
543
543
  mad,
544
544
  parser,
545
545
  rationalize,
@@ -548,7 +548,7 @@ _extends(math, {
548
548
  derivative,
549
549
  norm,
550
550
  rotationMatrix,
551
- kldivergence,
551
+ help,
552
552
  planckTime,
553
553
  schur,
554
554
  rotate,
@@ -151,7 +151,7 @@ export var evaluate = createEvaluate({
151
151
  typed
152
152
  });
153
153
  export var Help = createHelpClass({
154
- parse
154
+ evaluate
155
155
  });
156
156
  export var Parser = createParserClass({
157
157
  evaluate
@@ -5,7 +5,7 @@
5
5
  import { config } from './configReadonly.js';
6
6
  import { createBigNumberClass, createComplexClass, createE, createFalse, createFineStructure, createFractionClass, createI, createInfinity, createLN10, createLOG10E, createMatrixClass, createNaN, createNull, createPhi, createRangeClass, createResultSet, createSQRT1_2,
7
7
  // eslint-disable-line camelcase
8
- createSackurTetrode, createTau, createTrue, createVersion, createDenseMatrixClass, createEfimovFactor, createLN2, createPi, createReplacer, createSQRT2, createTyped, createUnaryPlus, createWeakMixingAngle, createAbs, createAcos, createAcot, createAcsc, createAddScalar, createArg, createAsech, createAsinh, createAtan, createAtanh, createBignumber, createBitNot, createBoolean, createClone, createCombinations, createComplex, createConj, createCos, createCot, createCsc, createCube, createEqualScalar, createErf, createExp, createExpm1, createFilter, createForEach, createFormat, createGetMatrixDataType, createHex, createIm, createIsInteger, createIsNegative, createIsPositive, createIsZero, createLOG2E, createLgamma, createLog10, createLog2, createMap, createMultiplyScalar, createNot, createNumber, createOct, createPickRandom, createPrint, createRandom, createRe, createSec, createSign, createSin, createSparseMatrixClass, createSplitUnit, createSquare, createString, createSubtractScalar, createTan, createTypeOf, createAcosh, createAcsch, createApply, createAsec, createBin, createCombinationsWithRep, createCosh, createCsch, createIsNaN, createIsPrime, createRandomInt, createSech, createSinh, createSparse, createSqrt, createTanh, createUnaryMinus, createAcoth, createCoth, createFraction, createIsNumeric, createMatrix, createMatrixFromFunction, createMode, createNumeric, createProd, createReshape, createSize, createSqueeze, createTranspose, createXgcd, createZeros, createAsin, createCbrt, createConcat, createCount, createCtranspose, createDiag, createDivideScalar, createDotDivide, createEqual, createFlatten, createHasNumericValue, createIdentity, createKron, createLargerEq, createLeftShift, createLsolve, createMatrixFromColumns, createNthRoot, createOnes, createQr, createResize, createRightArithShift, createRound, createSmaller, createSubtract, createTo, createUnequal, createUsolve, createXor, createAdd, createAtan2, createBitAnd, createBitOr, createBitXor, createCatalan, createCompare, createCompareText, createCumSum, createDeepEqual, createDiff, createDistance, createDot, createEqualText, createFloor, createGcd, createHypot, createImmutableDenseMatrixClass, createIndexClass, createLarger, createLog, createLsolveAll, createMatrixFromRows, createMin, createMod, createMultiply, createNthRoots, createOr, createPartitionSelect, createRightLogShift, createSlu, createSubset, createSum, createTrace, createUsolveAll, createZpk2tf, createCeil, createCompareNatural, createComposition, createCross, createDet, createDotMultiply, createFibonacciHeapClass, createFix, createIndex, createIntersect, createInvmod, createLcm, createLog1p, createMax, createSetCartesian, createSetDistinct, createSetIsSubset, createSetPowerset, createSmallerEq, createSort, createAnd, createRange, createRow, createSetDifference, createSetMultiplicity, createSetSymDifference, createSpaClass, createColumn, createInv, createLup, createPinv, createPow, createSetIntersect, createSetUnion, createSqrtm, createUnitClass, createVacuumImpedance, createWienDisplacement, createAtomicMass, createBohrMagneton, createBoltzmann, createConductanceQuantum, createCoulomb, createDeuteronMass, createDotPow, createElectricConstant, createElementaryCharge, createExpm, createFaraday, createFft, createGamma, createGravitationConstant, createHartreeEnergy, createIfft, createKlitzing, createLoschmidt, createMagneticConstant, createMolarMass, createMolarPlanckConstant, createNeutronMass, createNuclearMagneton, createPlanckCharge, createPlanckLength, createPlanckTemperature, createProtonMass, createQuantumOfCirculation, createReducedPlanckConstant, createRydberg, createSecondRadiation, createSpeedOfLight, createStefanBoltzmann, createThomsonCrossSection, createAvogadro, createBohrRadius, createCreateUnit, createDivide, createElectronMass, createFactorial, createFirstRadiation, createGravity, createInverseConductanceQuantum, createLusolve, createMagneticFluxQuantum, createMolarMassC12, createMultinomial, createPermutations, createPlanckMass, createPolynomialRoot, createSetSize, createSolveODE, createStirlingS2, createUnitFunction, createBellNumbers, createEigs, createFermiCoupling, createGasConstant, createMean, createMolarVolume, createPlanckConstant, createQuantileSeq, createVariance, createClassicalElectronRadius, createMedian, createCorr, createFreqz, createMad, createStd, createZeta, createNorm, createRotationMatrix, createKldivergence, createPlanckTime, createSchur, createRotate, createSylvester, createLyap } from '../factoriesAny.js';
8
+ createSackurTetrode, createTau, createTrue, createVersion, createDenseMatrixClass, createEfimovFactor, createLN2, createPi, createReplacer, createSQRT2, createTyped, createUnaryPlus, createWeakMixingAngle, createAbs, createAcos, createAcot, createAcsc, createAddScalar, createArg, createAsech, createAsinh, createAtan, createAtanh, createBignumber, createBitNot, createBoolean, createClone, createCombinations, createComplex, createConj, createCos, createCot, createCsc, createCube, createEqualScalar, createErf, createExp, createExpm1, createFilter, createForEach, createFormat, createGetMatrixDataType, createHex, createIm, createIsInteger, createIsNegative, createIsPositive, createIsZero, createLOG2E, createLgamma, createLog10, createLog2, createMap, createMultiplyScalar, createNot, createNumber, createOct, createPickRandom, createPrint, createRandom, createRe, createSec, createSign, createSin, createSparseMatrixClass, createSplitUnit, createSquare, createString, createSubtractScalar, createTan, createTypeOf, createAcosh, createAcsch, createApply, createAsec, createBin, createCombinationsWithRep, createCosh, createCsch, createIsNaN, createIsPrime, createRandomInt, createSech, createSinh, createSparse, createSqrt, createTanh, createUnaryMinus, createAcoth, createCoth, createFraction, createIsNumeric, createMatrix, createMatrixFromFunction, createMode, createNumeric, createProd, createReshape, createSize, createSqueeze, createTranspose, createXgcd, createZeros, createAsin, createCbrt, createConcat, createCount, createCtranspose, createDiag, createDivideScalar, createDotDivide, createEqual, createFlatten, createHasNumericValue, createIdentity, createKron, createLargerEq, createLeftShift, createLsolve, createMatrixFromColumns, createNthRoot, createOnes, createQr, createResize, createRightArithShift, createRound, createSmaller, createSubtract, createTo, createUnequal, createUsolve, createXor, createAdd, createAtan2, createBitAnd, createBitOr, createBitXor, createCatalan, createCompare, createCompareText, createCumSum, createDeepEqual, createDiff, createDistance, createDot, createEqualText, createFloor, createGcd, createHypot, createImmutableDenseMatrixClass, createIndexClass, createLarger, createLog, createLsolveAll, createMatrixFromRows, createMin, createMod, createMultiply, createNthRoots, createOr, createPartitionSelect, createRightLogShift, createSlu, createSubset, createSum, createTrace, createUsolveAll, createZpk2tf, createCeil, createCompareNatural, createComposition, createCross, createDet, createDotMultiply, createFibonacciHeapClass, createFix, createIndex, createIntersect, createInvmod, createLcm, createLog1p, createMax, createSetCartesian, createSetDistinct, createSetIsSubset, createSetPowerset, createSmallerEq, createSort, createAnd, createRange, createRow, createSetDifference, createSetMultiplicity, createSetSymDifference, createSpaClass, createColumn, createInv, createLup, createPinv, createPow, createSetIntersect, createSetUnion, createSqrtm, createUnitClass, createVacuumImpedance, createWienDisplacement, createAtomicMass, createBohrMagneton, createBoltzmann, createConductanceQuantum, createCoulomb, createDeuteronMass, createDotPow, createElectricConstant, createElementaryCharge, createExpm, createFaraday, createFft, createGamma, createGravitationConstant, createHartreeEnergy, createIfft, createKlitzing, createLoschmidt, createMagneticConstant, createMolarMass, createMolarPlanckConstant, createNeutronMass, createNuclearMagneton, createPlanckCharge, createPlanckLength, createPlanckTemperature, createProtonMass, createQuantumOfCirculation, createReducedPlanckConstant, createRydberg, createSecondRadiation, createSpeedOfLight, createStefanBoltzmann, createThomsonCrossSection, createAvogadro, createBohrRadius, createCreateUnit, createDivide, createElectronMass, createFactorial, createFirstRadiation, createGravity, createInverseConductanceQuantum, createLusolve, createMagneticFluxQuantum, createMolarMassC12, createMultinomial, createPermutations, createPlanckMass, createPolynomialRoot, createSetSize, createSolveODE, createStirlingS2, createUnitFunction, createBellNumbers, createEigs, createFermiCoupling, createGasConstant, createKldivergence, createMean, createMolarVolume, createPlanckConstant, createQuantileSeq, createVariance, createClassicalElectronRadius, createMedian, createCorr, createFreqz, createMad, createStd, createZeta, createNorm, createRotationMatrix, createPlanckTime, createSchur, createRotate, createSylvester, createLyap } from '../factoriesAny.js';
9
9
  export var BigNumber = /* #__PURE__ */createBigNumberClass({
10
10
  config
11
11
  });
@@ -1602,6 +1602,17 @@ export var gasConstant = /* #__PURE__ */createGasConstant({
1602
1602
  Unit,
1603
1603
  config
1604
1604
  });
1605
+ export var kldivergence = /* #__PURE__ */createKldivergence({
1606
+ divide,
1607
+ dotDivide,
1608
+ isNumeric,
1609
+ log,
1610
+ map,
1611
+ matrix,
1612
+ multiply,
1613
+ sum,
1614
+ typed
1615
+ });
1605
1616
  export var mean = /* #__PURE__ */createMean({
1606
1617
  add,
1607
1618
  divide,
@@ -1732,17 +1743,6 @@ export var rotationMatrix = /* #__PURE__ */createRotationMatrix({
1732
1743
  typed,
1733
1744
  unaryMinus
1734
1745
  });
1735
- export var kldivergence = /* #__PURE__ */createKldivergence({
1736
- divide,
1737
- dotDivide,
1738
- isNumeric,
1739
- log,
1740
- map,
1741
- matrix,
1742
- multiply,
1743
- sum,
1744
- typed
1745
- });
1746
1746
  export var planckTime = /* #__PURE__ */createPlanckTime({
1747
1747
  BigNumber,
1748
1748
  Unit,
@@ -3,10 +3,10 @@ import { clone } from '../utils/object.js';
3
3
  import { format } from '../utils/string.js';
4
4
  import { factory } from '../utils/factory.js';
5
5
  var name = 'Help';
6
- var dependencies = ['parse'];
6
+ var dependencies = ['evaluate'];
7
7
  export var createHelpClass = /* #__PURE__ */factory(name, dependencies, _ref => {
8
8
  var {
9
- parse
9
+ evaluate
10
10
  } = _ref;
11
11
  /**
12
12
  * Documentation object
@@ -55,14 +55,26 @@ export var createHelpClass = /* #__PURE__ */factory(name, dependencies, _ref =>
55
55
  }
56
56
  if (doc.examples) {
57
57
  desc += 'Examples:\n';
58
- var scope = {};
58
+
59
+ // after evaluating the examples, we restore config in case the examples
60
+ // did change the config.
61
+ var configChanged = false;
62
+ var originalConfig = evaluate('config()');
63
+ var scope = {
64
+ config: newConfig => {
65
+ configChanged = true;
66
+ return evaluate('config(newConfig)', {
67
+ newConfig
68
+ });
69
+ }
70
+ };
59
71
  for (var i = 0; i < doc.examples.length; i++) {
60
72
  var expr = doc.examples[i];
61
73
  desc += ' ' + expr + '\n';
62
74
  var res = void 0;
63
75
  try {
64
76
  // note: res can be undefined when `expr` is an empty string
65
- res = parse(expr).compile().evaluate(scope);
77
+ res = evaluate(expr, scope);
66
78
  } catch (e) {
67
79
  res = e;
68
80
  }
@@ -73,6 +85,11 @@ export var createHelpClass = /* #__PURE__ */factory(name, dependencies, _ref =>
73
85
  }
74
86
  }
75
87
  desc += '\n';
88
+ if (configChanged) {
89
+ evaluate('config(originalConfig)', {
90
+ originalConfig
91
+ });
92
+ }
76
93
  }
77
94
  if (doc.mayThrow && doc.mayThrow.length) {
78
95
  desc += 'Throws: ' + doc.mayThrow.join(', ') + '\n\n';
@@ -19,8 +19,8 @@ var dependencies = ['typed', 'format'];
19
19
  * oct
20
20
  * hex
21
21
  *
22
- * @param {number} value Value to be stringified
23
- * @param {number} wordSize Optional word size (see `format`)
22
+ * @param {number | BigNumber} value Value to be stringified
23
+ * @param {number | BigNumber} wordSize Optional word size (see `format`)
24
24
  * @return {string} The formatted value
25
25
  */
26
26
  export var createBin = factory(name, dependencies, _ref => {
@@ -34,7 +34,7 @@ export var createBin = factory(name, dependencies, _ref => {
34
34
  notation: 'bin'
35
35
  });
36
36
  },
37
- 'number | BigNumber, number': function numberBigNumberNumber(n, wordSize) {
37
+ 'number | BigNumber, number | BigNumber': function numberBigNumberNumberBigNumber(n, wordSize) {
38
38
  return format(n, {
39
39
  notation: 'bin',
40
40
  wordSize
@@ -42,7 +42,7 @@ export var createFormat = /* #__PURE__ */factory(name, dependencies, _ref => {
42
42
  * - `'bin'`, `'oct'`, or `'hex'`
43
43
  * Format the number using binary, octal, or hexadecimal notation.
44
44
  * For example `'0b1101'` and `'0x10fe'`.
45
- * - `wordSize: number`
45
+ * - `wordSize: number | BigNumber`
46
46
  * The word size in bits to use for formatting in binary, octal, or
47
47
  * hexadecimal notation. To be used only with `'bin'`, `'oct'`, or `'hex'`
48
48
  * values for `notation` option. When this option is defined the value
@@ -50,7 +50,7 @@ export var createFormat = /* #__PURE__ */factory(name, dependencies, _ref => {
50
50
  * size and the size suffix is appended to the output.
51
51
  * For example `format(-1, {notation: 'hex', wordSize: 8}) === '0xffi8'`.
52
52
  * Default value is undefined.
53
- * - `precision: number`
53
+ * - `precision: number | BigNumber`
54
54
  * Limit the number of digits of the formatted value.
55
55
  * For regular numbers, must be a number between `0` and `16`.
56
56
  * For bignumbers, the maximum depends on the configured precision,
@@ -126,6 +126,6 @@ export var createFormat = /* #__PURE__ */factory(name, dependencies, _ref => {
126
126
  */
127
127
  return typed(name, {
128
128
  any: formatString,
129
- 'any, Object | function | number': formatString
129
+ 'any, Object | function | number | BigNumber': formatString
130
130
  });
131
131
  });
@@ -18,8 +18,8 @@ var dependencies = ['typed', 'format'];
18
18
  * oct
19
19
  * bin
20
20
  *
21
- * @param {number} value Value to be stringified
22
- * @param {number} wordSize Optional word size (see `format`)
21
+ * @param {number | BigNumber} value Value to be stringified
22
+ * @param {number | BigNumber} wordSize Optional word size (see `format`)
23
23
  * @return {string} The formatted value
24
24
  */
25
25
  export var createHex = factory(name, dependencies, _ref => {
@@ -33,7 +33,7 @@ export var createHex = factory(name, dependencies, _ref => {
33
33
  notation: 'hex'
34
34
  });
35
35
  },
36
- 'number | BigNumber, number': function numberBigNumberNumber(n, wordSize) {
36
+ 'number | BigNumber, number | BigNumber': function numberBigNumberNumberBigNumber(n, wordSize) {
37
37
  return format(n, {
38
38
  notation: 'hex',
39
39
  wordSize
@@ -19,8 +19,8 @@ var dependencies = ['typed', 'format'];
19
19
  * bin
20
20
  * hex
21
21
  *
22
- * @param {number} value Value to be stringified
23
- * @param {number} wordSize Optional word size (see `format`)
22
+ * @param {number | BigNumber} value Value to be stringified
23
+ * @param {number | BigNumber} wordSize Optional word size (see `format`)
24
24
  * @return {string} The formatted value
25
25
  */
26
26
 
@@ -35,7 +35,7 @@ export var createOct = factory(name, dependencies, _ref => {
35
35
  notation: 'oct'
36
36
  });
37
37
  },
38
- 'number | BigNumber, number': function numberBigNumberNumber(n, wordSize) {
38
+ 'number | BigNumber, number | BigNumber': function numberBigNumberNumberBigNumber(n, wordSize) {
39
39
  return format(n, {
40
40
  notation: 'oct',
41
41
  wordSize
@@ -44,7 +44,7 @@ export var createAvogadro = /* #__PURE__ */unitFactory('avogadro', '6.02214076e2
44
44
  export var createBoltzmann = /* #__PURE__ */unitFactory('boltzmann', '1.380649e-23', 'J K^-1');
45
45
  export var createFaraday = /* #__PURE__ */unitFactory('faraday', '96485.33212331001', 'C mol^-1');
46
46
  export var createFirstRadiation = /* #__PURE__ */unitFactory('firstRadiation', '3.7417718521927573e-16', 'W m^2');
47
- // export const createSpectralRadiance = /* #__PURE__ */ unitFactory('spectralRadiance', '1.1910429723971881e-16', 'W m^2 sr^-1') // TODO spectralRadiance
47
+ // TODO spectralRadiance = 1.1910429723971881e-16 W m^2 sr^-1
48
48
  export var createLoschmidt = /* #__PURE__ */unitFactory('loschmidt', '2.686780111798444e25', 'm^-3');
49
49
  export var createGasConstant = /* #__PURE__ */unitFactory('gasConstant', '8.31446261815324', 'J K^-1 mol^-1');
50
50
  export var createMolarPlanckConstant = /* #__PURE__ */unitFactory('molarPlanckConstant', '3.990312712893431e-10', 'J s mol^-1');
@@ -1,4 +1,5 @@
1
- import { isInteger } from '../number.js';
1
+ import { isBigNumber, isNumber } from '../is.js';
2
+ import { isInteger, normalizeFormatOptions } from '../number.js';
2
3
 
3
4
  /**
4
5
  * Formats a BigNumber in a given base
@@ -119,7 +120,7 @@ function formatBigNumberToBase(n, base, size) {
119
120
  * format(12400, {notation: 'engineering'}) // returns '12.400e+3'
120
121
  *
121
122
  * @param {BigNumber} value
122
- * @param {Object | Function | number} [options]
123
+ * @param {Object | Function | number | BigNumber} [options]
123
124
  * @return {string} str The formatted value
124
125
  */
125
126
  export function format(value, options) {
@@ -132,30 +133,11 @@ export function format(value, options) {
132
133
  if (!value.isFinite()) {
133
134
  return value.isNaN() ? 'NaN' : value.gt(0) ? 'Infinity' : '-Infinity';
134
135
  }
135
-
136
- // default values for options
137
- var notation = 'auto';
138
- var precision;
139
- var wordSize;
140
- if (options !== undefined) {
141
- // determine notation from options
142
- if (options.notation) {
143
- notation = options.notation;
144
- }
145
-
146
- // determine precision from options
147
- if (typeof options === 'number') {
148
- precision = options;
149
- } else if (options.precision !== undefined) {
150
- precision = options.precision;
151
- }
152
- if (options.wordSize) {
153
- wordSize = options.wordSize;
154
- if (typeof wordSize !== 'number') {
155
- throw new Error('Option "wordSize" must be a number');
156
- }
157
- }
158
- }
136
+ var {
137
+ notation,
138
+ precision,
139
+ wordSize
140
+ } = normalizeFormatOptions(options);
159
141
 
160
142
  // handle the various notations
161
143
  switch (notation) {
@@ -175,8 +157,8 @@ export function format(value, options) {
175
157
  {
176
158
  // determine lower and upper bound for exponential notation.
177
159
  // TODO: implement support for upper and lower to be BigNumbers themselves
178
- var lowerExp = options && options.lowerExp !== undefined ? options.lowerExp : -3;
179
- var upperExp = options && options.upperExp !== undefined ? options.upperExp : 5;
160
+ var lowerExp = _toNumberOrDefault(options === null || options === void 0 ? void 0 : options.lowerExp, -3);
161
+ var upperExp = _toNumberOrDefault(options === null || options === void 0 ? void 0 : options.upperExp, 5);
180
162
 
181
163
  // handle special case zero
182
164
  if (value.isZero()) return '0';
@@ -249,4 +231,13 @@ export function toExponential(value, precision) {
249
231
  */
250
232
  export function toFixed(value, precision) {
251
233
  return value.toFixed(precision);
234
+ }
235
+ function _toNumberOrDefault(value, defaultValue) {
236
+ if (isNumber(value)) {
237
+ return value;
238
+ } else if (isBigNumber(value)) {
239
+ return value.toNumber();
240
+ } else {
241
+ return defaultValue;
242
+ }
252
243
  }
@@ -1,4 +1,4 @@
1
- import { isNumber } from './is.js';
1
+ import { isBigNumber, isNumber, isObject } from './is.js';
2
2
 
3
3
  /**
4
4
  * @typedef {{sign: '+' | '-' | '', coefficients: number[], exponent: number}} SplitValue
@@ -21,7 +21,7 @@ export function isInteger(value) {
21
21
  * @param {number} x
22
22
  * @returns {number}
23
23
  */
24
- export var sign = /* #__PURE__ */Math.sign || function (x) {
24
+ export var sign = Math.sign || function (x) {
25
25
  if (x > 0) {
26
26
  return 1;
27
27
  } else if (x < 0) {
@@ -36,7 +36,7 @@ export var sign = /* #__PURE__ */Math.sign || function (x) {
36
36
  * @param {number} x
37
37
  * @returns {number}
38
38
  */
39
- export var log2 = /* #__PURE__ */Math.log2 || function log2(x) {
39
+ export var log2 = Math.log2 || function log2(x) {
40
40
  return Math.log(x) / Math.LN2;
41
41
  };
42
42
 
@@ -45,7 +45,7 @@ export var log2 = /* #__PURE__ */Math.log2 || function log2(x) {
45
45
  * @param {number} x
46
46
  * @returns {number}
47
47
  */
48
- export var log10 = /* #__PURE__ */Math.log10 || function log10(x) {
48
+ export var log10 = Math.log10 || function log10(x) {
49
49
  return Math.log(x) / Math.LN10;
50
50
  };
51
51
 
@@ -54,7 +54,7 @@ export var log10 = /* #__PURE__ */Math.log10 || function log10(x) {
54
54
  * @param {number} x
55
55
  * @returns {number}
56
56
  */
57
- export var log1p = /* #__PURE__ */Math.log1p || function (x) {
57
+ export var log1p = Math.log1p || function (x) {
58
58
  return Math.log(x + 1);
59
59
  };
60
60
 
@@ -67,7 +67,7 @@ export var log1p = /* #__PURE__ */Math.log1p || function (x) {
67
67
  * @param {number} x
68
68
  * @returns {number} Returns the cubic root of x
69
69
  */
70
- export var cbrt = /* #__PURE__ */Math.cbrt || function cbrt(x) {
70
+ export var cbrt = Math.cbrt || function cbrt(x) {
71
71
  if (x === 0) {
72
72
  return x;
73
73
  }
@@ -91,7 +91,7 @@ export var cbrt = /* #__PURE__ */Math.cbrt || function cbrt(x) {
91
91
  * @param {number} x
92
92
  * @return {number} res
93
93
  */
94
- export var expm1 = /* #__PURE__ */Math.expm1 || function expm1(x) {
94
+ export var expm1 = Math.expm1 || function expm1(x) {
95
95
  return x >= 2e-4 || x <= -2e-4 ? Math.exp(x) - 1 : x + x * x / 2 + x * x * x / 6;
96
96
  };
97
97
 
@@ -234,30 +234,11 @@ export function format(value, options) {
234
234
  } else if (isNaN(value)) {
235
235
  return 'NaN';
236
236
  }
237
-
238
- // default values for options
239
- var notation = 'auto';
240
- var precision;
241
- var wordSize;
242
- if (options) {
243
- // determine notation from options
244
- if (options.notation) {
245
- notation = options.notation;
246
- }
247
-
248
- // determine precision from options
249
- if (isNumber(options)) {
250
- precision = options;
251
- } else if (isNumber(options.precision)) {
252
- precision = options.precision;
253
- }
254
- if (options.wordSize) {
255
- wordSize = options.wordSize;
256
- if (typeof wordSize !== 'number') {
257
- throw new Error('Option "wordSize" must be a number');
258
- }
259
- }
260
- }
237
+ var {
238
+ notation,
239
+ precision,
240
+ wordSize
241
+ } = normalizeFormatOptions(options);
261
242
 
262
243
  // handle the various notations
263
244
  switch (notation) {
@@ -275,7 +256,7 @@ export function format(value, options) {
275
256
  return formatNumberToBase(value, 16, wordSize);
276
257
  case 'auto':
277
258
  // remove trailing zeros after the decimal point
278
- return toPrecision(value, precision, options && options).replace(/((\.\d*?)(0+))($|e)/, function () {
259
+ return toPrecision(value, precision, options).replace(/((\.\d*?)(0+))($|e)/, function () {
279
260
  var digits = arguments[2];
280
261
  var e = arguments[4];
281
262
  return digits !== '.' ? digits + e : e;
@@ -285,6 +266,49 @@ export function format(value, options) {
285
266
  }
286
267
  }
287
268
 
269
+ /**
270
+ * Normalize format options into an object:
271
+ * {
272
+ * notation: string,
273
+ * precision: number | undefined,
274
+ * wordSize: number | undefined
275
+ * }
276
+ */
277
+ export function normalizeFormatOptions(options) {
278
+ // default values for options
279
+ var notation = 'auto';
280
+ var precision;
281
+ var wordSize;
282
+ if (options !== undefined) {
283
+ if (isNumber(options)) {
284
+ precision = options;
285
+ } else if (isBigNumber(options)) {
286
+ precision = options.toNumber();
287
+ } else if (isObject(options)) {
288
+ if (options.precision !== undefined) {
289
+ precision = _toNumberOrThrow(options.precision, () => {
290
+ throw new Error('Option "precision" must be a number or BigNumber');
291
+ });
292
+ }
293
+ if (options.wordSize !== undefined) {
294
+ wordSize = _toNumberOrThrow(options.wordSize, () => {
295
+ throw new Error('Option "wordSize" must be a number or BigNumber');
296
+ });
297
+ }
298
+ if (options.notation) {
299
+ notation = options.notation;
300
+ }
301
+ } else {
302
+ throw new Error('Unsupported type of options, number, BigNumber, or object expected');
303
+ }
304
+ }
305
+ return {
306
+ notation,
307
+ precision,
308
+ wordSize
309
+ };
310
+ }
311
+
288
312
  /**
289
313
  * Split a number into sign, coefficients, and exponent
290
314
  * @param {number | string} value
@@ -448,8 +472,8 @@ export function toPrecision(value, precision, options) {
448
472
  }
449
473
 
450
474
  // determine lower and upper bound for exponential notation.
451
- var lowerExp = options && options.lowerExp !== undefined ? options.lowerExp : -3;
452
- var upperExp = options && options.upperExp !== undefined ? options.upperExp : 5;
475
+ var lowerExp = _toNumberOrDefault(options === null || options === void 0 ? void 0 : options.lowerExp, -3);
476
+ var upperExp = _toNumberOrDefault(options === null || options === void 0 ? void 0 : options.upperExp, 5);
453
477
  var split = splitNumber(value);
454
478
  var rounded = precision ? roundDigits(split, precision) : split;
455
479
  if (rounded.exponent < lowerExp || rounded.exponent >= upperExp) {
@@ -654,4 +678,22 @@ export function copysign(x, y) {
654
678
  var signx = x > 0 ? true : x < 0 ? false : 1 / x === Infinity;
655
679
  var signy = y > 0 ? true : y < 0 ? false : 1 / y === Infinity;
656
680
  return signx ^ signy ? -x : x;
681
+ }
682
+ function _toNumberOrThrow(value, onError) {
683
+ if (isNumber(value)) {
684
+ return value;
685
+ } else if (isBigNumber(value)) {
686
+ return value.toNumber();
687
+ } else {
688
+ onError();
689
+ }
690
+ }
691
+ function _toNumberOrDefault(value, defaultValue) {
692
+ if (isNumber(value)) {
693
+ return value;
694
+ } else if (isBigNumber(value)) {
695
+ return value.toNumber();
696
+ } else {
697
+ return defaultValue;
698
+ }
657
699
  }
@@ -1,3 +1,3 @@
1
- export var version = '12.3.0';
1
+ export var version = '12.3.1';
2
2
  // Note: This file is automatically generated when building math.js.
3
3
  // Changes made in this file will be overwritten.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mathjs",
3
- "version": "12.3.0",
3
+ "version": "12.3.1",
4
4
  "description": "Math.js is an extensive math library for JavaScript and Node.js. It features a flexible expression parser with support for symbolic computation, comes with a large set of built-in functions and constants, and offers an integrated solution to work with different data types like numbers, big numbers, complex numbers, fractions, units, and matrices.",
5
5
  "author": "Jos de Jong <wjosdejong@gmail.com> (https://github.com/josdejong)",
6
6
  "homepage": "https://mathjs.org",
@@ -25,7 +25,7 @@
25
25
  "unit"
26
26
  ],
27
27
  "dependencies": {
28
- "@babel/runtime": "^7.23.8",
28
+ "@babel/runtime": "^7.23.9",
29
29
  "complex.js": "^2.1.1",
30
30
  "decimal.js": "^10.4.3",
31
31
  "escape-latex": "^1.2.0",
@@ -36,21 +36,21 @@
36
36
  "typed-function": "^4.1.1"
37
37
  },
38
38
  "devDependencies": {
39
- "@babel/core": "7.23.7",
39
+ "@babel/core": "7.23.9",
40
40
  "@babel/plugin-transform-object-assign": "7.23.3",
41
- "@babel/plugin-transform-runtime": "7.23.7",
42
- "@babel/preset-env": "7.23.8",
41
+ "@babel/plugin-transform-runtime": "7.23.9",
42
+ "@babel/preset-env": "7.23.9",
43
43
  "@babel/register": "7.23.7",
44
44
  "@types/assert": "1.5.10",
45
45
  "@types/mocha": "10.0.6",
46
- "@typescript-eslint/eslint-plugin": "6.18.1",
47
- "@typescript-eslint/parser": "6.18.1",
46
+ "@typescript-eslint/eslint-plugin": "6.20.0",
47
+ "@typescript-eslint/parser": "6.20.0",
48
48
  "assert": "2.1.0",
49
49
  "babel-loader": "9.1.3",
50
50
  "benchmark": "2.1.4",
51
- "c8": "9.0.0",
51
+ "c8": "9.1.0",
52
52
  "codecov": "3.8.3",
53
- "core-js": "3.35.0",
53
+ "core-js": "3.35.1",
54
54
  "del": "6.1.1",
55
55
  "dtslint": "4.2.1",
56
56
  "eslint": "8.56.0",
@@ -85,12 +85,12 @@
85
85
  "ndarray-pack": "1.2.1",
86
86
  "numericjs": "1.2.6",
87
87
  "pad-right": "0.2.2",
88
- "prettier": "3.1.1",
88
+ "prettier": "3.2.4",
89
89
  "process": "0.11.10",
90
90
  "sylvester": "0.0.21",
91
91
  "ts-node": "10.9.2",
92
92
  "typescript": "5.3.3",
93
- "webpack": "5.89.0",
93
+ "webpack": "5.90.0",
94
94
  "zeros": "1.0.0"
95
95
  },
96
96
  "type": "module",