mathfuse 1.0.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/CHANGELOG.md +37 -0
- package/LICENSE +21 -0
- package/README.md +239 -0
- package/dist/cjs/algebra/index.d.ts +99 -0
- package/dist/cjs/algebra/index.d.ts.map +1 -0
- package/dist/cjs/algebra/index.js +358 -0
- package/dist/cjs/algebra/index.js.map +1 -0
- package/dist/cjs/index.d.ts +15 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +82 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/number-theory/index.d.ts +81 -0
- package/dist/cjs/number-theory/index.d.ts.map +1 -0
- package/dist/cjs/number-theory/index.js +331 -0
- package/dist/cjs/number-theory/index.js.map +1 -0
- package/dist/cjs/numerical/index.d.ts +95 -0
- package/dist/cjs/numerical/index.d.ts.map +1 -0
- package/dist/cjs/numerical/index.js +300 -0
- package/dist/cjs/numerical/index.js.map +1 -0
- package/dist/cjs/stats/index.d.ts +32 -0
- package/dist/cjs/stats/index.d.ts.map +1 -0
- package/dist/cjs/stats/index.js +232 -0
- package/dist/cjs/stats/index.js.map +1 -0
- package/dist/esm/algebra/index.d.ts +99 -0
- package/dist/esm/algebra/index.d.ts.map +1 -0
- package/dist/esm/algebra/index.js +333 -0
- package/dist/esm/algebra/index.js.map +1 -0
- package/dist/esm/index.d.ts +15 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +16 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/number-theory/index.d.ts +81 -0
- package/dist/esm/number-theory/index.d.ts.map +1 -0
- package/dist/esm/number-theory/index.js +311 -0
- package/dist/esm/number-theory/index.js.map +1 -0
- package/dist/esm/numerical/index.d.ts +95 -0
- package/dist/esm/numerical/index.d.ts.map +1 -0
- package/dist/esm/numerical/index.js +280 -0
- package/dist/esm/numerical/index.js.map +1 -0
- package/dist/esm/stats/index.d.ts +32 -0
- package/dist/esm/stats/index.d.ts.map +1 -0
- package/dist/esm/stats/index.js +208 -0
- package/dist/esm/stats/index.js.map +1 -0
- package/dist/types/algebra/index.d.ts +99 -0
- package/dist/types/algebra/index.d.ts.map +1 -0
- package/dist/types/index.d.ts +15 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/number-theory/index.d.ts +81 -0
- package/dist/types/number-theory/index.d.ts.map +1 -0
- package/dist/types/numerical/index.d.ts +95 -0
- package/dist/types/numerical/index.d.ts.map +1 -0
- package/dist/types/stats/index.d.ts +32 -0
- package/dist/types/stats/index.d.ts.map +1 -0
- package/package.json +85 -0
|
@@ -0,0 +1,358 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @module algebra
|
|
4
|
+
* Vector and matrix operations using plain JS arrays.
|
|
5
|
+
* All operations return new values — inputs are never mutated.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.msolve = exports.mrank = exports.mtrace = exports.minverse = exports.mdet = exports.mvmul = exports.mmul = exports.mscale = exports.madd = exports.mtranspose = exports.midentity = exports.mzeros = exports.vhadamard = exports.cross3d = exports.cosineSimilarity = exports.vdistance = exports.vnormalize = exports.vnorm = exports.vdot = exports.vscale = exports.vsub = exports.vadd = void 0;
|
|
9
|
+
// ─── Vector Operations ────────────────────────────────────────────────────────
|
|
10
|
+
function assertSameLength(a, b, label = 'vectors') {
|
|
11
|
+
if (a.length !== b.length) {
|
|
12
|
+
throw new RangeError(`${label} must have equal length (got ${a.length} and ${b.length})`);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Vector addition: a + b
|
|
17
|
+
*/
|
|
18
|
+
function vadd(a, b) {
|
|
19
|
+
assertSameLength(a, b);
|
|
20
|
+
return a.map((v, i) => v + b[i]);
|
|
21
|
+
}
|
|
22
|
+
exports.vadd = vadd;
|
|
23
|
+
/**
|
|
24
|
+
* Vector subtraction: a − b
|
|
25
|
+
*/
|
|
26
|
+
function vsub(a, b) {
|
|
27
|
+
assertSameLength(a, b);
|
|
28
|
+
return a.map((v, i) => v - b[i]);
|
|
29
|
+
}
|
|
30
|
+
exports.vsub = vsub;
|
|
31
|
+
/**
|
|
32
|
+
* Scalar multiplication: c * v
|
|
33
|
+
*/
|
|
34
|
+
function vscale(v, c) {
|
|
35
|
+
return v.map((x) => x * c);
|
|
36
|
+
}
|
|
37
|
+
exports.vscale = vscale;
|
|
38
|
+
/**
|
|
39
|
+
* Dot product: a · b
|
|
40
|
+
*/
|
|
41
|
+
function vdot(a, b) {
|
|
42
|
+
assertSameLength(a, b);
|
|
43
|
+
return a.reduce((s, v, i) => s + v * b[i], 0);
|
|
44
|
+
}
|
|
45
|
+
exports.vdot = vdot;
|
|
46
|
+
/**
|
|
47
|
+
* L2 (Euclidean) norm of a vector.
|
|
48
|
+
*/
|
|
49
|
+
function vnorm(v, p = 2) {
|
|
50
|
+
if (v.length === 0)
|
|
51
|
+
return 0;
|
|
52
|
+
if (p === Infinity)
|
|
53
|
+
return Math.max(...v.map(Math.abs));
|
|
54
|
+
if (p <= 0)
|
|
55
|
+
throw new RangeError('p-norm requires p > 0');
|
|
56
|
+
return v.reduce((s, x) => s + Math.abs(x) ** p, 0) ** (1 / p);
|
|
57
|
+
}
|
|
58
|
+
exports.vnorm = vnorm;
|
|
59
|
+
/**
|
|
60
|
+
* Normalized unit vector (direction only).
|
|
61
|
+
*/
|
|
62
|
+
function vnormalize(v) {
|
|
63
|
+
const n = vnorm(v);
|
|
64
|
+
if (n === 0)
|
|
65
|
+
throw new RangeError('cannot normalize a zero vector');
|
|
66
|
+
return vscale(v, 1 / n);
|
|
67
|
+
}
|
|
68
|
+
exports.vnormalize = vnormalize;
|
|
69
|
+
/**
|
|
70
|
+
* Euclidean distance between two vectors.
|
|
71
|
+
*/
|
|
72
|
+
function vdistance(a, b) {
|
|
73
|
+
assertSameLength(a, b);
|
|
74
|
+
return vnorm(vsub(a, b));
|
|
75
|
+
}
|
|
76
|
+
exports.vdistance = vdistance;
|
|
77
|
+
/**
|
|
78
|
+
* Cosine similarity between two vectors: (a · b) / (|a| |b|)
|
|
79
|
+
*/
|
|
80
|
+
function cosineSimilarity(a, b) {
|
|
81
|
+
assertSameLength(a, b);
|
|
82
|
+
const denom = vnorm(a) * vnorm(b);
|
|
83
|
+
if (denom === 0)
|
|
84
|
+
throw new RangeError('cosine similarity requires non-zero vectors');
|
|
85
|
+
return vdot(a, b) / denom;
|
|
86
|
+
}
|
|
87
|
+
exports.cosineSimilarity = cosineSimilarity;
|
|
88
|
+
/**
|
|
89
|
+
* Cross product of two 3D vectors.
|
|
90
|
+
*/
|
|
91
|
+
function cross3d(a, b) {
|
|
92
|
+
if (a.length !== 3 || b.length !== 3) {
|
|
93
|
+
throw new RangeError('cross3d requires 3D vectors');
|
|
94
|
+
}
|
|
95
|
+
return [
|
|
96
|
+
a[1] * b[2] - a[2] * b[1],
|
|
97
|
+
a[2] * b[0] - a[0] * b[2],
|
|
98
|
+
a[0] * b[1] - a[1] * b[0],
|
|
99
|
+
];
|
|
100
|
+
}
|
|
101
|
+
exports.cross3d = cross3d;
|
|
102
|
+
/**
|
|
103
|
+
* Element-wise (Hadamard) product.
|
|
104
|
+
*/
|
|
105
|
+
function vhadamard(a, b) {
|
|
106
|
+
assertSameLength(a, b);
|
|
107
|
+
return a.map((v, i) => v * b[i]);
|
|
108
|
+
}
|
|
109
|
+
exports.vhadamard = vhadamard;
|
|
110
|
+
// ─── Matrix Helpers ──────────────────────────────────────────────────────────
|
|
111
|
+
function rows(m) { return m.length; }
|
|
112
|
+
function cols(m) { return m.length > 0 ? m[0].length : 0; }
|
|
113
|
+
function assertMatrix(m, label = 'matrix') {
|
|
114
|
+
if (!m || m.length === 0)
|
|
115
|
+
throw new RangeError(`${label} must be non-empty`);
|
|
116
|
+
const c = m[0].length;
|
|
117
|
+
if (m.some((row) => row.length !== c)) {
|
|
118
|
+
throw new RangeError(`${label} rows must have equal length`);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
function assertSquare(m, label = 'matrix') {
|
|
122
|
+
assertMatrix(m, label);
|
|
123
|
+
if (rows(m) !== cols(m)) {
|
|
124
|
+
throw new RangeError(`${label} must be square (got ${rows(m)}×${cols(m)})`);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Create an n×m matrix filled with a value (default 0).
|
|
129
|
+
*/
|
|
130
|
+
function mzeros(n, m) {
|
|
131
|
+
return Array.from({ length: n }, () => new Array(m).fill(0));
|
|
132
|
+
}
|
|
133
|
+
exports.mzeros = mzeros;
|
|
134
|
+
/**
|
|
135
|
+
* Create an n×n identity matrix.
|
|
136
|
+
*/
|
|
137
|
+
function midentity(n) {
|
|
138
|
+
const I = mzeros(n, n);
|
|
139
|
+
for (let i = 0; i < n; i++)
|
|
140
|
+
I[i][i] = 1;
|
|
141
|
+
return I;
|
|
142
|
+
}
|
|
143
|
+
exports.midentity = midentity;
|
|
144
|
+
/**
|
|
145
|
+
* Transpose a matrix.
|
|
146
|
+
*/
|
|
147
|
+
function mtranspose(m) {
|
|
148
|
+
assertMatrix(m);
|
|
149
|
+
return Array.from({ length: cols(m) }, (_, c) => Array.from({ length: rows(m) }, (__, r) => m[r][c]));
|
|
150
|
+
}
|
|
151
|
+
exports.mtranspose = mtranspose;
|
|
152
|
+
/**
|
|
153
|
+
* Matrix addition.
|
|
154
|
+
*/
|
|
155
|
+
function madd(a, b) {
|
|
156
|
+
assertMatrix(a, 'a');
|
|
157
|
+
assertMatrix(b, 'b');
|
|
158
|
+
if (rows(a) !== rows(b) || cols(a) !== cols(b)) {
|
|
159
|
+
throw new RangeError('matrices must have the same dimensions for addition');
|
|
160
|
+
}
|
|
161
|
+
return a.map((row, i) => row.map((v, j) => v + b[i][j]));
|
|
162
|
+
}
|
|
163
|
+
exports.madd = madd;
|
|
164
|
+
/**
|
|
165
|
+
* Matrix scalar multiplication.
|
|
166
|
+
*/
|
|
167
|
+
function mscale(m, c) {
|
|
168
|
+
assertMatrix(m);
|
|
169
|
+
return m.map((row) => row.map((v) => v * c));
|
|
170
|
+
}
|
|
171
|
+
exports.mscale = mscale;
|
|
172
|
+
/**
|
|
173
|
+
* Matrix multiplication (naive O(n³)).
|
|
174
|
+
*/
|
|
175
|
+
function mmul(a, b) {
|
|
176
|
+
assertMatrix(a, 'a');
|
|
177
|
+
assertMatrix(b, 'b');
|
|
178
|
+
if (cols(a) !== rows(b)) {
|
|
179
|
+
throw new RangeError(`incompatible dimensions: ${rows(a)}×${cols(a)} · ${rows(b)}×${cols(b)}`);
|
|
180
|
+
}
|
|
181
|
+
const r = rows(a), c = cols(b), inner = cols(a);
|
|
182
|
+
const result = mzeros(r, c);
|
|
183
|
+
for (let i = 0; i < r; i++)
|
|
184
|
+
for (let k = 0; k < inner; k++)
|
|
185
|
+
if (a[i][k] !== 0)
|
|
186
|
+
for (let j = 0; j < c; j++)
|
|
187
|
+
result[i][j] += a[i][k] * b[k][j];
|
|
188
|
+
return result;
|
|
189
|
+
}
|
|
190
|
+
exports.mmul = mmul;
|
|
191
|
+
/**
|
|
192
|
+
* Matrix-vector product: m · v
|
|
193
|
+
*/
|
|
194
|
+
function mvmul(m, v) {
|
|
195
|
+
assertMatrix(m);
|
|
196
|
+
if (cols(m) !== v.length) {
|
|
197
|
+
throw new RangeError(`matrix columns (${cols(m)}) must match vector length (${v.length})`);
|
|
198
|
+
}
|
|
199
|
+
return m.map((row) => vdot(row, v));
|
|
200
|
+
}
|
|
201
|
+
exports.mvmul = mvmul;
|
|
202
|
+
// ─── Determinant & Inverse ────────────────────────────────────────────────────
|
|
203
|
+
/**
|
|
204
|
+
* Determinant via LU decomposition (in-place, returns sign + value).
|
|
205
|
+
* @example mdet([[1,2],[3,4]]) // -2
|
|
206
|
+
*/
|
|
207
|
+
function mdet(m) {
|
|
208
|
+
assertSquare(m);
|
|
209
|
+
const n = rows(m);
|
|
210
|
+
if (n === 1)
|
|
211
|
+
return m[0][0];
|
|
212
|
+
if (n === 2)
|
|
213
|
+
return m[0][0] * m[1][1] - m[0][1] * m[1][0];
|
|
214
|
+
// Copy
|
|
215
|
+
const a = m.map((row) => [...row]);
|
|
216
|
+
let sign = 1;
|
|
217
|
+
for (let col = 0; col < n; col++) {
|
|
218
|
+
// Find pivot
|
|
219
|
+
let maxRow = col;
|
|
220
|
+
for (let row = col + 1; row < n; row++) {
|
|
221
|
+
if (Math.abs(a[row][col]) > Math.abs(a[maxRow][col]))
|
|
222
|
+
maxRow = row;
|
|
223
|
+
}
|
|
224
|
+
if (maxRow !== col) {
|
|
225
|
+
[a[col], a[maxRow]] = [a[maxRow], a[col]];
|
|
226
|
+
sign *= -1;
|
|
227
|
+
}
|
|
228
|
+
if (a[col][col] === 0)
|
|
229
|
+
return 0;
|
|
230
|
+
for (let row = col + 1; row < n; row++) {
|
|
231
|
+
const factor = a[row][col] / a[col][col];
|
|
232
|
+
for (let j = col; j < n; j++) {
|
|
233
|
+
a[row][j] -= factor * a[col][j];
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
let det = sign;
|
|
238
|
+
for (let i = 0; i < n; i++)
|
|
239
|
+
det *= a[i][i];
|
|
240
|
+
return det;
|
|
241
|
+
}
|
|
242
|
+
exports.mdet = mdet;
|
|
243
|
+
/**
|
|
244
|
+
* Matrix inverse via Gauss-Jordan elimination.
|
|
245
|
+
* Throws if the matrix is singular.
|
|
246
|
+
*/
|
|
247
|
+
function minverse(m) {
|
|
248
|
+
assertSquare(m);
|
|
249
|
+
const n = rows(m);
|
|
250
|
+
const aug = m.map((row, i) => [
|
|
251
|
+
...row,
|
|
252
|
+
...Array.from({ length: n }, (_, j) => (j === i ? 1 : 0)),
|
|
253
|
+
]);
|
|
254
|
+
for (let col = 0; col < n; col++) {
|
|
255
|
+
// Find pivot
|
|
256
|
+
let maxRow = col;
|
|
257
|
+
for (let row = col + 1; row < n; row++) {
|
|
258
|
+
if (Math.abs(aug[row][col]) > Math.abs(aug[maxRow][col]))
|
|
259
|
+
maxRow = row;
|
|
260
|
+
}
|
|
261
|
+
[aug[col], aug[maxRow]] = [aug[maxRow], aug[col]];
|
|
262
|
+
if (Math.abs(aug[col][col]) < 1e-12) {
|
|
263
|
+
throw new RangeError('matrix is singular and cannot be inverted');
|
|
264
|
+
}
|
|
265
|
+
const pivot = aug[col][col];
|
|
266
|
+
for (let j = 0; j < 2 * n; j++)
|
|
267
|
+
aug[col][j] /= pivot;
|
|
268
|
+
for (let row = 0; row < n; row++) {
|
|
269
|
+
if (row === col)
|
|
270
|
+
continue;
|
|
271
|
+
const factor = aug[row][col];
|
|
272
|
+
for (let j = 0; j < 2 * n; j++) {
|
|
273
|
+
aug[row][j] -= factor * aug[col][j];
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
return aug.map((row) => row.slice(n));
|
|
278
|
+
}
|
|
279
|
+
exports.minverse = minverse;
|
|
280
|
+
/**
|
|
281
|
+
* Matrix trace — sum of diagonal elements.
|
|
282
|
+
*/
|
|
283
|
+
function mtrace(m) {
|
|
284
|
+
assertSquare(m);
|
|
285
|
+
return m.reduce((s, row, i) => s + row[i], 0);
|
|
286
|
+
}
|
|
287
|
+
exports.mtrace = mtrace;
|
|
288
|
+
/**
|
|
289
|
+
* Matrix rank via Gaussian elimination.
|
|
290
|
+
*/
|
|
291
|
+
function mrank(m) {
|
|
292
|
+
assertMatrix(m);
|
|
293
|
+
const a = m.map((row) => [...row]);
|
|
294
|
+
const r = rows(a), c = cols(a);
|
|
295
|
+
let rank = 0;
|
|
296
|
+
for (let col = 0; col < c && rank < r; col++) {
|
|
297
|
+
let pivotRow = -1;
|
|
298
|
+
for (let row = rank; row < r; row++) {
|
|
299
|
+
if (Math.abs(a[row][col]) > 1e-10) {
|
|
300
|
+
pivotRow = row;
|
|
301
|
+
break;
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
if (pivotRow < 0)
|
|
305
|
+
continue;
|
|
306
|
+
[a[rank], a[pivotRow]] = [a[pivotRow], a[rank]];
|
|
307
|
+
const scale = a[rank][col];
|
|
308
|
+
for (let j = col; j < c; j++)
|
|
309
|
+
a[rank][j] /= scale;
|
|
310
|
+
for (let row = 0; row < r; row++) {
|
|
311
|
+
if (row === rank || Math.abs(a[row][col]) < 1e-10)
|
|
312
|
+
continue;
|
|
313
|
+
const f = a[row][col];
|
|
314
|
+
for (let j = col; j < c; j++)
|
|
315
|
+
a[row][j] -= f * a[rank][j];
|
|
316
|
+
}
|
|
317
|
+
rank++;
|
|
318
|
+
}
|
|
319
|
+
return rank;
|
|
320
|
+
}
|
|
321
|
+
exports.mrank = mrank;
|
|
322
|
+
// ─── Solve Linear Systems ─────────────────────────────────────────────────────
|
|
323
|
+
/**
|
|
324
|
+
* Solve Ax = b using Gauss-Jordan elimination.
|
|
325
|
+
* @returns solution vector x
|
|
326
|
+
*/
|
|
327
|
+
function msolve(A, b) {
|
|
328
|
+
assertSquare(A, 'A');
|
|
329
|
+
if (rows(A) !== b.length) {
|
|
330
|
+
throw new RangeError('A rows must equal b length');
|
|
331
|
+
}
|
|
332
|
+
const n = rows(A);
|
|
333
|
+
const aug = A.map((row, i) => [...row, b[i]]);
|
|
334
|
+
for (let col = 0; col < n; col++) {
|
|
335
|
+
let maxRow = col;
|
|
336
|
+
for (let row = col + 1; row < n; row++) {
|
|
337
|
+
if (Math.abs(aug[row][col]) > Math.abs(aug[maxRow][col]))
|
|
338
|
+
maxRow = row;
|
|
339
|
+
}
|
|
340
|
+
[aug[col], aug[maxRow]] = [aug[maxRow], aug[col]];
|
|
341
|
+
if (Math.abs(aug[col][col]) < 1e-12) {
|
|
342
|
+
throw new RangeError('matrix is singular — system has no unique solution');
|
|
343
|
+
}
|
|
344
|
+
const pivot = aug[col][col];
|
|
345
|
+
for (let j = col; j <= n; j++)
|
|
346
|
+
aug[col][j] /= pivot;
|
|
347
|
+
for (let row = 0; row < n; row++) {
|
|
348
|
+
if (row === col)
|
|
349
|
+
continue;
|
|
350
|
+
const f = aug[row][col];
|
|
351
|
+
for (let j = col; j <= n; j++)
|
|
352
|
+
aug[row][j] -= f * aug[col][j];
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
return aug.map((row) => row[n]);
|
|
356
|
+
}
|
|
357
|
+
exports.msolve = msolve;
|
|
358
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/algebra/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* mathfuse — A modern, zero-dependency TypeScript math utility library.
|
|
3
|
+
*
|
|
4
|
+
* @packageDocumentation
|
|
5
|
+
*/
|
|
6
|
+
export * as stats from './stats/index.js';
|
|
7
|
+
export * as algebra from './algebra/index.js';
|
|
8
|
+
export * as nt from './number-theory/index.js';
|
|
9
|
+
export * as numerical from './numerical/index.js';
|
|
10
|
+
export { mean, median, mode, stdDev, variance, percentile, pearsonCorrelation, linearRegression, zScore, minMaxNormalize, } from './stats/index.js';
|
|
11
|
+
export { vadd, vsub, vdot, vnorm, vnormalize, vdistance, mmul, mdet, minverse, msolve, mtranspose, midentity, } from './algebra/index.js';
|
|
12
|
+
export { isPrime, primesUpTo, gcd, lcm, factorial, binomial, fibonacci, nthFibonacci, primeFactors, } from './number-theory/index.js';
|
|
13
|
+
export { bisection, newtonRaphson, brent, derivative, integrate, lerp, clamp, roundTo, approxEqual, } from './numerical/index.js';
|
|
14
|
+
export declare const VERSION = "1.0.0";
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAC/C,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAGlD,OAAO,EACL,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAChD,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,EAAE,eAAe,GAC9D,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAC9C,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,GACpD,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAClD,SAAS,EAAE,YAAY,EAAE,YAAY,GACtC,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,SAAS,EAAE,aAAa,EAAE,KAAK,EAC/B,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,GACzD,MAAM,sBAAsB,CAAC;AAE9B,eAAO,MAAM,OAAO,UAAU,CAAC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* mathfuse — A modern, zero-dependency TypeScript math utility library.
|
|
4
|
+
*
|
|
5
|
+
* @packageDocumentation
|
|
6
|
+
*/
|
|
7
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
8
|
+
if (k2 === undefined) k2 = k;
|
|
9
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
10
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
11
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
12
|
+
}
|
|
13
|
+
Object.defineProperty(o, k2, desc);
|
|
14
|
+
}) : (function(o, m, k, k2) {
|
|
15
|
+
if (k2 === undefined) k2 = k;
|
|
16
|
+
o[k2] = m[k];
|
|
17
|
+
}));
|
|
18
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
19
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
20
|
+
}) : function(o, v) {
|
|
21
|
+
o["default"] = v;
|
|
22
|
+
});
|
|
23
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
24
|
+
if (mod && mod.__esModule) return mod;
|
|
25
|
+
var result = {};
|
|
26
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
27
|
+
__setModuleDefault(result, mod);
|
|
28
|
+
return result;
|
|
29
|
+
};
|
|
30
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
31
|
+
exports.VERSION = exports.approxEqual = exports.roundTo = exports.clamp = exports.lerp = exports.integrate = exports.derivative = exports.brent = exports.newtonRaphson = exports.bisection = exports.primeFactors = exports.nthFibonacci = exports.fibonacci = exports.binomial = exports.factorial = exports.lcm = exports.gcd = exports.primesUpTo = exports.isPrime = exports.midentity = exports.mtranspose = exports.msolve = exports.minverse = exports.mdet = exports.mmul = exports.vdistance = exports.vnormalize = exports.vnorm = exports.vdot = exports.vsub = exports.vadd = exports.minMaxNormalize = exports.zScore = exports.linearRegression = exports.pearsonCorrelation = exports.percentile = exports.variance = exports.stdDev = exports.mode = exports.median = exports.mean = exports.numerical = exports.nt = exports.algebra = exports.stats = void 0;
|
|
32
|
+
exports.stats = __importStar(require("./stats/index.js"));
|
|
33
|
+
exports.algebra = __importStar(require("./algebra/index.js"));
|
|
34
|
+
exports.nt = __importStar(require("./number-theory/index.js"));
|
|
35
|
+
exports.numerical = __importStar(require("./numerical/index.js"));
|
|
36
|
+
// Convenience re-exports for the most-used functions
|
|
37
|
+
var index_js_1 = require("./stats/index.js");
|
|
38
|
+
Object.defineProperty(exports, "mean", { enumerable: true, get: function () { return index_js_1.mean; } });
|
|
39
|
+
Object.defineProperty(exports, "median", { enumerable: true, get: function () { return index_js_1.median; } });
|
|
40
|
+
Object.defineProperty(exports, "mode", { enumerable: true, get: function () { return index_js_1.mode; } });
|
|
41
|
+
Object.defineProperty(exports, "stdDev", { enumerable: true, get: function () { return index_js_1.stdDev; } });
|
|
42
|
+
Object.defineProperty(exports, "variance", { enumerable: true, get: function () { return index_js_1.variance; } });
|
|
43
|
+
Object.defineProperty(exports, "percentile", { enumerable: true, get: function () { return index_js_1.percentile; } });
|
|
44
|
+
Object.defineProperty(exports, "pearsonCorrelation", { enumerable: true, get: function () { return index_js_1.pearsonCorrelation; } });
|
|
45
|
+
Object.defineProperty(exports, "linearRegression", { enumerable: true, get: function () { return index_js_1.linearRegression; } });
|
|
46
|
+
Object.defineProperty(exports, "zScore", { enumerable: true, get: function () { return index_js_1.zScore; } });
|
|
47
|
+
Object.defineProperty(exports, "minMaxNormalize", { enumerable: true, get: function () { return index_js_1.minMaxNormalize; } });
|
|
48
|
+
var index_js_2 = require("./algebra/index.js");
|
|
49
|
+
Object.defineProperty(exports, "vadd", { enumerable: true, get: function () { return index_js_2.vadd; } });
|
|
50
|
+
Object.defineProperty(exports, "vsub", { enumerable: true, get: function () { return index_js_2.vsub; } });
|
|
51
|
+
Object.defineProperty(exports, "vdot", { enumerable: true, get: function () { return index_js_2.vdot; } });
|
|
52
|
+
Object.defineProperty(exports, "vnorm", { enumerable: true, get: function () { return index_js_2.vnorm; } });
|
|
53
|
+
Object.defineProperty(exports, "vnormalize", { enumerable: true, get: function () { return index_js_2.vnormalize; } });
|
|
54
|
+
Object.defineProperty(exports, "vdistance", { enumerable: true, get: function () { return index_js_2.vdistance; } });
|
|
55
|
+
Object.defineProperty(exports, "mmul", { enumerable: true, get: function () { return index_js_2.mmul; } });
|
|
56
|
+
Object.defineProperty(exports, "mdet", { enumerable: true, get: function () { return index_js_2.mdet; } });
|
|
57
|
+
Object.defineProperty(exports, "minverse", { enumerable: true, get: function () { return index_js_2.minverse; } });
|
|
58
|
+
Object.defineProperty(exports, "msolve", { enumerable: true, get: function () { return index_js_2.msolve; } });
|
|
59
|
+
Object.defineProperty(exports, "mtranspose", { enumerable: true, get: function () { return index_js_2.mtranspose; } });
|
|
60
|
+
Object.defineProperty(exports, "midentity", { enumerable: true, get: function () { return index_js_2.midentity; } });
|
|
61
|
+
var index_js_3 = require("./number-theory/index.js");
|
|
62
|
+
Object.defineProperty(exports, "isPrime", { enumerable: true, get: function () { return index_js_3.isPrime; } });
|
|
63
|
+
Object.defineProperty(exports, "primesUpTo", { enumerable: true, get: function () { return index_js_3.primesUpTo; } });
|
|
64
|
+
Object.defineProperty(exports, "gcd", { enumerable: true, get: function () { return index_js_3.gcd; } });
|
|
65
|
+
Object.defineProperty(exports, "lcm", { enumerable: true, get: function () { return index_js_3.lcm; } });
|
|
66
|
+
Object.defineProperty(exports, "factorial", { enumerable: true, get: function () { return index_js_3.factorial; } });
|
|
67
|
+
Object.defineProperty(exports, "binomial", { enumerable: true, get: function () { return index_js_3.binomial; } });
|
|
68
|
+
Object.defineProperty(exports, "fibonacci", { enumerable: true, get: function () { return index_js_3.fibonacci; } });
|
|
69
|
+
Object.defineProperty(exports, "nthFibonacci", { enumerable: true, get: function () { return index_js_3.nthFibonacci; } });
|
|
70
|
+
Object.defineProperty(exports, "primeFactors", { enumerable: true, get: function () { return index_js_3.primeFactors; } });
|
|
71
|
+
var index_js_4 = require("./numerical/index.js");
|
|
72
|
+
Object.defineProperty(exports, "bisection", { enumerable: true, get: function () { return index_js_4.bisection; } });
|
|
73
|
+
Object.defineProperty(exports, "newtonRaphson", { enumerable: true, get: function () { return index_js_4.newtonRaphson; } });
|
|
74
|
+
Object.defineProperty(exports, "brent", { enumerable: true, get: function () { return index_js_4.brent; } });
|
|
75
|
+
Object.defineProperty(exports, "derivative", { enumerable: true, get: function () { return index_js_4.derivative; } });
|
|
76
|
+
Object.defineProperty(exports, "integrate", { enumerable: true, get: function () { return index_js_4.integrate; } });
|
|
77
|
+
Object.defineProperty(exports, "lerp", { enumerable: true, get: function () { return index_js_4.lerp; } });
|
|
78
|
+
Object.defineProperty(exports, "clamp", { enumerable: true, get: function () { return index_js_4.clamp; } });
|
|
79
|
+
Object.defineProperty(exports, "roundTo", { enumerable: true, get: function () { return index_js_4.roundTo; } });
|
|
80
|
+
Object.defineProperty(exports, "approxEqual", { enumerable: true, get: function () { return index_js_4.approxEqual; } });
|
|
81
|
+
exports.VERSION = '1.0.0';
|
|
82
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,0DAA0C;AAC1C,8DAA8C;AAC9C,+DAA+C;AAC/C,kEAAkD;AAElD,qDAAqD;AACrD,6CAG0B;AAFxB,gGAAA,IAAI,OAAA;AAAE,kGAAA,MAAM,OAAA;AAAE,gGAAA,IAAI,OAAA;AAAE,kGAAA,MAAM,OAAA;AAAE,oGAAA,QAAQ,OAAA;AAAE,sGAAA,UAAU,OAAA;AAChD,8GAAA,kBAAkB,OAAA;AAAE,4GAAA,gBAAgB,OAAA;AAAE,kGAAA,MAAM,OAAA;AAAE,2GAAA,eAAe,OAAA;AAG/D,+CAG4B;AAF1B,gGAAA,IAAI,OAAA;AAAE,gGAAA,IAAI,OAAA;AAAE,gGAAA,IAAI,OAAA;AAAE,iGAAA,KAAK,OAAA;AAAE,sGAAA,UAAU,OAAA;AAAE,qGAAA,SAAS,OAAA;AAC9C,gGAAA,IAAI,OAAA;AAAE,gGAAA,IAAI,OAAA;AAAE,oGAAA,QAAQ,OAAA;AAAE,kGAAA,MAAM,OAAA;AAAE,sGAAA,UAAU,OAAA;AAAE,qGAAA,SAAS,OAAA;AAGrD,qDAGkC;AAFhC,mGAAA,OAAO,OAAA;AAAE,sGAAA,UAAU,OAAA;AAAE,+FAAA,GAAG,OAAA;AAAE,+FAAA,GAAG,OAAA;AAAE,qGAAA,SAAS,OAAA;AAAE,oGAAA,QAAQ,OAAA;AAClD,qGAAA,SAAS,OAAA;AAAE,wGAAA,YAAY,OAAA;AAAE,wGAAA,YAAY,OAAA;AAGvC,iDAG8B;AAF5B,qGAAA,SAAS,OAAA;AAAE,yGAAA,aAAa,OAAA;AAAE,iGAAA,KAAK,OAAA;AAC/B,sGAAA,UAAU,OAAA;AAAE,qGAAA,SAAS,OAAA;AAAE,gGAAA,IAAI,OAAA;AAAE,iGAAA,KAAK,OAAA;AAAE,mGAAA,OAAO,OAAA;AAAE,uGAAA,WAAW,OAAA;AAG7C,QAAA,OAAO,GAAG,OAAO,CAAC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module number-theory
|
|
3
|
+
* Primes, GCD/LCM, combinatorics, modular arithmetic, and sequences.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Miller-Rabin primality test (deterministic for n < 3,317,044,064,679,887,385,961,981).
|
|
7
|
+
*/
|
|
8
|
+
export declare function isPrime(n: number): boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Sieve of Eratosthenes — returns all primes up to (and including) limit.
|
|
11
|
+
* @example primesUpTo(20) // [2, 3, 5, 7, 11, 13, 17, 19]
|
|
12
|
+
*/
|
|
13
|
+
export declare function primesUpTo(limit: number): number[];
|
|
14
|
+
/**
|
|
15
|
+
* Next prime strictly greater than n.
|
|
16
|
+
* @example nextPrime(10) // 11
|
|
17
|
+
*/
|
|
18
|
+
export declare function nextPrime(n: number): number;
|
|
19
|
+
/**
|
|
20
|
+
* Prime factorization — returns sorted array of prime factors (with repeats).
|
|
21
|
+
* @example primeFactors(60) // [2, 2, 3, 5]
|
|
22
|
+
*/
|
|
23
|
+
export declare function primeFactors(n: number): number[];
|
|
24
|
+
/**
|
|
25
|
+
* Greatest common divisor via Euclidean algorithm.
|
|
26
|
+
* @example gcd(48, 18) // 6
|
|
27
|
+
*/
|
|
28
|
+
export declare function gcd(a: number, b: number): number;
|
|
29
|
+
/**
|
|
30
|
+
* GCD of an array of integers.
|
|
31
|
+
*/
|
|
32
|
+
export declare function gcdMany(nums: number[]): number;
|
|
33
|
+
/**
|
|
34
|
+
* Least common multiple.
|
|
35
|
+
* @example lcm(4, 6) // 12
|
|
36
|
+
*/
|
|
37
|
+
export declare function lcm(a: number, b: number): number;
|
|
38
|
+
/**
|
|
39
|
+
* LCM of an array of integers.
|
|
40
|
+
*/
|
|
41
|
+
export declare function lcmMany(nums: number[]): number;
|
|
42
|
+
export declare function factorial(n: number): number;
|
|
43
|
+
/**
|
|
44
|
+
* Binomial coefficient C(n, k) — "n choose k".
|
|
45
|
+
* @example binomial(10, 3) // 120
|
|
46
|
+
*/
|
|
47
|
+
export declare function binomial(n: number, k: number): number;
|
|
48
|
+
/**
|
|
49
|
+
* Number of permutations P(n, r) = n! / (n−r)!
|
|
50
|
+
*/
|
|
51
|
+
export declare function permutations(n: number, r: number): number;
|
|
52
|
+
/**
|
|
53
|
+
* Modular exponentiation: (base^exp) mod m
|
|
54
|
+
* @example modPow(2, 10, 1000) // 24
|
|
55
|
+
*/
|
|
56
|
+
export declare function modPow(base: number, exp: number, m: number): number;
|
|
57
|
+
/**
|
|
58
|
+
* Euler's totient φ(n) — count of integers in [1, n] coprime to n.
|
|
59
|
+
*/
|
|
60
|
+
export declare function eulerTotient(n: number): number;
|
|
61
|
+
/**
|
|
62
|
+
* Fibonacci sequence up to length n.
|
|
63
|
+
* @example fibonacci(8) // [0, 1, 1, 2, 3, 5, 8, 13]
|
|
64
|
+
*/
|
|
65
|
+
export declare function fibonacci(n: number): number[];
|
|
66
|
+
/**
|
|
67
|
+
* nth Fibonacci number (0-indexed, fast doubling algorithm).
|
|
68
|
+
* @example nthFibonacci(10) // 55
|
|
69
|
+
*/
|
|
70
|
+
export declare function nthFibonacci(n: number): number;
|
|
71
|
+
/**
|
|
72
|
+
* Collatz sequence starting at n (stops at 1).
|
|
73
|
+
* @example collatz(6) // [6, 3, 10, 5, 16, 8, 4, 2, 1]
|
|
74
|
+
*/
|
|
75
|
+
export declare function collatz(n: number): number[];
|
|
76
|
+
/**
|
|
77
|
+
* Digital root of a positive integer (repeated digit sum until single digit).
|
|
78
|
+
* @example digitalRoot(9875) // 2
|
|
79
|
+
*/
|
|
80
|
+
export declare function digitalRoot(n: number): number;
|
|
81
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/number-theory/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA8BH;;GAEG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAmC1C;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAalD;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAO3C;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAYhD;AAID;;;GAGG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAOhD;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAG9C;AAED;;;GAGG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAGhD;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAG9C;AASD,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAQ3C;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAWrD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAOzD;AAID;;;GAGG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAYnE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAY9C;AAID;;;GAGG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAM7C;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAW9C;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAQ3C;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAI7C"}
|