feat:node-modules

This commit is contained in:
houjunxiang
2025-11-24 10:26:18 +08:00
parent 753766893b
commit 8a3e48d856
8825 changed files with 567399 additions and 1 deletions

303
node_modules/mathjs/lib/esm/plain/number/arithmetic.js generated vendored Normal file
View File

@@ -0,0 +1,303 @@
import { cbrt, expm1, isInteger, log10, log1p, log2, sign, toFixed } from '../../utils/number.js';
var n1 = 'number';
var n2 = 'number, number';
export function absNumber(a) {
return Math.abs(a);
}
absNumber.signature = n1;
export function addNumber(a, b) {
return a + b;
}
addNumber.signature = n2;
export function subtractNumber(a, b) {
return a - b;
}
subtractNumber.signature = n2;
export function multiplyNumber(a, b) {
return a * b;
}
multiplyNumber.signature = n2;
export function divideNumber(a, b) {
return a / b;
}
divideNumber.signature = n2;
export function unaryMinusNumber(x) {
return -x;
}
unaryMinusNumber.signature = n1;
export function unaryPlusNumber(x) {
return x;
}
unaryPlusNumber.signature = n1;
export function cbrtNumber(x) {
return cbrt(x);
}
cbrtNumber.signature = n1;
export function cubeNumber(x) {
return x * x * x;
}
cubeNumber.signature = n1;
export function expNumber(x) {
return Math.exp(x);
}
expNumber.signature = n1;
export function expm1Number(x) {
return expm1(x);
}
expm1Number.signature = n1;
/**
* Calculate gcd for numbers
* @param {number} a
* @param {number} b
* @returns {number} Returns the greatest common denominator of a and b
*/
export function gcdNumber(a, b) {
if (!isInteger(a) || !isInteger(b)) {
throw new Error('Parameters in function gcd must be integer numbers');
}
// https://en.wikipedia.org/wiki/Euclidean_algorithm
var r;
while (b !== 0) {
r = a % b;
a = b;
b = r;
}
return a < 0 ? -a : a;
}
gcdNumber.signature = n2;
/**
* Calculate lcm for two numbers
* @param {number} a
* @param {number} b
* @returns {number} Returns the least common multiple of a and b
*/
export function lcmNumber(a, b) {
if (!isInteger(a) || !isInteger(b)) {
throw new Error('Parameters in function lcm must be integer numbers');
}
if (a === 0 || b === 0) {
return 0;
}
// https://en.wikipedia.org/wiki/Euclidean_algorithm
// evaluate lcm here inline to reduce overhead
var t;
var prod = a * b;
while (b !== 0) {
t = b;
b = a % t;
a = t;
}
return Math.abs(prod / a);
}
lcmNumber.signature = n2;
/**
* Calculate the logarithm of a value, optionally to a given base.
* @param {number} x
* @param {number | null | undefined} base
* @return {number}
*/
export function logNumber(x, y) {
if (y) {
return Math.log(x) / Math.log(y);
}
return Math.log(x);
}
/**
* Calculate the 10-base logarithm of a number
* @param {number} x
* @return {number}
*/
export function log10Number(x) {
return log10(x);
}
log10Number.signature = n1;
/**
* Calculate the 2-base logarithm of a number
* @param {number} x
* @return {number}
*/
export function log2Number(x) {
return log2(x);
}
log2Number.signature = n1;
/**
* Calculate the natural logarithm of a `number+1`
* @param {number} x
* @returns {number}
*/
export function log1pNumber(x) {
return log1p(x);
}
log1pNumber.signature = n1;
/**
* Calculate the modulus of two numbers
* @param {number} x
* @param {number} y
* @returns {number} res
* @private
*/
export function modNumber(x, y) {
// We don't use JavaScript's % operator here as this doesn't work
// correctly for x < 0 and x === 0
// see https://en.wikipedia.org/wiki/Modulo_operation
return y === 0 ? x : x - y * Math.floor(x / y);
}
modNumber.signature = n2;
/**
* Calculate the nth root of a, solve x^root == a
* http://rosettacode.org/wiki/Nth_root#JavaScript
* @param {number} a
* @param {number} [2] root
* @private
*/
export function nthRootNumber(a) {
var root = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;
var inv = root < 0;
if (inv) {
root = -root;
}
if (root === 0) {
throw new Error('Root must be non-zero');
}
if (a < 0 && Math.abs(root) % 2 !== 1) {
throw new Error('Root must be odd when a is negative.');
}
// edge cases zero and infinity
if (a === 0) {
return inv ? Infinity : 0;
}
if (!isFinite(a)) {
return inv ? 0 : a;
}
var x = Math.pow(Math.abs(a), 1 / root);
// If a < 0, we require that root is an odd integer,
// so (-1) ^ (1/root) = -1
x = a < 0 ? -x : x;
return inv ? 1 / x : x;
// Very nice algorithm, but fails with nthRoot(-2, 3).
// Newton's method has some well-known problems at times:
// https://en.wikipedia.org/wiki/Newton%27s_method#Failure_analysis
/*
let x = 1 // Initial guess
let xPrev = 1
let i = 0
const iMax = 10000
do {
const delta = (a / Math.pow(x, root - 1) - x) / root
xPrev = x
x = x + delta
i++
}
while (xPrev !== x && i < iMax)
if (xPrev !== x) {
throw new Error('Function nthRoot failed to converge')
}
return inv ? 1 / x : x
*/
}
export function signNumber(x) {
return sign(x);
}
signNumber.signature = n1;
export function sqrtNumber(x) {
return Math.sqrt(x);
}
sqrtNumber.signature = n1;
export function squareNumber(x) {
return x * x;
}
squareNumber.signature = n1;
/**
* Calculate xgcd for two numbers
* @param {number} a
* @param {number} b
* @return {number} result
* @private
*/
export function xgcdNumber(a, b) {
// source: https://en.wikipedia.org/wiki/Extended_Euclidean_algorithm
var t; // used to swap two variables
var q; // quotient
var r; // remainder
var x = 0;
var lastx = 1;
var y = 1;
var lasty = 0;
if (!isInteger(a) || !isInteger(b)) {
throw new Error('Parameters in function xgcd must be integer numbers');
}
while (b) {
q = Math.floor(a / b);
r = a - q * b;
t = x;
x = lastx - q * x;
lastx = t;
t = y;
y = lasty - q * y;
lasty = t;
a = b;
b = r;
}
var res;
if (a < 0) {
res = [-a, -lastx, -lasty];
} else {
res = [a, a ? lastx : 0, lasty];
}
return res;
}
xgcdNumber.signature = n2;
/**
* Calculates the power of x to y, x^y, for two numbers.
* @param {number} x
* @param {number} y
* @return {number} res
*/
export function powNumber(x, y) {
// x^Infinity === 0 if -1 < x < 1
// A real number 0 is returned instead of complex(0)
if (x * x < 1 && y === Infinity || x * x > 1 && y === -Infinity) {
return 0;
}
return Math.pow(x, y);
}
powNumber.signature = n2;
/**
* round a number to the given number of decimals, or to zero if decimals is
* not provided
* @param {number} value
* @param {number} decimals number of decimals, between 0 and 15 (0 by default)
* @return {number} roundedValue
*/
export function roundNumber(value) {
var decimals = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
if (!isInteger(decimals) || decimals < 0 || decimals > 15) {
throw new Error('Number of decimals in function round must be an integer from 0 to 15 inclusive');
}
return parseFloat(toFixed(value, decimals));
}
/**
* Calculate the norm of a number, the absolute value.
* @param {number} x
* @return {number}
*/
export function normNumber(x) {
return Math.abs(x);
}
normNumber.signature = n1;

