@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,12 +1,31 @@
1
- import { IMatrix } from './types.js';
1
+ import type { TMatrix } from './types.js';
2
2
  /**
3
3
  * Computes the determinant of a square matrix.
4
4
  * @param matrix - The square matrix to compute determinant for
5
5
  * @returns {number} The determinant value (can be positive, negative, or zero)
6
6
  * @throws {Error} If the matrix is not square
7
- * @example MatrixDeterminant([[1, 2], [3, 4]]) // -2 (1×4 - 2×3)
7
+ * @example
8
+ * ```typescript
9
+ * MatrixDeterminant([[1, 2], [3, 4]]) // -2 (1×4 - 2×3)
10
+ * ```
8
11
  */
9
- export declare function MatrixDeterminant(matrix: IMatrix): number;
12
+ /**
13
+ * Computes the determinant of a square matrix using a hybrid algorithm.
14
+ *
15
+ * For 1×1, 2×2, and 3×3 matrices, uses direct formulas (Sarrus' rule for 3×3).
16
+ * For n≥4, uses LU decomposition with partial pivoting: det(A) = sign(P) × ∏ U[i,i]
17
+ * where sign(P) = (-1)^(number of row swaps).
18
+ *
19
+ * @param matrix - The square matrix to compute determinant for
20
+ * @returns {number} The determinant value (can be positive, negative, or zero)
21
+ * @throws {Error} If the matrix is not square
22
+ * @example
23
+ * ```typescript
24
+ * MatrixDeterminant([[1, 2], [3, 4]]) // -2 (1×4 - 2×3)
25
+ * MatrixDeterminant([[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,17]]) // 4
26
+ * ```
27
+ */
28
+ export declare function MatrixDeterminant(matrix: TMatrix): number;
10
29
  /**
11
30
  * Computes the cofactor of a matrix element at the specified position.
12
31
  * @param matrix - The square matrix (must be at least 1×1)
@@ -14,25 +33,34 @@ export declare function MatrixDeterminant(matrix: IMatrix): number;
14
33
  * @param y - Row index (0-based, 0 ≤ y < matrix height)
15
34
  * @returns {number} The cofactor value (can be positive, negative, or zero)
16
35
  * @throws {Error} If the matrix is not square or indices are out of bounds
17
- * @example MatrixCofactorElement([[1, 2], [3, 4]], 0, 0) // +4 (sign: +, minor: 4)
36
+ * @example
37
+ * ```typescript
38
+ * MatrixCofactorElement([[1, 2], [3, 4]], 0, 0) // +4 (sign: +, minor: 4)
39
+ * ```
18
40
  */
19
- export declare function MatrixCofactorElement(matrix: IMatrix, x: number, y: number): number;
41
+ export declare function MatrixCofactorElement(matrix: TMatrix, x: number, y: number): number;
20
42
  /**
21
43
  * Computes the cofactor matrix (matrix of all cofactors) of a square matrix.
22
44
  * @param matrix - The square matrix (must be at least 1×1)
23
- * @returns {IMatrix} The cofactor matrix (same dimensions as input)
45
+ * @returns {TMatrix} The cofactor matrix (same dimensions as input)
24
46
  * @throws {Error} If the matrix is not square
25
- * @example MatrixCofactor([[1, 2], [3, 4]]) // [[4, -3], [-2, 1]]
47
+ * @example
48
+ * ```typescript
49
+ * MatrixCofactor([[1, 2], [3, 4]]) // [[4, -3], [-2, 1]]
50
+ * ```
26
51
  */
27
- export declare function MatrixCofactor(matrix: IMatrix): IMatrix;
52
+ export declare function MatrixCofactor(matrix: TMatrix): TMatrix;
28
53
  /**
29
54
  * Computes the adjoint (adjugate) matrix of a square matrix.
30
55
  * @param matrix - The square matrix (must be at least 1×1)
31
- * @returns {IMatrix} The adjoint matrix (same dimensions as input)
56
+ * @returns {TMatrix} The adjoint matrix (same dimensions as input)
32
57
  * @throws {Error} If the matrix is not square
33
- * @example MatrixAdjoint([[1, 2], [3, 4]]) // [[4, -2], [-3, 1]]
58
+ * @example
59
+ * ```typescript
60
+ * MatrixAdjoint([[1, 2], [3, 4]]) // [[4, -2], [-3, 1]]
61
+ * ```
34
62
  */
