@pawells/math-extended 1.1.1 → 3.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.
Files changed (113) hide show
  1. package/README.md +15 -21
  2. package/build/angles.d.ts +28 -18
  3. package/build/angles.d.ts.map +1 -1
  4. package/build/angles.js +28 -18
  5. package/build/angles.js.map +1 -1
  6. package/build/clamp.d.ts +2 -0
  7. package/build/clamp.d.ts.map +1 -1
  8. package/build/clamp.js +2 -0
  9. package/build/clamp.js.map +1 -1
  10. package/build/core.d.ts +23 -0
  11. package/build/core.d.ts.map +1 -0
  12. package/build/core.js +25 -0
  13. package/build/core.js.map +1 -0
  14. package/build/index.d.ts +1 -4
  15. package/build/index.d.ts.map +1 -1
  16. package/build/index.js +1 -6
  17. package/build/index.js.map +1 -1
  18. package/build/interpolation.d.ts +62 -13
  19. package/build/interpolation.d.ts.map +1 -1
  20. package/build/interpolation.js +66 -23
  21. package/build/interpolation.js.map +1 -1
  22. package/build/matrices/arithmetic.d.ts +65 -76
  23. package/build/matrices/arithmetic.d.ts.map +1 -1
  24. package/build/matrices/arithmetic.js +65 -107
  25. package/build/matrices/arithmetic.js.map +1 -1
  26. package/build/matrices/asserts.d.ts +26 -273
  27. package/build/matrices/asserts.d.ts.map +1 -1
  28. package/build/matrices/asserts.js +106 -350
  29. package/build/matrices/asserts.js.map +1 -1
  30. package/build/matrices/core.d.ts +150 -79
  31. package/build/matrices/core.d.ts.map +1 -1
  32. package/build/matrices/core.js +128 -104
  33. package/build/matrices/core.js.map +1 -1
  34. package/build/matrices/decompositions.d.ts +41 -44
  35. package/build/matrices/decompositions.d.ts.map +1 -1
  36. package/build/matrices/decompositions.js +51 -94
  37. package/build/matrices/decompositions.js.map +1 -1
  38. package/build/matrices/index.d.ts +2 -2
  39. package/build/matrices/index.d.ts.map +1 -1
  40. package/build/matrices/index.js +2 -2
  41. package/build/matrices/index.js.map +1 -1
  42. package/build/matrices/linear-algebra.d.ts +56 -19
  43. package/build/matrices/linear-algebra.d.ts.map +1 -1
  44. package/build/matrices/linear-algebra.js +80 -36
  45. package/build/matrices/linear-algebra.js.map +1 -1
  46. package/build/matrices/normalization.d.ts +36 -15
  47. package/build/matrices/normalization.d.ts.map +1 -1
  48. package/build/matrices/normalization.js +32 -23
  49. package/build/matrices/normalization.js.map +1 -1
  50. package/build/matrices/transformations.d.ts +39 -52
  51. package/build/matrices/transformations.d.ts.map +1 -1
  52. package/build/matrices/transformations.js +8 -11
  53. package/build/matrices/transformations.js.map +1 -1
  54. package/build/matrices/types.d.ts +39 -67
  55. package/build/matrices/types.d.ts.map +1 -1
  56. package/build/matrices/types.js +63 -1
  57. package/build/matrices/types.js.map +1 -1
  58. package/build/quaternions/asserts.d.ts +114 -15
  59. package/build/quaternions/asserts.d.ts.map +1 -1
  60. package/build/quaternions/asserts.js +189 -51
  61. package/build/quaternions/asserts.js.map +1 -1
  62. package/build/quaternions/conversions.d.ts +18 -8
  63. package/build/quaternions/conversions.d.ts.map +1 -1
  64. package/build/quaternions/conversions.js +14 -4
  65. package/build/quaternions/conversions.js.map +1 -1
  66. package/build/quaternions/core.d.ts +31 -2
  67. package/build/quaternions/core.d.ts.map +1 -1
  68. package/build/quaternions/core.js +32 -4
  69. package/build/quaternions/core.js.map +1 -1
  70. package/build/quaternions/index.d.ts +2 -2
  71. package/build/quaternions/index.d.ts.map +1 -1
  72. package/build/quaternions/index.js +3 -2
  73. package/build/quaternions/index.js.map +1 -1
  74. package/build/quaternions/interpolation.d.ts +7 -1
  75. package/build/quaternions/interpolation.d.ts.map +1 -1
  76. package/build/quaternions/interpolation.js +12 -6
  77. package/build/quaternions/interpolation.js.map +1 -1
  78. package/build/quaternions/predefined.d.ts +7 -1
  79. package/build/quaternions/predefined.d.ts.map +1 -1
  80. package/build/quaternions/predefined.js +6 -0
  81. package/build/quaternions/predefined.js.map +1 -1
  82. package/build/quaternions/types.d.ts +24 -13
  83. package/build/quaternions/types.d.ts.map +1 -1
  84. package/build/quaternions/types.js +51 -1
  85. package/build/quaternions/types.js.map +1 -1
  86. package/build/random.d.ts +66 -20
  87. package/build/random.d.ts.map +1 -1
  88. package/build/random.js +73 -20
  89. package/build/random.js.map +1 -1
  90. package/build/vectors/asserts.d.ts +33 -99
  91. package/build/vectors/asserts.d.ts.map +1 -1
  92. package/build/vectors/asserts.js +145 -181
  93. package/build/vectors/asserts.js.map +1 -1
  94. package/build/vectors/core.d.ts +76 -44
  95. package/build/vectors/core.d.ts.map +1 -1
  96. package/build/vectors/core.js +128 -119
  97. package/build/vectors/core.js.map +1 -1
  98. package/build/vectors/index.d.ts.map +1 -1
  99. package/build/vectors/index.js +1 -0
  100. package/build/vectors/index.js.map +1 -1
  101. package/build/vectors/interpolation.d.ts +13 -1
  102. package/build/vectors/interpolation.d.ts.map +1 -1
  103. package/build/vectors/interpolation.js +48 -47
  104. package/build/vectors/interpolation.js.map +1 -1
  105. package/build/vectors/predefined.d.ts +73 -25
  106. package/build/vectors/predefined.d.ts.map +1 -1
  107. package/build/vectors/predefined.js +62 -18
  108. package/build/vectors/predefined.js.map +1 -1
  109. package/build/vectors/types.d.ts +26 -4
  110. package/build/vectors/types.d.ts.map +1 -1
  111. package/build/vectors/types.js +50 -1
  112. package/build/vectors/types.js.map +1 -1
  113. package/package.json +4 -3