52
node_modules/mathjs/lib/esm/plain/number/bitwise.js generated vendored Normal file
View File

@@ -0,0 +1,52 @@
import { isInteger } from '../../utils/number.js';
var n1 = 'number';
var n2 = 'number, number';
export function bitAndNumber(x, y) {
if (!isInteger(x) || !isInteger(y)) {
throw new Error('Integers expected in function bitAnd');
}
return x & y;
}
bitAndNumber.signature = n2;
export function bitNotNumber(x) {
if (!isInteger(x)) {
throw new Error('Integer expected in function bitNot');
}
return ~x;
}
bitNotNumber.signature = n1;
export function bitOrNumber(x, y) {
if (!isInteger(x) || !isInteger(y)) {
throw new Error('Integers expected in function bitOr');
}
return x | y;
}
bitOrNumber.signature = n2;
export function bitXorNumber(x, y) {
if (!isInteger(x) || !isInteger(y)) {
throw new Error('Integers expected in function bitXor');
}
return x ^ y;
}
bitXorNumber.signature = n2;
export function leftShiftNumber(x, y) {
if (!isInteger(x) || !isInteger(y)) {
throw new Error('Integers expected in function leftShift');
}
return x << y;
}
leftShiftNumber.signature = n2;
export function rightArithShiftNumber(x, y) {
if (!isInteger(x) || !isInteger(y)) {
throw new Error('Integers expected in function rightArithShift');
}
return x >> y;
}
rightArithShiftNumber.signature = n2;
export function rightLogShiftNumber(x, y) {
if (!isInteger(x) || !isInteger(y)) {
throw new Error('Integers expected in function rightLogShift');
}
return x >>> y;
}
rightLogShiftNumber.signature = n2;

View File

