@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,4 +1,4 @@
1
- import { IMatrix } 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,11 +6,11 @@ import { IMatrix } 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 */
13
- eigenvectors: IMatrix;
13
+ eigenvectors: TMatrix;
14
14
  };
15
15
  /**
16
16
  * Result of LU decomposition with partial pivoting where P × A = L × U.
@@ -20,11 +20,11 @@ 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
- readonly L: IMatrix;
25
+ readonly L: TMatrix;
26
26
  /** Upper triangular matrix containing the pivots */
27
- readonly U: IMatrix;
27
+ readonly U: TMatrix;
28
28
  /** Permutation vector: P[i] is the original row index that now occupies row i */
29
29
  readonly P: number[];
30
30
  };
@@ -35,11 +35,11 @@ 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
- readonly Q: IMatrix;
40
+ readonly Q: TMatrix;
41
41
  /** Upper triangular matrix */
42
- readonly R: IMatrix;
42
+ readonly R: TMatrix;
43
43
  };
44
44
  /**
45
45
  * Result of Singular Value Decomposition (SVD) where A = U × Σ × V^T.
@@ -51,11 +51,11 @@ type TQRDecompositionResult = {
51
51
  */
52
52
  type TSVDDecompositionResult = {
53
53
  /** Matrix of left singular vectors (orthogonal columns) */
54
- readonly U: IMatrix;
54
+ readonly U: TMatrix;
55
55
  /** Array of singular values σ in descending order (diagonal elements of Σ matrix) */
56
56
  readonly S: number[];
57
57
  /** Transpose of the matrix of right singular vectors (V^T where V has orthogonal columns) */
58
- readonly VT: IMatrix;
58
+ readonly VT: TMatrix;
59
59
  };
60
60
  /**
61
61
  * Performs Cholesky decomposition for symmetric positive definite matrices A = L × L^T.
@@ -74,25 +74,23 @@ 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
- * ```ts
80
+ * ```typescript
81
81
  * // Symmetric positive definite matrix
82
82
  * const A = [[4, 2], [2, 3]];
83
83
  * const L = MatrixCholesky(A);
84
84
  * // L = [[2, 0], [1, √2]] ≈ [[2, 0], [1, 1.414]]
85
- *
86
85
  * // Verify: L × L^T should equal A
87
86
  * const LT = MatrixTranspose(L);
88
87
  * const reconstructed = MatrixMultiply(L, LT);
89
88
  * // reconstructed ≈ [[4, 2], [2, 3]]
90
89
  * ```
91
- *
92
90
  * @complexity Time: O(n³/3), Space: O(n²) - About 2x faster than general LU decomposition
93
91
  * @see {@link MatrixLU} For general square matrices that may not be positive definite
94
92
  */
95
- export declare function MatrixCholesky(matrix: IMatrix): IMatrix;
93
+ export declare function MatrixCholesky(matrix: TMatrix): TMatrix;
96
94
  /**
97
95
  * Performs eigenvalue decomposition for square matrices to find A × v = λ × v.
98
96
  *
@@ -114,27 +112,25 @@ export declare function MatrixCholesky(matrix: IMatrix): IMatrix;
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
- * ```ts
118
+ * ```typescript
121
119
  * // Simple 2x2 matrix
122
120
  * const A = [[3, 1], [0, 2]];
123
121
  * const { eigenvalues, eigenvectors } = MatrixEigen(A);
124
122
  * // eigenvalues: [3, 2]
125
123
  * // eigenvectors: matrix where each column corresponds to an eigenvalue
126
- *
127
124
  * // Verify eigenvalue equation: A × v = λ × v
128
125
  * const v = Matrix_GetColumn(eigenvectors, 0); // First eigenvector
129
126
  * const Av = MatrixMultiplyVector(A, v);
130
127
  * const lambdaV = Matrix_ScaleVector(v, eigenvalues[0]);
131
128
  * // Av should approximately equal lambdaV
132
129
  * ```
133
- *
134
130
  * @complexity O(n³) time for an n×n matrix
135
131
  * @see {@link MatrixEigenQRIteration} For the iterative algorithm used for larger matrices
136
132
  */
137
- export declare function MatrixEigen(matrix: IMatrix): TEigenDecompositionResult;
133
+ export declare function MatrixEigen(matrix: TMatrix): TEigenDecompositionResult;
138
134
  /**
139
135
  * Simplified QR iteration algorithm for eigenvalue computation of larger matrices.
140
136
  *
@@ -150,15 +146,22 @@ export declare function MatrixEigen(matrix: IMatrix): 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
159
162
  * @see {@link MatrixQR} For the QR decomposition used in each iteration
160
163
  */
161
- export declare function MatrixEigenQRIteration(matrix: IMatrix, iterations?: number): TEigenDecompositionResult;
164
+ export declare function MatrixEigenQRIteration(matrix: TMatrix, iterations?: number): TEigenDecompositionResult;
162
165
  /**
163
166
  * Performs LU decomposition of a square matrix with partial pivoting: P × A = L × U.
164
167
  *
@@ -183,21 +186,19 @@ export declare function MatrixEigenQRIteration(matrix: IMatrix, iterations?: num
183
186
  * @throws {MatrixError} If matrix is not square, singular (zero pivot), or contains invalid values
184
187
  *
185
188
  * @example
186
- * ```ts
189
+ * ```typescript
187
190
  * const A = [[2, 1], [1, 1]];
188
191
  * const { L, U, P } = MatrixLU(A);
189
192
  * // L = [[1, 0], [0.5, 1]], U = [[2, 1], [0, 0.5]], P = [0, 1]
190
- *
191
193
  * // Verify: L × U should equal P-permuted A
192
194
  * const product = MatrixMultiply(L, U);
193
195
  * // product ≈ [[2, 1], [1, 1]]
194
196
  * ```
195
- *
196
197
  * @complexity Time: O(n³/3), Space: O(n²)
197
198
  * @see {@link MatrixCholesky} For symmetric positive definite matrices (more efficient)
198
199
  * @see {@link MatrixSolve} For solving Ax = b directly
199
200
  */