@@ -1,10 +1,11 @@
1
1
  import { AssertNumber, AssertInstanceOf, ArraySortBy } from '@pawells/typescript-common';
2
2
  import { MatrixMultiply } from './arithmetic.js';
3
- import { AssertMatrix, AssertMatrixRow, AssertMatrixValue, AssertMatrix1, AssertMatrix2, MatrixError } from './asserts.js';
3
+ import { AssertMatrix, AssertMatrix1, AssertMatrix2, AssertMatrixSquare, MatrixError } from './asserts.js';
4
4
  import { MatrixSize, MatrixCreate, MatrixClone, MatrixIdentity, MatrixTranspose } from './core.js';
5
5
  import { MatrixGramSchmidt } from './linear-algebra.js';
6
6
  const MATRIX_NUMERICAL_TOLERANCE = 1e-12;
7
7
  const EIGEN_CONVERGENCE_TOLERANCE = 1e-10;
8
+ const EIGEN_MAX_ITERATIONS = 50;
8
9
  /**
9
10
  * Performs Cholesky decomposition for symmetric positive definite matrices A = L × L^T.
10
11
  *
@@ -22,53 +23,45 @@ const EIGEN_CONVERGENCE_TOLERANCE = 1e-10;
22
23
  *
23
24
  * @param matrix - The symmetric positive definite square matrix to decompose
24
25
  * @returns Lower triangular matrix L such that A = L × L^T
25
- * @throws {Error} If matrix is not square, not symmetric, or not positive definite
26
+ * @throws {MatrixError} If matrix is not square, not symmetric, or not positive definite
26
27
  *
27
28
  * @example
28
- * ```ts
29
+ * ```typescript
29
30
  * // Symmetric positive definite matrix
30
31
  * const A = [[4, 2], [2, 3]];
31
32
  * const L = MatrixCholesky(A);
32
33
  * // L = [[2, 0], [1, √2]] ≈ [[2, 0], [1, 1.414]]
33
- *
34
34
  * // Verify: L × L^T should equal A
35
35
  * const LT = MatrixTranspose(L);
36
36
  * const reconstructed = MatrixMultiply(L, LT);
37
37
  * // reconstructed ≈ [[4, 2], [2, 3]]
38
38
  * ```
39
- *
40
39
  * @complexity Time: O(n³/3), Space: O(n²) - About 2x faster than general LU decomposition
41
40
  * @see {@link MatrixLU} For general square matrices that may not be positive definite
42
41
  */
