@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
|
@@ -1,12 +1,31 @@
|
|
|
1
|
-
import {
|
|
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
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* MatrixDeterminant([[1, 2], [3, 4]]) // -2 (1×4 - 2×3)
|
|
10
|
+
* ```
|
|
8
11
|
*/
|
|
9
|
-
|
|
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
|
|
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:
|
|
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 {
|
|
45
|
+
* @returns {TMatrix} The cofactor matrix (same dimensions as input)
|
|
24
46
|
* @throws {Error} If the matrix is not square
|
|
25
|
-
* @example
|
|
47
|
+
* @example
|
|
48
|
+
* ```typescript
|
|
49
|
+
* MatrixCofactor([[1, 2], [3, 4]]) // [[4, -3], [-2, 1]]
|
|
50
|
+
* ```
|
|
26
51
|
*/
|
|
27
|
-
export declare function MatrixCofactor(matrix:
|
|
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 {
|
|
56
|
+
* @returns {TMatrix} The adjoint matrix (same dimensions as input)
|
|
32
57
|
* @throws {Error} If the matrix is not square
|
|
33
|
-
* @example
|
|
58
|
+
* @example
|
|
59
|
+
* ```typescript
|
|
60
|
+
* MatrixAdjoint([[1, 2], [3, 4]]) // [[4, -2], [-3, 1]]
|
|
61
|
+
* ```
|
|
34
62
|
*/
|
|
35
|
-
export declare function MatrixAdjoint(matrix:
|
|
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 {
|
|
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
|
|
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:
|
|
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 {
|
|
83
|
+
* @returns {TMatrix} Matrix with orthonormal columns
|
|
53
84
|
* @throws {Error} If matrix contains linearly dependent columns
|
|
54
|
-
* @example
|
|
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:
|
|
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
|
|
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:
|
|
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;
|
|
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 {
|
|
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
|
|
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
|
-
|
|
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
|
-
//
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
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 {
|
|
103
|
+
* @returns {TMatrix} The cofactor matrix (same dimensions as input)
|
|
70
104
|
* @throws {Error} If the matrix is not square
|
|
71
|
-
* @example
|
|
105
|
+
* @example
|
|
106
|
+
* ```typescript
|
|
107
|
+
* MatrixCofactor([[1, 2], [3, 4]]) // [[4, -3], [-2, 1]]
|
|
108
|
+
* ```
|
|
72
109
|
*/
|
|
73
110
|
export function MatrixCofactor(matrix) {
|
|
74
|
-
|
|
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 {
|
|
125
|
+
* @returns {TMatrix} The adjoint matrix (same dimensions as input)
|
|
90
126
|
* @throws {Error} If the matrix is not square
|
|
91
|
-
* @example
|
|
127
|
+
* @example
|
|
128
|
+
* ```typescript
|
|
129
|
+
* MatrixAdjoint([[1, 2], [3, 4]]) // [[4, -2], [-3, 1]]
|
|
130
|
+
* ```
|
|
92
131
|
*/
|
|
93
132
|
export function MatrixAdjoint(matrix) {
|
|
94
|
-
|
|
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 {
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
|
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 {
|
|
206
|
+
* @returns {TMatrix} Matrix with orthonormal columns
|
|
167
207
|
* @throws {Error} If matrix contains linearly dependent columns
|
|
168
|
-
* @example
|
|
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
|
|
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
|
-
|
|
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":"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"}
|
|
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 {
|
|
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
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* MatrixFrobeniusNorm([[3, 4], [0, 0]]) // 5 (sqrt(3² + 4²))
|
|
10
|
+
* ```
|
|
8
11
|
*/
|
|
9
|
-
export declare function MatrixFrobeniusNorm(matrix:
|
|
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
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* MatrixSpectralNorm([[3, 0], [0, 4]]) // 4 (largest singular value)
|
|
22
|
+
* ```
|
|
17
23
|
*/
|
|
18
|
-
export declare function MatrixSpectralNorm(matrix:
|
|
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
|
|
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:
|
|
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
|
|
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:
|
|
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
|
|
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:
|
|
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
|
|
65
|
+
* @example
|
|
66
|
+
* ```typescript
|
|
67
|
+
* MatrixMaxNorm([[1, -5], [3, 2]]) // 5 (max absolute value)
|
|
68
|
+
* ```
|
|
51
69
|
*/
|
|
52
|
-
export declare function MatrixMaxNorm(matrix:
|
|
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
|
|
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:
|
|
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;
|
|
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"}
|