mathjs 12.2.1 → 12.3.1
Sign up to get free protection for your applications and to get access to all the features.
- package/HISTORY.md +27 -0
- package/NOTICE +1 -1
- package/README.md +4 -3
- package/bin/cli.js +1 -1
- package/lib/browser/math.js +1 -1
- package/lib/browser/math.js.LICENSE.txt +3 -3
- package/lib/browser/math.js.map +1 -1
- package/lib/cjs/entry/configReadonly.js +1 -1
- package/lib/cjs/entry/dependenciesAny/dependenciesHelpClass.generated.js +2 -2
- package/lib/cjs/entry/dependenciesNumber/dependenciesHelpClass.generated.js +2 -2
- package/lib/cjs/entry/impureFunctionsAny.generated.js +14 -14
- package/lib/cjs/entry/impureFunctionsNumber.generated.js +1 -1
- package/lib/cjs/entry/pureFunctionsAny.generated.js +11 -11
- package/lib/cjs/expression/Help.js +21 -4
- package/lib/cjs/expression/node/AccessorNode.js +4 -5
- package/lib/cjs/expression/node/ArrayNode.js +4 -5
- package/lib/cjs/expression/node/AssignmentNode.js +4 -5
- package/lib/cjs/expression/node/BlockNode.js +4 -5
- package/lib/cjs/expression/node/ConditionalNode.js +4 -5
- package/lib/cjs/expression/node/ConstantNode.js +4 -5
- package/lib/cjs/expression/node/FunctionAssignmentNode.js +4 -5
- package/lib/cjs/expression/node/FunctionNode.js +5 -6
- package/lib/cjs/expression/node/IndexNode.js +4 -5
- package/lib/cjs/expression/node/ObjectNode.js +4 -5
- package/lib/cjs/expression/node/OperatorNode.js +4 -5
- package/lib/cjs/expression/node/ParenthesisNode.js +4 -5
- package/lib/cjs/expression/node/RangeNode.js +4 -5
- package/lib/cjs/expression/node/RelationalNode.js +4 -5
- package/lib/cjs/expression/node/SymbolNode.js +4 -5
- package/lib/cjs/function/string/bin.js +3 -3
- package/lib/cjs/function/string/format.js +3 -3
- package/lib/cjs/function/string/hex.js +3 -3
- package/lib/cjs/function/string/oct.js +3 -3
- package/lib/cjs/header.js +3 -3
- package/lib/cjs/type/unit/Unit.js +86 -2
- package/lib/cjs/type/unit/physicalConstants.js +1 -1
- package/lib/cjs/utils/bignumber/formatter.js +17 -27
- package/lib/cjs/utils/number.js +75 -33
- package/lib/cjs/version.js +1 -1
- package/lib/esm/entry/configReadonly.js +1 -1
- package/lib/esm/entry/dependenciesAny/dependenciesHelpClass.generated.js +2 -2
- package/lib/esm/entry/dependenciesNumber/dependenciesHelpClass.generated.js +2 -2
- package/lib/esm/entry/impureFunctionsAny.generated.js +16 -16
- package/lib/esm/entry/impureFunctionsNumber.generated.js +1 -1
- package/lib/esm/entry/pureFunctionsAny.generated.js +12 -12
- package/lib/esm/expression/Help.js +21 -4
- package/lib/esm/function/string/bin.js +3 -3
- package/lib/esm/function/string/format.js +3 -3
- package/lib/esm/function/string/hex.js +3 -3
- package/lib/esm/function/string/oct.js +3 -3
- package/lib/esm/header.js +1 -1
- package/lib/esm/type/unit/Unit.js +86 -2
- package/lib/esm/type/unit/physicalConstants.js +1 -1
- package/lib/esm/utils/bignumber/formatter.js +19 -28
- package/lib/esm/utils/number.js +76 -34
- package/lib/esm/version.js +1 -1
- package/package.json +14 -14
- package/types/index.d.ts +30 -18
package/lib/cjs/utils/number.js
CHANGED
@@ -12,6 +12,7 @@ exports.format = format;
|
|
12
12
|
exports.isInteger = isInteger;
|
13
13
|
exports.log2 = exports.log1p = exports.log10 = void 0;
|
14
14
|
exports.nearlyEqual = nearlyEqual;
|
15
|
+
exports.normalizeFormatOptions = normalizeFormatOptions;
|
15
16
|
exports.roundDigits = roundDigits;
|
16
17
|
exports.sinh = exports.sign = void 0;
|
17
18
|
exports.splitNumber = splitNumber;
|
@@ -42,7 +43,7 @@ function isInteger(value) {
|
|
42
43
|
* @param {number} x
|
43
44
|
* @returns {number}
|
44
45
|
*/
|
45
|
-
var sign = exports.sign =
|
46
|
+
var sign = exports.sign = Math.sign || function (x) {
|
46
47
|
if (x > 0) {
|
47
48
|
return 1;
|
48
49
|
} else if (x < 0) {
|
@@ -57,7 +58,7 @@ var sign = exports.sign = /* #__PURE__ */Math.sign || function (x) {
|
|
57
58
|
* @param {number} x
|
58
59
|
* @returns {number}
|
59
60
|
*/
|
60
|
-
var log2 = exports.log2 =
|
61
|
+
var log2 = exports.log2 = Math.log2 || function log2(x) {
|
61
62
|
return Math.log(x) / Math.LN2;
|
62
63
|
};
|
63
64
|
|
@@ -66,7 +67,7 @@ var log2 = exports.log2 = /* #__PURE__ */Math.log2 || function log2(x) {
|
|
66
67
|
* @param {number} x
|
67
68
|
* @returns {number}
|
68
69
|
*/
|
69
|
-
var log10 = exports.log10 =
|
70
|
+
var log10 = exports.log10 = Math.log10 || function log10(x) {
|
70
71
|
return Math.log(x) / Math.LN10;
|
71
72
|
};
|
72
73
|
|
@@ -75,7 +76,7 @@ var log10 = exports.log10 = /* #__PURE__ */Math.log10 || function log10(x) {
|
|
75
76
|
* @param {number} x
|
76
77
|
* @returns {number}
|
77
78
|
*/
|
78
|
-
var log1p = exports.log1p =
|
79
|
+
var log1p = exports.log1p = Math.log1p || function (x) {
|
79
80
|
return Math.log(x + 1);
|
80
81
|
};
|
81
82
|
|
@@ -88,7 +89,7 @@ var log1p = exports.log1p = /* #__PURE__ */Math.log1p || function (x) {
|
|
88
89
|
* @param {number} x
|
89
90
|
* @returns {number} Returns the cubic root of x
|
90
91
|
*/
|
91
|
-
var cbrt = exports.cbrt =
|
92
|
+
var cbrt = exports.cbrt = Math.cbrt || function cbrt(x) {
|
92
93
|
if (x === 0) {
|
93
94
|
return x;
|
94
95
|
}
|
@@ -112,7 +113,7 @@ var cbrt = exports.cbrt = /* #__PURE__ */Math.cbrt || function cbrt(x) {
|
|
112
113
|
* @param {number} x
|
113
114
|
* @return {number} res
|
114
115
|
*/
|
115
|
-
var expm1 = exports.expm1 =
|
116
|
+
var expm1 = exports.expm1 = Math.expm1 || function expm1(x) {
|
116
117
|
return x >= 2e-4 || x <= -2e-4 ? Math.exp(x) - 1 : x + x * x / 2 + x * x * x / 6;
|
117
118
|
};
|
118
119
|
|
@@ -255,30 +256,10 @@ function format(value, options) {
|
|
255
256
|
} else if (isNaN(value)) {
|
256
257
|
return 'NaN';
|
257
258
|
}
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
var wordSize;
|
263
|
-
if (options) {
|
264
|
-
// determine notation from options
|
265
|
-
if (options.notation) {
|
266
|
-
notation = options.notation;
|
267
|
-
}
|
268
|
-
|
269
|
-
// determine precision from options
|
270
|
-
if ((0, _is.isNumber)(options)) {
|
271
|
-
precision = options;
|
272
|
-
} else if ((0, _is.isNumber)(options.precision)) {
|
273
|
-
precision = options.precision;
|
274
|
-
}
|
275
|
-
if (options.wordSize) {
|
276
|
-
wordSize = options.wordSize;
|
277
|
-
if (typeof wordSize !== 'number') {
|
278
|
-
throw new Error('Option "wordSize" must be a number');
|
279
|
-
}
|
280
|
-
}
|
281
|
-
}
|
259
|
+
var _normalizeFormatOptio = normalizeFormatOptions(options),
|
260
|
+
notation = _normalizeFormatOptio.notation,
|
261
|
+
precision = _normalizeFormatOptio.precision,
|
262
|
+
wordSize = _normalizeFormatOptio.wordSize;
|
282
263
|
|
283
264
|
// handle the various notations
|
284
265
|
switch (notation) {
|
@@ -296,7 +277,7 @@ function format(value, options) {
|
|
296
277
|
return formatNumberToBase(value, 16, wordSize);
|
297
278
|
case 'auto':
|
298
279
|
// remove trailing zeros after the decimal point
|
299
|
-
return toPrecision(value, precision, options
|
280
|
+
return toPrecision(value, precision, options).replace(/((\.\d*?)(0+))($|e)/, function () {
|
300
281
|
var digits = arguments[2];
|
301
282
|
var e = arguments[4];
|
302
283
|
return digits !== '.' ? digits + e : e;
|
@@ -306,6 +287,49 @@ function format(value, options) {
|
|
306
287
|
}
|
307
288
|
}
|
308
289
|
|
290
|
+
/**
|
291
|
+
* Normalize format options into an object:
|
292
|
+
* {
|
293
|
+
* notation: string,
|
294
|
+
* precision: number | undefined,
|
295
|
+
* wordSize: number | undefined
|
296
|
+
* }
|
297
|
+
*/
|
298
|
+
function normalizeFormatOptions(options) {
|
299
|
+
// default values for options
|
300
|
+
var notation = 'auto';
|
301
|
+
var precision;
|
302
|
+
var wordSize;
|
303
|
+
if (options !== undefined) {
|
304
|
+
if ((0, _is.isNumber)(options)) {
|
305
|
+
precision = options;
|
306
|
+
} else if ((0, _is.isBigNumber)(options)) {
|
307
|
+
precision = options.toNumber();
|
308
|
+
} else if ((0, _is.isObject)(options)) {
|
309
|
+
if (options.precision !== undefined) {
|
310
|
+
precision = _toNumberOrThrow(options.precision, function () {
|
311
|
+
throw new Error('Option "precision" must be a number or BigNumber');
|
312
|
+
});
|
313
|
+
}
|
314
|
+
if (options.wordSize !== undefined) {
|
315
|
+
wordSize = _toNumberOrThrow(options.wordSize, function () {
|
316
|
+
throw new Error('Option "wordSize" must be a number or BigNumber');
|
317
|
+
});
|
318
|
+
}
|
319
|
+
if (options.notation) {
|
320
|
+
notation = options.notation;
|
321
|
+
}
|
322
|
+
} else {
|
323
|
+
throw new Error('Unsupported type of options, number, BigNumber, or object expected');
|
324
|
+
}
|
325
|
+
}
|
326
|
+
return {
|
327
|
+
notation: notation,
|
328
|
+
precision: precision,
|
329
|
+
wordSize: wordSize
|
330
|
+
};
|
331
|
+
}
|
332
|
+
|
309
333
|
/**
|
310
334
|
* Split a number into sign, coefficients, and exponent
|
311
335
|
* @param {number | string} value
|
@@ -469,8 +493,8 @@ function toPrecision(value, precision, options) {
|
|
469
493
|
}
|
470
494
|
|
471
495
|
// determine lower and upper bound for exponential notation.
|
472
|
-
var lowerExp = options
|
473
|
-
var upperExp = options
|
496
|
+
var lowerExp = _toNumberOrDefault(options === null || options === void 0 ? void 0 : options.lowerExp, -3);
|
497
|
+
var upperExp = _toNumberOrDefault(options === null || options === void 0 ? void 0 : options.upperExp, 5);
|
474
498
|
var split = splitNumber(value);
|
475
499
|
var rounded = precision ? roundDigits(split, precision) : split;
|
476
500
|
if (rounded.exponent < lowerExp || rounded.exponent >= upperExp) {
|
@@ -675,4 +699,22 @@ function copysign(x, y) {
|
|
675
699
|
var signx = x > 0 ? true : x < 0 ? false : 1 / x === Infinity;
|
676
700
|
var signy = y > 0 ? true : y < 0 ? false : 1 / y === Infinity;
|
677
701
|
return signx ^ signy ? -x : x;
|
702
|
+
}
|
703
|
+
function _toNumberOrThrow(value, onError) {
|
704
|
+
if ((0, _is.isNumber)(value)) {
|
705
|
+
return value;
|
706
|
+
} else if ((0, _is.isBigNumber)(value)) {
|
707
|
+
return value.toNumber();
|
708
|
+
} else {
|
709
|
+
onError();
|
710
|
+
}
|
711
|
+
}
|
712
|
+
function _toNumberOrDefault(value, defaultValue) {
|
713
|
+
if ((0, _is.isNumber)(value)) {
|
714
|
+
return value;
|
715
|
+
} else if ((0, _is.isBigNumber)(value)) {
|
716
|
+
return value.toNumber();
|
717
|
+
} else {
|
718
|
+
return defaultValue;
|
719
|
+
}
|
678
720
|
}
|
package/lib/cjs/version.js
CHANGED
@@ -4,6 +4,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.version = void 0;
|
7
|
-
var version = exports.version = '12.
|
7
|
+
var version = exports.version = '12.3.1';
|
8
8
|
// Note: This file is automatically generated when building math.js.
|
9
9
|
// Changes made in this file will be overwritten.
|
@@ -3,7 +3,7 @@ import { DEFAULT_CONFIG } from '../core/config.js';
|
|
3
3
|
import { MATRIX_OPTIONS, NUMBER_OPTIONS } from '../core/function/config.js';
|
4
4
|
|
5
5
|
// create a read-only version of config
|
6
|
-
export var config =
|
6
|
+
export var config = function config(options) {
|
7
7
|
if (options) {
|
8
8
|
throw new Error('The global config is readonly. \n' + 'Please create a mathjs instance if you want to change the default configuration. \n' + 'Example:\n' + '\n' + ' import { create, all } from \'mathjs\';\n' + ' const mathjs = create(all);\n' + ' mathjs.config({ number: \'BigNumber\' });\n');
|
9
9
|
}
|
@@ -2,9 +2,9 @@
|
|
2
2
|
* THIS FILE IS AUTO-GENERATED
|
3
3
|
* DON'T MAKE CHANGES HERE
|
4
4
|
*/
|
5
|
-
import {
|
5
|
+
import { evaluateDependencies } from './dependenciesEvaluate.generated.js';
|
6
6
|
import { createHelpClass } from '../../factoriesAny.js';
|
7
7
|
export var HelpDependencies = {
|
8
|
-
|
8
|
+
evaluateDependencies,
|
9
9
|
createHelpClass
|
10
10
|
};
|
@@ -2,9 +2,9 @@
|
|
2
2
|
* THIS FILE IS AUTO-GENERATED
|
3
3
|
* DON'T MAKE CHANGES HERE
|
4
4
|
*/
|
5
|
-
import {
|
5
|
+
import { evaluateDependencies } from './dependenciesEvaluate.generated.js';
|
6
6
|
import { createHelpClass } from '../../factoriesNumber.js';
|
7
7
|
export var HelpDependencies = {
|
8
|
-
|
8
|
+
evaluateDependencies,
|
9
9
|
createHelpClass
|
10
10
|
};
|
@@ -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,
|
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,
|
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
|
164
|
-
|
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
|
-
|
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
|
-
|
551
|
+
help,
|
552
552
|
planckTime,
|
553
553
|
schur,
|
554
554
|
rotate,
|
@@ -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,
|
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 = ['
|
6
|
+
var dependencies = ['evaluate'];
|
7
7
|
export var createHelpClass = /* #__PURE__ */factory(name, dependencies, _ref => {
|
8
8
|
var {
|
9
|
-
|
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
|
-
|
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 =
|
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
|
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
|
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
|
38
|
+
'number | BigNumber, number | BigNumber': function numberBigNumberNumberBigNumber(n, wordSize) {
|
39
39
|
return format(n, {
|
40
40
|
notation: 'oct',
|
41
41
|
wordSize
|
package/lib/esm/header.js
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
* @date @@date
|
11
11
|
*
|
12
12
|
* @license
|
13
|
-
* Copyright (C) 2013-
|
13
|
+
* Copyright (C) 2013-2024 Jos de Jong <wjosdejong@gmail.com>
|
14
14
|
*
|
15
15
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
16
16
|
* use this file except in compliance with the License. You may obtain a copy
|