@@ -0,0 +1,33 @@
import { isInteger } from '../../utils/number.js';
import { product } from '../../utils/product.js';
export function combinationsNumber(n, k) {
if (!isInteger(n) || n < 0) {
throw new TypeError('Positive integer value expected in function combinations');
}
if (!isInteger(k) || k < 0) {
throw new TypeError('Positive integer value expected in function combinations');
}
if (k > n) {
throw new TypeError('k must be less than or equal to n');
}
var nMinusk = n - k;
var answer = 1;
var firstnumerator = k < nMinusk ? nMinusk + 1 : k + 1;
var nextdivisor = 2;
var lastdivisor = k < nMinusk ? k : nMinusk;
// balance multiplications and divisions to try to keep intermediate values
// in exact-integer range as long as possible
for (var nextnumerator = firstnumerator; nextnumerator <= n; ++nextnumerator) {
answer *= nextnumerator;
while (nextdivisor <= lastdivisor && answer % nextdivisor === 0) {
answer /= nextdivisor;
++nextdivisor;
}
}
// for big n, k, floating point may have caused weirdness in remainder
if (nextdivisor <= lastdivisor) {
answer /= product(nextdivisor, lastdivisor);
}
return answer;
}
combinationsNumber.signature = 'number, number';

View File

@@ -0,0 +1,4 @@
export var pi = Math.PI;
export var tau = 2 * Math.PI;
export var e = Math.E;
export var phi = 1.6180339887498948; // eslint-disable-line no-loss-of-precision

9
node_modules/mathjs/lib/esm/plain/number/index.js generated vendored Normal file
View File

@@ -0,0 +1,9 @@
export * from './arithmetic.js';
export * from './bitwise.js';
export * from './combinations.js';
export * from './constants.js';
export * from './logical.js';
export * from './relational.js';
export * from './probability.js';
export * from './trigonometry.js';
export * from './utils.js';

18
node_modules/mathjs/lib/esm/plain/number/logical.js generated vendored Normal file
View File

@@ -0,0 +1,18 @@
var n1 = 'number';
var n2 = 'number, number';
export function notNumber(x) {
return !x;
}
notNumber.signature = n1;
export function orNumber(x, y) {
return !!(x || y);
}
orNumber.signature = n2;
export function xorNumber(x, y) {
return !!x !== !!y;
}
xorNumber.signature = n2;
export function andNumber(x, y) {
return !!(x && y);
}
andNumber.signature = n2;

View File

@@ -0,0 +1,75 @@
/* eslint-disable no-loss-of-precision */
import { isInteger } from '../../utils/number.js';
import { product } from '../../utils/product.js';
export function gammaNumber(n) {
var x;
if (isInteger(n)) {
if (n <= 0) {
return isFinite(n) ? Infinity : NaN;
}
if (n > 171) {
return Infinity; // Will overflow
}
return product(1, n - 1);
}
if (n < 0.5) {
return Math.PI / (Math.sin(Math.PI * n) * gammaNumber(1 - n));
}
if (n >= 171.35) {
return Infinity; // will overflow
}
if (n > 85.0) {
// Extended Stirling Approx
var twoN = n * n;
var threeN = twoN * n;
var fourN = threeN * n;
var fiveN = fourN * n;
return Math.sqrt(2 * Math.PI / n) * Math.pow(n / Math.E, n) * (1 + 1 / (12 * n) + 1 / (288 * twoN) - 139 / (51840 * threeN) - 571 / (2488320 * fourN) + 163879 / (209018880 * fiveN) + 5246819 / (75246796800 * fiveN * n));
}
--n;
x = gammaP[0];
for (var i = 1; i < gammaP.length; ++i) {
x += gammaP[i] / (n + i);
}
var t = n + gammaG + 0.5;
return Math.sqrt(2 * Math.PI) * Math.pow(t, n + 0.5) * Math.exp(-t) * x;
}
gammaNumber.signature = 'number';
// TODO: comment on the variables g and p
export var gammaG = 4.7421875;
export var gammaP = [0.99999999999999709182, 57.156235665862923517, -59.597960355475491248, 14.136097974741747174, -0.49191381609762019978, 0.33994649984811888699e-4, 0.46523628927048575665e-4, -0.98374475304879564677e-4, 0.15808870322491248884e-3, -0.21026444172410488319e-3, 0.21743961811521264320e-3, -0.16431810653676389022e-3, 0.84418223983852743293e-4, -0.26190838401581408670e-4, 0.36899182659531622704e-5];
// lgamma implementation ref: https://mrob.com/pub/ries/lanczos-gamma.html#code
// log(2 * pi) / 2
export var lnSqrt2PI = 0.91893853320467274178;
export var lgammaG = 5; // Lanczos parameter "g"
export var lgammaN = 7; // Range of coefficients "n"
export var lgammaSeries = [1.000000000190015, 76.18009172947146, -86.50532032941677, 24.01409824083091, -1.231739572450155, 0.1208650973866179e-2, -0.5395239384953e-5];
export function lgammaNumber(n) {
if (n < 0) return NaN;
if (n === 0) return Infinity;
if (!isFinite(n)) return n;
if (n < 0.5) {
// Use Euler's reflection formula:
// gamma(z) = PI / (sin(PI * z) * gamma(1 - z))
return Math.log(Math.PI / Math.sin(Math.PI * n)) - lgammaNumber(1 - n);
}
// Compute the logarithm of the Gamma function using the Lanczos method
n = n - 1;
var base = n + lgammaG + 0.5; // Base of the Lanczos exponential
var sum = lgammaSeries[0];
// We start with the terms that have the smallest coefficients and largest denominator
for (var i = lgammaN - 1; i >= 1; i--) {
sum += lgammaSeries[i] / (n + i);
}
return lnSqrt2PI + (n + 0.5) * Math.log(base) - base + Math.log(sum);
}
lgammaNumber.signature = 'number';

