@pawells/math-extended 1.0.1 → 1.0.2
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/package.json +1 -1
- package/build/angles.spec.d.ts +0 -2
- package/build/angles.spec.d.ts.map +0 -1
- package/build/angles.spec.js +0 -147
- package/build/angles.spec.js.map +0 -1
- package/build/clamp.spec.d.ts +0 -2
- package/build/clamp.spec.d.ts.map +0 -1
- package/build/clamp.spec.js +0 -19
- package/build/clamp.spec.js.map +0 -1
- package/build/documentation-validation.spec.d.ts +0 -11
- package/build/documentation-validation.spec.d.ts.map +0 -1
- package/build/documentation-validation.spec.js +0 -401
- package/build/documentation-validation.spec.js.map +0 -1
- package/build/interpolation.spec.d.ts +0 -2
- package/build/interpolation.spec.d.ts.map +0 -1
- package/build/interpolation.spec.js +0 -480
- package/build/interpolation.spec.js.map +0 -1
- package/build/matrices/arithmetic.spec.d.ts +0 -2
- package/build/matrices/arithmetic.spec.d.ts.map +0 -1
- package/build/matrices/arithmetic.spec.js +0 -915
- package/build/matrices/arithmetic.spec.js.map +0 -1
- package/build/matrices/asserts.spec.d.ts +0 -2
- package/build/matrices/asserts.spec.d.ts.map +0 -1
- package/build/matrices/asserts.spec.js +0 -565
- package/build/matrices/asserts.spec.js.map +0 -1
- package/build/matrices/core.spec.d.ts +0 -2
- package/build/matrices/core.spec.d.ts.map +0 -1
- package/build/matrices/core.spec.js +0 -634
- package/build/matrices/core.spec.js.map +0 -1
- package/build/matrices/decompositions.spec.d.ts +0 -2
- package/build/matrices/decompositions.spec.d.ts.map +0 -1
- package/build/matrices/decompositions.spec.js +0 -195
- package/build/matrices/decompositions.spec.js.map +0 -1
- package/build/matrices/linear-algebra.spec.d.ts +0 -2
- package/build/matrices/linear-algebra.spec.d.ts.map +0 -1
- package/build/matrices/linear-algebra.spec.js +0 -355
- package/build/matrices/linear-algebra.spec.js.map +0 -1
- package/build/matrices/normalization.spec.d.ts +0 -2
- package/build/matrices/normalization.spec.d.ts.map +0 -1
- package/build/matrices/normalization.spec.js +0 -335
- package/build/matrices/normalization.spec.js.map +0 -1
- package/build/matrices/transformations.spec.d.ts +0 -2
- package/build/matrices/transformations.spec.d.ts.map +0 -1
- package/build/matrices/transformations.spec.js +0 -755
- package/build/matrices/transformations.spec.js.map +0 -1
- package/build/quaternions/asserts.spec.d.ts +0 -2
- package/build/quaternions/asserts.spec.d.ts.map +0 -1
- package/build/quaternions/asserts.spec.js +0 -320
- package/build/quaternions/asserts.spec.js.map +0 -1
- package/build/quaternions/conversions.spec.d.ts +0 -2
- package/build/quaternions/conversions.spec.d.ts.map +0 -1
- package/build/quaternions/conversions.spec.js +0 -344
- package/build/quaternions/conversions.spec.js.map +0 -1
- package/build/quaternions/core.spec.d.ts +0 -2
- package/build/quaternions/core.spec.d.ts.map +0 -1
- package/build/quaternions/core.spec.js +0 -294
- package/build/quaternions/core.spec.js.map +0 -1
- package/build/quaternions/interpolation.spec.d.ts +0 -2
- package/build/quaternions/interpolation.spec.d.ts.map +0 -1
- package/build/quaternions/interpolation.spec.js +0 -64
- package/build/quaternions/interpolation.spec.js.map +0 -1
- package/build/quaternions/predefined.spec.d.ts +0 -2
- package/build/quaternions/predefined.spec.d.ts.map +0 -1
- package/build/quaternions/predefined.spec.js +0 -35
- package/build/quaternions/predefined.spec.js.map +0 -1
- package/build/random.spec.d.ts +0 -2
- package/build/random.spec.d.ts.map +0 -1
- package/build/random.spec.js +0 -267
- package/build/random.spec.js.map +0 -1
- package/build/vectors/asserts.spec.d.ts +0 -2
- package/build/vectors/asserts.spec.d.ts.map +0 -1
- package/build/vectors/asserts.spec.js +0 -260
- package/build/vectors/asserts.spec.js.map +0 -1
- package/build/vectors/core.spec.d.ts +0 -2
- package/build/vectors/core.spec.d.ts.map +0 -1
- package/build/vectors/core.spec.js +0 -343
- package/build/vectors/core.spec.js.map +0 -1
- package/build/vectors/interpolation.spec.d.ts +0 -2
- package/build/vectors/interpolation.spec.d.ts.map +0 -1
- package/build/vectors/interpolation.spec.js +0 -378
- package/build/vectors/interpolation.spec.js.map +0 -1
- package/build/vectors/predefined.spec.d.ts +0 -2
- package/build/vectors/predefined.spec.d.ts.map +0 -1
- package/build/vectors/predefined.spec.js +0 -333
- package/build/vectors/predefined.spec.js.map +0 -1
|
@@ -1,335 +0,0 @@
|
|
|
1
|
-
import { MatrixFrobeniusNorm, MatrixSpectralNorm, Matrix1Norm, MatrixInfinityNorm, MatrixNuclearNorm, MatrixMaxNorm, MatrixPNorm } from './normalization.js';
|
|
2
|
-
import { MatrixIdentity } from './core.js';
|
|
3
|
-
describe('Matrix Normalizations', () => {
|
|
4
|
-
describe('MatrixFrobeniusNorm', () => {
|
|
5
|
-
test('should compute Frobenius norm for 2x2 matrix', () => {
|
|
6
|
-
const matrix = [[3, 4], [0, 0]];
|
|
7
|
-
expect(MatrixFrobeniusNorm(matrix)).toBe(5); // sqrt(3² + 4²) = 5
|
|
8
|
-
});
|
|
9
|
-
test('should compute Frobenius norm for identity matrix', () => {
|
|
10
|
-
const matrix = MatrixIdentity(2);
|
|
11
|
-
expect(MatrixFrobeniusNorm(matrix)).toBe(Math.sqrt(2)); // sqrt(1² + 1²) = sqrt(2)
|
|
12
|
-
});
|
|
13
|
-
test('should compute Frobenius norm for zero matrix', () => {
|
|
14
|
-
const matrix = [[0, 0], [0, 0]];
|
|
15
|
-
expect(MatrixFrobeniusNorm(matrix)).toBe(0);
|
|
16
|
-
});
|
|
17
|
-
test('should compute Frobenius norm for rectangular matrix', () => {
|
|
18
|
-
const matrix = [[1, 2, 3], [4, 5, 6]];
|
|
19
|
-
const expected = Math.sqrt(1 + 4 + 9 + 16 + 25 + 36); // sqrt(91)
|
|
20
|
-
expect(MatrixFrobeniusNorm(matrix)).toBeCloseTo(expected, 10);
|
|
21
|
-
});
|
|
22
|
-
test('should handle single element matrix', () => {
|
|
23
|
-
const matrix = [[7]];
|
|
24
|
-
expect(MatrixFrobeniusNorm(matrix)).toBe(7);
|
|
25
|
-
});
|
|
26
|
-
test('should handle negative values', () => {
|
|
27
|
-
const matrix = [[-3, 4], [0, -5]];
|
|
28
|
-
const expected = Math.sqrt(9 + 16 + 0 + 25); // sqrt(50)
|
|
29
|
-
expect(MatrixFrobeniusNorm(matrix)).toBeCloseTo(expected, 10);
|
|
30
|
-
});
|
|
31
|
-
test('should throw for empty matrix', () => {
|
|
32
|
-
const matrix = [];
|
|
33
|
-
expect(() => MatrixFrobeniusNorm(matrix)).toThrow('Matrix must have at least one row and one column');
|
|
34
|
-
});
|
|
35
|
-
test('should throw error for invalid matrix', () => {
|
|
36
|
-
expect(() => MatrixFrobeniusNorm('invalid')).toThrow();
|
|
37
|
-
});
|
|
38
|
-
});
|
|
39
|
-
describe('MatrixSpectralNorm', () => {
|
|
40
|
-
test('should compute spectral norm for diagonal matrix', () => {
|
|
41
|
-
const matrix = [[3, 0], [0, 4]];
|
|
42
|
-
expect(MatrixSpectralNorm(matrix)).toBe(4); // largest singular value
|
|
43
|
-
});
|
|
44
|
-
test('should compute spectral norm for identity matrix', () => {
|
|
45
|
-
const matrix = MatrixIdentity(3);
|
|
46
|
-
expect(MatrixSpectralNorm(matrix)).toBe(1); // all singular values are 1
|
|
47
|
-
});
|
|
48
|
-
test('should compute spectral norm for zero matrix', () => {
|
|
49
|
-
const matrix = [[0, 0], [0, 0]];
|
|
50
|
-
expect(MatrixSpectralNorm(matrix)).toBe(0);
|
|
51
|
-
});
|
|
52
|
-
test('should handle single element matrix', () => {
|
|
53
|
-
const matrix = [[5]];
|
|
54
|
-
expect(MatrixSpectralNorm(matrix)).toBeCloseTo(5);
|
|
55
|
-
});
|
|
56
|
-
test('should handle rectangular matrix', () => {
|
|
57
|
-
const matrix = [[1, 0], [0, 0], [0, 0]];
|
|
58
|
-
expect(MatrixSpectralNorm(matrix)).toBe(1);
|
|
59
|
-
});
|
|
60
|
-
test('should throw for empty matrix', () => {
|
|
61
|
-
const matrix = [];
|
|
62
|
-
expect(() => MatrixSpectralNorm(matrix)).toThrow('Matrix must have at least one row and one column');
|
|
63
|
-
});
|
|
64
|
-
test('should throw error for invalid matrix', () => {
|
|
65
|
-
expect(() => MatrixSpectralNorm('invalid')).toThrow();
|
|
66
|
-
});
|
|
67
|
-
});
|
|
68
|
-
describe('Matrix1Norm', () => {
|
|
69
|
-
test('should compute 1-norm for square matrix', () => {
|
|
70
|
-
const matrix = [[1, 2], [3, 4]];
|
|
71
|
-
expect(Matrix1Norm(matrix)).toBe(6); // max column sum: max(|1|+|3|, |2|+|4|) = max(4, 6) = 6
|
|
72
|
-
});
|
|
73
|
-
test('should compute 1-norm for rectangular matrix', () => {
|
|
74
|
-
const matrix = [[1, 2, 3], [4, 5, 6]];
|
|
75
|
-
const expected = Math.max(1 + 4, 2 + 5, 3 + 6); // max(5, 7, 9) = 9
|
|
76
|
-
expect(Matrix1Norm(matrix)).toBe(expected);
|
|
77
|
-
});
|
|
78
|
-
test('should handle negative values', () => {
|
|
79
|
-
const matrix = [[-1, 2], [3, -4]];
|
|
80
|
-
const expected = Math.max(1 + 3, 2 + 4); // max(4, 6) = 6
|
|
81
|
-
expect(Matrix1Norm(matrix)).toBe(expected);
|
|
82
|
-
});
|
|
83
|
-
test('should compute 1-norm for identity matrix', () => {
|
|
84
|
-
const matrix = MatrixIdentity(3);
|
|
85
|
-
expect(Matrix1Norm(matrix)).toBe(1); // each column sums to 1
|
|
86
|
-
});
|
|
87
|
-
test('should compute 1-norm for zero matrix', () => {
|
|
88
|
-
const matrix = [[0, 0], [0, 0]];
|
|
89
|
-
expect(Matrix1Norm(matrix)).toBe(0);
|
|
90
|
-
});
|
|
91
|
-
test('should handle single element matrix', () => {
|
|
92
|
-
const matrix = [[7]];
|
|
93
|
-
expect(Matrix1Norm(matrix)).toBe(7);
|
|
94
|
-
});
|
|
95
|
-
test('should throw for empty matrix', () => {
|
|
96
|
-
const matrix = [];
|
|
97
|
-
expect(() => Matrix1Norm(matrix)).toThrow('Matrix must have at least one row and one column');
|
|
98
|
-
});
|
|
99
|
-
test('should handle single column matrix', () => {
|
|
100
|
-
const matrix = [[1], [2], [3]];
|
|
101
|
-
expect(Matrix1Norm(matrix)).toBe(6); // sum of absolute values: 1 + 2 + 3 = 6
|
|
102
|
-
});
|
|
103
|
-
});
|
|
104
|
-
describe('MatrixInfinityNorm', () => {
|
|
105
|
-
test('should compute infinity norm for square matrix', () => {
|
|
106
|
-
const matrix = [[1, 2], [3, 4]];
|
|
107
|
-
expect(MatrixInfinityNorm(matrix)).toBe(7); // max row sum: max(|1|+|2|, |3|+|4|) = max(3, 7) = 7
|
|
108
|
-
});
|
|
109
|
-
test('should compute infinity norm for rectangular matrix', () => {
|
|
110
|
-
const matrix = [[1, 2, 3], [4, 5, 6]];
|
|
111
|
-
const expected = Math.max(1 + 2 + 3, 4 + 5 + 6); // max(6, 15) = 15
|
|
112
|
-
expect(MatrixInfinityNorm(matrix)).toBe(expected);
|
|
113
|
-
});
|
|
114
|
-
test('should handle negative values', () => {
|
|
115
|
-
const matrix = [[-1, 2], [3, -4]];
|
|
116
|
-
const expected = Math.max(1 + 2, 3 + 4); // max(3, 7) = 7
|
|
117
|
-
expect(MatrixInfinityNorm(matrix)).toBe(expected);
|
|
118
|
-
});
|
|
119
|
-
test('should compute infinity norm for identity matrix', () => {
|
|
120
|
-
const matrix = MatrixIdentity(3);
|
|
121
|
-
expect(MatrixInfinityNorm(matrix)).toBe(1); // each row sums to 1
|
|
122
|
-
});
|
|
123
|
-
test('should compute infinity norm for zero matrix', () => {
|
|
124
|
-
const matrix = [[0, 0], [0, 0]];
|
|
125
|
-
expect(MatrixInfinityNorm(matrix)).toBe(0);
|
|
126
|
-
});
|
|
127
|
-
test('should handle single element matrix', () => {
|
|
128
|
-
const matrix = [[7]];
|
|
129
|
-
expect(MatrixInfinityNorm(matrix)).toBe(7);
|
|
130
|
-
});
|
|
131
|
-
test('should throw for empty matrix', () => {
|
|
132
|
-
const matrix = [];
|
|
133
|
-
expect(() => MatrixInfinityNorm(matrix)).toThrow('Matrix must have at least one row and one column');
|
|
134
|
-
});
|
|
135
|
-
test('should handle single row matrix', () => {
|
|
136
|
-
const matrix = [[1, 2, 3]];
|
|
137
|
-
expect(MatrixInfinityNorm(matrix)).toBe(6); // sum of absolute values: 1 + 2 + 3 = 6
|
|
138
|
-
});
|
|
139
|
-
});
|
|
140
|
-
describe('MatrixNuclearNorm', () => {
|
|
141
|
-
test('should compute nuclear norm for diagonal matrix', () => {
|
|
142
|
-
const matrix = [[3, 0], [0, 4]];
|
|
143
|
-
expect(MatrixNuclearNorm(matrix)).toBe(7); // sum of singular values: 3 + 4 = 7
|
|
144
|
-
});
|
|
145
|
-
test('should compute nuclear norm for identity matrix', () => {
|
|
146
|
-
const matrix = MatrixIdentity(3);
|
|
147
|
-
expect(MatrixNuclearNorm(matrix)).toBe(3); // sum of all singular values (all are 1)
|
|
148
|
-
});
|
|
149
|
-
test('should compute nuclear norm for zero matrix', () => {
|
|
150
|
-
const matrix = [[0, 0], [0, 0]];
|
|
151
|
-
expect(MatrixNuclearNorm(matrix)).toBe(0);
|
|
152
|
-
});
|
|
153
|
-
test('should handle single element matrix', () => {
|
|
154
|
-
const matrix = [[5]];
|
|
155
|
-
expect(MatrixNuclearNorm(matrix)).toBe(5);
|
|
156
|
-
});
|
|
157
|
-
test('should handle rectangular matrix', () => {
|
|
158
|
-
const matrix = [[1, 0], [0, 0], [0, 0]];
|
|
159
|
-
expect(MatrixNuclearNorm(matrix)).toBe(1); // only one non-zero singular value
|
|
160
|
-
});
|
|
161
|
-
test('should throw for empty matrix', () => {
|
|
162
|
-
const matrix = [];
|
|
163
|
-
expect(() => MatrixNuclearNorm(matrix)).toThrow('Matrix must have at least one row and one column');
|
|
164
|
-
});
|
|
165
|
-
test('should throw error for invalid matrix', () => {
|
|
166
|
-
expect(() => MatrixNuclearNorm('invalid')).toThrow();
|
|
167
|
-
});
|
|
168
|
-
});
|
|
169
|
-
describe('MatrixMaxNorm', () => {
|
|
170
|
-
test('should compute max norm for square matrix', () => {
|
|
171
|
-
const matrix = [[1, -5], [3, 2]];
|
|
172
|
-
expect(MatrixMaxNorm(matrix)).toBe(5); // max absolute value
|
|
173
|
-
});
|
|
174
|
-
test('should compute max norm for rectangular matrix', () => {
|
|
175
|
-
const matrix = [[1, 2, -8], [4, 5, 6]];
|
|
176
|
-
expect(MatrixMaxNorm(matrix)).toBe(8); // max absolute value
|
|
177
|
-
});
|
|
178
|
-
test('should handle all positive values', () => {
|
|
179
|
-
const matrix = [[1, 2], [3, 4]];
|
|
180
|
-
expect(MatrixMaxNorm(matrix)).toBe(4);
|
|
181
|
-
});
|
|
182
|
-
test('should handle all negative values', () => {
|
|
183
|
-
const matrix = [[-1, -2], [-3, -4]];
|
|
184
|
-
expect(MatrixMaxNorm(matrix)).toBe(4);
|
|
185
|
-
});
|
|
186
|
-
test('should compute max norm for identity matrix', () => {
|
|
187
|
-
const matrix = MatrixIdentity(3);
|
|
188
|
-
expect(MatrixMaxNorm(matrix)).toBe(1);
|
|
189
|
-
});
|
|
190
|
-
test('should compute max norm for zero matrix', () => {
|
|
191
|
-
const matrix = [[0, 0], [0, 0]];
|
|
192
|
-
expect(MatrixMaxNorm(matrix)).toBe(0);
|
|
193
|
-
});
|
|
194
|
-
test('should handle single element matrix', () => {
|
|
195
|
-
const matrix = [[-7]];
|
|
196
|
-
expect(MatrixMaxNorm(matrix)).toBe(7);
|
|
197
|
-
});
|
|
198
|
-
test('should throw for empty matrix', () => {
|
|
199
|
-
const matrix = [];
|
|
200
|
-
expect(() => MatrixMaxNorm(matrix)).toThrow('Matrix must have at least one row and one column');
|
|
201
|
-
});
|
|
202
|
-
test('should handle fractional values', () => {
|
|
203
|
-
const matrix = [[0.1, -0.5], [0.3, 0.2]];
|
|
204
|
-
expect(MatrixMaxNorm(matrix)).toBe(0.5);
|
|
205
|
-
});
|
|
206
|
-
});
|
|
207
|
-
describe('MatrixPNorm', () => {
|
|
208
|
-
test('should compute 1-norm (p=1)', () => {
|
|
209
|
-
const matrix = [[1, 2], [3, 4]];
|
|
210
|
-
const expected = 1 + 2 + 3 + 4; // sum of absolute values = 10
|
|
211
|
-
expect(MatrixPNorm(matrix, 1)).toBe(expected);
|
|
212
|
-
});
|
|
213
|
-
test('should compute 2-norm (p=2, Frobenius norm)', () => {
|
|
214
|
-
const matrix = [[3, 4], [0, 0]];
|
|
215
|
-
const expected = Math.sqrt(9 + 16); // sqrt(25) = 5
|
|
216
|
-
expect(MatrixPNorm(matrix, 2)).toBe(expected);
|
|
217
|
-
});
|
|
218
|
-
test('should compute infinity norm (p=Infinity)', () => {
|
|
219
|
-
const matrix = [[1, -5], [3, 2]];
|
|
220
|
-
expect(MatrixPNorm(matrix, Infinity)).toBe(5); // max absolute value
|
|
221
|
-
});
|
|
222
|
-
test('should compute 3-norm', () => {
|
|
223
|
-
const matrix = [[1, 2], [3, 4]];
|
|
224
|
-
const expected = Math.pow(1 + 8 + 27 + 64, 1 / 3); // (1³ + 2³ + 3³ + 4³)^(1/3)
|
|
225
|
-
expect(MatrixPNorm(matrix, 3)).toBeCloseTo(expected, 10);
|
|
226
|
-
});
|
|
227
|
-
test('should handle negative values with even p', () => {
|
|
228
|
-
const matrix = [[-1, 2], [-3, 4]];
|
|
229
|
-
const expected = Math.sqrt(1 + 4 + 9 + 16); // sqrt(30)
|
|
230
|
-
expect(MatrixPNorm(matrix, 2)).toBeCloseTo(expected, 10);
|
|
231
|
-
});
|
|
232
|
-
test('should handle negative values with odd p', () => {
|
|
233
|
-
const matrix = [[-1, 2], [-3, 4]];
|
|
234
|
-
const expected = Math.pow(1 + 8 + 27 + 64, 1 / 3); // (|-1|³ + |2|³ + |-3|³ + |4|³)^(1/3)
|
|
235
|
-
expect(MatrixPNorm(matrix, 3)).toBeCloseTo(expected, 10);
|
|
236
|
-
});
|
|
237
|
-
test('should compute p-norm for identity matrix', () => {
|
|
238
|
-
const matrix = MatrixIdentity(2);
|
|
239
|
-
const expected = Math.pow(2, 1 / 2); // (1² + 1²)^(1/2) = sqrt(2)
|
|
240
|
-
expect(MatrixPNorm(matrix, 2)).toBeCloseTo(expected, 10);
|
|
241
|
-
});
|
|
242
|
-
test('should compute p-norm for zero matrix', () => {
|
|
243
|
-
const matrix = [[0, 0], [0, 0]];
|
|
244
|
-
expect(MatrixPNorm(matrix, 2)).toBe(0);
|
|
245
|
-
expect(MatrixPNorm(matrix, 5)).toBe(0);
|
|
246
|
-
});
|
|
247
|
-
test('should handle single element matrix', () => {
|
|
248
|
-
const matrix = [[5]];
|
|
249
|
-
expect(MatrixPNorm(matrix, 2)).toBeCloseTo(5, 10);
|
|
250
|
-
expect(MatrixPNorm(matrix, 3)).toBeCloseTo(5, 10);
|
|
251
|
-
});
|
|
252
|
-
test('should throw for empty matrix', () => {
|
|
253
|
-
const matrix = [];
|
|
254
|
-
expect(() => MatrixPNorm(matrix, 2)).toThrow('Matrix must have at least one row and one column');
|
|
255
|
-
});
|
|
256
|
-
test('should throw error for p < 1', () => {
|
|
257
|
-
const matrix = [[1, 2]];
|
|
258
|
-
expect(() => MatrixPNorm(matrix, 0.5)).toThrow('p-norm parameter must be >= 1');
|
|
259
|
-
expect(() => MatrixPNorm(matrix, 0)).toThrow('p-norm parameter must be >= 1');
|
|
260
|
-
expect(() => MatrixPNorm(matrix, -1)).toThrow('p-norm parameter must be >= 1');
|
|
261
|
-
});
|
|
262
|
-
test('should handle edge case p = 1', () => {
|
|
263
|
-
const matrix = [[1, 2], [3, 4]];
|
|
264
|
-
expect(MatrixPNorm(matrix, 1)).toBe(10); // sum of absolute values
|
|
265
|
-
});
|
|
266
|
-
test('should handle large p values', () => {
|
|
267
|
-
const matrix = [[1, 5], [2, 3]];
|
|
268
|
-
const result = MatrixPNorm(matrix, 100);
|
|
269
|
-
expect(result).toBeCloseTo(5, 10); // approaches max norm as p increases
|
|
270
|
-
});
|
|
271
|
-
test('should be consistent with other norm functions', () => {
|
|
272
|
-
const matrix = [[1, 2], [3, 4]];
|
|
273
|
-
// p=1 should match sum of absolute values
|
|
274
|
-
expect(MatrixPNorm(matrix, 1)).toBe(10);
|
|
275
|
-
// p=2 should match Frobenius norm
|
|
276
|
-
expect(MatrixPNorm(matrix, 2)).toBeCloseTo(MatrixFrobeniusNorm(matrix), 10);
|
|
277
|
-
// p=Infinity should match max norm
|
|
278
|
-
expect(MatrixPNorm(matrix, Infinity)).toBe(MatrixMaxNorm(matrix));
|
|
279
|
-
});
|
|
280
|
-
});
|
|
281
|
-
describe('Error handling', () => {
|
|
282
|
-
test('should throw error for invalid matrices across all norm functions', () => {
|
|
283
|
-
const invalidInputs = [
|
|
284
|
-
'invalid',
|
|
285
|
-
123,
|
|
286
|
-
null,
|
|
287
|
-
undefined,
|
|
288
|
-
[['not', 'numbers']],
|
|
289
|
-
[[1, 2], [3]], // inconsistent row lengths
|
|
290
|
-
];
|
|
291
|
-
const normFunctions = [
|
|
292
|
-
MatrixFrobeniusNorm,
|
|
293
|
-
MatrixSpectralNorm,
|
|
294
|
-
Matrix1Norm,
|
|
295
|
-
MatrixInfinityNorm,
|
|
296
|
-
MatrixNuclearNorm,
|
|
297
|
-
MatrixMaxNorm,
|
|
298
|
-
];
|
|
299
|
-
invalidInputs.forEach((input) => {
|
|
300
|
-
normFunctions.forEach((func) => {
|
|
301
|
-
expect(() => func(input)).toThrow();
|
|
302
|
-
});
|
|
303
|
-
expect(() => MatrixPNorm(input, 2)).toThrow();
|
|
304
|
-
});
|
|
305
|
-
});
|
|
306
|
-
});
|
|
307
|
-
describe('Performance and edge cases', () => {
|
|
308
|
-
test('should handle large matrices efficiently', () => {
|
|
309
|
-
// Create a 10x10 matrix with known values
|
|
310
|
-
const size = 10;
|
|
311
|
-
const matrix = [];
|
|
312
|
-
for (let i = 0; i < size; i++) {
|
|
313
|
-
const row = [];
|
|
314
|
-
for (let j = 0; j < size; j++) {
|
|
315
|
-
row.push(i + j + 1);
|
|
316
|
-
}
|
|
317
|
-
matrix.push(row);
|
|
318
|
-
}
|
|
319
|
-
// These should complete without timeout
|
|
320
|
-
expect(typeof MatrixFrobeniusNorm(matrix)).toBe('number');
|
|
321
|
-
expect(typeof Matrix1Norm(matrix)).toBe('number');
|
|
322
|
-
expect(typeof MatrixInfinityNorm(matrix)).toBe('number');
|
|
323
|
-
expect(typeof MatrixMaxNorm(matrix)).toBe('number');
|
|
324
|
-
expect(typeof MatrixPNorm(matrix, 2)).toBe('number');
|
|
325
|
-
});
|
|
326
|
-
test('should maintain precision for small values', () => {
|
|
327
|
-
const matrix = [[1e-10, 2e-10], [3e-10, 4e-10]];
|
|
328
|
-
expect(MatrixFrobeniusNorm(matrix)).toBeGreaterThan(0);
|
|
329
|
-
expect(MatrixMaxNorm(matrix)).toBe(4e-10);
|
|
330
|
-
expect(Matrix1Norm(matrix)).toBe(6e-10);
|
|
331
|
-
expect(MatrixInfinityNorm(matrix)).toBeCloseTo(7e-10);
|
|
332
|
-
});
|
|
333
|
-
});
|
|
334
|
-
});
|
|
335
|
-
//# sourceMappingURL=normalization.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"normalization.spec.js","sourceRoot":"","sources":["../../src/matrices/normalization.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,WAAW,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC7J,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAG3C,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACtC,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACpC,IAAI,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACzD,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB;QAClE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,mDAAmD,EAAE,GAAG,EAAE;YAC9D,MAAM,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0BAA0B;QACnF,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,+CAA+C,EAAE,GAAG,EAAE;YAC1D,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,sDAAsD,EAAE,GAAG,EAAE;YACjE,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,WAAW;YACjE,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAChD,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrB,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;YAC1C,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,WAAW;YACxD,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;YAC1C,MAAM,MAAM,GAAY,EAAE,CAAC;YAC3B,MAAM,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,kDAAkD,CAAC,CAAC;QACvG,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAClD,MAAM,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC,SAAgB,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QAC/D,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QACnC,IAAI,CAAC,kDAAkD,EAAE,GAAG,EAAE;YAC7D,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,yBAAyB;QACtE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,kDAAkD,EAAE,GAAG,EAAE;YAC7D,MAAM,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,4BAA4B;QACzE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACzD,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAChD,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrB,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC7C,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACxC,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;YAC1C,MAAM,MAAM,GAAY,EAAE,CAAC;YAC3B,MAAM,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,kDAAkD,CAAC,CAAC;QACtG,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAClD,MAAM,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,SAAgB,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QAC9D,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC5B,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACpD,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,wDAAwD;QAC9F,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACzD,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,mBAAmB;YACnE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;YAC1C,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB;YACzD,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACtD,MAAM,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,wBAAwB;QAC9D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAClD,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAChD,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrB,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;YAC1C,MAAM,MAAM,GAAY,EAAE,CAAC;YAC3B,MAAM,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,kDAAkD,CAAC,CAAC;QAC/F,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC/C,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,wCAAwC;QAC9E,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QACnC,IAAI,CAAC,gDAAgD,EAAE,GAAG,EAAE;YAC3D,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,qDAAqD;QAClG,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAChE,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB;YACnE,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;YAC1C,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB;YACzD,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,kDAAkD,EAAE,GAAG,EAAE;YAC7D,MAAM,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB;QAClE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACzD,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAChD,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrB,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;YAC1C,MAAM,MAAM,GAAY,EAAE,CAAC;YAC3B,MAAM,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,kDAAkD,CAAC,CAAC;QACtG,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,iCAAiC,EAAE,GAAG,EAAE;YAC5C,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC3B,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,wCAAwC;QACrF,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAClC,IAAI,CAAC,iDAAiD,EAAE,GAAG,EAAE;YAC5D,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,oCAAoC;QAChF,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,iDAAiD,EAAE,GAAG,EAAE;YAC5D,MAAM,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,yCAAyC;QACrF,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACxD,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAChD,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrB,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC7C,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACxC,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,mCAAmC;QAC/E,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;YAC1C,MAAM,MAAM,GAAY,EAAE,CAAC;YAC3B,MAAM,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,kDAAkD,CAAC,CAAC;QACrG,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAClD,MAAM,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,SAAgB,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QAC7D,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC9B,IAAI,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACtD,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB;QAC7D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gDAAgD,EAAE,GAAG,EAAE;YAC3D,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB;QAC7D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC9C,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC9C,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACpC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACxD,MAAM,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACpD,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAChD,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACtB,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;YAC1C,MAAM,MAAM,GAAY,EAAE,CAAC;YAC3B,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,kDAAkD,CAAC,CAAC;QACjG,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,iCAAiC,EAAE,GAAG,EAAE;YAC5C,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YACzC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC5B,IAAI,CAAC,6BAA6B,EAAE,GAAG,EAAE;YACxC,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,8BAA8B;YAC9D,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACxD,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,eAAe;YACnD,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACtD,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB;QACrE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,uBAAuB,EAAE,GAAG,EAAE;YAClC,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,4BAA4B;YAC/E,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACtD,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,WAAW;YACvD,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,0CAA0C,EAAE,GAAG,EAAE;YACrD,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,sCAAsC;YACzF,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACtD,MAAM,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,4BAA4B;YACjE,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAClD,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAChD,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrB,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAClD,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;YAC1C,MAAM,MAAM,GAAY,EAAE,CAAC;YAC3B,MAAM,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,kDAAkD,CAAC,CAAC;QAClG,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACzC,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACxB,MAAM,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;YAChF,MAAM,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;YAC9E,MAAM,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;QAChF,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;YAC1C,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,yBAAyB;QACnE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACzC,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACxC,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,qCAAqC;QACzE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gDAAgD,EAAE,GAAG,EAAE;YAC3D,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAChC,0CAA0C;YAC1C,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAExC,kCAAkC;YAClC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;YAE5E,mCAAmC;YACnC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC/B,IAAI,CAAC,mEAAmE,EAAE,GAAG,EAAE;YAC9E,MAAM,aAAa,GAAG;gBACrB,SAAS;gBACT,GAAG;gBACH,IAAI;gBACJ,SAAS;gBACT,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;gBACpB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,2BAA2B;aAC1C,CAAC;YAEF,MAAM,aAAa,GAAG;gBACrB,mBAAmB;gBACnB,kBAAkB;gBAClB,WAAW;gBACX,kBAAkB;gBAClB,iBAAiB;gBACjB,aAAa;aACb,CAAC;YACF,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC/B,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBAC9B,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAY,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;gBAC5C,CAAC,CAAC,CAAC;gBACH,MAAM,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,KAAY,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;YACtD,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;QAC3C,IAAI,CAAC,0CAA0C,EAAE,GAAG,EAAE;YACrD,0CAA0C;YAC1C,MAAM,IAAI,GAAG,EAAE,CAAC;YAChB,MAAM,MAAM,GAAY,EAAE,CAAC;YAE3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/B,MAAM,GAAG,GAAa,EAAE,CAAC;gBAEzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC/B,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBACrB,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClB,CAAC;YAED,wCAAwC;YACxC,MAAM,CAAC,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC1D,MAAM,CAAC,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAClD,MAAM,CAAC,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzD,MAAM,CAAC,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACpD,MAAM,CAAC,OAAO,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACvD,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;YAChD,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YACvD,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxC,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transformations.spec.d.ts","sourceRoot":"","sources":["../../src/matrices/transformations.spec.ts"],"names":[],"mappings":""}
|