@pawells/math-extended 2.0.0 → 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 (118) hide show
  1. package/README.md +15 -21
  2. package/build/clamp.d.ts +5 -5
  3. package/build/clamp.js +5 -5
  4. package/build/core.d.ts +23 -0
  5. package/build/core.d.ts.map +1 -0
  6. package/build/core.js +25 -0
  7. package/build/core.js.map +1 -0
  8. package/build/index.d.ts +1 -4
  9. package/build/index.d.ts.map +1 -1
  10. package/build/index.js +1 -6
  11. package/build/index.js.map +1 -1
  12. package/build/interpolation.d.ts +158 -171
  13. package/build/interpolation.d.ts.map +1 -1
  14. package/build/interpolation.js +162 -181
  15. package/build/interpolation.js.map +1 -1
  16. package/build/matrices/arithmetic.d.ts +132 -132
  17. package/build/matrices/arithmetic.d.ts.map +1 -1
  18. package/build/matrices/arithmetic.js +194 -226
  19. package/build/matrices/arithmetic.js.map +1 -1
  20. package/build/matrices/asserts.d.ts +30 -408
  21. package/build/matrices/asserts.d.ts.map +1 -1
  22. package/build/matrices/asserts.js +98 -542
  23. package/build/matrices/asserts.js.map +1 -1
  24. package/build/matrices/core.d.ts +117 -46
  25. package/build/matrices/core.d.ts.map +1 -1
  26. package/build/matrices/core.js +127 -103
  27. package/build/matrices/core.js.map +1 -1
  28. package/build/matrices/decompositions.d.ts +95 -96
  29. package/build/matrices/decompositions.d.ts.map +1 -1
  30. package/build/matrices/decompositions.js +119 -160
  31. package/build/matrices/decompositions.js.map +1 -1
  32. package/build/matrices/index.d.ts +0 -1
  33. package/build/matrices/index.d.ts.map +1 -1
  34. package/build/matrices/index.js +0 -3
  35. package/build/matrices/index.js.map +1 -1
  36. package/build/matrices/linear-algebra.d.ts +45 -8
  37. package/build/matrices/linear-algebra.d.ts.map +1 -1
  38. package/build/matrices/linear-algebra.js +76 -32
  39. package/build/matrices/linear-algebra.js.map +1 -1
  40. package/build/matrices/normalization.d.ts +29 -8
  41. package/build/matrices/normalization.d.ts.map +1 -1
  42. package/build/matrices/normalization.js +32 -23
  43. package/build/matrices/normalization.js.map +1 -1
  44. package/build/matrices/transformations.d.ts +116 -148
  45. package/build/matrices/transformations.d.ts.map +1 -1
  46. package/build/matrices/transformations.js +69 -91
  47. package/build/matrices/transformations.js.map +1 -1
  48. package/build/matrices/types.d.ts +32 -60
  49. package/build/matrices/types.d.ts.map +1 -1
  50. package/build/matrices/types.js +63 -1
  51. package/build/matrices/types.js.map +1 -1
  52. package/build/quaternions/asserts.d.ts +29 -38
  53. package/build/quaternions/asserts.d.ts.map +1 -1
  54. package/build/quaternions/asserts.js +61 -77
  55. package/build/quaternions/asserts.js.map +1 -1
  56. package/build/quaternions/conversions.d.ts +26 -26
  57. package/build/quaternions/conversions.d.ts.map +1 -1
  58. package/build/quaternions/conversions.js +24 -24
  59. package/build/quaternions/core.d.ts +70 -69
  60. package/build/quaternions/core.d.ts.map +1 -1
  61. package/build/quaternions/core.js +71 -71
  62. package/build/quaternions/core.js.map +1 -1
  63. package/build/quaternions/index.d.ts +0 -1
  64. package/build/quaternions/index.d.ts.map +1 -1
  65. package/build/quaternions/index.js +0 -2
  66. package/build/quaternions/index.js.map +1 -1
  67. package/build/quaternions/interpolation.d.ts +16 -16
  68. package/build/quaternions/interpolation.d.ts.map +1 -1
  69. package/build/quaternions/interpolation.js +21 -21
  70. package/build/quaternions/interpolation.js.map +1 -1
  71. package/build/quaternions/predefined.d.ts +10 -10
  72. package/build/quaternions/predefined.d.ts.map +1 -1
  73. package/build/quaternions/predefined.js +9 -9
  74. package/build/quaternions/types.d.ts +23 -12
  75. package/build/quaternions/types.d.ts.map +1 -1
  76. package/build/quaternions/types.js +51 -1
  77. package/build/quaternions/types.js.map +1 -1
  78. package/build/random.d.ts +66 -20
  79. package/build/random.d.ts.map +1 -1
  80. package/build/random.js +73 -20
  81. package/build/random.js.map +1 -1
  82. package/build/vectors/asserts.d.ts +50 -220
  83. package/build/vectors/asserts.d.ts.map +1 -1
  84. package/build/vectors/asserts.js +141 -327
  85. package/build/vectors/asserts.js.map +1 -1
  86. package/build/vectors/core.d.ts +182 -229
  87. package/build/vectors/core.d.ts.map +1 -1
  88. package/build/vectors/core.js +234 -288
  89. package/build/vectors/core.js.map +1 -1
  90. package/build/vectors/index.d.ts +0 -1
  91. package/build/vectors/index.d.ts.map +1 -1
  92. package/build/vectors/index.js +0 -2
  93. package/build/vectors/index.js.map +1 -1
  94. package/build/vectors/interpolation.d.ts +40 -40
  95. package/build/vectors/interpolation.d.ts.map +1 -1
  96. package/build/vectors/interpolation.js +75 -86
  97. package/build/vectors/interpolation.js.map +1 -1
  98. package/build/vectors/predefined.d.ts +31 -7
  99. package/build/vectors/predefined.d.ts.map +1 -1
  100. package/build/vectors/predefined.js +30 -6
  101. package/build/vectors/predefined.js.map +1 -1
  102. package/build/vectors/types.d.ts +26 -4
  103. package/build/vectors/types.d.ts.map +1 -1
  104. package/build/vectors/types.js +50 -1
  105. package/build/vectors/types.js.map +1 -1
  106. package/package.json +3 -2
  107. package/build/matrices/_exports.d.ts +0 -13
  108. package/build/matrices/_exports.d.ts.map +0 -1
  109. package/build/matrices/_exports.js +0 -13
  110. package/build/matrices/_exports.js.map +0 -1
  111. package/build/quaternions/_exports.d.ts +0 -11
  112. package/build/quaternions/_exports.d.ts.map +0 -1
  113. package/build/quaternions/_exports.js +0 -11
  114. package/build/quaternions/_exports.js.map +0 -1
  115. package/build/vectors/_exports.d.ts +0 -10
  116. package/build/vectors/_exports.d.ts.map +0 -1
  117. package/build/vectors/_exports.js +0 -10
  118. package/build/vectors/_exports.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { TMatrix } from './types.js';