35
- export declare function MatrixAdjoint(matrix: IMatrix): IMatrix;
63
+ export declare function MatrixAdjoint(matrix: TMatrix): TMatrix;
36
64
  /**
37
65
  * Computes the matrix inverse (reciprocal) of a square matrix.
38
66
  *
@@ -41,20 +69,26 @@ export declare function MatrixAdjoint(matrix: IMatrix): IMatrix;
41
69
  * by solving A × X = I column-by-column.
42
70
  *
43
71
  * @param matrix - The square matrix to invert (must be non-singular)
44
- * @returns {IMatrix} The inverse matrix A⁻¹
72
+ * @returns {TMatrix} The inverse matrix A⁻¹
45
73
  * @throws {MatrixError} If the matrix is not square or is singular (determinant is zero)
46
- * @example MatrixInverse([[1, 2], [3, 4]]) // [[-2, 1], [1.5, -0.5]]
74
+ * @example
75
+ * ```typescript
76
+ * MatrixInverse([[1, 2], [3, 4]]) // [[-2, 1], [1.5, -0.5]]
77
+ * ```
47
78
  */
48
- export declare function MatrixInverse(matrix: IMatrix): IMatrix;
79
+ export declare function MatrixInverse(matrix: TMatrix): TMatrix;
49
80
  /**
50
81
  * Orthogonalizes matrix columns using Gram-Schmidt process.
51
82
  * @param matrix - Input matrix with columns to orthogonalize
52
- * @returns {IMatrix} Matrix with orthonormal columns
83
+ * @returns {TMatrix} Matrix with orthonormal columns
53
84
  * @throws {Error} If matrix contains linearly dependent columns
54
- * @example MatrixGramSchmidt([[1, 1], [0, 1]]) // Orthonormal columns
85
+ * @example
86
+ * ```typescript
87
+ * MatrixGramSchmidt([[1, 1], [0, 1]]) // Orthonormal columns
88
+ * ```
55
89
  * @complexity Time: O(n²m), Space: O(mn)
56
90
  */
57
- export declare function MatrixGramSchmidt(matrix: IMatrix): IMatrix;
91
+ export declare function MatrixGramSchmidt(matrix: TMatrix): TMatrix;
58
92
  /**
59
93
  * Computes matrix minor by removing specified row and column.
60
94
  * @param matrix - Square matrix (≥ 2×2)
@@ -62,8 +96,11 @@ export declare function MatrixGramSchmidt(matrix: IMatrix): IMatrix;
62
96
  * @param y - Row index to remove
63
97
  * @returns {number} Determinant of resulting submatrix
64
98
  * @throws {Error} If matrix too small or indices out of bounds
65
- * @example MatrixMinor([[1,2,3],[4,5,6],[7,8,9]], 1, 0) // -6
99
+ * @example
100
+ * ```typescript
101
+ * MatrixMinor([[1,2,3],[4,5,6],[7,8,9]], 1, 0) // -6
102
+ * ```
66
103
  * @complexity Time: O(n³), Space: O(n²)
67
104
  */
68
- export declare function MatrixMinor(matrix: IMatrix, x: number, y: number): number;
105
+ export declare function MatrixMinor(matrix: TMatrix, x: number, y: number): number;
69
106
  //# sourceMappingURL=linear-algebra.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"linear-algebra.d.ts","sourceRoot":"","sources":["../../src/matrices/linear-algebra.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAMrC;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAqCzD;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAMnF;AAUD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAevD;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAGtD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAiEtD;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAoF1D;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CA6BzE"}
