mathjs 12.3.0 → 12.3.1

Sign up to get free protection for your applications and to get access to all the features.
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",