mathjs 14.5.3 → 14.7.0
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/HISTORY.md +21 -1
- package/lib/browser/math.js +1 -1
- package/lib/browser/math.js.LICENSE.txt +2 -2
- package/lib/browser/math.js.map +1 -1
- package/lib/cjs/core/function/config.js +0 -1
- package/lib/cjs/entry/dependenciesAny/dependenciesToBest.generated.js +17 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesUnitClass.generated.js +2 -0
- package/lib/cjs/entry/dependenciesAny.generated.js +7 -0
- package/lib/cjs/entry/impureFunctionsAny.generated.js +1 -0
- package/lib/cjs/entry/pureFunctionsAny.generated.js +7 -3
- package/lib/cjs/expression/Parser.js +35 -1
- package/lib/cjs/expression/embeddedDocs/embeddedDocs.js +2 -0
- package/lib/cjs/expression/embeddedDocs/function/units/toBest.js +14 -0
- package/lib/cjs/expression/node/FunctionAssignmentNode.js +3 -1
- package/lib/cjs/expression/parse.js +1 -1
- package/lib/cjs/factoriesAny.js +7 -0
- package/lib/cjs/function/arithmetic/sign.js +1 -1
- package/lib/cjs/function/matrix/range.js +7 -5
- package/lib/cjs/function/unit/toBest.js +53 -0
- package/lib/cjs/header.js +2 -2
- package/lib/cjs/type/matrix/DenseMatrix.js +21 -17
- package/lib/cjs/type/string.js +4 -4
- package/lib/cjs/type/unit/Unit.js +106 -19
- package/lib/cjs/version.js +1 -1
- package/lib/esm/core/function/config.js +0 -1
- package/lib/esm/entry/dependenciesAny/dependenciesToBest.generated.js +10 -0
- package/lib/esm/entry/dependenciesAny/dependenciesUnitClass.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny.generated.js +1 -0
- package/lib/esm/entry/impureFunctionsAny.generated.js +2 -1
- package/lib/esm/entry/pureFunctionsAny.generated.js +6 -2
- package/lib/esm/expression/Parser.js +35 -1
- package/lib/esm/expression/embeddedDocs/embeddedDocs.js +2 -0
- package/lib/esm/expression/embeddedDocs/function/units/toBest.js +8 -0
- package/lib/esm/expression/node/FunctionAssignmentNode.js +3 -1
- package/lib/esm/expression/parse.js +1 -1
- package/lib/esm/factoriesAny.js +1 -0
- package/lib/esm/function/arithmetic/sign.js +1 -1
- package/lib/esm/function/matrix/range.js +7 -5
- package/lib/esm/function/unit/toBest.js +47 -0
- package/lib/esm/type/matrix/DenseMatrix.js +21 -17
- package/lib/esm/type/string.js +4 -4
- package/lib/esm/type/unit/Unit.js +106 -19
- package/lib/esm/version.js +1 -1
- package/package.json +15 -16
- package/types/index.d.ts +50 -1
- package/types/tslint.json +0 -6
@@ -17,6 +17,7 @@ import { numberDependencies } from './dependenciesNumber.generated.js';
|
|
17
17
|
import { powDependencies } from './dependenciesPow.generated.js';
|
18
18
|
import { roundDependencies } from './dependenciesRound.generated.js';
|
19
19
|
import { subtractScalarDependencies } from './dependenciesSubtractScalar.generated.js';
|
20
|
+
import { toBestDependencies } from './dependenciesToBest.generated.js';
|
20
21
|
import { createUnitClass } from '../../factoriesAny.js';
|
21
22
|
export var UnitDependencies = {
|
22
23
|
BigNumberDependencies,
|
@@ -34,5 +35,6 @@ export var UnitDependencies = {
|
|
34
35
|
powDependencies,
|
35
36
|
roundDependencies,
|
36
37
|
subtractScalarDependencies,
|
38
|
+
toBestDependencies,
|
37
39
|
createUnitClass
|
38
40
|
};
|
@@ -340,6 +340,7 @@ export { tanhDependencies } from './dependenciesAny/dependenciesTanh.generated.j
|
|
340
340
|
export { tauDependencies } from './dependenciesAny/dependenciesTau.generated.js';
|
341
341
|
export { thomsonCrossSectionDependencies } from './dependenciesAny/dependenciesThomsonCrossSection.generated.js';
|
342
342
|
export { toDependencies } from './dependenciesAny/dependenciesTo.generated.js';
|
343
|
+
export { toBestDependencies } from './dependenciesAny/dependenciesToBest.generated.js';
|
343
344
|
export { traceDependencies } from './dependenciesAny/dependenciesTrace.generated.js';
|
344
345
|
export { transposeDependencies } from './dependenciesAny/dependenciesTranspose.generated.js';
|
345
346
|
export { trueDependencies } from './dependenciesAny/dependenciesTrue.generated.js';
|
@@ -7,7 +7,7 @@ import { config } from './configReadonly.js';
|
|
7
7
|
import { createNode, createObjectNode, createOperatorNode, createParenthesisNode, createRelationalNode, createArrayNode, createBlockNode, createConditionalNode, createConstantNode, createRangeNode, createReviver, createChainClass, createFunctionAssignmentNode, createChain, createAccessorNode, createAssignmentNode, createIndexNode, createSymbolNode, createFunctionNode, createParse, createResolve, createSimplifyConstant, createCompile, createSimplifyCore, createEvaluate, createHelpClass, createParserClass, createSimplify, createSymbolicEqual, createLeafCount, createParser, createRationalize, createDerivative, createHelp, createMapSlicesTransform, createFilterTransform, createForEachTransform, createMapTransform, createOrTransform, createAndTransform, createConcatTransform, createIndexTransform, createPrintTransform, createSumTransform, createBitAndTransform, createMinTransform, createSubsetTransform, createBitOrTransform, createCumSumTransform, createDiffTransform, createMaxTransform, 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, weakMixingAngle, abs, acos, acot, acsc, addScalar, arg, asech, asinh, atan, atanh, bigint, bitNot, boolean, clone, combinations, complex, conj, cos, cot, csc, cube, equalScalar, erf, exp, expm1, filter, flatten, 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, asec, bignumber, combinationsWithRep, cosh, csch, isNaN, isPrime, mapSlices, matrix, matrixFromFunction, ones, randomInt, reshape, sech, sinh, sparse, sqrt, squeeze, tanh, transpose, xgcd, zeros, acoth, asin, bin, concat, coth, ctranspose, diag, dotMultiply, equal, fraction, identity, isNumeric, kron, largerEq, leftShift, mode, nthRoot, numeric, prod, resize, rightArithShift, round, size, smaller, to, unaryMinus, unequal, xor, add, atan2, bitAnd, bitOr, bitXor, cbrt, compare, compareText, count, deepEqual, divideScalar, dotDivide, equalText, floor, gcd, hasNumericValue, hypot, ImmutableDenseMatrix, Index, larger, log, lsolve, matrixFromColumns, max, min, mod, nthRoots, or, partitionSelect, qr, rightLogShift, smallerEq, subset, subtract, trace, usolve, catalan, compareNatural, composition, diff, distance, dot, FibonacciHeap, index, invmod, lcm, log1p, lsolveAll, matrixFromRows, multiply, range, row, setCartesian, setDistinct, setIsSubset, setPowerset, slu, sort, unaryPlus, usolveAll, zpk2tf, and, ceil, column, cross, det, fix, inv, pinv, pow, setDifference, setMultiplicity, setSymDifference, Spa, sqrtm, sum, Unit, vacuumImpedance, wienDisplacement, atomicMass, bohrMagneton, boltzmann, conductanceQuantum, coulomb, createUnit, deuteronMass, dotPow, electricConstant, elementaryCharge, expm, faraday, fft, gamma, gravitationConstant, hartreeEnergy, ifft, inverseConductanceQuantum, klitzing, loschmidt, magneticConstant, molarMass, molarPlanckConstant, neutronMass, nuclearMagneton, planckCharge, planckLength, planckTemperature, protonMass, quantumOfCirculation, reducedPlanckConstant, rydberg, secondRadiation, setSize, speedOfLight, stefanBoltzmann, thomsonCrossSection, avogadro, bohrRadius, coulombConstant, divide, electronMass, factorial, firstRadiation, gravity, intersect, lup, magneticFluxQuantum, molarMassC12, multinomial, permutations, planckMass, polynomialRoot, setIntersect, solveODE, stirlingS2, unit, bellNumbers, cumsum, eigs, fermiCoupling, gasConstant, kldivergence, lusolve, mean, molarVolume, planckConstant, quantileSeq, setUnion, variance, classicalElectronRadius, median, corr, freqz, mad, std, zeta, norm, rotationMatrix, planckTime, schur, rotate, sylvester, lyap } from './pureFunctionsAny.generated.js';
|
10
|
+
sackurTetrode, tau, _true, version, DenseMatrix, efimovFactor, LN2, pi, replacer, SQRT2, typed, weakMixingAngle, abs, acos, acot, acsc, addScalar, arg, asech, asinh, atan, atanh, bigint, bitNot, boolean, clone, combinations, complex, conj, cos, cot, csc, cube, equalScalar, erf, exp, expm1, filter, flatten, 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, toBest, typeOf, acosh, acsch, asec, bignumber, combinationsWithRep, cosh, csch, isNaN, isPrime, mapSlices, matrix, matrixFromFunction, ones, randomInt, reshape, sech, sinh, sparse, sqrt, squeeze, tanh, transpose, xgcd, zeros, acoth, asin, bin, concat, coth, ctranspose, diag, dotMultiply, equal, fraction, identity, isNumeric, kron, largerEq, leftShift, mode, nthRoot, numeric, prod, resize, rightArithShift, round, size, smaller, to, unaryMinus, unequal, xor, add, atan2, bitAnd, bitOr, bitXor, cbrt, compare, compareText, count, deepEqual, divideScalar, dotDivide, equalText, floor, gcd, hasNumericValue, hypot, ImmutableDenseMatrix, Index, larger, log, lsolve, matrixFromColumns, max, min, mod, nthRoots, or, partitionSelect, qr, rightLogShift, smallerEq, subset, subtract, trace, usolve, catalan, compareNatural, composition, diff, distance, dot, FibonacciHeap, index, invmod, lcm, log1p, lsolveAll, matrixFromRows, multiply, range, row, setCartesian, setDistinct, setIsSubset, setPowerset, slu, sort, unaryPlus, usolveAll, zpk2tf, and, ceil, column, cross, det, fix, inv, pinv, pow, setDifference, setMultiplicity, setSymDifference, Spa, sqrtm, sum, Unit, vacuumImpedance, wienDisplacement, atomicMass, bohrMagneton, boltzmann, conductanceQuantum, coulomb, createUnit, deuteronMass, dotPow, electricConstant, elementaryCharge, expm, faraday, fft, gamma, gravitationConstant, hartreeEnergy, ifft, inverseConductanceQuantum, klitzing, loschmidt, magneticConstant, molarMass, molarPlanckConstant, neutronMass, nuclearMagneton, planckCharge, planckLength, planckTemperature, protonMass, quantumOfCirculation, reducedPlanckConstant, rydberg, secondRadiation, setSize, speedOfLight, stefanBoltzmann, thomsonCrossSection, avogadro, bohrRadius, coulombConstant, divide, electronMass, factorial, firstRadiation, gravity, intersect, lup, magneticFluxQuantum, molarMassC12, multinomial, permutations, planckMass, polynomialRoot, setIntersect, solveODE, stirlingS2, unit, bellNumbers, cumsum, eigs, fermiCoupling, gasConstant, kldivergence, lusolve, mean, molarVolume, planckConstant, quantileSeq, setUnion, 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!
|
@@ -322,6 +322,7 @@ _extends(math, {
|
|
322
322
|
string,
|
323
323
|
subtractScalar,
|
324
324
|
tan,
|
325
|
+
toBest,
|
325
326
|
typeOf,
|
326
327
|
acosh,
|
327
328
|
acsch,
|
@@ -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, createWeakMixingAngle, createAbs, createAcos, createAcot, createAcsc, createAddScalar, createArg, createAsech, createAsinh, createAtan, createAtanh, createBigint, createBitNot, createBoolean, createClone, createCombinations, createComplex, createConj, createCos, createCot, createCsc, createCube, createEqualScalar, createErf, createExp, createExpm1, createFilter, createFlatten, 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, createAsec, createBignumber, createCombinationsWithRep, createCosh, createCsch, createIsNaN, createIsPrime, createMapSlices, createMatrix, createMatrixFromFunction, createOnes, createRandomInt, createReshape, createSech, createSinh, createSparse, createSqrt, createSqueeze, createTanh, createTranspose, createXgcd, createZeros, createAcoth, createAsin, createBin, createConcat, createCoth, createCtranspose, createDiag, createDotMultiply, createEqual, createFraction, createIdentity, createIsNumeric, createKron, createLargerEq, createLeftShift, createMode, createNthRoot, createNumeric, createProd, createResize, createRightArithShift, createRound, createSize, createSmaller, createTo, createUnaryMinus, createUnequal, createXor, createAdd, createAtan2, createBitAnd, createBitOr, createBitXor, createCbrt, createCompare, createCompareText, createCount, createDeepEqual, createDivideScalar, createDotDivide, createEqualText, createFloor, createGcd, createHasNumericValue, createHypot, createImmutableDenseMatrixClass, createIndexClass, createLarger, createLog, createLsolve, createMatrixFromColumns, createMax, createMin, createMod, createNthRoots, createOr, createPartitionSelect, createQr, createRightLogShift, createSmallerEq, createSubset, createSubtract, createTrace, createUsolve, createCatalan, createCompareNatural, createComposition, createDiff, createDistance, createDot, createFibonacciHeapClass, createIndex, createInvmod, createLcm, createLog1p, createLsolveAll, createMatrixFromRows, createMultiply, createRange, createRow, createSetCartesian, createSetDistinct, createSetIsSubset, createSetPowerset, createSlu, createSort, createUnaryPlus, createUsolveAll, createZpk2tf, createAnd, createCeil, createColumn, createCross, createDet, createFix, createInv, createPinv, createPow, createSetDifference, createSetMultiplicity, createSetSymDifference, createSpaClass, createSqrtm, createSum, createUnitClass, createVacuumImpedance, createWienDisplacement, createAtomicMass, createBohrMagneton, createBoltzmann, createConductanceQuantum, createCoulomb, createCreateUnit, createDeuteronMass, createDotPow, createElectricConstant, createElementaryCharge, createExpm, createFaraday, createFft, createGamma, createGravitationConstant, createHartreeEnergy, createIfft, createInverseConductanceQuantum, createKlitzing, createLoschmidt, createMagneticConstant, createMolarMass, createMolarPlanckConstant, createNeutronMass, createNuclearMagneton, createPlanckCharge, createPlanckLength, createPlanckTemperature, createProtonMass, createQuantumOfCirculation, createReducedPlanckConstant, createRydberg, createSecondRadiation, createSetSize, createSpeedOfLight, createStefanBoltzmann, createThomsonCrossSection, createAvogadro, createBohrRadius, createCoulombConstant, createDivide, createElectronMass, createFactorial, createFirstRadiation, createGravity, createIntersect, createLup, createMagneticFluxQuantum, createMolarMassC12, createMultinomial, createPermutations, createPlanckMass, createPolynomialRoot, createSetIntersect, createSolveODE, createStirlingS2, createUnitFunction, createBellNumbers, createCumSum, createEigs, createFermiCoupling, createGasConstant, createKldivergence, createLusolve, createMean, createMolarVolume, createPlanckConstant, createQuantileSeq, createSetUnion, createVariance, createClassicalElectronRadius, createMedian, createCorr, createFreqz, createMad, createStd, createZeta, createNorm, createRotationMatrix, createPlanckTime, createSchur, createRotate, createSylvester, createLyap } from '../factoriesAny.js';
|
8
|
+
createSackurTetrode, createTau, createTrue, createVersion, createDenseMatrixClass, createEfimovFactor, createLN2, createPi, createReplacer, createSQRT2, createTyped, createWeakMixingAngle, createAbs, createAcos, createAcot, createAcsc, createAddScalar, createArg, createAsech, createAsinh, createAtan, createAtanh, createBigint, createBitNot, createBoolean, createClone, createCombinations, createComplex, createConj, createCos, createCot, createCsc, createCube, createEqualScalar, createErf, createExp, createExpm1, createFilter, createFlatten, 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, createToBest, createTypeOf, createAcosh, createAcsch, createAsec, createBignumber, createCombinationsWithRep, createCosh, createCsch, createIsNaN, createIsPrime, createMapSlices, createMatrix, createMatrixFromFunction, createOnes, createRandomInt, createReshape, createSech, createSinh, createSparse, createSqrt, createSqueeze, createTanh, createTranspose, createXgcd, createZeros, createAcoth, createAsin, createBin, createConcat, createCoth, createCtranspose, createDiag, createDotMultiply, createEqual, createFraction, createIdentity, createIsNumeric, createKron, createLargerEq, createLeftShift, createMode, createNthRoot, createNumeric, createProd, createResize, createRightArithShift, createRound, createSize, createSmaller, createTo, createUnaryMinus, createUnequal, createXor, createAdd, createAtan2, createBitAnd, createBitOr, createBitXor, createCbrt, createCompare, createCompareText, createCount, createDeepEqual, createDivideScalar, createDotDivide, createEqualText, createFloor, createGcd, createHasNumericValue, createHypot, createImmutableDenseMatrixClass, createIndexClass, createLarger, createLog, createLsolve, createMatrixFromColumns, createMax, createMin, createMod, createNthRoots, createOr, createPartitionSelect, createQr, createRightLogShift, createSmallerEq, createSubset, createSubtract, createTrace, createUsolve, createCatalan, createCompareNatural, createComposition, createDiff, createDistance, createDot, createFibonacciHeapClass, createIndex, createInvmod, createLcm, createLog1p, createLsolveAll, createMatrixFromRows, createMultiply, createRange, createRow, createSetCartesian, createSetDistinct, createSetIsSubset, createSetPowerset, createSlu, createSort, createUnaryPlus, createUsolveAll, createZpk2tf, createAnd, createCeil, createColumn, createCross, createDet, createFix, createInv, createPinv, createPow, createSetDifference, createSetMultiplicity, createSetSymDifference, createSpaClass, createSqrtm, createSum, createUnitClass, createVacuumImpedance, createWienDisplacement, createAtomicMass, createBohrMagneton, createBoltzmann, createConductanceQuantum, createCoulomb, createCreateUnit, createDeuteronMass, createDotPow, createElectricConstant, createElementaryCharge, createExpm, createFaraday, createFft, createGamma, createGravitationConstant, createHartreeEnergy, createIfft, createInverseConductanceQuantum, createKlitzing, createLoschmidt, createMagneticConstant, createMolarMass, createMolarPlanckConstant, createNeutronMass, createNuclearMagneton, createPlanckCharge, createPlanckLength, createPlanckTemperature, createProtonMass, createQuantumOfCirculation, createReducedPlanckConstant, createRydberg, createSecondRadiation, createSetSize, createSpeedOfLight, createStefanBoltzmann, createThomsonCrossSection, createAvogadro, createBohrRadius, createCoulombConstant, createDivide, createElectronMass, createFactorial, createFirstRadiation, createGravity, createIntersect, createLup, createMagneticFluxQuantum, createMolarMassC12, createMultinomial, createPermutations, createPlanckMass, createPolynomialRoot, createSetIntersect, createSolveODE, createStirlingS2, createUnitFunction, createBellNumbers, createCumSum, createEigs, createFermiCoupling, createGasConstant, createKldivergence, createLusolve, createMean, createMolarVolume, createPlanckConstant, createQuantileSeq, createSetUnion, 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
|
});
|
@@ -300,6 +300,9 @@ export var subtractScalar = /* #__PURE__ */createSubtractScalar({
|
|
300
300
|
export var tan = /* #__PURE__ */createTan({
|
301
301
|
typed
|
302
302
|
});
|
303
|
+
export var toBest = /* #__PURE__ */createToBest({
|
304
|
+
typed
|
305
|
+
});
|
303
306
|
export var typeOf = /* #__PURE__ */createTypeOf({
|
304
307
|
typed
|
305
308
|
});
|
@@ -1177,7 +1180,8 @@ export var Unit = /* #__PURE__ */createUnitClass({
|
|
1177
1180
|
number,
|
1178
1181
|
pow,
|
1179
1182
|
round,
|
1180
|
-
subtractScalar
|
1183
|
+
subtractScalar,
|
1184
|
+
toBest
|
1181
1185
|
});
|
1182
1186
|
export var vacuumImpedance = /* #__PURE__ */createVacuumImpedance({
|
1183
1187
|
BigNumber,
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import { factory } from '../utils/factory.js';
|
2
|
+
import { isFunction } from '../utils/is.js';
|
2
3
|
import { createEmptyMap, toObject } from '../utils/map.js';
|
3
4
|
var name = 'Parser';
|
4
5
|
var dependencies = ['evaluate', 'parse'];
|
@@ -154,7 +155,40 @@ export var createParserClass = /* #__PURE__ */factory(name, dependencies, _ref =
|
|
154
155
|
Parser.prototype.clear = function () {
|
155
156
|
this.scope.clear();
|
156
157
|
};
|
158
|
+
Parser.prototype.toJSON = function () {
|
159
|
+
var json = {
|
160
|
+
mathjs: 'Parser',
|
161
|
+
variables: {},
|
162
|
+
functions: {}
|
163
|
+
};
|
164
|
+
for (var [_name2, value] of this.scope) {
|
165
|
+
if (isFunction(value)) {
|
166
|
+
if (!isExpressionFunction(value)) {
|
167
|
+
throw new Error("Cannot serialize external function ".concat(_name2));
|
168
|
+
}
|
169
|
+
json.functions[_name2] = "".concat(value.syntax, " = ").concat(value.expr);
|
170
|
+
} else {
|
171
|
+
json.variables[_name2] = value;
|
172
|
+
}
|
173
|
+
}
|
174
|
+
return json;
|
175
|
+
};
|
176
|
+
Parser.fromJSON = function (json) {
|
177
|
+
var parser = new Parser();
|
178
|
+
Object.entries(json.variables).forEach(_ref2 => {
|
179
|
+
var [name, value] = _ref2;
|
180
|
+
return parser.set(name, value);
|
181
|
+
});
|
182
|
+
Object.entries(json.functions).forEach(_ref3 => {
|
183
|
+
var [_name, fn] = _ref3;
|
184
|
+
return parser.evaluate(fn);
|
185
|
+
});
|
186
|
+
return parser;
|
187
|
+
};
|
157
188
|
return Parser;
|
158
189
|
}, {
|
159
190
|
isClass: true
|
160
|
-
});
|
191
|
+
});
|
192
|
+
function isExpressionFunction(value) {
|
193
|
+
return typeof value === 'function' && typeof value.syntax === 'string' && typeof value.expr === 'string';
|
194
|
+
}
|
@@ -229,6 +229,7 @@ import { sinhDocs } from './function/trigonometry/sinh.js';
|
|
229
229
|
import { tanDocs } from './function/trigonometry/tan.js';
|
230
230
|
import { tanhDocs } from './function/trigonometry/tanh.js';
|
231
231
|
import { toDocs } from './function/units/to.js';
|
232
|
+
import { toBestDocs } from './function/units/toBest.js';
|
232
233
|
import { binDocs } from './function/utils/bin.js';
|
233
234
|
import { cloneDocs } from './function/utils/clone.js';
|
234
235
|
import { formatDocs } from './function/utils/format.js';
|
@@ -712,6 +713,7 @@ export var embeddedDocs = {
|
|
712
713
|
tanh: tanhDocs,
|
713
714
|
// functions - units
|
714
715
|
to: toDocs,
|
716
|
+
toBest: toBestDocs,
|
715
717
|
// functions - utils
|
716
718
|
clone: cloneDocs,
|
717
719
|
format: formatDocs,
|
@@ -0,0 +1,8 @@
|
|
1
|
+
export var toBestDocs = {
|
2
|
+
name: 'toBest',
|
3
|
+
category: 'Units',
|
4
|
+
syntax: ['toBest(x)', 'toBest(x, unitList)', 'toBest(x, unitList, options)'],
|
5
|
+
description: 'Converts to the most appropriate display unit.',
|
6
|
+
examples: ['toBest(unit(5000, "m"))', 'toBest(unit(3500000, "W"))', 'toBest(unit(0.000000123, "A"))', 'toBest(unit(10, "m"), "cm")', 'toBest(unit(10, "m"), "mm,km", {offset: 1.5})'],
|
7
|
+
seealso: []
|
8
|
+
};
|
@@ -98,7 +98,8 @@ export var createFunctionAssignmentNode = /* #__PURE__ */factory(name, dependenc
|
|
98
98
|
});
|
99
99
|
|
100
100
|
// compile the function expression with the child args
|
101
|
-
var
|
101
|
+
var expr = this.expr;
|
102
|
+
var evalExpr = expr._compile(math, childArgNames);
|
102
103
|
var name = this.name;
|
103
104
|
var params = this.params;
|
104
105
|
var signature = join(this.types, ',');
|
@@ -114,6 +115,7 @@ export var createFunctionAssignmentNode = /* #__PURE__ */factory(name, dependenc
|
|
114
115
|
};
|
115
116
|
var fn = typed(name, signatures);
|
116
117
|
fn.syntax = syntax;
|
118
|
+
fn.expr = expr.toString();
|
117
119
|
scope.set(name, fn);
|
118
120
|
return fn;
|
119
121
|
};
|
@@ -47,7 +47,7 @@ export var createParse = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
47
47
|
* node1.compile().evaluate() // 5
|
48
48
|
*
|
49
49
|
* let scope = {a:3, b:4}
|
50
|
-
* const node2 = math.parse('a * b')
|
50
|
+
* const node2 = math.parse('a * b')
|
51
51
|
* node2.evaluate(scope) // 12
|
52
52
|
* const code2 = node2.compile()
|
53
53
|
* code2.evaluate(scope) // 12
|
package/lib/esm/factoriesAny.js
CHANGED
@@ -107,6 +107,7 @@ export { createOct } from './function/string/oct.js';
|
|
107
107
|
export { createHex } from './function/string/hex.js';
|
108
108
|
export { createPrint } from './function/string/print.js';
|
109
109
|
export { createTo } from './function/unit/to.js';
|
110
|
+
export { createToBest } from './function/unit/toBest.js';
|
110
111
|
export { createIsPrime } from './function/utils/isPrime.js';
|
111
112
|
export { createNumeric } from './function/utils/numeric.js';
|
112
113
|
export { createDivideScalar } from './function/arithmetic/divideScalar.js';
|
@@ -52,7 +52,7 @@ export var createSign = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
52
52
|
return x > 0n ? 1n : x < 0n ? -1n : 0n;
|
53
53
|
},
|
54
54
|
Fraction: function Fraction(x) {
|
55
|
-
return new _Fraction(x.s);
|
55
|
+
return x.n === 0n ? new _Fraction(0) : new _Fraction(x.s);
|
56
56
|
},
|
57
57
|
// deep map collection, skip zeros since sign(0) = 0
|
58
58
|
'Array | Matrix': typed.referToSelf(self => x => deepMap(x, self, true)),
|
@@ -16,7 +16,7 @@ export var createRange = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
16
16
|
isPositive
|
17
17
|
} = _ref;
|
18
18
|
/**
|
19
|
-
* Create
|
19
|
+
* Create a matrix or array containing a range of values.
|
20
20
|
* By default, the range end is excluded. This can be customized by providing
|
21
21
|
* an extra parameter `includeEnd`.
|
22
22
|
*
|
@@ -44,10 +44,12 @@ export var createRange = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
44
44
|
* - `includeEnd: boolean`
|
45
45
|
* Option to specify whether to include the end or not. False by default.
|
46
46
|
*
|
47
|
-
*
|
48
|
-
*
|
49
|
-
*
|
50
|
-
*
|
47
|
+
* The function returns a `DenseMatrix` when the library is configured with
|
48
|
+
* `config = { matrix: 'Matrix' }, and returns an Array otherwise.
|
49
|
+
* Note that the type of the returned values is taken from the type of the
|
50
|
+
* provided start/end value. If only one of these is a built-in `number` type,
|
51
|
+
* it will be promoted to the type of the other endpoint. However, in the case
|
52
|
+
* of Unit values, both endpoints must have compatible units, and the return
|
51
53
|
* value will have compatible units as well.
|
52
54
|
*
|
53
55
|
* Examples:
|
@@ -0,0 +1,47 @@
|
|
1
|
+
import { factory } from '../../utils/factory.js';
|
2
|
+
var name = 'toBest';
|
3
|
+
var dependencies = ['typed'];
|
4
|
+
export var createToBest = /* #__PURE__ */factory(name, dependencies, _ref => {
|
5
|
+
var {
|
6
|
+
typed
|
7
|
+
} = _ref;
|
8
|
+
/**
|
9
|
+
* Converts a unit to the most appropriate display unit.
|
10
|
+
* When no preferred units are provided, the function automatically find the best prefix.
|
11
|
+
* When preferred units are provided, it converts to
|
12
|
+
* the unit that gives a value closest to 1.
|
13
|
+
*
|
14
|
+
* Syntax:
|
15
|
+
*
|
16
|
+
* math.toBest(unit)
|
17
|
+
* math.toBest(unit, unitList)
|
18
|
+
* math.toBest(unit, unitList, options)
|
19
|
+
*
|
20
|
+
* Where:
|
21
|
+
* - `unitList` is an optional array of preferred target units as string or Unit.
|
22
|
+
* - `options` is an optional object with options, formed as follows:
|
23
|
+
* - `offset`: number | BigNumber
|
24
|
+
*
|
25
|
+
* Examples:
|
26
|
+
*
|
27
|
+
* math.unit(0.05, 'm').toBest(['cm', 'mm']) // returns Unit 5 cm
|
28
|
+
* math.unit(2 / 3, 'cm').toBest() // returns Unit 0.6666666666666666 cm
|
29
|
+
* math.unit(10, 'm').toBest(['mm', 'km'], { offset: 1.5 }) // returns Unit 10000 mm
|
30
|
+
*
|
31
|
+
* See also:
|
32
|
+
*
|
33
|
+
* unit, to, format
|
34
|
+
*
|
35
|
+
* @param {Unit} x The unit to be converted
|
36
|
+
* @param {Array<string>} [unitList=[]] Optional array of preferred target units
|
37
|
+
* @param {Object} [options] Optional options object
|
38
|
+
* @return {Unit} Value converted to the best matching unit
|
39
|
+
*/
|
40
|
+
return typed(name, {
|
41
|
+
Unit: x => x.toBest(),
|
42
|
+
'Unit, string': (x, unitList) => x.toBest(unitList.split(',')),
|
43
|
+
'Unit, string, Object': (x, unitList, options) => x.toBest(unitList.split(','), options),
|
44
|
+
'Unit, Array': (x, unitList) => x.toBest(unitList),
|
45
|
+
'Unit, Array, Object': (x, unitList, options) => x.toBest(unitList, options)
|
46
|
+
});
|
47
|
+
});
|
@@ -672,24 +672,28 @@ export var createDenseMatrixClass = /* #__PURE__ */factory(name, dependencies, _
|
|
672
672
|
}
|
673
673
|
return;
|
674
674
|
}
|
675
|
-
|
676
|
-
|
677
|
-
|
678
|
-
|
679
|
-
|
680
|
-
|
681
|
-
|
682
|
-
|
683
|
-
|
684
|
-
index[depth] = _i0;
|
685
|
-
yield {
|
686
|
-
value: value[_i0],
|
687
|
-
index: index.slice()
|
688
|
-
};
|
689
|
-
}
|
675
|
+
|
676
|
+
// Multi-dimensional matrix: iterate over all elements
|
677
|
+
var index = Array(maxDepth + 1).fill(0);
|
678
|
+
var totalElements = this._size.reduce((a, b) => a * b, 1);
|
679
|
+
for (var count = 0; count < totalElements; count++) {
|
680
|
+
// Traverse to the current element using indices
|
681
|
+
var current = this._data;
|
682
|
+
for (var d = 0; d < maxDepth; d++) {
|
683
|
+
current = current[index[d]];
|
690
684
|
}
|
691
|
-
|
692
|
-
|
685
|
+
yield {
|
686
|
+
value: current[index[maxDepth]],
|
687
|
+
index: index.slice()
|
688
|
+
};
|
689
|
+
|
690
|
+
// Increment indices for next element
|
691
|
+
for (var _d = maxDepth; _d >= 0; _d--) {
|
692
|
+
index[_d]++;
|
693
|
+
if (index[_d] < this._size[_d]) break;
|
694
|
+
index[_d] = 0;
|
695
|
+
}
|
696
|
+
}
|
693
697
|
};
|
694
698
|
|
695
699
|
/**
|
package/lib/esm/type/string.js
CHANGED
@@ -17,13 +17,13 @@ export var createString = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
17
17
|
*
|
18
18
|
* Examples:
|
19
19
|
*
|
20
|
-
* math.string(4.2)
|
21
|
-
* math.string(math.complex(3, 2) // returns string '3 + 2i'
|
20
|
+
* math.string(4.2) // returns string '4.2'
|
21
|
+
* math.string(math.complex(3, 2)) // returns string '3 + 2i'
|
22
22
|
*
|
23
23
|
* const u = math.unit(5, 'km')
|
24
|
-
* math.string(u.to('m'))
|
24
|
+
* math.string(u.to('m')) // returns string '5000 m'
|
25
25
|
*
|
26
|
-
* math.string([true, false])
|
26
|
+
* math.string([true, false]) // returns ['true', 'false']
|
27
27
|
*
|
28
28
|
* See also:
|
29
29
|
*
|
@@ -9,7 +9,7 @@ import { endsWith } from '../../utils/string.js';
|
|
9
9
|
import { clone, hasOwnProperty } from '../../utils/object.js';
|
10
10
|
import { createBigNumberPi as createPi } from '../../utils/bignumber/constants.js';
|
11
11
|
var name = 'Unit';
|
12
|
-
var dependencies = ['?on', 'config', 'addScalar', 'subtractScalar', 'multiplyScalar', 'divideScalar', 'pow', 'abs', 'fix', 'round', 'equal', 'isNumeric', 'format', 'number', 'Complex', 'BigNumber', 'Fraction'];
|
12
|
+
var dependencies = ['?on', 'config', 'addScalar', 'subtractScalar', 'multiplyScalar', 'divideScalar', 'pow', 'abs', 'fix', 'round', 'equal', 'isNumeric', 'format', 'toBest', 'number', 'Complex', 'BigNumber', 'Fraction'];
|
13
13
|
export var createUnitClass = /* #__PURE__ */factory(name, dependencies, _ref => {
|
14
14
|
var {
|
15
15
|
on,
|
@@ -25,6 +25,7 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
25
25
|
equal,
|
26
26
|
isNumeric,
|
27
27
|
format,
|
28
|
+
toBest,
|
28
29
|
number: _number,
|
29
30
|
Complex,
|
30
31
|
BigNumber: _BigNumber,
|
@@ -1041,6 +1042,54 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
1041
1042
|
return str;
|
1042
1043
|
};
|
1043
1044
|
|
1045
|
+
/**
|
1046
|
+
* Get a unit, with optional formatting options.
|
1047
|
+
* @memberof Unit
|
1048
|
+
* @param {string[] | Unit[]} [units] Array of units strings or valueLess Unit objects in wich choose the best one
|
1049
|
+
* @param {Object} [options] Options for parsing the unit. See parseUnit for details.
|
1050
|
+
*
|
1051
|
+
* @return {Unit} Returns a new Unit with the given value and unit.
|
1052
|
+
*/
|
1053
|
+
Unit.prototype.toBest = function () {
|
1054
|
+
var unitList = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
1055
|
+
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
1056
|
+
if (unitList && !Array.isArray(unitList)) {
|
1057
|
+
throw new Error('Invalid unit type. Expected string or Unit.');
|
1058
|
+
}
|
1059
|
+
var startPrefixes = this.units[0].unit.prefixes;
|
1060
|
+
if (unitList && unitList.length > 0) {
|
1061
|
+
var unitObjects = unitList.map(u => {
|
1062
|
+
var unit = null;
|
1063
|
+
if (typeof u === 'string') {
|
1064
|
+
unit = Unit.parse(u);
|
1065
|
+
if (!unit) {
|
1066
|
+
throw new Error('Invalid unit type. Expected compatible string or Unit.');
|
1067
|
+
}
|
1068
|
+
} else if (!isUnit(u)) {
|
1069
|
+
throw new Error('Invalid unit type. Expected compatible string or Unit.');
|
1070
|
+
}
|
1071
|
+
if (unit === null) {
|
1072
|
+
unit = u.clone();
|
1073
|
+
}
|
1074
|
+
try {
|
1075
|
+
this.to(unit.formatUnits());
|
1076
|
+
return unit;
|
1077
|
+
} catch (e) {
|
1078
|
+
throw new Error('Invalid unit type. Expected compatible string or Unit.');
|
1079
|
+
}
|
1080
|
+
});
|
1081
|
+
var prefixes = unitObjects.map(el => el.units[0].prefix);
|
1082
|
+
this.units[0].unit.prefixes = prefixes.reduce((acc, prefix) => {
|
1083
|
+
acc[prefix.name] = prefix;
|
1084
|
+
return acc;
|
1085
|
+
}, {});
|
1086
|
+
this.units[0].prefix = prefixes[0];
|
1087
|
+
}
|
1088
|
+
var result = formatBest(this, options).simp;
|
1089
|
+
this.units[0].unit.prefixes = startPrefixes;
|
1090
|
+
result.fixPrefix = true;
|
1091
|
+
return result;
|
1092
|
+
};
|
1044
1093
|
/**
|
1045
1094
|
* Get a string representation of the Unit, with optional formatting options.
|
1046
1095
|
* @memberof Unit
|
@@ -1051,11 +1100,54 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
1051
1100
|
* @return {string}
|
1052
1101
|
*/
|
1053
1102
|
Unit.prototype.format = function (options) {
|
1103
|
+
var {
|
1104
|
+
simp,
|
1105
|
+
valueStr,
|
1106
|
+
unitStr
|
1107
|
+
} = formatBest(this, options);
|
1108
|
+
var str = valueStr;
|
1109
|
+
if (simp.value && isComplex(simp.value)) {
|
1110
|
+
str = '(' + str + ')'; // Surround complex values with ( ) to enable better parsing
|
1111
|
+
}
|
1112
|
+
if (unitStr.length > 0 && str.length > 0) {
|
1113
|
+
str += ' ';
|
1114
|
+
}
|
1115
|
+
str += unitStr;
|
1116
|
+
return str;
|
1117
|
+
};
|
1118
|
+
|
1119
|
+
/**
|
1120
|
+
* Helper function to normalize a unit for conversion and formatting
|
1121
|
+
* @param {Unit} unit The unit to be normalized
|
1122
|
+
* @return {Object} Object with normalized unit and value
|
1123
|
+
* @private
|
1124
|
+
*/
|
1125
|
+
function formatBest(unit) {
|
1126
|
+
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
1054
1127
|
// Simplfy the unit list, unless it is valueless or was created directly in the
|
1055
1128
|
// constructor or as the result of to or toSI
|
1056
|
-
var simp =
|
1129
|
+
var simp = unit.skipAutomaticSimplification || unit.value === null ? unit.clone() : unit.simplify();
|
1057
1130
|
|
1058
1131
|
// Apply some custom logic for handling VA and VAR. The goal is to express the value of the unit as a real value, if possible. Otherwise, use a real-valued unit instead of a complex-valued one.
|
1132
|
+
handleVAandVARUnits(simp);
|
1133
|
+
// Now apply the best prefix
|
1134
|
+
// Units must have only one unit and not have the fixPrefix flag set
|
1135
|
+
applyBestPrefixIfNeeded(simp, options.offset);
|
1136
|
+
var value = simp._denormalize(simp.value);
|
1137
|
+
var valueStr = simp.value !== null ? format(value, options || {}) : '';
|
1138
|
+
var unitStr = simp.formatUnits();
|
1139
|
+
return {
|
1140
|
+
simp,
|
1141
|
+
valueStr,
|
1142
|
+
unitStr
|
1143
|
+
};
|
1144
|
+
}
|
1145
|
+
|
1146
|
+
/**
|
1147
|
+
* Helper to handle VA and VAR units
|
1148
|
+
* @param {Unit} simp The unit to be normalized
|
1149
|
+
*/
|
1150
|
+
function handleVAandVARUnits(simp) {
|
1059
1151
|
var isImaginary = false;
|
1060
1152
|
if (typeof simp.value !== 'undefined' && simp.value !== null && isComplex(simp.value)) {
|
1061
1153
|
// TODO: Make this better, for example, use relative magnitude of re and im rather than absolute
|
@@ -1072,37 +1164,32 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
1072
1164
|
}
|
1073
1165
|
}
|
1074
1166
|
}
|
1167
|
+
}
|
1075
1168
|
|
1076
|
-
|
1077
|
-
|
1169
|
+
/**
|
1170
|
+
* Helper to apply the best prefix if needed
|
1171
|
+
* @param {Unit} simp The unit to be normalized
|
1172
|
+
*/
|
1173
|
+
function applyBestPrefixIfNeeded(simp, offset) {
|
1078
1174
|
if (simp.units.length === 1 && !simp.fixPrefix) {
|
1079
1175
|
// Units must have integer powers, otherwise the prefix will change the
|
1080
1176
|
// outputted value by not-an-integer-power-of-ten
|
1081
1177
|
if (Math.abs(simp.units[0].power - Math.round(simp.units[0].power)) < 1e-14) {
|
1082
1178
|
// Apply the best prefix
|
1083
|
-
simp.units[0].prefix = simp._bestPrefix();
|
1179
|
+
simp.units[0].prefix = simp._bestPrefix(offset);
|
1084
1180
|
}
|
1085
1181
|
}
|
1086
|
-
|
1087
|
-
var str = simp.value !== null ? format(value, options || {}) : '';
|
1088
|
-
var unitStr = simp.formatUnits();
|
1089
|
-
if (simp.value && isComplex(simp.value)) {
|
1090
|
-
str = '(' + str + ')'; // Surround complex values with ( ) to enable better parsing
|
1091
|
-
}
|
1092
|
-
if (unitStr.length > 0 && str.length > 0) {
|
1093
|
-
str += ' ';
|
1094
|
-
}
|
1095
|
-
str += unitStr;
|
1096
|
-
return str;
|
1097
|
-
};
|
1182
|
+
}
|
1098
1183
|
|
1099
1184
|
/**
|
1100
1185
|
* Calculate the best prefix using current value.
|
1101
1186
|
* @memberof Unit
|
1102
1187
|
* @returns {Object} prefix
|
1188
|
+
* @param {number} [offset] Optional offset for the best prefix calculation (default 1.2)
|
1103
1189
|
* @private
|
1104
1190
|
*/
|
1105
1191
|
Unit.prototype._bestPrefix = function () {
|
1192
|
+
var offset = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1.2;
|
1106
1193
|
if (this.units.length !== 1) {
|
1107
1194
|
throw new Error('Can only compute the best prefix for single units with integer powers, like kg, s^2, N^-1, and so forth!');
|
1108
1195
|
}
|
@@ -1125,7 +1212,7 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
1125
1212
|
return bestPrefix;
|
1126
1213
|
}
|
1127
1214
|
var power = this.units[0].power;
|
1128
|
-
var bestDiff = Math.log(absValue / Math.pow(bestPrefix.value * absUnitValue, power)) / Math.LN10 -
|
1215
|
+
var bestDiff = Math.log(absValue / Math.pow(bestPrefix.value * absUnitValue, power)) / Math.LN10 - offset;
|
1129
1216
|
if (bestDiff > -2.200001 && bestDiff < 1.800001) return bestPrefix; // Allow the original prefix
|
1130
1217
|
bestDiff = Math.abs(bestDiff);
|
1131
1218
|
var prefixes = this.units[0].unit.prefixes;
|
@@ -1133,7 +1220,7 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
1133
1220
|
if (hasOwnProperty(prefixes, p)) {
|
1134
1221
|
var prefix = prefixes[p];
|
1135
1222
|
if (prefix.scientific) {
|
1136
|
-
var diff = Math.abs(Math.log(absValue / Math.pow(prefix.value * absUnitValue, power)) / Math.LN10 -
|
1223
|
+
var diff = Math.abs(Math.log(absValue / Math.pow(prefix.value * absUnitValue, power)) / Math.LN10 - offset);
|
1137
1224
|
if (diff < bestDiff || diff === bestDiff && prefix.name.length < bestPrefix.name.length) {
|
1138
1225
|
// choose the prefix with the smallest diff, or if equal, choose the one
|
1139
1226
|
// with the shortest name (can happen with SHORTLONG for example)
|
package/lib/esm/version.js
CHANGED