1
+ {"version":3,"file":"linear-algebra.d.ts","sourceRoot":"","sources":["../../src/matrices/linear-algebra.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAM1C;;;;;;;;;GASG;AACH;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAiDzD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAMnF;AAUD;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAcvD;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAGtD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CA8DtD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAoF1D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CA2BzE"}
@@ -1,5 +1,5 @@
1
1
  import { AssertNumber } from '@pawells/typescript-common';
2
- import { AssertMatrix, AssertMatrix1, AssertMatrix2, AssertMatrix3, AssertMatrixRow, AssertMatrixValue, MatrixError } from './asserts.js';
2
+ import { AssertMatrix1, AssertMatrix2, AssertMatrix3, AssertMatrixSquare } from './asserts.js';
3
3
  import { MatrixCreate, MatrixSize, MatrixSizeSquare, MatrixTranspose } from './core.js';
4
4
  import { MatrixLU } from './decompositions.js';
5
5
  import { VectorProject, VectorSubtract } from '../vectors/core.js';
@@ -9,10 +9,29 @@ const GRAM_SCHMIDT_TOLERANCE = 1e-10;
9
9
  * @param matrix - The square matrix to compute determinant for
10
10
  * @returns {number} The determinant value (can be positive, negative, or zero)
11
11
  * @throws {Error} If the matrix is not square
12
- * @example MatrixDeterminant([[1, 2], [3, 4]]) // -2 (1×4 - 2×3)
12
+ * @example
13
+ * ```typescript
14
+ * MatrixDeterminant([[1, 2], [3, 4]]) // -2 (1×4 - 2×3)
15
+ * ```
16
+ */
17
+ /**
18
+ * Computes the determinant of a square matrix using a hybrid algorithm.
19
+ *
20
+ * For 1×1, 2×2, and 3×3 matrices, uses direct formulas (Sarrus' rule for 3×3).
21
+ * For n≥4, uses LU decomposition with partial pivoting: det(A) = sign(P) × ∏ U[i,i]
22
+ * where sign(P) = (-1)^(number of row swaps).
23
+ *
24
+ * @param matrix - The square matrix to compute determinant for
25
+ * @returns {number} The determinant value (can be positive, negative, or zero)
26
+ * @throws {Error} If the matrix is not square
27
+ * @example
28
+ * ```typescript
29
+ * MatrixDeterminant([[1, 2], [3, 4]]) // -2 (1×4 - 2×3)
30
+ * MatrixDeterminant([[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,17]]) // 4
31
+ * ```
13
32
  */
14
33
  export function MatrixDeterminant(matrix) {
15
- AssertMatrix(matrix, { square: true });
34
+ AssertMatrixSquare(matrix);
16
35
  const size = MatrixSizeSquare(matrix);
17
36
  // 1×1: return single element
18
37
  if (size === 1) {
@@ -29,17 +48,29 @@ export function MatrixDeterminant(matrix) {
29
48
  AssertMatrix3(matrix);
30
49
  return (matrix[0][0] * ((matrix[1][1] * matrix[2][2]) - (matrix[1][2] * matrix[2][1]))) - (matrix[0][1] * ((matrix[1][0] * matrix[2][2]) - (matrix[1][2] * matrix[2][0]))) + (matrix[0][2] * ((matrix[1][0] * matrix[2][1]) - (matrix[1][1] * matrix[2][0])));
31
50
  }
32
- // n×n: cofactor expansion along first row
33
- let det = 0;
34
- const [row] = matrix;
35
- AssertMatrixRow(row);
36
- for (let col = 0; col < size; col++) {
37
- const element = row[col];
38
- AssertMatrixValue(element);
39
- const cofactor = MatrixCofactorElement(matrix, col, 0);
40
- det += element * cofactor;
51
+ // n≥4: Use LU decomposition (more efficient than O(n!) cofactor expansion)
52
+ try {
53
+ const { L: _L, U, P } = MatrixLU(matrix);
54
+ // Calculate permutation parity: count positions where P[i] !== i
55
+ let swapCount = 0;
56
+ for (let i = 0; i < size; i++) {
57
+ if (P[i] !== i) {
58
+ swapCount++;
59
+ }
60
+ }
61
+ // Determine sign from parity: odd swaps → -1, even swaps → 1
62
+ const sign = swapCount % 2 === 0 ? 1 : -1;
63
+ // Compute product of diagonal elements of U
64
+ let product = 1;
65
+ for (let i = 0; i < size; i++) {
66
+ product *= U[i][i];
67
+ }
68
+ return sign * product;
69
+ }
70
+ catch {
71
+ // Singular matrix (zero pivot): determinant is 0
72
+ return 0;
41
73
  }
42
- return det;
43
74
  }
44
75
  /**
45
76
  * Computes the cofactor of a matrix element at the specified position.
@@ -48,13 +79,16 @@ export function MatrixDeterminant(matrix) {
48
79
  * @param y - Row index (0-based, 0 ≤ y < matrix height)
49
80
  * @returns {number} The cofactor value (can be positive, negative, or zero)
50
81
  * @throws {Error} If the matrix is not square or indices are out of bounds
51
- * @example MatrixCofactorElement([[1, 2], [3, 4]], 0, 0) // +4 (sign: +, minor: 4)
82
+ * @example
83
+ * ```typescript
84
+ * MatrixCofactorElement([[1, 2], [3, 4]], 0, 0) // +4 (sign: +, minor: 4)
85
+ * ```
52
86
  */
53
87
  export function MatrixCofactorElement(matrix, x, y) {
54
- AssertMatrix(matrix, { square: true });
88
+ AssertMatrixSquare(matrix);
55
89
  const minor = MatrixMinor(matrix, x, y);
56
90
  // Fix: sign should be (-1)^(row+col), where row = y, col = x
57
- return Math.pow(-1, y + x) * minor;
91
+ return ((y + x) % 2 === 0 ? 1 : -1) * minor;
58
92
  }
59
93
  function normalizeZeroMatrix(matrix) {
60
94
  return matrix.map((row) => {
@@ -66,18 +100,20 @@ function normalizeZeroMatrix(matrix) {
66
100
  /**
67
101
  * Computes the cofactor matrix (matrix of all cofactors) of a square matrix.
68
102
  * @param matrix - The square matrix (must be at least 1×1)
69
- * @returns {IMatrix} The cofactor matrix (same dimensions as input)
103
+ * @returns {TMatrix} The cofactor matrix (same dimensions as input)
70
104
  * @throws {Error} If the matrix is not square
71
- * @example MatrixCofactor([[1, 2], [3, 4]]) // [[4, -3], [-2, 1]]
105
+ * @example
106
+ * ```typescript
107
+ * MatrixCofactor([[1, 2], [3, 4]]) // [[4, -3], [-2, 1]]
108
+ * ```
72
109
  */
73
110
  export function MatrixCofactor(matrix) {
74
- AssertMatrix(matrix, { square: true });
111
+ AssertMatrixSquare(matrix);
75
112
  const [size] = MatrixSize(matrix);
76
113
  const result = MatrixCreate(size, size);
77
114
  for (let row = 0; row < size; row++) {
78
115
  for (let col = 0; col < size; col++) {
79
116
  const resultRow = result[row];
80
- AssertMatrixRow(resultRow);
81
117
  resultRow[col] = MatrixCofactorElement(matrix, col, row);
82
118
  }
83
119
  }
@@ -86,12 +122,15 @@ export function MatrixCofactor(matrix) {
86
122
  /**
87
123
  * Computes the adjoint (adjugate) matrix of a square matrix.
88
124
  * @param matrix - The square matrix (must be at least 1×1)
89
- * @returns {IMatrix} The adjoint matrix (same dimensions as input)
125
+ * @returns {TMatrix} The adjoint matrix (same dimensions as input)
90
126
  * @throws {Error} If the matrix is not square
91
- * @example MatrixAdjoint([[1, 2], [3, 4]]) // [[4, -2], [-3, 1]]
127
+ * @example
128
+ * ```typescript
129
+ * MatrixAdjoint([[1, 2], [3, 4]]) // [[4, -2], [-3, 1]]
130
+ * ```
92
131
  */
93
132
  export function MatrixAdjoint(matrix) {
94
- AssertMatrix(matrix, { square: true });
133
+ AssertMatrixSquare(matrix);
95
134
  return normalizeZeroMatrix(MatrixTranspose(MatrixCofactor(matrix)));
96
135
  }
97
136
  /**
@@ -102,31 +141,32 @@ export function MatrixAdjoint(matrix) {
102
141
  * by solving A × X = I column-by-column.
103
142
  *
104
143
  * @param matrix - The square matrix to invert (must be non-singular)
105
- * @returns {IMatrix} The inverse matrix A⁻¹
144
+ * @returns {TMatrix} The inverse matrix A⁻¹
106
145
  * @throws {MatrixError} If the matrix is not square or is singular (determinant is zero)
107
- * @example MatrixInverse([[1, 2], [3, 4]]) // [[-2, 1], [1.5, -0.5]]
146
+ * @example
147
+ * ```typescript
148
+ * MatrixInverse([[1, 2], [3, 4]]) // [[-2, 1], [1.5, -0.5]]
149
+ * ```
108
150
  */
109
151
  export function MatrixInverse(matrix) {
110
- AssertMatrix(matrix, { square: true });
152
+ AssertMatrixSquare(matrix);
111
153
  const [size] = MatrixSize(matrix);
112
154
  // For 1–3×3 use the adjugate/cofactor method (closed-form, exact)
113
155
  if (size <= 3) {
114
156
  const det = MatrixDeterminant(matrix);
115
157
  if (det === 0)
116
- throw new MatrixError('Matrix is not invertible (determinant is zero)');
158
+ throw new Error('Matrix is not invertible (determinant is zero)');
117
159
  const cof = MatrixCofactor(matrix);
118
160
  const transposed = MatrixTranspose(cof);
119
161
  const result = MatrixCreate(size, size);
120
162
  const invDet = 1 / det;
121
163
  for (let row = 0; row < size; row++) {
122
164
  const transposedRow = transposed[row];
123
- AssertMatrixRow(transposedRow);
124
165
  const resultRow = result[row];
125
- AssertMatrixRow(resultRow);
126
166
  for (let col = 0; col < size; col++) {
127
167
  const val = transposedRow[col];
128
168
  if (typeof val !== 'number')
129
- throw new MatrixError(`Transposed matrix value at [${row}, ${col}] is not a number`);
169
+ throw new Error(`Transposed matrix value at [${row}, ${col}] is not a number`);
130
170
  resultRow[col] = Object.is(val * invDet, -0) ? 0 : val * invDet;
131
171
  }
132
172
  }
@@ -163,9 +203,12 @@ export function MatrixInverse(matrix) {
163
203
  /**
164
204
  * Orthogonalizes matrix columns using Gram-Schmidt process.
165
205
  * @param matrix - Input matrix with columns to orthogonalize
166
- * @returns {IMatrix} Matrix with orthonormal columns
206
+ * @returns {TMatrix} Matrix with orthonormal columns
167
207
  * @throws {Error} If matrix contains linearly dependent columns
168
- * @example MatrixGramSchmidt([[1, 1], [0, 1]]) // Orthonormal columns
208
+ * @example
209
+ * ```typescript
210
+ * MatrixGramSchmidt([[1, 1], [0, 1]]) // Orthonormal columns
211
+ * ```
169
212
  * @complexity Time: O(n²m), Space: O(mn)
170
213
  */
171
214
  export function MatrixGramSchmidt(matrix) {
@@ -256,11 +299,14 @@ export function MatrixGramSchmidt(matrix) {
256
299
  * @param y - Row index to remove
257
300
  * @returns {number} Determinant of resulting submatrix
258
301
  * @throws {Error} If matrix too small or indices out of bounds
259
- * @example MatrixMinor([[1,2,3],[4,5,6],[7,8,9]], 1, 0) // -6
302
+ * @example
303
+ * ```typescript
304
+ * MatrixMinor([[1,2,3],[4,5,6],[7,8,9]], 1, 0) // -6
305
+ * ```
260
306
  * @complexity Time: O(n³), Space: O(n²)
261
307
  */
262
308
  export function MatrixMinor(matrix, x, y) {
263
- AssertMatrix(matrix, { square: true });
309
+ AssertMatrixSquare(matrix);
264
310
  const [rows, cols] = MatrixSize(matrix);
265
311
  AssertNumber(rows, { gte: 2 }, { message: 'Matrix must be at least 2x2 to compute minor' });
266
312
  AssertNumber(cols, { gte: 2 }, { message: 'Matrix must be at least 2x2 to compute minor' });
@@ -276,9 +322,7 @@ export function MatrixMinor(matrix, x, y) {
276
322
  if (j === x)
277
323
  continue;
278
324
  const currentRow = matrix[i];
279
- AssertMatrixRow(currentRow);
280
325
  const value = currentRow[j];
281
- AssertMatrixValue(value);
282
326
  row.push(value);
283
327
  }
284
328
  minor.push(row);
@@ -1 +1 @@
1
- {"version":3,"file":"linear-algebra.js","sourceRoot":"","sources":["../../src/matrices/linear-algebra.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC1I,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACxF,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGnE,MAAM,sBAAsB,GAAG,KAAK,CAAC;AAErC;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAe;IAChD,YAAY,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAEvC,MAAM,IAAI,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAEtC,6BAA6B;IAC7B,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;QAChB,aAAa,CAAC,MAAM,CAAC,CAAC;QACtB,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IAED,eAAe;IACf,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;QAChB,aAAa,CAAC,MAAM,CAAC,CAAC;QACtB,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,oBAAoB;IACpB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;QAChB,aAAa,CAAC,MAAM,CAAC,CAAC;QACtB,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/P,CAAC;IAED,0CAA0C;IAC1C,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;IACrB,eAAe,CAAC,GAAG,CAAC,CAAC;IAErB,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACzB,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAE3B,MAAM,QAAQ,GAAG,qBAAqB,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QACvD,GAAG,IAAI,OAAO,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,OAAO,GAAG,CAAC;AACZ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAe,EAAE,CAAS,EAAE,CAAS;IAC1E,YAAY,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAEvC,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACxC,6DAA6D;IAC7D,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;AACpC,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAe;IAC3C,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACzB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACpB,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,MAAe;IAC7C,YAAY,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAEvC,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAExC,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC;QACrC,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC;YACrC,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YAC9B,eAAe,CAAC,SAAS,CAAC,CAAC;YAC3B,SAAS,CAAC,GAAG,CAAC,GAAG,qBAAqB,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAC1D,CAAC;IACF,CAAC;IAED,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC;AACpC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,MAAe;IAC5C,YAAY,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,OAAO,mBAAmB,CAAC,eAAe,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACrE,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,aAAa,CAAC,MAAe;IAC5C,YAAY,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAEvC,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IAElC,kEAAkE;IAClE,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;QACf,MAAM,GAAG,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,GAAG,KAAK,CAAC;YAAE,MAAM,IAAI,WAAW,CAAC,gDAAgD,CAAC,CAAC;QAEvF,MAAM,GAAG,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QACnC,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC;QAEvB,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC;YACrC,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;YACtC,eAAe,CAAC,aAAa,CAAC,CAAC;YAE/B,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YAC9B,eAAe,CAAC,SAAS,CAAC,CAAC;YAE3B,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC;gBACrC,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;gBAC/B,IAAI,OAAO,GAAG,KAAK,QAAQ;oBAAE,MAAM,IAAI,WAAW,CAAC,+BAA+B,GAAG,KAAK,GAAG,mBAAmB,CAAC,CAAC;gBAClH,SAAS,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,GAAG,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC;YACjE,CAAC;QACF,CAAC;QACD,OAAO,MAAM,CAAC;IACf,CAAC;IAED,mEAAmE;IACnE,iDAAiD;IACjD,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,qBAAqB;IAC3D,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAExC,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC;QACrC,sBAAsB;QACtB,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEjD,kCAAkC;QAClC,MAAM,CAAC,GAAa,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAE5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/B,IAAI,GAAG,GAAG,CAAC,CAAC;YAEZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5B,GAAG,IAAM,CAAC,CAAC,CAAC,CAAc,CAAC,CAAC,CAAY,GAAI,CAAC,CAAC,CAAC,CAAY,CAAC;YAC7D,CAAC;YACD,CAAC,CAAC,CAAC,CAAC,GAAI,IAAI,CAAC,CAAC,CAAY,GAAG,GAAG,CAAC;QAClC,CAAC;QAED,4BAA4B;QAC5B,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,IAAI,GAAG,GAAG,CAAC,CAAC;YAEZ,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;gBACnC,GAAG,IAAM,CAAC,CAAC,CAAC,CAAc,CAAC,CAAC,CAAY,GAAK,MAAM,CAAC,CAAC,CAAc,CAAC,GAAG,CAAY,CAAC;YACrF,CAAC;YACD,MAAM,KAAK,GAAI,CAAC,CAAC,CAAC,CAAc,CAAC,CAAC,CAAW,CAAC;YAC7C,MAAM,CAAC,CAAC,CAAc,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,CAAC,CAAC,CAAY,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC;QACjE,CAAC;IACF,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAe;IAChD,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACxC,MAAM,OAAO,GAAe,EAAE,CAAC;IAC/B,MAAM,gBAAgB,GAAe,EAAE,CAAC;IAExC,6BAA6B;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAY,EAAE,CAAC;QAE3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/B,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,CAAC,GAAG;gBAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,eAAe,CAAC,CAAC;YACnE,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YACrB,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAC9F,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IAED,+EAA+E;IAC/E,SAAS,qBAAqB,CAAC,QAAoB;QAClD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC3C,IAAI,SAAS,GAAa,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9C,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAErB,yCAAyC;YACzC,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;gBAC1B,IAAI,CAAC,CAAC;oBAAE,SAAS;gBACjB,MAAM,IAAI,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;gBACzC,SAAS,GAAG,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAC7C,CAAC;YAED,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACvE,IAAI,IAAI,GAAG,sBAAsB,EAAE,CAAC;gBACnC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;YACvC,CAAC;QACF,CAAC;QAED,uBAAuB;QAEvB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACrE,CAAC;IAED,6BAA6B;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,CAAC,aAAa;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC;QACzE,IAAI,gBAAgB,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC;QAE1C,yCAAyC;QACzC,KAAK,MAAM,cAAc,IAAI,gBAAgB,EAAE,CAAC;YAC/C,IAAI,CAAC,cAAc;gBAAE,SAAS;YAC9B,MAAM,UAAU,GAAG,aAAa,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;YAEnE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAClD,IAAI,OAAO,UAAU,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,OAAO,gBAAgB,CAAC,CAAC,CAAC,KAAK,QAAQ;oBAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,eAAe,CAAC,CAAC;gBAC1K,gCAAgC;gBAChC,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,gBAAgB,CAAC,CAAC,CAAC,KAAK,SAAS;oBAAE,SAAS;gBAC/E,gBAAgB,CAAC,CAAC,CAAC,GAAI,gBAAgB,CAAC,CAAC,CAAY,GAAI,UAAU,CAAC,CAAC,CAAY,CAAC;YACnF,CAAC;QACF,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAEpF,IAAI,IAAI,GAAG,sBAAsB,EAAE,CAAC;YACnC,gBAAgB,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;YAC7D,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACzC,CAAC;aAAM,CAAC;YACP,MAAM,OAAO,GAAG,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;YACxD,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;QAED,yBAAyB;QACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/B,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,eAAe,CAAC,CAAC;YAChF,MAAM,QAAQ,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;YACrC,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ;gBAAE,SAAS;YAC3D,SAAS,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAW,CAAC;QACtC,CAAC;IACF,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,WAAW,CAAC,MAAe,EAAE,CAAS,EAAE,CAAS;IAChE,YAAY,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAEvC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IACxC,YAAY,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,8CAA8C,EAAE,CAAC,CAAC;IAC5F,YAAY,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,8CAA8C,EAAE,CAAC,CAAC;IAC5F,YAAY,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,uCAAuC,IAAI,GAAG,EAAE,CAAC,CAAC;IACnG,YAAY,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,oCAAoC,IAAI,GAAG,EAAE,CAAC,CAAC;IAEhG,+CAA+C;IAC/C,MAAM,KAAK,GAAe,EAAE,CAAC;IAE7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,IAAI,CAAC,KAAK,CAAC;YAAE,SAAS;QACtB,MAAM,GAAG,GAAa,EAAE,CAAC;QAEzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/B,IAAI,CAAC,KAAK,CAAC;gBAAE,SAAS;YACtB,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAC7B,eAAe,CAAC,UAAU,CAAC,CAAC;YAE5B,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAC5B,iBAAiB,CAAC,KAAK,CAAC,CAAC;YACzB,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"linear-algebra.js","sourceRoot":"","sources":["../../src/matrices/linear-algebra.ts"],"names":[],"mappings":"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"}
@@ -1,62 +1,83 @@
1
- import { IMatrix } from './types.js';
1
+ import type { TMatrix } from './types.js';
2
2
  /**
3
3
  * Computes the Frobenius norm (Euclidean norm) of a matrix.
4
4
  * @param matrix - The input matrix (any dimensions)
5
5
  * @returns {number} The Frobenius norm (always non-negative)
6
6
  * @throws {Error} If the matrix contains invalid values
7
- * @example MatrixFrobeniusNorm([[3, 4], [0, 0]]) // 5 (sqrt(3² + 4²))
7
+ * @example
8
+ * ```typescript
9
+ * MatrixFrobeniusNorm([[3, 4], [0, 0]]) // 5 (sqrt(3² + 4²))
10
+ * ```
8
11
  */
9
- export declare function MatrixFrobeniusNorm(matrix: IMatrix): number;
12
+ export declare function MatrixFrobeniusNorm(matrix: TMatrix): number;
10
13
  /**
11
14
  * Computes the spectral norm (2-norm) of a matrix.
12
15
  * This is the largest singular value of the matrix.
13
16
  * @param matrix - The input matrix
14
17
  * @returns {number} The spectral norm (always non-negative)
15
18
  * @throws {Error} If the matrix contains invalid values
16
- * @example MatrixSpectralNorm([[3, 0], [0, 4]]) // 4 (largest singular value)
19
+ * @example
20
+ * ```typescript
21
+ * MatrixSpectralNorm([[3, 0], [0, 4]]) // 4 (largest singular value)
22
+ * ```
17
23
  */
18
- export declare function MatrixSpectralNorm(matrix: IMatrix): number;
24
+ export declare function MatrixSpectralNorm(matrix: TMatrix): number;
19
25
  /**
20
26
  * Computes the 1-norm (maximum column sum) of a matrix.
21
27
  * @param matrix - The input matrix
22
28
  * @returns {number} The 1-norm (always non-negative)
23
29
  * @throws {Error} If the matrix contains invalid values
24
- * @example Matrix1Norm([[1, 2], [3, 4]]) // 6 (max of column sums: 4, 6)
30
+ * @example
31
+ * ```typescript
32
+ * Matrix1Norm([[1, 2], [3, 4]]) // 6 (max of column sums: 4, 6)
33
+ * ```
25
34
  */
26
- export declare function Matrix1Norm(matrix: IMatrix): number;
35
+ export declare function Matrix1Norm(matrix: TMatrix): number;
27
36
  /**
28
37
  * Computes the infinity norm (maximum row sum) of a matrix.
29
38
  * @param matrix - The input matrix
30
39
  * @returns {number} The infinity norm (always non-negative)
31
40
  * @throws {Error} If the matrix contains invalid values
32
- * @example MatrixInfinityNorm([[1, 2], [3, 4]]) // 7 (max of row sums: 3, 7)
41
+ * @example
42
+ * ```typescript
43
+ * MatrixInfinityNorm([[1, 2], [3, 4]]) // 7 (max of row sums: 3, 7)
44
+ * ```
33
45
  */
34
- export declare function MatrixInfinityNorm(matrix: IMatrix): number;
46
+ export declare function MatrixInfinityNorm(matrix: TMatrix): number;
35
47
  /**
36
48
  * Computes the nuclear norm (trace norm) of a matrix.
37
49
  * This is the sum of all singular values.
38
50
  * @param matrix - The input matrix
39
51
  * @returns {number} The nuclear norm (always non-negative)
40
52
  * @throws {Error} If the matrix contains invalid values
41
- * @example MatrixNuclearNorm([[3, 0], [0, 4]]) // 7 (sum of singular values: 3 + 4)
53
+ * @example
54
+ * ```typescript
55
+ * MatrixNuclearNorm([[3, 0], [0, 4]]) // 7 (sum of singular values: 3 + 4)
56
+ * ```
42
57
  */
43
- export declare function MatrixNuclearNorm(matrix: IMatrix): number;
58
+ export declare function MatrixNuclearNorm(matrix: TMatrix): number;
44
59
  /**
45
60
  * Computes the max norm (entry-wise maximum) of a matrix.
46
61
  * This is the maximum absolute value of any matrix element.
47
62
  * @param matrix - The input matrix
48
63
  * @returns {number} The max norm (always non-negative)
49
64
  * @throws {Error} If the matrix contains invalid values
50
- * @example MatrixMaxNorm([[1, -5], [3, 2]]) // 5 (max absolute value)
65
+ * @example
66
+ * ```typescript
67
+ * MatrixMaxNorm([[1, -5], [3, 2]]) // 5 (max absolute value)
68
+ * ```
51
69
  */
52
- export declare function MatrixMaxNorm(matrix: IMatrix): number;
70
+ export declare function MatrixMaxNorm(matrix: TMatrix): number;
53
71
  /**
54
72
  * Computes a general p-norm of a matrix (treating it as a flattened vector).
55
73
  * @param matrix - The input matrix
56
74
  * @param p - The norm parameter (must be >= 1)
57
75
  * @returns {number} The p-norm (always non-negative)
58
76
  * @throws {Error} If the matrix contains invalid values or p < 1
59
- * @example MatrixPNorm([[1, 2], [3, 4]], 1) // 10 (sum of absolute values)
77
+ * @example
78
+ * ```typescript
79
+ * MatrixPNorm([[1, 2], [3, 4]], 1) // 10 (sum of absolute values)
80
+ * ```
60
81
  */
61
- export declare function MatrixPNorm(matrix: IMatrix, p: number): number;
82
+ export declare function MatrixPNorm(matrix: TMatrix, p: number): number;
62
83
  //# sourceMappingURL=normalization.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"normalization.d.ts","sourceRoot":"","sources":["../../src/matrices/normalization.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAmB3D;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAW1D;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAwBnD;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAwB1D;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAWzD;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAkBrD;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CA0B9D"}
1
+ {"version":3,"file":"normalization.d.ts","sourceRoot":"","sources":["../../src/matrices/normalization.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAiB3D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAW1D;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAsBnD;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAsB1D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAWzD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAgBrD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAoB9D"}