@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.
- package/README.md +15 -21
- package/build/angles.d.ts +28 -18
- package/build/angles.d.ts.map +1 -1
- package/build/angles.js +28 -18
- package/build/angles.js.map +1 -1
- package/build/clamp.d.ts +2 -0
- package/build/clamp.d.ts.map +1 -1
- package/build/clamp.js +2 -0
- package/build/clamp.js.map +1 -1
- package/build/core.d.ts +23 -0
- package/build/core.d.ts.map +1 -0
- package/build/core.js +25 -0
- package/build/core.js.map +1 -0
- package/build/index.d.ts +1 -4
- package/build/index.d.ts.map +1 -1
- package/build/index.js +1 -6
- package/build/index.js.map +1 -1
- package/build/interpolation.d.ts +62 -13
- package/build/interpolation.d.ts.map +1 -1
- package/build/interpolation.js +66 -23
- package/build/interpolation.js.map +1 -1
- package/build/matrices/arithmetic.d.ts +65 -76
- package/build/matrices/arithmetic.d.ts.map +1 -1
- package/build/matrices/arithmetic.js +65 -107
- package/build/matrices/arithmetic.js.map +1 -1
- package/build/matrices/asserts.d.ts +26 -273
- package/build/matrices/asserts.d.ts.map +1 -1
- package/build/matrices/asserts.js +106 -350
- package/build/matrices/asserts.js.map +1 -1
- package/build/matrices/core.d.ts +150 -79
- package/build/matrices/core.d.ts.map +1 -1
- package/build/matrices/core.js +128 -104
- package/build/matrices/core.js.map +1 -1
- package/build/matrices/decompositions.d.ts +41 -44
- package/build/matrices/decompositions.d.ts.map +1 -1
- package/build/matrices/decompositions.js +51 -94
- package/build/matrices/decompositions.js.map +1 -1
- package/build/matrices/index.d.ts +2 -2
- package/build/matrices/index.d.ts.map +1 -1
- package/build/matrices/index.js +2 -2
- package/build/matrices/index.js.map +1 -1
- package/build/matrices/linear-algebra.d.ts +56 -19
- package/build/matrices/linear-algebra.d.ts.map +1 -1
- package/build/matrices/linear-algebra.js +80 -36
- package/build/matrices/linear-algebra.js.map +1 -1
- package/build/matrices/normalization.d.ts +36 -15
- package/build/matrices/normalization.d.ts.map +1 -1
- package/build/matrices/normalization.js +32 -23
- package/build/matrices/normalization.js.map +1 -1
- package/build/matrices/transformations.d.ts +39 -52
- package/build/matrices/transformations.d.ts.map +1 -1
- package/build/matrices/transformations.js +8 -11
- package/build/matrices/transformations.js.map +1 -1
- package/build/matrices/types.d.ts +39 -67
- package/build/matrices/types.d.ts.map +1 -1
- package/build/matrices/types.js +63 -1
- package/build/matrices/types.js.map +1 -1
- package/build/quaternions/asserts.d.ts +114 -15
- package/build/quaternions/asserts.d.ts.map +1 -1
- package/build/quaternions/asserts.js +189 -51
- package/build/quaternions/asserts.js.map +1 -1
- package/build/quaternions/conversions.d.ts +18 -8
- package/build/quaternions/conversions.d.ts.map +1 -1
- package/build/quaternions/conversions.js +14 -4
- package/build/quaternions/conversions.js.map +1 -1
- package/build/quaternions/core.d.ts +31 -2
- package/build/quaternions/core.d.ts.map +1 -1
- package/build/quaternions/core.js +32 -4
- package/build/quaternions/core.js.map +1 -1
- package/build/quaternions/index.d.ts +2 -2
- package/build/quaternions/index.d.ts.map +1 -1
- package/build/quaternions/index.js +3 -2
- package/build/quaternions/index.js.map +1 -1
- package/build/quaternions/interpolation.d.ts +7 -1
- package/build/quaternions/interpolation.d.ts.map +1 -1
- package/build/quaternions/interpolation.js +12 -6
- package/build/quaternions/interpolation.js.map +1 -1
- package/build/quaternions/predefined.d.ts +7 -1
- package/build/quaternions/predefined.d.ts.map +1 -1
- package/build/quaternions/predefined.js +6 -0
- package/build/quaternions/predefined.js.map +1 -1
- package/build/quaternions/types.d.ts +24 -13
- package/build/quaternions/types.d.ts.map +1 -1
- package/build/quaternions/types.js +51 -1
- package/build/quaternions/types.js.map +1 -1
- package/build/random.d.ts +66 -20
- package/build/random.d.ts.map +1 -1
- package/build/random.js +73 -20
- package/build/random.js.map +1 -1
- package/build/vectors/asserts.d.ts +33 -99
- package/build/vectors/asserts.d.ts.map +1 -1
- package/build/vectors/asserts.js +145 -181
- package/build/vectors/asserts.js.map +1 -1
- package/build/vectors/core.d.ts +76 -44
- package/build/vectors/core.d.ts.map +1 -1
- package/build/vectors/core.js +128 -119
- package/build/vectors/core.js.map +1 -1
- package/build/vectors/index.d.ts.map +1 -1
- package/build/vectors/index.js +1 -0
- package/build/vectors/index.js.map +1 -1
- package/build/vectors/interpolation.d.ts +13 -1
- package/build/vectors/interpolation.d.ts.map +1 -1
- package/build/vectors/interpolation.js +48 -47
- package/build/vectors/interpolation.js.map +1 -1
- package/build/vectors/predefined.d.ts +73 -25
- package/build/vectors/predefined.d.ts.map +1 -1
- package/build/vectors/predefined.js +62 -18
- package/build/vectors/predefined.js.map +1 -1
- package/build/vectors/types.d.ts +26 -4
- package/build/vectors/types.d.ts.map +1 -1
- package/build/vectors/types.js +50 -1
- package/build/vectors/types.js.map +1 -1
- package/package.json +4 -3
package/build/matrices/core.js
CHANGED
|
@@ -1,14 +1,23 @@
|
|
|
1
1
|
import { AssertNumber } from '@pawells/typescript-common';
|
|
2
|
-
import { AssertMatrix,
|
|
2
|
+
import { AssertMatrix, AssertMatrixSquare } from './asserts.js';
|
|
3
3
|
/**
|
|
4
4
|
* Creates a matrix with specified dimensions, initialized with zeros.
|
|
5
5
|
* @param rows - Number of rows (non-negative integer). If only this parameter is provided, creates a square matrix.
|
|
6
6
|
* @param cols - Number of columns (non-negative integer). Optional for square matrices.
|
|
7
|
-
* @returns {
|
|
7
|
+
* @returns {TMatrix | TMatrix1 | TMatrix2 | TMatrix3 | TMatrix4} Zero-filled matrix with specified dimensions
|
|
8
8
|
* @throws {Error} If rows or cols are negative or not integers
|
|
9
|
-
* @example
|
|
10
|
-
*
|
|
11
|
-
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* MatrixCreate() // [[0]] (1x1 matrix)
|
|
12
|
+
* ```
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* MatrixCreate(2) // [[0, 0], [0, 0]] (2x2 matrix)
|
|
16
|
+
* ```
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* MatrixCreate(2, 3) // [[0, 0, 0], [0, 0, 0]] (2x3 matrix)
|
|
20
|
+
* ```
|
|
12
21
|
*/
|
|
13
22
|
export function MatrixCreate(rows, cols) {
|
|
14
23
|
// Handle no parameters - default to 1x1
|
|
@@ -57,13 +66,15 @@ export function MatrixCreate(rows, cols) {
|
|
|
57
66
|
* @param matrix - The matrix to measure
|
|
58
67
|
* @returns {[number, number]} Tuple [rows, columns]. Returns [0, 0] for empty matrices.
|
|
59
68
|
* @throws {Error} If the input is not a valid matrix
|
|
60
|
-
* @example
|
|
69
|
+
* @example
|
|
70
|
+
* ```typescript
|
|
71
|
+
* MatrixSize([[1, 2, 3], [4, 5, 6]]) // [2, 3]
|
|
72
|
+
* ```
|
|
61
73
|
*/
|
|
62
74
|
export function MatrixSize(matrix) {
|
|
63
75
|
// Basic validation without calling AssertMatrix to avoid circular dependency
|
|
64
|
-
if (!Array.isArray(matrix))
|
|
76
|
+
if (!Array.isArray(matrix))
|
|
65
77
|
throw new Error('Input must be an array');
|
|
66
|
-
}
|
|
67
78
|
// Handle empty matrix or matrix with no columns
|
|
68
79
|
if (matrix.length === 0 || !Array.isArray(matrix[0]))
|
|
69
80
|
return [0, 0];
|
|
@@ -74,54 +85,34 @@ export function MatrixSize(matrix) {
|
|
|
74
85
|
* @param matrix - The square matrix to measure
|
|
75
86
|
* @returns {number} The size (n for an n×n matrix)
|
|
76
87
|
* @throws {Error} If the matrix is not square
|
|
77
|
-
* @example
|
|
88
|
+
* @example
|
|
89
|
+
* ```typescript
|
|
90
|
+
* MatrixSizeSquare([[1, 2], [3, 4]]) // 2
|
|
91
|
+
* ```
|
|
78
92
|
*/
|
|
79
93
|
export function MatrixSizeSquare(matrix) {
|
|
80
|
-
|
|
94
|
+
AssertMatrixSquare(matrix);
|
|
81
95
|
const [rows] = MatrixSize(matrix);
|
|
82
96
|
return rows;
|
|
83
97
|
}
|
|
84
|
-
/**
|
|
85
|
-
* Validates that the input is a well-formed matrix.
|
|
86
|
-
* @param matrix - The value to validate as a matrix
|
|
87
|
-
* @returns {boolean} True if the input is a valid matrix, false otherwise
|
|
88
|
-
* @example MatrixIsValid([[1, 2], [3, 4]]) // true
|
|
89
|
-
* @example MatrixIsValid([[1, 'invalid'], [3, 4]]) // false
|
|
90
|
-
*/
|
|
91
|
-
export function MatrixIsValid(matrix) {
|
|
92
|
-
try {
|
|
93
|
-
AssertMatrix(matrix);
|
|
94
|
-
return true;
|
|
95
|
-
}
|
|
96
|
-
catch {
|
|
97
|
-
return false;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Checks if a matrix is square (equal number of rows and columns).
|
|
102
|
-
* @param matrix - The matrix to check
|
|
103
|
-
* @returns {boolean} True if the matrix is square, false otherwise
|
|
104
|
-
* @example MatrixIsSquare([[1, 2], [3, 4]]) // true (2×2)
|
|
105
|
-
* @example MatrixIsSquare([[1, 2, 3], [4, 5, 6]]) // false (3×2)
|
|
106
|
-
*/
|
|
107
|
-
export function MatrixIsSquare(matrix) {
|
|
108
|
-
try {
|
|
109
|
-
MatrixSizeSquare(matrix);
|
|
110
|
-
return true;
|
|
111
|
-
}
|
|
112
|
-
catch {
|
|
113
|
-
return false;
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
98
|
/**
|
|
117
99
|
* Checks if a matrix is a zero matrix (all elements are zero within tolerance).
|
|
118
100
|
* @param matrix - The matrix to check
|
|
119
101
|
* @param threshold - Tolerance for considering values as zero (default: 1e-14)
|
|
120
102
|
* @returns {boolean} True if all matrix elements are within threshold of zero
|
|
121
103
|
* @throws {Error} If the input is not a valid matrix
|
|
122
|
-
* @example
|
|
123
|
-
*
|
|
124
|
-
*
|
|
104
|
+
* @example
|
|
105
|
+
* ```typescript
|
|
106
|
+
* MatrixIsZero([[0, 0], [0, 0]]) // true
|
|
107
|
+
* ```
|
|
108
|
+
* @example
|
|
109
|
+
* ```typescript
|
|
110
|
+
* MatrixIsZero([[1e-15, 0], [0, 0]]) // true (within default threshold)
|
|
111
|
+
* ```
|
|
112
|
+
* @example
|
|
113
|
+
* ```typescript
|
|
114
|
+
* MatrixIsZero([[0.1, 0], [0, 0]]) // false
|
|
115
|
+
* ```
|
|
125
116
|
*/
|
|
126
117
|
export function MatrixIsZero(matrix, threshold = 1e-14) {
|
|
127
118
|
AssertMatrix(matrix);
|
|
@@ -130,13 +121,10 @@ export function MatrixIsZero(matrix, threshold = 1e-14) {
|
|
|
130
121
|
return true; // Empty matrix is considered zero
|
|
131
122
|
for (let row = 0; row < rows; row++) {
|
|
132
123
|
const matrixRow = matrix[row];
|
|
133
|
-
AssertMatrixRow(matrixRow, { rowIndex: row });
|
|
134
124
|
for (let col = 0; col < cols; col++) {
|
|
135
125
|
const value = matrixRow[col];
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
return false; // Found a non-zero value
|
|
139
|
-
}
|
|
126
|
+
if (Math.abs(value) > threshold)
|
|
127
|
+
return false;
|
|
140
128
|
}
|
|
141
129
|
}
|
|
142
130
|
return true; // All values are within the threshold
|
|
@@ -147,9 +135,18 @@ export function MatrixIsZero(matrix, threshold = 1e-14) {
|
|
|
147
135
|
* @param threshold - Tolerance for floating-point comparisons (default: 1e-14)
|
|
148
136
|
* @returns {boolean} True if the matrix is an identity matrix within tolerance
|
|
149
137
|
* @throws {Error} If the input is not a valid matrix
|
|
150
|
-
* @example
|
|
151
|
-
*
|
|
152
|
-
*
|
|
138
|
+
* @example
|
|
139
|
+
* ```typescript
|
|
140
|
+
* MatrixIsIdentity([[1, 0], [0, 1]]) // true
|
|
141
|
+
* ```
|
|
142
|
+
* @example
|
|
143
|
+
* ```typescript
|
|
144
|
+
* MatrixIsIdentity([[1, 0, 0], [0, 1, 0], [0, 0, 1]]) // true
|
|
145
|
+
* ```
|
|
146
|
+
* @example
|
|
147
|
+
* ```typescript
|
|
148
|
+
* MatrixIsIdentity([[1, 1], [0, 1]]) // false
|
|
149
|
+
* ```
|
|
153
150
|
*/
|
|
154
151
|
export function MatrixIsIdentity(matrix, threshold = 1e-14) {
|
|
155
152
|
AssertMatrix(matrix);
|
|
@@ -158,10 +155,8 @@ export function MatrixIsIdentity(matrix, threshold = 1e-14) {
|
|
|
158
155
|
return false; // Identity must be square
|
|
159
156
|
for (let row = 0; row < rows; row++) {
|
|
160
157
|
const matrixRow = matrix[row];
|
|
161
|
-
AssertMatrixRow(matrixRow, { rowIndex: row });
|
|
162
158
|
for (let col = 0; col < cols; col++) {
|
|
163
159
|
const value = matrixRow[col];
|
|
164
|
-
AssertMatrixValue(value, { rowIndex: row, columnIndex: col });
|
|
165
160
|
const expected = row === col ? 1 : 0;
|
|
166
161
|
if (Math.abs(value - expected) > threshold)
|
|
167
162
|
return false;
|
|
@@ -175,9 +170,18 @@ export function MatrixIsIdentity(matrix, threshold = 1e-14) {
|
|
|
175
170
|
* @param threshold - Tolerance for floating-point comparisons (default: 1e-14)
|
|
176
171
|
* @returns {boolean} True if the matrix is symmetric within tolerance
|
|
177
172
|
* @throws {Error} If the input is not a valid matrix
|
|
178
|
-
* @example
|
|
179
|
-
*
|
|
180
|
-
*
|
|
173
|
+
* @example
|
|
174
|
+
* ```typescript
|
|
175
|
+
* MatrixIsSymmetric([[1, 2], [2, 1]]) // true
|
|
176
|
+
* ```
|
|
177
|
+
* @example
|
|
178
|
+
* ```typescript
|
|
179
|
+
* MatrixIsSymmetric([[1, 2], [3, 4]]) // false
|
|
180
|
+
* ```
|
|
181
|
+
* @example
|
|
182
|
+
* ```typescript
|
|
183
|
+
* MatrixIsSymmetric([[1, 2, 3], [2, 5, 4], [3, 4, 6]]) // true
|
|
184
|
+
* ```
|
|
181
185
|
*/
|
|
182
186
|
export function MatrixIsSymmetric(matrix, threshold = 1e-14) {
|
|
183
187
|
AssertMatrix(matrix);
|
|
@@ -186,14 +190,10 @@ export function MatrixIsSymmetric(matrix, threshold = 1e-14) {
|
|
|
186
190
|
return false; // Symmetry requires a square matrix
|
|
187
191
|
for (let row = 0; row < rows; row++) {
|
|
188
192
|
const matrixRow = matrix[row];
|
|
189
|
-
AssertMatrixRow(matrixRow, { rowIndex: row });
|
|
190
193
|
for (let col = row + 1; col < cols; col++) {
|
|
191
194
|
const upper = matrixRow[col];
|
|
192
|
-
AssertMatrixValue(upper, { rowIndex: row, columnIndex: col });
|
|
193
195
|
const lowerRow = matrix[col];
|
|
194
|
-
AssertMatrixRow(lowerRow, { rowIndex: col });
|
|
195
196
|
const lower = lowerRow[row];
|
|
196
|
-
AssertMatrixValue(lower, { rowIndex: col, columnIndex: row });
|
|
197
197
|
if (Math.abs(upper - lower) > threshold)
|
|
198
198
|
return false;
|
|
199
199
|
}
|
|
@@ -207,9 +207,18 @@ export function MatrixIsSymmetric(matrix, threshold = 1e-14) {
|
|
|
207
207
|
* @param threshold - Tolerance for considering values as zero (default: 1e-14)
|
|
208
208
|
* @returns {boolean} True if the matrix is diagonal within tolerance
|
|
209
209
|
* @throws {Error} If the input is not a valid matrix
|
|
210
|
-
* @example
|
|
211
|
-
*
|
|
212
|
-
*
|
|
210
|
+
* @example
|
|
211
|
+
* ```typescript
|
|
212
|
+
* MatrixIsDiagonal([[3, 0], [0, 7]]) // true
|
|
213
|
+
* ```
|
|
214
|
+
* @example
|
|
215
|
+
* ```typescript
|
|
216
|
+
* MatrixIsDiagonal([[1, 0, 0], [0, 5, 0], [0, 0, 2]]) // true
|
|
217
|
+
* ```
|
|
218
|
+
* @example
|
|
219
|
+
* ```typescript
|
|
220
|
+
* MatrixIsDiagonal([[1, 2], [0, 1]]) // false
|
|
221
|
+
* ```
|
|
213
222
|
*/
|
|
214
223
|
export function MatrixIsDiagonal(matrix, threshold = 1e-14) {
|
|
215
224
|
AssertMatrix(matrix);
|
|
@@ -218,12 +227,10 @@ export function MatrixIsDiagonal(matrix, threshold = 1e-14) {
|
|
|
218
227
|
return false; // Diagonality requires a square matrix
|
|
219
228
|
for (let row = 0; row < rows; row++) {
|
|
220
229
|
const matrixRow = matrix[row];
|
|
221
|
-
AssertMatrixRow(matrixRow, { rowIndex: row });
|
|
222
230
|
for (let col = 0; col < cols; col++) {
|
|
223
231
|
if (row === col)
|
|
224
232
|
continue; // Skip diagonal elements
|
|
225
233
|
const value = matrixRow[col];
|
|
226
|
-
AssertMatrixValue(value, { rowIndex: row, columnIndex: col });
|
|
227
234
|
if (Math.abs(value) > threshold)
|
|
228
235
|
return false;
|
|
229
236
|
}
|
|
@@ -236,7 +243,6 @@ export function MatrixIdentity(size) {
|
|
|
236
243
|
// Set diagonal elements to 1
|
|
237
244
|
for (let i = 0; i < size; i++) {
|
|
238
245
|
const row = result[i];
|
|
239
|
-
AssertMatrixRow(row, { rowIndex: i });
|
|
240
246
|
row[i] = 1;
|
|
241
247
|
}
|
|
242
248
|
return result;
|
|
@@ -246,7 +252,10 @@ export function MatrixIdentity(size) {
|
|
|
246
252
|
* @param matrix - The matrix to clone
|
|
247
253
|
* @returns {TMatrixResult<T>} A new matrix with identical values but independent memory allocation
|
|
248
254
|
* @throws {Error} If the input is not a valid matrix
|
|
249
|
-
* @example
|
|
255
|
+
* @example
|
|
256
|
+
* ```typescript
|
|
257
|
+
* MatrixClone([[1, 2], [3, 4]]) // [[1, 2], [3, 4]] (independent copy)
|
|
258
|
+
* ```
|
|
250
259
|
*/
|
|
251
260
|
export function MatrixClone(matrix) {
|
|
252
261
|
AssertMatrix(matrix);
|
|
@@ -260,8 +269,14 @@ export function MatrixClone(matrix) {
|
|
|
260
269
|
* @param tolerance - Maximum allowed difference between corresponding elements (default: 1e-8)
|
|
261
270
|
* @returns {boolean} True if matrices are equal within tolerance, false otherwise
|
|
262
271
|
* @throws {Error} If either input is not a valid matrix or if matrix data is corrupted
|
|
263
|
-
* @example
|
|
264
|
-
*
|
|
272
|
+
* @example
|
|
273
|
+
* ```typescript
|
|
274
|
+
* MatrixEquals([[1, 2]], [[1.0001, 2]], 0.001) // true
|
|
275
|
+
* ```
|
|
276
|
+
* @example
|
|
277
|
+
* ```typescript
|
|
278
|
+
* MatrixEquals([[1, 2]], [[1, 3]]) // false
|
|
279
|
+
* ```
|
|
265
280
|
*/
|
|
266
281
|
export function MatrixEquals(a, b, tolerance = 1e-8) {
|
|
267
282
|
AssertMatrix(a);
|
|
@@ -275,16 +290,11 @@ export function MatrixEquals(a, b, tolerance = 1e-8) {
|
|
|
275
290
|
for (let row = 0; row < rowsA; row++) {
|
|
276
291
|
const rowA = a[row];
|
|
277
292
|
const rowB = b[row];
|
|
278
|
-
AssertMatrixRow(rowA, { rowIndex: row });
|
|
279
|
-
AssertMatrixRow(rowB, { rowIndex: row });
|
|
280
293
|
for (let col = 0; col < colsA; col++) {
|
|
281
294
|
const valA = rowA[col];
|
|
282
295
|
const valB = rowB[col];
|
|
283
|
-
|
|
284
|
-
AssertMatrixValue(valB, { rowIndex: row, columnIndex: col });
|
|
285
|
-
if (Math.abs(valA - valB) > tolerance) {
|
|
296
|
+
if (Math.abs(valA - valB) > tolerance)
|
|
286
297
|
return false;
|
|
287
|
-
}
|
|
288
298
|
}
|
|
289
299
|
}
|
|
290
300
|
return true;
|
|
@@ -295,8 +305,14 @@ export function MatrixEquals(a, b, tolerance = 1e-8) {
|
|
|
295
305
|
* @param precision - Number of decimal places for formatting (default: 2)
|
|
296
306
|
* @returns {string} A formatted string representation of the matrix
|
|
297
307
|
* @throws {Error} If the input is not a valid matrix
|
|
298
|
-
* @example
|
|
299
|
-
*
|
|
308
|
+
* @example
|
|
309
|
+
* ```typescript
|
|
310
|
+
* MatrixToString([[1.23, 2.7]]) // "[ 1.23, 2.70 ]"
|
|
311
|
+
* ```
|
|
312
|
+
* @example
|
|
313
|
+
* ```typescript
|
|
314
|
+
* MatrixToString([[1, 2], [3, 4]], 0) // "[ 1, 2 ]\n[ 3, 4 ]"
|
|
315
|
+
* ```
|
|
300
316
|
*/
|
|
301
317
|
export function MatrixToString(matrix, precision = 2) {
|
|
302
318
|
AssertMatrix(matrix);
|
|
@@ -304,7 +320,7 @@ export function MatrixToString(matrix, precision = 2) {
|
|
|
304
320
|
return matrix
|
|
305
321
|
.map((row) => '[ ' + row
|
|
306
322
|
.map((val) => {
|
|
307
|
-
return
|
|
323
|
+
return val.toFixed(precision);
|
|
308
324
|
})
|
|
309
325
|
.join(', ') + ' ]')
|
|
310
326
|
.join('\n');
|
|
@@ -315,8 +331,14 @@ export function MatrixToString(matrix, precision = 2) {
|
|
|
315
331
|
* @param tolerance - Numerical tolerance for zero detection (default: 1e-10)
|
|
316
332
|
* @returns {number} The rank of the matrix (0 ≤ rank ≤ min(rows, columns))
|
|
317
333
|
* @throws {Error} If the matrix contains invalid values
|
|
318
|
-
* @example
|
|
319
|
-
*
|
|
334
|
+
* @example
|
|
335
|
+
* ```typescript
|
|
336
|
+
* MatrixRank([[1, 2], [2, 4]]) // 1 (second row = 2 × first row)
|
|
337
|
+
* ```
|
|
338
|
+
* @example
|
|
339
|
+
* ```typescript
|
|
340
|
+
* MatrixRank([[1, 0], [0, 1]]) // 2 (full rank)
|
|
341
|
+
* ```
|
|
320
342
|
*/
|
|
321
343
|
export function MatrixRank(matrix, tolerance = 1e-10) {
|
|
322
344
|
AssertMatrix(matrix);
|
|
@@ -332,9 +354,7 @@ export function MatrixRank(matrix, tolerance = 1e-10) {
|
|
|
332
354
|
let pivotRow = -1;
|
|
333
355
|
for (let row = 0; row < rows; row++) {
|
|
334
356
|
const matrixRow = mat[row];
|
|
335
|
-
AssertMatrixRow(matrixRow, { rowIndex: row });
|
|
336
357
|
const value = matrixRow[col];
|
|
337
|
-
AssertMatrixValue(value, { rowIndex: row, columnIndex: col });
|
|
338
358
|
if (!rowUsed[row] && Math.abs(value) > tolerance) {
|
|
339
359
|
pivotRow = row;
|
|
340
360
|
break;
|
|
@@ -349,21 +369,14 @@ export function MatrixRank(matrix, tolerance = 1e-10) {
|
|
|
349
369
|
if (row !== pivotRow) {
|
|
350
370
|
const currentRow = mat[row];
|
|
351
371
|
const pivotRowData = mat[pivotRow];
|
|
352
|
-
AssertMatrixRow(currentRow, { rowIndex: row });
|
|
353
|
-
AssertMatrixRow(pivotRowData, { rowIndex: pivotRow });
|
|
354
372
|
const pivotValue = pivotRowData[col];
|
|
355
373
|
const currentValue = currentRow[col];
|
|
356
|
-
AssertMatrixValue(pivotValue, { rowIndex: pivotRow, columnIndex: col });
|
|
357
|
-
AssertMatrixValue(currentValue, { rowIndex: row, columnIndex: col });
|
|
358
374
|
const factor = currentValue / pivotValue;
|
|
359
375
|
for (let k = col; k < cols; k++) {
|
|
360
376
|
const pivotK = pivotRowData[k];
|
|
361
377
|
const currentK = currentRow[k];
|
|
362
|
-
AssertMatrixValue(pivotK, { rowIndex: pivotRow, columnIndex: k });
|
|
363
|
-
AssertMatrixValue(currentK, { rowIndex: row, columnIndex: k });
|
|
364
378
|
currentRow[k] = currentK - (factor * pivotK);
|
|
365
379
|
const updatedValue = currentRow[k];
|
|
366
|
-
AssertMatrixValue(updatedValue, { rowIndex: row, columnIndex: k });
|
|
367
380
|
if (Math.abs(updatedValue) < tolerance) {
|
|
368
381
|
currentRow[k] = 0;
|
|
369
382
|
}
|
|
@@ -378,8 +391,14 @@ export function MatrixRank(matrix, tolerance = 1e-10) {
|
|
|
378
391
|
* @param matrix - The input matrix (can be square or rectangular)
|
|
379
392
|
* @returns {number} The trace value (sum of diagonal elements)
|
|
380
393
|
* @throws {Error} If the matrix contains invalid values
|
|
381
|
-
* @example
|
|
382
|
-
*
|
|
394
|
+
* @example
|
|
395
|
+
* ```typescript
|
|
396
|
+
* MatrixTrace([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) // 15 (1 + 5 + 9)
|
|
397
|
+
* ```
|
|
398
|
+
* @example
|
|
399
|
+
* ```typescript
|
|
400
|
+
* MatrixTrace([[1, 2], [3, 4], [5, 6]]) // 5 (1 + 4, rectangular matrix)
|
|
401
|
+
* ```
|
|
383
402
|
*/
|
|
384
403
|
export function MatrixTrace(matrix) {
|
|
385
404
|
AssertMatrix(matrix);
|
|
@@ -389,9 +408,7 @@ export function MatrixTrace(matrix) {
|
|
|
389
408
|
const n = Math.min(rows, cols);
|
|
390
409
|
for (let i = 0; i < n; i++) {
|
|
391
410
|
const row = matrix[i];
|
|
392
|
-
AssertMatrixRow(row, { rowIndex: i });
|
|
393
411
|
const val = row[i];
|
|
394
|
-
AssertMatrixValue(val, { rowIndex: i, columnIndex: i });
|
|
395
412
|
trace += val;
|
|
396
413
|
}
|
|
397
414
|
return trace;
|
|
@@ -401,8 +418,14 @@ export function MatrixTrace(matrix) {
|
|
|
401
418
|
* @param matrix - The matrix to transpose (can be any m×n matrix)
|
|
402
419
|
* @returns {TMatrixResult<T>} The transposed matrix with dimensions n×m
|
|
403
420
|
* @throws {Error} If the input is not a valid matrix
|
|
404
|
-
* @example
|
|
405
|
-
*
|
|
421
|
+
* @example
|
|
422
|
+
* ```typescript
|
|
423
|
+
* MatrixTranspose([[1, 2, 3], [4, 5, 6]]) // [[1, 4], [2, 5], [3, 6]]
|
|
424
|
+
* ```
|
|
425
|
+
* @example
|
|
426
|
+
* ```typescript
|
|
427
|
+
* MatrixTranspose([[1, 2], [3, 4]]) // [[1, 3], [2, 4]]
|
|
428
|
+
* ```
|
|
406
429
|
*/
|
|
407
430
|
export function MatrixTranspose(matrix) {
|
|
408
431
|
AssertMatrix(matrix);
|
|
@@ -415,13 +438,10 @@ export function MatrixTranspose(matrix) {
|
|
|
415
438
|
}
|
|
416
439
|
for (let row = 0; row < rows; row++) {
|
|
417
440
|
const matrixRow = matrix[row];
|
|
418
|
-
AssertMatrixRow(matrixRow, { rowIndex: row });
|
|
419
441
|
for (let col = 0; col < cols; col++) {
|
|
420
442
|
const val = matrixRow[col];
|
|
421
|
-
AssertMatrixValue(val, { rowIndex: row, columnIndex: col });
|
|
422
443
|
// Swap row and column indices in the result
|
|
423
444
|
const resultCol = result[col];
|
|
424
|
-
AssertMatrixRow(resultCol, { rowIndex: col });
|
|
425
445
|
resultCol[row] = val;
|
|
426
446
|
}
|
|
427
447
|
}
|
|
@@ -433,8 +453,14 @@ export function MatrixTranspose(matrix) {
|
|
|
433
453
|
* @param fn - Transformation function: (value, row, col) => transformedValue
|
|
434
454
|
* @returns {TMatrixResult<T>} A new matrix with transformed values (same dimensions as input)
|
|
435
455
|
* @throws {Error} If the input matrix is invalid or transformation function throws
|
|
436
|
-
* @example
|
|
437
|
-
*
|
|
456
|
+
* @example
|
|
457
|
+
* ```typescript
|
|
458
|
+
* MatrixMap([[1, 2], [3, 4]], (value) => value * value) // [[1, 4], [9, 16]]
|
|
459
|
+
* ```
|
|
460
|
+
* @example
|
|
461
|
+
* ```typescript
|
|
462
|
+
* MatrixMap([[1, 2], [3, 4]], (value, row, col) => value + row + col) // [[1, 3], [4, 6]]
|
|
463
|
+
* ```
|
|
438
464
|
*/
|
|
439
465
|
export function MatrixMap(matrix, fn) {
|
|
440
466
|
AssertMatrix(matrix);
|
|
@@ -442,11 +468,9 @@ export function MatrixMap(matrix, fn) {
|
|
|
442
468
|
const result = [];
|
|
443
469
|
for (let row = 0; row < rows; row++) {
|
|
444
470
|
const matrixRow = matrix[row];
|
|
445
|
-
AssertMatrixRow(matrixRow, { rowIndex: row });
|
|
446
471
|
const newRow = [];
|
|
447
472
|
for (let col = 0; col < cols; col++) {
|
|
448
473
|
const val = matrixRow[col];
|
|
449
|
-
AssertMatrixValue(val, { rowIndex: row, columnIndex: col });
|
|
450
474
|
newRow.push(fn(val, row, col));
|
|
451
475
|
}
|
|
452
476
|
result.push(newRow);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/matrices/core.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/matrices/core.ts"],"names":[],"mappings":"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"}
|