1
+ import type { TMatrix } from './types.js';
2
2
  /**
3
3
  * Result of eigenvalue decomposition containing eigenvalues and their corresponding eigenvectors.
4
4
  *
@@ -6,7 +6,7 @@ import { TMatrix } from './types.js';
6
6
  * The eigenvalues represent the scaling factors, while eigenvectors represent the directions
7
7
  * that remain unchanged (up to scaling) under the linear transformation.
8
8
  */
9
- type TEigenDecompositionResult = {
9
+ export type TEigenDecompositionResult = {
10
10
  /** Array of eigenvalues λ in descending order */
11
11
  eigenvalues: number[];
12
12
  /** Matrix where each column is an eigenvector corresponding to the eigenvalue at the same index */
@@ -20,7 +20,7 @@ type TEigenDecompositionResult = {
20
20
  * performed during partial pivoting. This is useful for solving systems of linear equations,
21
21
  * computing determinants, and matrix inversion.
22
22
  */
23
- type TLUDecompositionResult = {
23
+ export type TLUDecompositionResult = {
24
24
  /** Lower triangular matrix with 1's on the diagonal */
25
25
  readonly L: TMatrix;
26
26
  /** Upper triangular matrix containing the pivots */
@@ -35,7 +35,7 @@ type TLUDecompositionResult = {
35
35
  * and an upper triangular matrix R. This decomposition is fundamental for least squares
36
36
  * problems, eigenvalue algorithms, and solving overdetermined linear systems.
37
37
  */
38
- type TQRDecompositionResult = {
38
+ export type TQRDecompositionResult = {
39
39
  /** Orthogonal matrix where Q^T × Q = I */
40
40
  readonly Q: TMatrix;
41
41
  /** Upper triangular matrix */
@@ -74,23 +74,21 @@ type TSVDDecompositionResult = {
74
74
  *
75
75
  * @param matrix - The symmetric positive definite square matrix to decompose
76
76
  * @returns Lower triangular matrix L such that A = L × L^T
77
- * @throws {Error} If matrix is not square, not symmetric, or not positive definite
77
+ * @throws {MatrixError} If matrix is not square, not symmetric, or not positive definite
78
78
  *
79
79
  * @example
80
- * ```typescript
81
- * ```ts
82
- * // Symmetric positive definite matrix
83
- * const A = [[4, 2], [2, 3]];
84
- * const L = MatrixCholesky(A);
85
- * // L = [[2, 0], [1, √2]] ≈ [[2, 0], [1, 1.414]]
86
- * // Verify: L × L^T should equal A
87
- * const LT = MatrixTranspose(L);
88
- * const reconstructed = MatrixMultiply(L, LT);
89
- * // reconstructed ≈ [[4, 2], [2, 3]]
90
- * ```
91
- * @complexity Time: O(n³/3), Space: O(n²) - About 2x faster than general LU decomposition
92
- * @see {@link MatrixLU} For general square matrices that may not be positive definite
93
- * ```
80
+ * ```typescript
81
+ * // Symmetric positive definite matrix
82
+ * const A = [[4, 2], [2, 3]];
83
+ * const L = MatrixCholesky(A);
84
+ * // L = [[2, 0], [1, √2]] ≈ [[2, 0], [1, 1.414]]
85
+ * // Verify: L × L^T should equal A
86
+ * const LT = MatrixTranspose(L);
87
+ * const reconstructed = MatrixMultiply(L, LT);
88
+ * // reconstructed [[4, 2], [2, 3]]
89
+ * ```
90
+ * @complexity Time: O(n³/3), Space: O(n²) - About 2x faster than general LU decomposition
91
+ * @see {@link MatrixLU} For general square matrices that may not be positive definite
94
92
  */
95
93
  export declare function MatrixCholesky(matrix: TMatrix): TMatrix;
96
94
  /**
@@ -114,25 +112,23 @@ export declare function MatrixCholesky(matrix: TMatrix): TMatrix;
114
112
  *
115
113
  * @param matrix - The square matrix to decompose
116
114
  * @returns Object containing eigenvalues and eigenvectors
117
- * @throws {Error} If matrix is not square, contains invalid values, or has complex eigenvalues
115
+ * @throws {MatrixError} If matrix is not square, contains invalid values, or has complex eigenvalues
118
116
  *
119
117
  * @example
120
- * ```typescript
121
- * ```ts
122
- * // Simple 2x2 matrix
123
- * const A = [[3, 1], [0, 2]];
124
- * const { eigenvalues, eigenvectors } = MatrixEigen(A);
125
- * // eigenvalues: [3, 2]
126
- * // eigenvectors: matrix where each column corresponds to an eigenvalue
127
- * // Verify eigenvalue equation: A × v = λ × v
128
- * const v = Matrix_GetColumn(eigenvectors, 0); // First eigenvector
129
- * const Av = MatrixMultiplyVector(A, v);
130
- * const lambdaV = Matrix_ScaleVector(v, eigenvalues[0]);
131
- * // Av should approximately equal lambdaV
132
- * ```
133
- * @complexity O(n³) time for an n×n matrix
134
- * @see {@link MatrixEigenQRIteration} For the iterative algorithm used for larger matrices
135
- * ```
118
+ * ```typescript
119
+ * // Simple 2x2 matrix
120
+ * const A = [[3, 1], [0, 2]];
121
+ * const { eigenvalues, eigenvectors } = MatrixEigen(A);
122
+ * // eigenvalues: [3, 2]
123
+ * // eigenvectors: matrix where each column corresponds to an eigenvalue
124
+ * // Verify eigenvalue equation: A × v = λ × v
125
+ * const v = Matrix_GetColumn(eigenvectors, 0); // First eigenvector
126
+ * const Av = MatrixMultiplyVector(A, v);
127
+ * const lambdaV = Matrix_ScaleVector(v, eigenvalues[0]);
128
+ * // Av should approximately equal lambdaV
129
+ * ```
130
+ * @complexity O(n³) time for an n×n matrix
131
+ * @see {@link MatrixEigenQRIteration} For the iterative algorithm used for larger matrices
136
132
  */
137
133
  export declare function MatrixEigen(matrix: TMatrix): TEigenDecompositionResult;
138
134
  /**
@@ -150,9 +146,16 @@ export declare function MatrixEigen(matrix: TMatrix): TEigenDecompositionResult;
150
146
  * 4. Repeat until convergence (off-diagonal elements become small)
151
147
  * 5. Eigenvalues are the diagonal elements of the final matrix
152
148
  *
149
+ * **Convergence Notes:**
150
+ * The convergence check (examining off-diagonal elements) is optimized for symmetric
151
+ * inputs, which SVD provides via A^T A. For practical n×n matrices with well-conditioned
152
+ * symmetric inputs, convergence typically occurs within 2–5n iterations. The default
153
+ * maximum of 50 iterations is sufficient for matrices up to size ~10×10; larger matrices
154
+ * may require heuristic adjustments.
155
+ *
153
156
  * @private
154
157
  * @param matrix - Square matrix to compute eigenvalues for
155
- * @param iterations - Maximum number of QR iterations (default: 50)
158
+ * @param iterations - Maximum number of QR iterations (default: EIGEN_MAX_ITERATIONS = 50)
156
159
  * @returns Object containing eigenvalues and approximated eigenvectors
157
160
  *
158
161
  * @complexity O(n³) per iteration, typically converges in O(n) iterations
@@ -183,19 +186,17 @@ export declare function MatrixEigenQRIteration(matrix: TMatrix, iterations?: num
183
186
  * @throws {MatrixError} If matrix is not square, singular (zero pivot), or contains invalid values
184
187
  *
185
188
  * @example
186
- * ```typescript
187
- * ```ts
188
- * const A = [[2, 1], [1, 1]];
189
- * const { L, U, P } = MatrixLU(A);
190
- * // L = [[1, 0], [0.5, 1]], U = [[2, 1], [0, 0.5]], P = [0, 1]
191
- * // Verify: L × U should equal P-permuted A
192
- * const product = MatrixMultiply(L, U);
193
- * // product ≈ [[2, 1], [1, 1]]
194
- * ```
195
- * @complexity Time: O(n³/3), Space: O()
196
- * @see {@link MatrixCholesky} For symmetric positive definite matrices (more efficient)
197
- * @see {@link MatrixSolve} For solving Ax = b directly
198
- * ```
189
+ * ```typescript
190
+ * const A = [[2, 1], [1, 1]];
191
+ * const { L, U, P } = MatrixLU(A);
192
+ * // L = [[1, 0], [0.5, 1]], U = [[2, 1], [0, 0.5]], P = [0, 1]
193
+ * // Verify: L × U should equal P-permuted A
194
+ * const product = MatrixMultiply(L, U);
195
+ * // product [[2, 1], [1, 1]]
196
+ * ```
197
+ * @complexity Time: O(n³/3), Space: O(n²)
198
+ * @see {@link MatrixCholesky} For symmetric positive definite matrices (more efficient)
199
+ * @see {@link MatrixSolve} For solving Ax = b directly
199
200
  */
200
201
  export declare function MatrixLU(matrix: TMatrix): TLUDecompositionResult;
201
202
  /**
@@ -219,25 +220,23 @@ export declare function MatrixLU(matrix: TMatrix): TLUDecompositionResult;
219
220
  *
220
221
  * @param matrix - Matrix to decompose (m×n where m ≥ n, must have full column rank)
221
222
  * @returns Object containing orthogonal Q and upper triangular R matrices
222
- * @throws {Error} If matrix has more columns than rows or columns are linearly dependent
223
+ * @throws {MatrixError} If matrix has more columns than rows or columns are linearly dependent
223
224
  *
224
225
  * @example
225
- * ```typescript
226
- * ```ts
227
- * const A = [[1, 1], [1, 0], [0, 1]]; // 3×2 matrix
228
- * const { Q, R } = MatrixQR(A);
229
- * // Q: 3×2 orthogonal matrix with Q^T × Q = I₂
230
- * // R: 2×2 upper triangular matrix
231
- * // Verify: Q × R should equal A
232
- * const reconstructed = MatrixMultiply(Q, R);
233
- * // reconstructed A
234
- * // Check orthogonality: Q^T × Q should be identity
235
- * const QT = MatrixTranspose(Q);
236
- * const identity = MatrixMultiply(QT, Q);
237
- * ```
238
- * @complexity Time: O(mn²), Space: O(mn) where m ≥ n
239
- * @see {@link MatrixGramSchmidt} {@link MatrixLU} {@link MatrixEigenQRIteration}
240
- * ```
226
+ * ```typescript
227
+ * const A = [[1, 1], [1, 0], [0, 1]]; // 3×2 matrix
228
+ * const { Q, R } = MatrixQR(A);
229
+ * // Q: 3×2 orthogonal matrix with Q^T × Q = I₂
230
+ * // R: 2×2 upper triangular matrix
231
+ * // Verify: Q × R should equal A
232
+ * const reconstructed = MatrixMultiply(Q, R);
233
+ * // reconstructed A
234
+ * // Check orthogonality: Q^T × Q should be identity
235
+ * const QT = MatrixTranspose(Q);
236
+ * const identity = MatrixMultiply(QT, Q);
237
+ * ```
238
+ * @complexity Time: O(mn²), Space: O(mn) where m ≥ n
239
+ * @see {@link MatrixGramSchmidt} {@link MatrixLU} {@link MatrixEigenQRIteration}
241
240
  */
242
241
  export declare function MatrixQR(matrix: TMatrix, allowDependentColumns?: boolean): TQRDecompositionResult;
243
242
  /**
@@ -270,27 +269,25 @@ export declare function MatrixQR(matrix: TMatrix, allowDependentColumns?: boolea
270
269
  *
271
270
  * @param matrix - Matrix to decompose (any m×n matrix)
272
271
  * @returns Object containing U, S (singular values), and VT matrices
273
- * @throws {Error} If matrix contains invalid values (NaN, Infinity)
272
+ * @throws {MatrixError} If matrix contains invalid values (NaN, Infinity)
274
273
  *
275
274
  * @example
276
- * ```typescript
277
- * ```ts
278
- * const A = [[1, 2], [3, 4], [5, 6]]; // 3×2 matrix
279
- * const { U, S, VT } = MatrixSVD(A);
280
- * // U: 3×2 matrix with orthonormal columns
281
- * // S: [σ₁, σ₂] singular values in descending order
282
- * // VT: 2×2 orthogonal matrix (V transposed)
283
- * // Verify reconstruction: U × diag(S) × VT ≈ A
284
- * const Sigma = Matrix_Diagonal(S);
285
- * const reconstructed = MatrixMultiply(MatrixMultiply(U, Sigma), VT);
286
- * // Matrix rank from singular values (count non-zero values)
287
- * const rank = S.filter(s => s > 1e-10).length;
288
- * // Condition number for stability analysis
289
- * const conditionNumber = S[0] / S[S.length - 1];
290
- * ```
291
- * @complexity Time: O(min(m²n, mn²)), Space: O(m² + n²)
292
- * @see {@link MatrixQR} {@link MatrixEigenQRIteration} {@link Matrix_PseudoInverse}
293
- * ```
275
+ * ```typescript
276
+ * const A = [[1, 2], [3, 4], [5, 6]]; // 3×2 matrix
277
+ * const { U, S, VT } = MatrixSVD(A);
278
+ * // U: 3×2 matrix with orthonormal columns
279
+ * // S: [σ₁, σ₂] singular values in descending order
280
+ * // VT: 2×2 orthogonal matrix (V transposed)
281
+ * // Verify reconstruction: U × diag(S) × VT ≈ A
282
+ * // Note: Create diagonal matrix Sigma with S on diagonal, then: reconstructed = U × Sigma × VT
283
+ * const reconstructed = MatrixMultiply(MatrixMultiply(U, [[S[0], 0], [0, S[1]]]), VT);
284
+ * // Matrix rank from singular values (count non-zero values)
285
+ * const rank = S.filter(s => s > 1e-10).length;
286
+ * // Condition number for stability analysis
287
+ * const conditionNumber = S[0] / S[S.length - 1];
288
+ * ```
289
+ * @complexity Time: O(min(m²n, mn²)), Space: O(m² + n²)
290
+ * @see {@link MatrixQR} {@link MatrixEigenQRIteration} {@link Matrix_PseudoInverse}
294
291
  */
295
292
  export declare function MatrixSVD(matrix: TMatrix): TSVDDecompositionResult;
296
293
  /**
@@ -307,16 +304,18 @@ export declare function MatrixSVD(matrix: TMatrix): TSVDDecompositionResult;
307
304
  * @throws {MatrixError} If A is not square, singular, or b has the wrong length
308
305
  *
309
306
  * @example
310
- * ```typescript
311
- * // 2x + y = 8
312
- * // 5x + 3y = 20
313
- * MatrixSolve([[2, 1], [5, 3]], [8, 20]); // [4, 0]
314
- * @example
315
- * // Solve a 3×3 system
316
- * const A = [[1, 2, -1], [2, 1, 1], [3, -1, 2]];
317
- * const b = [4, 7, 2];
318
- * MatrixSolve(A, b); // solution vector x
319
- * ```
307
+ * ```typescript
308
+ * // 2x + y = 8
309
+ * // 5x + 3y = 20
310
+ * MatrixSolve([[2, 1], [5, 3]], [8, 20]); // [4, 0]
311
+ * ```
312
+ * @example
313
+ * ```typescript
314
+ * // Solve a 3×3 system
315
+ * const A = [[1, 2, -1], [2, 1, 1], [3, -1, 2]];
316
+ * const b = [4, 7, 2];
317
+ * MatrixSolve(A, b); // solution vector x
318
+ * ```
320
319
  */
321
320
  export declare function MatrixSolve(a: TMatrix, b: number[]): number[];
322
321
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"decompositions.d.ts","sourceRoot":"","sources":["../../src/matrices/decompositions.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAKrC;;;;;;GAMG;AACH,KAAK,yBAAyB,GAAG;IAChC,iDAAiD;IACjD,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,mGAAmG;IACnG,YAAY,EAAE,OAAO,CAAC;CACtB,CAAC;AACF;;;;;;;GAOG;AACH,KAAK,sBAAsB,GAAG;IAC7B,uDAAuD;IAEvD,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC;IACpB,oDAAoD;IAEpD,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC;IACpB,iFAAiF;IAEjF,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC;AACF;;;;;;GAMG;AACH,KAAK,sBAAsB,GAAG;IAC7B,0CAA0C;IAE1C,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC;IACpB,8BAA8B;IAE9B,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AACF;;;;;;;GAOG;AACH,KAAK,uBAAuB,GAAG;IAC9B,2DAA2D;IAE3D,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC;IACpB,qFAAqF;IAErF,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,6FAA6F;IAE7F,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAoEvD;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,OAAO,GAAG,yBAAyB,CAoHtE;AACD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,GAAE,MAAW,GAAG,yBAAyB,CA+D1G;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,sBAAsB,CA2EhE;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,qBAAqB,UAAQ,GAAG,sBAAsB,CAiI/F;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,OAAO,GAAG,uBAAuB,CA2FlE;AACD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CA2D7D"}
1
+ {"version":3,"file":"decompositions.d.ts","sourceRoot":"","sources":["../../src/matrices/decompositions.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAM1C;;;;;;GAMG;AACH,MAAM,MAAM,yBAAyB,GAAG;IACvC,iDAAiD;IACjD,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,mGAAmG;IACnG,YAAY,EAAE,OAAO,CAAC;CACtB,CAAC;AACF;;;;;;;GAOG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACpC,uDAAuD;IAEvD,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC;IACpB,oDAAoD;IAEpD,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC;IACpB,iFAAiF;IAEjF,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC;AACF;;;;;;GAMG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACpC,0CAA0C;IAE1C,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC;IACpB,8BAA8B;IAE9B,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AACF;;;;;;;GAOG;AACH,KAAK,uBAAuB,GAAG;IAC9B,2DAA2D;IAE3D,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC;IACpB,qFAAqF;IAErF,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,6FAA6F;IAE7F,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAyDvD;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,OAAO,GAAG,yBAAyB,CAyGtE;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,GAAE,MAA6B,GAAG,yBAAyB,CA2D5H;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,sBAAsB,CA2EhE;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,qBAAqB,UAAQ,GAAG,sBAAsB,CA6G/F;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,OAAO,GAAG,uBAAuB,CA2FlE;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAqD7D"}