View File

View File

@@ -0,0 +1,112 @@
import { acosh, asinh, atanh, cosh, sign, sinh, tanh } from '../../utils/number.js';
var n1 = 'number';
var n2 = 'number, number';
export function acosNumber(x) {
return Math.acos(x);
}
acosNumber.signature = n1;
export function acoshNumber(x) {
return acosh(x);
}
acoshNumber.signature = n1;
export function acotNumber(x) {
return Math.atan(1 / x);
}
acotNumber.signature = n1;
export function acothNumber(x) {
return isFinite(x) ? (Math.log((x + 1) / x) + Math.log(x / (x - 1))) / 2 : 0;
}
acothNumber.signature = n1;
export function acscNumber(x) {
return Math.asin(1 / x);
}
acscNumber.signature = n1;
export function acschNumber(x) {
var xInv = 1 / x;
return Math.log(xInv + Math.sqrt(xInv * xInv + 1));
}
acschNumber.signature = n1;
export function asecNumber(x) {
return Math.acos(1 / x);
}
asecNumber.signature = n1;
export function asechNumber(x) {
var xInv = 1 / x;
var ret = Math.sqrt(xInv * xInv - 1);
return Math.log(ret + xInv);
}
asechNumber.signature = n1;
export function asinNumber(x) {
return Math.asin(x);
}
asinNumber.signature = n1;
export function asinhNumber(x) {
return asinh(x);
}
asinhNumber.signature = n1;
export function atanNumber(x) {
return Math.atan(x);
}
atanNumber.signature = n1;
export function atan2Number(y, x) {
return Math.atan2(y, x);
}
atan2Number.signature = n2;
export function atanhNumber(x) {
return atanh(x);
}
atanhNumber.signature = n1;
export function cosNumber(x) {
return Math.cos(x);
}
cosNumber.signature = n1;
export function coshNumber(x) {
return cosh(x);
}
coshNumber.signature = n1;
export function cotNumber(x) {
return 1 / Math.tan(x);
}
cotNumber.signature = n1;
export function cothNumber(x) {
var e = Math.exp(2 * x);
return (e + 1) / (e - 1);
}
cothNumber.signature = n1;
export function cscNumber(x) {
return 1 / Math.sin(x);
}
cscNumber.signature = n1;
export function cschNumber(x) {
// consider values close to zero (+/-)
if (x === 0) {
return Number.POSITIVE_INFINITY;
} else {
return Math.abs(2 / (Math.exp(x) - Math.exp(-x))) * sign(x);
}
}
cschNumber.signature = n1;
export function secNumber(x) {
return 1 / Math.cos(x);
}
secNumber.signature = n1;
export function sechNumber(x) {
return 2 / (Math.exp(x) + Math.exp(-x));
}
sechNumber.signature = n1;
export function sinNumber(x) {
return Math.sin(x);
}
sinNumber.signature = n1;
export function sinhNumber(x) {
return sinh(x);
}
sinhNumber.signature = n1;
export function tanNumber(x) {
return Math.tan(x);
}
tanNumber.signature = n1;
export function tanhNumber(x) {
return tanh(x);
}
tanhNumber.signature = n1;

22
node_modules/mathjs/lib/esm/plain/number/utils.js generated vendored Normal file
View File

@@ -0,0 +1,22 @@
import { isInteger } from '../../utils/number.js';
var n1 = 'number';
export function isIntegerNumber(x) {
return isInteger(x);
}
isIntegerNumber.signature = n1;
export function isNegativeNumber(x) {
return x < 0;
}
isNegativeNumber.signature = n1;
export function isPositiveNumber(x) {
return x > 0;
}
isPositiveNumber.signature = n1;
export function isZeroNumber(x) {
return x === 0;
}
isZeroNumber.signature = n1;
export function isNaNNumber(x) {
return Number.isNaN(x);
}
isNaNNumber.signature = n1;