43
42
  export function MatrixCholesky(matrix) {
44
- AssertMatrix(matrix, { square: true });
43
+ AssertMatrixSquare(matrix);
45
44
  const [n] = MatrixSize(matrix);
46
45
  const L = MatrixCreate(n, n);
47
46
  // Perform Cholesky decomposition using the Cholesky-Banachiewicz algorithm
48
47
  for (let i = 0; i < n; i++) {
49
48
  const lRowI = L[i];
50
49
  const matrixRowI = matrix[i];
51
- AssertMatrixRow(lRowI);
52
- AssertMatrixRow(matrixRowI);
53
50
  for (let j = 0; j <= i; j++) {
54
51
  const lRowJ = L[j];
55
- AssertMatrixRow(lRowJ);
56
52
  if (i === j) {
57
53
  // Compute diagonal elements: L[i,i] = √(A[i,i] - Σ(k=0 to i-1) L[i,k]²)
58
54
  let sum = 0;
59
55
  // Sum of squares of elements in row i before column j
60
56
  for (let k = 0; k < j; k++) {
61
57
  const lVal = lRowI[k];
62
- AssertMatrixValue(lVal, { rowIndex: i, columnIndex: k });
63
58
  sum += lVal * lVal;
64
59
  }
65
60
  const matrixVal = matrixRowI[j];
66
- AssertMatrixValue(matrixVal, { rowIndex: i, columnIndex: j });
67
61
  const diagonal = matrixVal - sum;
68
62
  // Check positive definiteness - diagonal must be positive
69
- if (diagonal <= 0) {
70
- throw new Error(`Matrix is not positive definite at element [${i},${j}]`);
71
- }
63
+ if (diagonal <= 0)
64
+ throw new MatrixError(`Matrix is not positive definite at element [${i},${j}]`);
72
65
  lRowI[j] = Math.sqrt(diagonal);
73
66
  }
74
67
  else {
@@ -78,17 +71,13 @@ export function MatrixCholesky(matrix) {
78
71
  for (let k = 0; k < j; k++) {
79
72
  const lIVal = lRowI[k];
80
73
  const lJVal = lRowJ[k];
81
- AssertMatrixValue(lIVal, { rowIndex: i, columnIndex: k });
82
- AssertMatrixValue(lJVal, { rowIndex: j, columnIndex: k });
83
74
  sum += lIVal * lJVal;
84
75
  }
85
76
  const matrixVal = matrixRowI[j];
86
77
  const lJDiag = lRowJ[j];
87
- AssertMatrixValue(matrixVal, { rowIndex: i, columnIndex: j });
88
- AssertMatrixValue(lJDiag, { rowIndex: j, columnIndex: j });
89
78
  // Check for numerical stability - diagonal element should not be too small
90
79
  if (Math.abs(lJDiag) < MATRIX_NUMERICAL_TOLERANCE) {
91
- throw new Error(`Zero diagonal element at [${j},${j}] - matrix not positive definite`);
80
+ throw new MatrixError(`Zero diagonal element at [${j},${j}] - matrix not positive definite`);
92
81
  }
93
82
  lRowI[j] = (matrixVal - sum) / lJDiag;
94
83
  }
@@ -117,28 +106,26 @@ export function MatrixCholesky(matrix) {
117
106
  *
118
107
  * @param matrix - The square matrix to decompose
119
108
  * @returns Object containing eigenvalues and eigenvectors
120
- * @throws {Error} If matrix is not square, contains invalid values, or has complex eigenvalues
109
+ * @throws {MatrixError} If matrix is not square, contains invalid values, or has complex eigenvalues
121
110
  *
122
111
  * @example
123
- * ```ts
112
+ * ```typescript
124
113
  * // Simple 2x2 matrix
125
114
  * const A = [[3, 1], [0, 2]];
126
115
  * const { eigenvalues, eigenvectors } = MatrixEigen(A);
127
116
  * // eigenvalues: [3, 2]
128
117
  * // eigenvectors: matrix where each column corresponds to an eigenvalue
129
- *
130
118
  * // Verify eigenvalue equation: A × v = λ × v
131
119
  * const v = Matrix_GetColumn(eigenvectors, 0); // First eigenvector
132
120
  * const Av = MatrixMultiplyVector(A, v);
133
121
  * const lambdaV = Matrix_ScaleVector(v, eigenvalues[0]);
134
122
  * // Av should approximately equal lambdaV
135
123
  * ```
136
- *
137
124
  * @complexity O(n³) time for an n×n matrix
138
125
  * @see {@link MatrixEigenQRIteration} For the iterative algorithm used for larger matrices
139
126
  */
140
127
  export function MatrixEigen(matrix) {
141
- AssertMatrix(matrix, { square: true });
128
+ AssertMatrixSquare(matrix);
142
129
  const [n] = MatrixSize(matrix);
143
130
  // For small matrices, use direct analytical computation for efficiency and accuracy
144
131
  if (n === 1) {
@@ -162,7 +149,7 @@ export function MatrixEigen(matrix) {
162
149
  const discriminant = (trace * trace) - (4 * det);
163
150
  // Check for complex eigenvalues
164
151
  if (discriminant < 0) {
165
- throw new Error('Complex eigenvalues not supported in this implementation');
152
+ throw new MatrixError('Complex eigenvalues not supported in this implementation');
166
153
  }
167
154
  const sqrtDisc = Math.sqrt(discriminant);
168
155
  const lambda1 = (trace + sqrtDisc) / 2;
@@ -175,8 +162,6 @@ export function MatrixEigen(matrix) {
175
162
  // First eigenvector: [1, 0] (for lambda1 = a)
176
163
  // Second eigenvector: [1, (lambda2 - a)/b]
177
164
  const [eigenvectorsRow0, eigenvectorsRow1] = eigenvectors;
178
- AssertMatrixRow(eigenvectorsRow0);
179
- AssertMatrixRow(eigenvectorsRow1);
180
165
  eigenvectorsRow0[0] = 1;
181
166
  eigenvectorsRow1[0] = 0;
182
167
  eigenvectorsRow0[1] = 1;
@@ -185,8 +170,6 @@ export function MatrixEigen(matrix) {
185
170
  else if (Math.abs(c) > MATRIX_NUMERICAL_TOLERANCE) {
186
171
  // Use the first row to find eigenvectors when c ≠ 0
187
172
  const [eigenvectorsRow0, eigenvectorsRow1] = eigenvectors;
188
- AssertMatrixRow(eigenvectorsRow0);
189
- AssertMatrixRow(eigenvectorsRow1);
190
173
  eigenvectorsRow0[0] = lambda1 - d;
191
174
  eigenvectorsRow1[0] = c;
192
175
  eigenvectorsRow0[1] = lambda2 - d;
@@ -195,8 +178,6 @@ export function MatrixEigen(matrix) {
195
178
  else {
196
179
  // Diagonal matrix case - eigenvectors are standard basis vectors
197
180
  const [eigenvectorsRow0, eigenvectorsRow1] = eigenvectors;
198
- AssertMatrixRow(eigenvectorsRow0);
199
- AssertMatrixRow(eigenvectorsRow1);
200
181
  eigenvectorsRow0[0] = 1;
201
182
  eigenvectorsRow1[0] = 0;
202
183
  eigenvectorsRow0[1] = 0;
@@ -208,7 +189,6 @@ export function MatrixEigen(matrix) {
208
189
  // Calculate the norm (length) of the eigenvector
209
190
  for (let i = 0; i < 2; i++) {
210
191
  const eigenvectorsRowI = eigenvectors[i];
211
- AssertMatrixRow(eigenvectorsRowI);
212
192
  const val = eigenvectorsRowI[j];
213
193
  AssertNumber(val, {}, { message: `Eigenvector[${i},${j}] Not a Number` });
214
194
  norm += val * val;
@@ -218,9 +198,7 @@ export function MatrixEigen(matrix) {
218
198
  if (norm > MATRIX_NUMERICAL_TOLERANCE) {
219
199
  for (let i = 0; i < 2; i++) {
220
200
  const eigenvectorsRowI = eigenvectors[i];
221
- AssertMatrixRow(eigenvectorsRowI);
222
201
  const val = eigenvectorsRowI[j];
223
- AssertMatrixValue(val, { rowIndex: i, columnIndex: j });
224
202
  eigenvectorsRowI[j] = val / norm;
225
203
  }
226
204
  }
@@ -248,15 +226,22 @@ export function MatrixEigen(matrix) {
248
226
  * 4. Repeat until convergence (off-diagonal elements become small)
249
227
  * 5. Eigenvalues are the diagonal elements of the final matrix
250
228
  *
229
+ * **Convergence Notes:**
230
+ * The convergence check (examining off-diagonal elements) is optimized for symmetric
231
+ * inputs, which SVD provides via A^T A. For practical n×n matrices with well-conditioned
232
+ * symmetric inputs, convergence typically occurs within 2–5n iterations. The default
233
+ * maximum of 50 iterations is sufficient for matrices up to size ~10×10; larger matrices
234
+ * may require heuristic adjustments.
235
+ *
251
236
  * @private
252
237
  * @param matrix - Square matrix to compute eigenvalues for
253
- * @param iterations - Maximum number of QR iterations (default: 50)
238
+ * @param iterations - Maximum number of QR iterations (default: EIGEN_MAX_ITERATIONS = 50)
254
239
  * @returns Object containing eigenvalues and approximated eigenvectors
255
240
  *
256
241
  * @complexity O(n³) per iteration, typically converges in O(n) iterations
257
242
  * @see {@link MatrixQR} For the QR decomposition used in each iteration
258
243
  */
259
- export function MatrixEigenQRIteration(matrix, iterations = 50) {
244
+ export function MatrixEigenQRIteration(matrix, iterations = EIGEN_MAX_ITERATIONS) {
260
245
  const [n] = MatrixSize(matrix);
261
246
  // Copy matrix for iteration to avoid modifying the original
262
247
  let A = MatrixClone(matrix);
@@ -271,7 +256,7 @@ export function MatrixEigenQRIteration(matrix, iterations = 50) {
271
256
  catch (err) {
272
257
  // If QR fails due to linear dependence, fill Q with orthonormal basis and R with zeros
273
258
  AssertInstanceOf(err, Error, { message: 'Unexpected error in QR iteration' });
274
- if (err instanceof Error && typeof err.message === 'string' && err.message.includes('linearly dependent')) {
259
+ if (err.message.includes('linearly dependent')) {
275
260
  Q = MatrixGramSchmidt(A);
276
261
  R = MatrixCreate(n, n); // All zeros
277
262
  }
@@ -285,10 +270,8 @@ export function MatrixEigenQRIteration(matrix, iterations = 50) {
285
270
  let converged = true;
286
271
  for (let i = 0; i < n - 1; i++) {
287
272
  const aRowI = A[i];
288
- AssertMatrixRow(aRowI);
289
273
  for (let j = i + 1; j < n; j++) {
290
274
  const aVal = aRowI[j];
291
- AssertMatrixValue(aVal, { rowIndex: i, columnIndex: j });
292
275
  if (Math.abs(aVal) > EIGEN_CONVERGENCE_TOLERANCE) {
293
276
  converged = false;
294
277
  break;
@@ -304,9 +287,7 @@ export function MatrixEigenQRIteration(matrix, iterations = 50) {
304
287
  const eigenvalues = [];
305
288
  for (let i = 0; i < n; i++) {
306
289
  const aRowI = A[i];
307
- AssertMatrixRow(aRowI);
308
290
  const eigenvalue = aRowI[i];
309
- AssertMatrixValue(eigenvalue, { rowIndex: i, columnIndex: i });
310
291
  eigenvalues.push(eigenvalue);
311
292
  }
312
293
  return {
@@ -338,22 +319,20 @@ export function MatrixEigenQRIteration(matrix, iterations = 50) {
338
319
  * @throws {MatrixError} If matrix is not square, singular (zero pivot), or contains invalid values
339
320
  *
340
321
  * @example
341
- * ```ts
322
+ * ```typescript
342
323
  * const A = [[2, 1], [1, 1]];
343
324
  * const { L, U, P } = MatrixLU(A);
344
325
  * // L = [[1, 0], [0.5, 1]], U = [[2, 1], [0, 0.5]], P = [0, 1]
345
- *
346
326
  * // Verify: L × U should equal P-permuted A
347
327
  * const product = MatrixMultiply(L, U);
348
328
  * // product ≈ [[2, 1], [1, 1]]
349
329
  * ```
350
- *
351
330
  * @complexity Time: O(n³/3), Space: O(n²)
352
331
  * @see {@link MatrixCholesky} For symmetric positive definite matrices (more efficient)
353
332
  * @see {@link MatrixSolve} For solving Ax = b directly
354
333
  */
355
334
  export function MatrixLU(matrix) {
356
- AssertMatrix(matrix, { square: true });
335
+ AssertMatrixSquare(matrix);
357
336
  const [n] = MatrixSize(matrix);
358
337
  // Work on a mutable copy so partial pivoting can reorder rows
359
338
  const A = matrix.map((row) => [...row]);
@@ -435,24 +414,21 @@ export function MatrixLU(matrix) {
435
414
  *
436
415
  * @param matrix - Matrix to decompose (m×n where m ≥ n, must have full column rank)
437
416
  * @returns Object containing orthogonal Q and upper triangular R matrices
438
- * @throws {Error} If matrix has more columns than rows or columns are linearly dependent
417
+ * @throws {MatrixError} If matrix has more columns than rows or columns are linearly dependent
439
418
  *
440
419
  * @example
441
- * ```ts
420
+ * ```typescript
442
421
  * const A = [[1, 1], [1, 0], [0, 1]]; // 3×2 matrix
443
422
  * const { Q, R } = MatrixQR(A);
444
423
  * // Q: 3×2 orthogonal matrix with Q^T × Q = I₂
445
424
  * // R: 2×2 upper triangular matrix
446
- *
447
425
  * // Verify: Q × R should equal A
448
426
  * const reconstructed = MatrixMultiply(Q, R);
449
427
  * // reconstructed ≈ A
450
- *
451
428
  * // Check orthogonality: Q^T × Q should be identity
452
429
  * const QT = MatrixTranspose(Q);
453
430
  * const identity = MatrixMultiply(QT, Q);
454
431
  * ```
455
- *
456
432
  * @complexity Time: O(mn²), Space: O(mn) where m ≥ n
457
433
  * @see {@link MatrixGramSchmidt} {@link MatrixLU} {@link MatrixEigenQRIteration}
458
434
  */
@@ -461,7 +437,7 @@ export function MatrixQR(matrix, allowDependentColumns = false) {
461
437
  const [m, n] = MatrixSize(matrix);
462
438
  // Verify that the matrix has at least as many rows as columns
463
439
  if (m < n) {
464
- throw new Error('QR decomposition requires matrix to have at least as many rows as columns');
440
+ throw new MatrixError('QR decomposition requires matrix to have at least as many rows as columns');
465
441
  }
466
442
  const Q = MatrixClone(matrix);
467
443
  const R = MatrixCreate(n, n);
@@ -472,16 +448,13 @@ export function MatrixQR(matrix, allowDependentColumns = false) {
472
448
  const qRow = Q[i];
473
449
  if (!qRow)
474
450
  continue;
475
- AssertMatrixRow(qRow);
476
451
  const qVal = qRow[k];
477
- AssertMatrixValue(qVal, { rowIndex: i, columnIndex: k });
478
452
  norm += qVal * qVal;
479
453
  }
480
454
  norm = Math.sqrt(norm);
481
455
  if (norm < MATRIX_NUMERICAL_TOLERANCE) {
482
- if (!allowDependentColumns) {
483
- throw new Error(`Column ${k} is linearly dependent on previous columns`);
484
- }
456
+ if (!allowDependentColumns)
457
+ throw new MatrixError(`Column ${k} is linearly dependent on previous columns`);
485
458
  // Fill Q[:,k] with an orthonormal vector not in the span of previous columns
486
459
  const candidate = Array(m).fill(0);
487
460
  candidate[k % m] = 1;
@@ -489,16 +462,12 @@ export function MatrixQR(matrix, allowDependentColumns = false) {
489
462
  let dot = 0;
490
463
  for (let i = 0; i < m; i++) {
491
464
  const qRow = Q[i];
492
- AssertMatrixRow(qRow);
493
465
  const qVal = qRow[j];
494
- AssertMatrixValue(qVal, { rowIndex: i, columnIndex: j });
495
466
  dot += qVal * candidate[i];
496
467
  }
497
468
  for (let i = 0; i < m; i++) {
498
469
  const qRow = Q[i];
499
- AssertMatrixRow(qRow);
500
470
  const qVal = qRow[j];
501
- AssertMatrixValue(qVal, { rowIndex: i, columnIndex: j });
502
471
  const candidateVal = candidate[i];
503
472
  AssertNumber(candidateVal, {}, { message: `candidate[${i}] Not a Number` });
504
473
  candidate[i] = candidateVal - (dot * qVal);
@@ -509,7 +478,7 @@ export function MatrixQR(matrix, allowDependentColumns = false) {
509
478
  for (let i = 0; i < m; i++) {
510
479
  const qRow = Q[i];
511
480
  if (!Array.isArray(qRow))
512
- throw new Error(`Internal error: Q[${i}] is not an array`);
481
+ throw new MatrixError(`Internal error: Q[${i}] is not an array`);
513
482
  qRow[k] = candidate[i] / candNorm;
514
483
  }
515
484
  }
@@ -517,53 +486,47 @@ export function MatrixQR(matrix, allowDependentColumns = false) {
517
486
  for (let i = 0; i < m; i++) {
518
487
  const qRow = Q[i];
519
488
  if (!Array.isArray(qRow))
520
- throw new Error(`Internal error: Q[${i}] is not an array`);
489
+ throw new MatrixError(`Internal error: Q[${i}] is not an array`);
521
490
  qRow[k] = 0;
522
491
  }
523
492
  }
524
493
  const rRow = R[k];
525
- AssertMatrixRow(rRow);
526
- for (let j = 0; j < n; j++) {
494
+ for (let j = 0; j < n; j++)
527
495
  rRow[j] = 0;
528
- }
529
496
  continue;
530
497
  }
531
498
  const rRow = R[k];
532
- AssertMatrixRow(rRow);
533
499
  rRow[k] = norm;
534
500
  for (let i = 0; i < m; i++) {
535
501
  const qRow = Q[i];
536
502
  if (!qRow)
537
503
  continue;
538
- AssertMatrixRow(qRow);
539
504
  const qVal = qRow[k];
540
- AssertMatrixValue(qVal, { rowIndex: i, columnIndex: k });
541
505
  qRow[k] = qVal / norm;
542
506
  }
507
+ // Extract k-th column of Q for cache-efficient access
508
+ const qColK = [];
509
+ for (let i = 0; i < m; i++) {
510
+ const qRow = Q[i];
511
+ if (qRow)
512
+ qColK[i] = qRow[k];
513
+ }
543
514
  for (let j = k + 1; j < n; j++) {
544
515
  let dot = 0;
545
516
  for (let i = 0; i < m; i++) {
546
517
  const qRow = Q[i];
547
518
  if (!qRow)
548
519
  continue;
549
- AssertMatrixRow(qRow);
550
- const qValK = qRow[k];
551
520
  const qValJ = qRow[j];
552
- AssertMatrixValue(qValK, { rowIndex: i, columnIndex: k });
553
- AssertMatrixValue(qValJ, { rowIndex: i, columnIndex: j });
554
- dot += qValK * qValJ;
521
+ dot += qColK[i] * qValJ;
555
522
  }
556
523
  rRow[j] = dot;
557
524
  for (let i = 0; i < m; i++) {
558
525
  const qRow = Q[i];
559
526
  if (!qRow)
560
527
  continue;
561
- AssertMatrixRow(qRow);
562
- const qValK = qRow[k];
563
528
  const qValJ = qRow[j];
564
- AssertMatrixValue(qValK, { rowIndex: i, columnIndex: k });
565
- AssertMatrixValue(qValJ, { rowIndex: i, columnIndex: j });
566
- qRow[j] = qValJ - (dot * qValK);
529
+ qRow[j] = qValJ - (dot * qColK[i]);
567
530
  }
568
531
  }
569
532
  }
@@ -599,27 +562,23 @@ export function MatrixQR(matrix, allowDependentColumns = false) {
599
562
  *
600
563
  * @param matrix - Matrix to decompose (any m×n matrix)
601
564
  * @returns Object containing U, S (singular values), and VT matrices
602
- * @throws {Error} If matrix contains invalid values (NaN, Infinity)
565
+ * @throws {MatrixError} If matrix contains invalid values (NaN, Infinity)
603
566
  *
604
567
  * @example
605
- * ```ts
568
+ * ```typescript
606
569
  * const A = [[1, 2], [3, 4], [5, 6]]; // 3×2 matrix
607
570
  * const { U, S, VT } = MatrixSVD(A);
608
571
  * // U: 3×2 matrix with orthonormal columns
609
572
  * // S: [σ₁, σ₂] singular values in descending order
610
573
  * // VT: 2×2 orthogonal matrix (V transposed)
611
- *
612
574
  * // Verify reconstruction: U × diag(S) × VT ≈ A
613
- * const Sigma = Matrix_Diagonal(S);
614
- * const reconstructed = MatrixMultiply(MatrixMultiply(U, Sigma), VT);
615
- *
575
+ * // Note: Create diagonal matrix Sigma with S on diagonal, then: reconstructed = U × Sigma × VT
576
+ * const reconstructed = MatrixMultiply(MatrixMultiply(U, [[S[0], 0], [0, S[1]]]), VT);
616
577
  * // Matrix rank from singular values (count non-zero values)
617
578
  * const rank = S.filter(s => s > 1e-10).length;
618
- *
619
579
  * // Condition number for stability analysis
620
580
  * const conditionNumber = S[0] / S[S.length - 1];
621
581
  * ```
622
- *
623
582
  * @complexity Time: O(min(m²n, mn²)), Space: O(m² + n²)
624
583
  * @see {@link MatrixQR} {@link MatrixEigenQRIteration} {@link Matrix_PseudoInverse}
625
584
  */
@@ -701,18 +660,21 @@ export function MatrixSVD(matrix) {
701
660
  * @throws {MatrixError} If A is not square, singular, or b has the wrong length
702
661
  *
703
662
  * @example
663
+ * ```typescript
704
664
  * // 2x + y = 8
705
665
  * // 5x + 3y = 20
706
666
  * MatrixSolve([[2, 1], [5, 3]], [8, 20]); // [4, 0]
707
- *
667
+ * ```
708
668
  * @example
669
+ * ```typescript
709
670
  * // Solve a 3×3 system
710
671
  * const A = [[1, 2, -1], [2, 1, 1], [3, -1, 2]];
711
672
  * const b = [4, 7, 2];
712
673
  * MatrixSolve(A, b); // solution vector x
674
+ * ```
713
675
  */
714
676
  export function MatrixSolve(a, b) {
715
- AssertMatrix(a, { square: true });
677
+ AssertMatrixSquare(a);
716
678
  const [n] = MatrixSize(a);
717
679
  if (b.length !== n) {
718
680
  throw new MatrixError(`Right-hand side vector length (${b.length}) must match matrix dimension (${n})`);
@@ -722,18 +684,16 @@ export function MatrixSolve(a, b) {
722
684
  const bPerm = P.map((pi) => {
723
685
  const val = b[pi];
724
686
  if (val === undefined)
725
- throw new MatrixError(`b[${pi}] is undefined`);
687
+ throw new Error(`b[${pi}] is undefined`);
726
688
  return val;
727
689
  });
728
690
  // Forward substitution: solve Ly = b_perm (L has 1s on its diagonal)
729
691
  const y = new Array(n).fill(0);
730
692
  for (let i = 0; i < n; i++) {
731
693
  const lRow = L[i];
732
- AssertMatrixRow(lRow);
733
694
  let sum = 0;
734
695
  for (let j = 0; j < i; j++) {
735
696
  const lVal = lRow[j];
736
- AssertMatrixValue(lVal);
737
697
  sum += lVal * y[j];
738
698
  }
739
699
  y[i] = bPerm[i] - sum;
@@ -742,15 +702,12 @@ export function MatrixSolve(a, b) {
742
702
  const x = new Array(n).fill(0);
743
703
  for (let i = n - 1; i >= 0; i--) {
744
704
  const uRow = U[i];
745
- AssertMatrixRow(uRow);
746
705
  let sum = 0;
747
706
  for (let j = i + 1; j < n; j++) {
748
707
  const uVal = uRow[j];
749
- AssertMatrixValue(uVal);
750
708
  sum += uVal * x[j];
751
709
  }
752
710
  const uDiag = uRow[i];
753
- AssertMatrixValue(uDiag);
754
711
  if (uDiag === 0)
755
712
  throw new MatrixError('Matrix is singular — cannot solve the linear system');
756
713
  x[i] = (y[i] - sum) / uDiag;
@@ -1 +1 @@
1
- {"version":3,"file":"decompositions.js","sourceRoot":"","sources":["../../src/matrices/decompositions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decompositions.js","sourceRoot":"","sources":["../../src/matrices/decompositions.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
+ export * from './types.js';
2
+ export * from './core.js';
1
3
  export * from './arithmetic.js';
2
4
  export * from './asserts.js';
3
- export * from './core.js';
4
5
  export * from './decompositions.js';
5
6
  export * from './linear-algebra.js';
6
7
  export * from './normalization.js';
7
8
  export * from './transformations.js';
8
- export * from './types.js';
9
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/matrices/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/matrices/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC"}
@@ -1,9 +1,9 @@
1
+ export * from './types.js';
2
+ export * from './core.js';
1
3
  export * from './arithmetic.js';
2
4
  export * from './asserts.js';
3
- export * from './core.js';
4
5
  export * from './decompositions.js';
5
6
  export * from './linear-algebra.js';
6
7
  export * from './normalization.js';
7
8
  export * from './transformations.js';
8
- export * from './types.js';
9
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/matrices/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/matrices/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC"}