200
- export declare function MatrixLU(matrix: IMatrix): TLUDecompositionResult;
201
+ export declare function MatrixLU(matrix: TMatrix): TLUDecompositionResult;
201
202
  /**
202
203
  * Performs QR decomposition A = Q × R using Modified Gram-Schmidt orthogonalization.
203
204
  *
@@ -219,28 +220,25 @@ export declare function MatrixLU(matrix: IMatrix): 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
- * ```ts
226
+ * ```typescript
226
227
  * const A = [[1, 1], [1, 0], [0, 1]]; // 3×2 matrix
227
228
  * const { Q, R } = MatrixQR(A);
228
229
  * // Q: 3×2 orthogonal matrix with Q^T × Q = I₂
229
230
  * // R: 2×2 upper triangular matrix
230
- *
231
231
  * // Verify: Q × R should equal A
232
232
  * const reconstructed = MatrixMultiply(Q, R);
233
233
  * // reconstructed ≈ A
234
- *
235
234
  * // Check orthogonality: Q^T × Q should be identity
236
235
  * const QT = MatrixTranspose(Q);
237
236
  * const identity = MatrixMultiply(QT, Q);
238
237
  * ```
239
- *
240
238
  * @complexity Time: O(mn²), Space: O(mn) where m ≥ n
241
239
  * @see {@link MatrixGramSchmidt} {@link MatrixLU} {@link MatrixEigenQRIteration}
242
240
  */
243
- export declare function MatrixQR(matrix: IMatrix, allowDependentColumns?: boolean): TQRDecompositionResult;
241
+ export declare function MatrixQR(matrix: TMatrix, allowDependentColumns?: boolean): TQRDecompositionResult;
244
242
  /**
245
243
  * Performs Singular Value Decomposition (SVD) of a matrix A = U × Σ × V^T.
246
244
  *
@@ -271,31 +269,27 @@ export declare function MatrixQR(matrix: IMatrix, allowDependentColumns?: boolea
271
269
  *
272
270
  * @param matrix - Matrix to decompose (any m×n matrix)
273
271
  * @returns Object containing U, S (singular values), and VT matrices
274
- * @throws {Error} If matrix contains invalid values (NaN, Infinity)
272
+ * @throws {MatrixError} If matrix contains invalid values (NaN, Infinity)
275
273
  *
276
274
  * @example
277
- * ```ts
275
+ * ```typescript
278
276
  * const A = [[1, 2], [3, 4], [5, 6]]; // 3×2 matrix
279
277
  * const { U, S, VT } = MatrixSVD(A);
280
278
  * // U: 3×2 matrix with orthonormal columns
281
279
  * // S: [σ₁, σ₂] singular values in descending order
282
280
  * // VT: 2×2 orthogonal matrix (V transposed)
283
- *
284
281
  * // Verify reconstruction: U × diag(S) × VT ≈ A
285
- * const Sigma = Matrix_Diagonal(S);
286
- * const reconstructed = MatrixMultiply(MatrixMultiply(U, Sigma), VT);
287
- *
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);
288
284
  * // Matrix rank from singular values (count non-zero values)
289
285
  * const rank = S.filter(s => s > 1e-10).length;
290
- *
291
286
  * // Condition number for stability analysis
292
287
  * const conditionNumber = S[0] / S[S.length - 1];
293
288
  * ```
294
- *
295
289
  * @complexity Time: O(min(m²n, mn²)), Space: O(m² + n²)
296
290
  * @see {@link MatrixQR} {@link MatrixEigenQRIteration} {@link Matrix_PseudoInverse}
297
291
  */
298
- export declare function MatrixSVD(matrix: IMatrix): TSVDDecompositionResult;
292
+ export declare function MatrixSVD(matrix: TMatrix): TSVDDecompositionResult;
299
293
  /**
300
294
  * Solves the linear system Ax = b for the unknown vector x.
301
295
  * Uses LU decomposition with partial pivoting internally: decomposes A into P, L, U,
@@ -310,16 +304,19 @@ export declare function MatrixSVD(matrix: IMatrix): TSVDDecompositionResult;
310
304
  * @throws {MatrixError} If A is not square, singular, or b has the wrong length
311
305
  *
312
306
  * @example
307
+ * ```typescript
313
308
  * // 2x + y = 8
314
309
  * // 5x + 3y = 20
315
310
  * MatrixSolve([[2, 1], [5, 3]], [8, 20]); // [4, 0]
316
- *
311
+ * ```
317
312
  * @example
313
+ * ```typescript
318
314
  * // Solve a 3×3 system
319
315
  * const A = [[1, 2, -1], [2, 1, 1], [3, -1, 2]];
320
316
  * const b = [4, 7, 2];
321
317
  * MatrixSolve(A, b); // solution vector x
318
+ * ```
322
319
  */
323
- export declare function MatrixSolve(a: IMatrix, b: number[]): number[];
320
+ export declare function MatrixSolve(a: TMatrix, b: number[]): number[];
324
321
  export {};
325
322
  //# sourceMappingURL=decompositions.d.ts.map
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,qBAAqB,UAAQ,GAAG,sBAAsB,CAiI/F;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,OAAO,GAAG,uBAAuB,CA2FlE;AACD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;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"}