@pawells/math-extended 1.1.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/build/angles.d.ts +28 -18
  2. package/build/angles.d.ts.map +1 -1
  3. package/build/angles.js +28 -18
  4. package/build/angles.js.map +1 -1
  5. package/build/clamp.d.ts +5 -3
  6. package/build/clamp.d.ts.map +1 -1
  7. package/build/clamp.js +5 -3
  8. package/build/clamp.js.map +1 -1
  9. package/build/interpolation.d.ts +158 -96
  10. package/build/interpolation.d.ts.map +1 -1
  11. package/build/interpolation.js +158 -96
  12. package/build/interpolation.js.map +1 -1
  13. package/build/matrices/_exports.d.ts +13 -0
  14. package/build/matrices/_exports.d.ts.map +1 -0
  15. package/build/matrices/_exports.js +13 -0
  16. package/build/matrices/_exports.js.map +1 -0
  17. package/build/matrices/arithmetic.d.ts +170 -181
  18. package/build/matrices/arithmetic.d.ts.map +1 -1
  19. package/build/matrices/arithmetic.js +192 -202
  20. package/build/matrices/arithmetic.js.map +1 -1
  21. package/build/matrices/asserts.d.ts +240 -109
  22. package/build/matrices/asserts.d.ts.map +1 -1
  23. package/build/matrices/asserts.js +287 -87
  24. package/build/matrices/asserts.js.map +1 -1
  25. package/build/matrices/core.d.ts +29 -29
  26. package/build/matrices/core.js +1 -1
  27. package/build/matrices/decompositions.d.ts +102 -104
  28. package/build/matrices/decompositions.d.ts.map +1 -1
  29. package/build/matrices/decompositions.js +87 -89
  30. package/build/matrices/decompositions.js.map +1 -1
  31. package/build/matrices/index.d.ts +3 -2
  32. package/build/matrices/index.d.ts.map +1 -1
  33. package/build/matrices/index.js +5 -2
  34. package/build/matrices/index.js.map +1 -1
  35. package/build/matrices/linear-algebra.d.ts +12 -12
  36. package/build/matrices/linear-algebra.js +4 -4
  37. package/build/matrices/normalization.d.ts +8 -8
  38. package/build/matrices/transformations.d.ts +184 -165
  39. package/build/matrices/transformations.d.ts.map +1 -1
  40. package/build/matrices/transformations.js +99 -80
  41. package/build/matrices/transformations.js.map +1 -1
  42. package/build/matrices/types.d.ts +12 -12
  43. package/build/matrices/types.d.ts.map +1 -1
  44. package/build/quaternions/_exports.d.ts +11 -0
  45. package/build/quaternions/_exports.d.ts.map +1 -0
  46. package/build/quaternions/_exports.js +11 -0
  47. package/build/quaternions/_exports.js.map +1 -0
  48. package/build/quaternions/asserts.d.ts +115 -7
  49. package/build/quaternions/asserts.d.ts.map +1 -1
  50. package/build/quaternions/asserts.js +162 -8
  51. package/build/quaternions/asserts.js.map +1 -1
  52. package/build/quaternions/conversions.d.ts +31 -21
  53. package/build/quaternions/conversions.d.ts.map +1 -1
  54. package/build/quaternions/conversions.js +28 -18
  55. package/build/quaternions/conversions.js.map +1 -1
  56. package/build/quaternions/core.d.ts +67 -39
  57. package/build/quaternions/core.d.ts.map +1 -1
  58. package/build/quaternions/core.js +67 -39
  59. package/build/quaternions/core.js.map +1 -1
  60. package/build/quaternions/index.d.ts +3 -2
  61. package/build/quaternions/index.d.ts.map +1 -1
  62. package/build/quaternions/index.js +5 -2
  63. package/build/quaternions/index.js.map +1 -1
  64. package/build/quaternions/interpolation.d.ts +15 -9
  65. package/build/quaternions/interpolation.d.ts.map +1 -1
  66. package/build/quaternions/interpolation.js +15 -9
  67. package/build/quaternions/interpolation.js.map +1 -1
  68. package/build/quaternions/predefined.d.ts +9 -3
  69. package/build/quaternions/predefined.d.ts.map +1 -1
  70. package/build/quaternions/predefined.js +9 -3
  71. package/build/quaternions/predefined.js.map +1 -1
  72. package/build/quaternions/types.d.ts +3 -3
  73. package/build/vectors/_exports.d.ts +10 -0
  74. package/build/vectors/_exports.d.ts.map +1 -0
  75. package/build/vectors/_exports.js +10 -0
  76. package/build/vectors/_exports.js.map +1 -0
  77. package/build/vectors/asserts.d.ts +153 -49
  78. package/build/vectors/asserts.d.ts.map +1 -1
  79. package/build/vectors/asserts.js +202 -52
  80. package/build/vectors/asserts.js.map +1 -1
  81. package/build/vectors/core.d.ts +216 -137
  82. package/build/vectors/core.d.ts.map +1 -1
  83. package/build/vectors/core.js +212 -149
  84. package/build/vectors/core.js.map +1 -1
  85. package/build/vectors/index.d.ts +1 -0
  86. package/build/vectors/index.d.ts.map +1 -1
  87. package/build/vectors/index.js +3 -0
  88. package/build/vectors/index.js.map +1 -1
  89. package/build/vectors/interpolation.d.ts +39 -27
  90. package/build/vectors/interpolation.d.ts.map +1 -1
  91. package/build/vectors/interpolation.js +39 -27
  92. package/build/vectors/interpolation.js.map +1 -1
  93. package/build/vectors/predefined.d.ts +48 -24
  94. package/build/vectors/predefined.d.ts.map +1 -1
  95. package/build/vectors/predefined.js +38 -18
  96. package/build/vectors/predefined.js.map +1 -1
  97. package/package.json +3 -3
@@ -1,5 +1,5 @@
1
1
  import { IAssertException } from '@pawells/typescript-common';
2
- import { IMatrix, IMatrix1, IMatrix2, IMatrix3, IMatrix4 } from './types.js';
2
+ import { TMatrix, TMatrix1, TMatrix2, TMatrix3, TMatrix4 } from './types.js';
3
3
  /**
4
4
  * Configuration options for matrix validation constraints.
5
5
  *
@@ -9,19 +9,18 @@ import { IMatrix, IMatrix1, IMatrix2, IMatrix3, IMatrix4 } from './types.js';
9
9
  *
10
10
  * @interface IAssertMatrixArgs
11
11
  * @example
12
- * ```typescript
13
- * // Validate a square matrix of any size
14
- * const squareArgs: IAssertMatrixArgs = { square: true };
15
- *
16
- * // Validate minimum dimensions
17
- * const minSizeArgs: IAssertMatrixArgs = { minRows: 2, minColumns: 3 };
18
- *
19
- * // Validate exact size using tuple
20
- * const exactSizeArgs: IAssertMatrixArgs = { size: [4, 5] };
21
- *
22
- * // Validate square matrix with exact size
23
- * const squareExactArgs: IAssertMatrixArgs = { square: true, size: 3 };
24
- * ```
12
+ * ```typescript
13
+ * ```typescript
14
+ * // Validate a square matrix of any size
15
+ * const squareArgs: IAssertMatrixArgs = { square: true };
16
+ * // Validate minimum dimensions
17
+ * const minSizeArgs: IAssertMatrixArgs = { minRows: 2, minColumns: 3 };
18
+ * // Validate exact size using tuple
19
+ * const exactSizeArgs: IAssertMatrixArgs = { size: [4, 5] };
20
+ * // Validate square matrix with exact size
21
+ * const squareExactArgs: IAssertMatrixArgs = { square: true, size: 3 };
22
+ * ```
23
+ * ```
25
24
  */
26
25
  interface IAssertMatrixArgs {
27
26
  /** Minimum number of rows required in the matrix */
@@ -55,15 +54,16 @@ interface IAssertMatrixArgs {
55
54
  *
56
55
  * @interface IAssertMatricesArgs
57
56
  * @example
58
- * ```typescript
59
- * // Standard compatibility (same dimensions for addition/subtraction)
60
- * const standardArgs: IAssertMatricesArgs = {};
61
- *
62
- * // Allow transposed compatibility for multiplication
63
- * const transposedArgs: IAssertMatricesArgs = { transposition: true };
64
- * ```
57
+ * ```typescript
58
+ * ```typescript
59
+ * // Standard compatibility (same dimensions for addition/subtraction)
60
+ * const standardArgs: IAssertMatricesArgs = {};
61
+ * // Allow transposed compatibility for multiplication
62
+ * const transposedArgs: IAssertMatricesArgs = { transposition: true };
63
+ * ```
64
+ * ```
65
65
  */
66
- interface IAssertMatricesArgs {
66
+ export interface IAssertMatricesArgs {
67
67
  /**
68
68
  * Whether to allow transposed dimensions between matrices.
69
69
  * When true, matrices A (m×n) and B (n×m) are considered compatible.
@@ -98,26 +98,33 @@ interface IAssertMatrixException extends IAssertException {
98
98
  * @class MatrixError
99
99
  * @extends Error
100
100
  * @example
101
- * ```typescript
102
- * try {
103
- * AssertMatrix(invalidMatrix);
104
- * } catch (error) {
105
- * if (error instanceof MatrixError) {
106
- * console.log('Matrix validation failed:', error.message);
107
- * }
108
- * }
109
- * ```
101
+ * ```typescript
102
+ * ```typescript
103
+ * try {
104
+ * AssertMatrix(invalidMatrix);
105
+ * } catch (error) {
106
+ * if (error instanceof MatrixError) {
107
+ * console.log('Matrix validation failed:', error.message);
108
+ * }
109
+ * }
110
+ * ```
111
+ * ```
110
112
  */
111
113
  export declare class MatrixError extends Error {
114
+ readonly code: string;
112
115
  /**
113
116
  * Creates a new MatrixError instance.
114
117
  *
115
- * @param message - Optional error message describing the validation failure
118
+ * @param message - Error message describing the validation failure
119
+ * @param options - Optional error context
120
+ * @param options.cause - Original error that caused this error
116
121
  */
117
- constructor(message?: string);
122
+ constructor(message: string, options?: {
123
+ cause?: unknown;
124
+ });
118
125
  }
119
126
  /**
120
- * Validates that an unknown value is a valid matrix conforming to the IMatrix interface.
127
+ * Validates that an unknown value is a valid matrix conforming to the TMatrix interface.
121
128
  *
122
129
  * This function performs comprehensive validation of matrix structure including:
123
130
  * - Type checking to ensure the value is a proper matrix
@@ -131,18 +138,18 @@ export declare class MatrixError extends Error {
131
138
  * @throws {IAssertException} When the matrix doesn't meet the specified criteria
132
139
  *
133
140
  * @example
134
- * ```typescript
135
- * // Validate a 3x3 square matrix
136
- * AssertMatrix(someValue, { square: true, size: 3 });
137
- *
138
- * // Validate minimum dimensions
139
- * AssertMatrix(someValue, { minRows: 2, minColumns: 3 });
140
- *
141
- * // Validate exact dimensions
142
- * AssertMatrix(someValue, { rows: 4, columns: 5 });
143
- * ```
141
+ * ```typescript
142
+ * ```typescript
143
+ * // Validate a 3x3 square matrix
144
+ * AssertMatrix(someValue, { square: true, size: 3 });
145
+ * // Validate minimum dimensions
146
+ * AssertMatrix(someValue, { minRows: 2, minColumns: 3 });
147
+ * // Validate exact dimensions
148
+ * AssertMatrix(someValue, { rows: 4, columns: 5 });
149
+ * ```
150
+ * ```
144
151
  */
145
- export declare function AssertMatrix(matrix: unknown, args?: IAssertMatrixArgs, exception?: IAssertMatrixException): asserts matrix is IMatrix;
152
+ export declare function AssertMatrix(matrix: unknown, args?: IAssertMatrixArgs, exception?: IAssertMatrixException): asserts matrix is TMatrix;
146
153
  /**
147
154
  * Validates that an unknown value is a valid matrix row (array of numbers).
148
155
  *
@@ -154,16 +161,16 @@ export declare function AssertMatrix(matrix: unknown, args?: IAssertMatrixArgs,
154
161
  * @throws {MatrixError} When the row is not a valid array of finite numbers
155
162
  *
156
163
  * @example
157
- * ```typescript
158
- * // Validate a matrix row
159
- * AssertMatrixRow([1, 2, 3, 4]);
160
- *
161
- * // Validate with row index in exception for better error messages
162
- * AssertMatrixRow([1, 2, 3, 4], { rowIndex: 0 });
163
- *
164
- * // This would throw MatrixError
165
- * AssertMatrixRow([1, '2', 3]); // Contains non-numeric value
166
- * ```
164
+ * ```typescript
165
+ * ```typescript
166
+ * // Validate a matrix row
167
+ * AssertMatrixRow([1, 2, 3, 4]);
168
+ * // Validate with row index in exception for better error messages
169
+ * AssertMatrixRow([1, 2, 3, 4], { rowIndex: 0 });
170
+ * // This would throw MatrixError
171
+ * AssertMatrixRow([1, '2', 3]); // Contains non-numeric value
172
+ * ```
173
+ * ```
167
174
  */
168
175
  export declare function AssertMatrixRow(row: unknown, exception?: IAssertMatrixException): asserts row is number[];
169
176
  /**
@@ -177,18 +184,18 @@ export declare function AssertMatrixRow(row: unknown, exception?: IAssertMatrixE
177
184
  * @throws {MatrixError} When the value is not a finite number
178
185
  *
179
186
  * @example
180
- * ```typescript
181
- * // Validate a matrix element
182
- * AssertMatrixValue(42);
183
- *
184
- * // Validate with position information for better error messages
185
- * AssertMatrixValue(3.14, { rowIndex: 0, columnIndex: 1 });
186
- *
187
- * // These would throw MatrixError
188
- * AssertMatrixValue(NaN); // Not a number
189
- * AssertMatrixValue(Infinity); // Not a finite number
190
- * AssertMatrixValue('5'); // Not a number type
191
- * ```
187
+ * ```typescript
188
+ * ```typescript
189
+ * // Validate a matrix element
190
+ * AssertMatrixValue(42);
191
+ * // Validate with position information for better error messages
192
+ * AssertMatrixValue(3.14, { rowIndex: 0, columnIndex: 1 });
193
+ * // These would throw MatrixError
194
+ * AssertMatrixValue(NaN); // Not a number
195
+ * AssertMatrixValue(Infinity); // Not a finite number
196
+ * AssertMatrixValue('5'); // Not a number type
197
+ * ```
198
+ * ```
192
199
  */
193
200
  export declare function AssertMatrixValue(value: unknown, exception?: IAssertMatrixException): asserts value is number;
194
201
  /**
@@ -205,13 +212,14 @@ export declare function AssertMatrixValue(value: unknown, exception?: IAssertMat
205
212
  * @throws {IAssertException} When the matrices are not compatible
206
213
  *
207
214
  * @example
208
- * ```typescript
209
- * // Validate matrices for multiplication (A columns must equal B rows)
210
- * AssertMatrices(matrixA, matrixB);
211
- *
212
- * // Allow transposed compatibility
213
- * AssertMatrices(matrixA, matrixB, { transposition: true });
214
- * ```
215
+ * ```typescript
216
+ * ```typescript
217
+ * // Validate matrices for multiplication (A columns must equal B rows)
218
+ * AssertMatrices(matrixA, matrixB);
219
+ * // Allow transposed compatibility
220
+ * AssertMatrices(matrixA, matrixB, { transposition: true });
221
+ * ```
222
+ * ```
215
223
  */
216
224
  export declare function AssertMatrices(a: unknown, b: unknown, args?: IAssertMatricesArgs, exception?: IAssertMatrixException): void;
217
225
  /**
@@ -225,15 +233,16 @@ export declare function AssertMatrices(a: unknown, b: unknown, args?: IAssertMat
225
233
  * @throws {IAssertException} When the matrix is not a valid 1x1 matrix
226
234
  *
227
235
  * @example
228
- * ```typescript
229
- * // Validate a 1x1 matrix
230
- * AssertMatrix1([[5]]);
231
- *
232
- * // This would throw an exception
233
- * AssertMatrix1([[1, 2]]); // Too many columns
234
- * ```
236
+ * ```typescript
237
+ * ```typescript
238
+ * // Validate a 1x1 matrix
239
+ * AssertMatrix1([[5]]);
240
+ * // This would throw an exception
241
+ * AssertMatrix1([[1, 2]]); // Too many columns
242
+ * ```
243
+ * ```
235
244
  */
236
- export declare function AssertMatrix1(matrix: unknown, exception?: IAssertMatrixException): asserts matrix is IMatrix1;
245
+ export declare function AssertMatrix1(matrix: unknown, exception?: IAssertMatrixException): asserts matrix is TMatrix1;
237
246
  /**
238
247
  * Validates that an unknown value is a valid 2x2 matrix.
239
248
  *
@@ -245,15 +254,16 @@ export declare function AssertMatrix1(matrix: unknown, exception?: IAssertMatrix
245
254
  * @throws {IAssertException} When the matrix is not a valid 2x2 matrix
246
255
  *
247
256
  * @example
248
- * ```typescript
249
- * // Validate a 2x2 matrix
250
- * AssertMatrix2([[1, 2], [3, 4]]);
251
- *
252
- * // This would throw an exception
253
- * AssertMatrix2([[1, 2, 3], [4, 5, 6]]); // Too many columns
254
- * ```
257
+ * ```typescript
258
+ * ```typescript
259
+ * // Validate a 2x2 matrix
260
+ * AssertMatrix2([[1, 2], [3, 4]]);
261
+ * // This would throw an exception
262
+ * AssertMatrix2([[1, 2, 3], [4, 5, 6]]); // Too many columns
263
+ * ```
264
+ * ```
255
265
  */
256
- export declare function AssertMatrix2(matrix: unknown, exception?: IAssertMatrixException): asserts matrix is IMatrix2;
266
+ export declare function AssertMatrix2(matrix: unknown, exception?: IAssertMatrixException): asserts matrix is TMatrix2;
257
267
  /**
258
268
  * Validates that an unknown value is a valid 3x3 matrix.
259
269
  *
@@ -265,15 +275,16 @@ export declare function AssertMatrix2(matrix: unknown, exception?: IAssertMatrix
265
275
  * @throws {IAssertException} When the matrix is not a valid 3x3 matrix
266
276
  *
267
277
  * @example
268
- * ```typescript
269
- * // Validate a 3x3 matrix
270
- * AssertMatrix3([[1, 2, 3], [4, 5, 6], [7, 8, 9]]);
271
- *
272
- * // This would throw an exception
273
- * AssertMatrix3([[1, 2], [3, 4]]); // Too few rows and columns
274
- * ```
278
+ * ```typescript
279
+ * ```typescript
280
+ * // Validate a 3x3 matrix
281
+ * AssertMatrix3([[1, 2, 3], [4, 5, 6], [7, 8, 9]]);
282
+ * // This would throw an exception
283
+ * AssertMatrix3([[1, 2], [3, 4]]); // Too few rows and columns
284
+ * ```
285
+ * ```
275
286
  */
276
- export declare function AssertMatrix3(matrix: unknown, exception?: IAssertMatrixException): asserts matrix is IMatrix3;
287
+ export declare function AssertMatrix3(matrix: unknown, exception?: IAssertMatrixException): asserts matrix is TMatrix3;
277
288
  /**
278
289
  * Validates that an unknown value is a valid 4x4 matrix.
279
290
  *
@@ -284,20 +295,140 @@ export declare function AssertMatrix3(matrix: unknown, exception?: IAssertMatrix
284
295
  * @param exception - Custom exception details if validation fails
285
296
  * @throws {IAssertException} When the matrix is not a valid 4x4 matrix
286
297
  *
298
+ * @example
299
+ * ```typescript
300
+ * ```typescript
301
+ * // Validate a 4x4 matrix
302
+ * AssertMatrix4([
303
+ * [1, 2, 3, 4],
304
+ * [5, 6, 7, 8],
305
+ * [9, 10, 11, 12],
306
+ * [13, 14, 15, 16]
307
+ * ]);
308
+ * // This would throw an exception
309
+ * AssertMatrix4([[1, 2], [3, 4]]); // Too few rows and columns
310
+ * ```
311
+ * ```
312
+ */
313
+ export declare function AssertMatrix4(matrix: unknown, exception?: IAssertMatrixException): asserts matrix is TMatrix4;
314
+ /**
315
+ * Validates that an unknown value is a valid matrix without throwing an error.
316
+ *
317
+ * This function performs the same validation as AssertMatrix but returns
318
+ * a boolean instead of throwing an exception, making it suitable for
319
+ * conditional logic where exceptions are not desired.
320
+ *
321
+ * @param matrix - The value to validate as a matrix
322
+ * @param args - Validation configuration options
323
+ * @returns true if the matrix is valid, false otherwise
324
+ *
287
325
  * @example
288
326
  * ```typescript
289
- * // Validate a 4x4 matrix
290
- * AssertMatrix4([
291
- * [1, 2, 3, 4],
292
- * [5, 6, 7, 8],
293
- * [9, 10, 11, 12],
294
- * [13, 14, 15, 16]
295
- * ]);
296
- *
297
- * // This would throw an exception
298
- * AssertMatrix4([[1, 2], [3, 4]]); // Too few rows and columns
327
+ * if (ValidateMatrix(someValue, { square: true })) {
328
+ * // Process the valid square matrix
329
+ * }
330
+ * ```
331
+ */
332
+ export declare function ValidateMatrix(matrix: unknown, args?: IAssertMatrixArgs): matrix is TMatrix;
333
+ /**
334
+ * Validates that an unknown value is a valid 1×1 matrix without throwing an error.
335
+ *
336
+ * @param matrix - The value to validate as a 1×1 matrix
337
+ * @returns true if the matrix is valid, false otherwise
338
+ *
339
+ * @example
340
+ * ```typescript
341
+ * if (ValidateMatrix1(someValue)) {
342
+ * // Process the valid 1×1 matrix
343
+ * }
344
+ * ```
345
+ */
346
+ export declare function ValidateMatrix1(matrix: unknown): matrix is TMatrix1;
347
+ /**
348
+ * Validates that an unknown value is a valid 2×2 matrix without throwing an error.
349
+ *
350
+ * @param matrix - The value to validate as a 2×2 matrix
351
+ * @returns true if the matrix is valid, false otherwise
352
+ *
353
+ * @example
354
+ * ```typescript
355
+ * if (ValidateMatrix2(someValue)) {
356
+ * // Process the valid 2×2 matrix
357
+ * }
358
+ * ```
359
+ */
360
+ export declare function ValidateMatrix2(matrix: unknown): matrix is TMatrix2;
361
+ /**
362
+ * Validates that an unknown value is a valid 3×3 matrix without throwing an error.
363
+ *
364
+ * @param matrix - The value to validate as a 3×3 matrix
365
+ * @returns true if the matrix is valid, false otherwise
366
+ *
367
+ * @example
368
+ * ```typescript
369
+ * if (ValidateMatrix3(someValue)) {
370
+ * // Process the valid 3×3 matrix
371
+ * }
372
+ * ```
373
+ */
374
+ export declare function ValidateMatrix3(matrix: unknown): matrix is TMatrix3;
375
+ /**
376
+ * Validates that an unknown value is a valid 4×4 matrix without throwing an error.
377
+ *
378
+ * @param matrix - The value to validate as a 4×4 matrix
379
+ * @returns true if the matrix is valid, false otherwise
380
+ *
381
+ * @example
382
+ * ```typescript
383
+ * if (ValidateMatrix4(someValue)) {
384
+ * // Process the valid 4×4 matrix
385
+ * }
386
+ * ```
387
+ */
388
+ export declare function ValidateMatrix4(matrix: unknown): matrix is TMatrix4;
389
+ /**
390
+ * Validates that an unknown value is a valid matrix row without throwing an error.
391
+ *
392
+ * @param row - The value to validate as a matrix row
393
+ * @returns true if the row is valid, false otherwise
394
+ *
395
+ * @example
396
+ * ```typescript
397
+ * if (ValidateMatrixRow([1, 2, 3])) {
398
+ * // Process the valid row
399
+ * }
400
+ * ```
401
+ */
402
+ export declare function ValidateMatrixRow(row: unknown): row is number[];
403
+ /**
404
+ * Validates that an unknown value is a valid matrix value (finite number) without throwing an error.
405
+ *
406
+ * @param value - The value to validate as a matrix element
407
+ * @returns true if the value is valid, false otherwise
408
+ *
409
+ * @example
410
+ * ```typescript
411
+ * if (ValidateMatrixValue(someValue)) {
412
+ * // Process the valid numeric value
413
+ * }
414
+ * ```
415
+ */
416
+ export declare function ValidateMatrixValue(value: unknown): value is number;
417
+ /**
418
+ * Validates that two unknown values are compatible matrices without throwing an error.
419
+ *
420
+ * @param a - The first matrix to validate
421
+ * @param b - The second matrix to validate
422
+ * @param args - Validation configuration options
423
+ * @returns true if both matrices are valid and compatible, false otherwise
424
+ *
425
+ * @example
426
+ * ```typescript
427
+ * if (ValidateMatrices(matrixA, matrixB, { transposition: true })) {
428
+ * // Process the valid and compatible matrices
429
+ * }
299
430
  * ```
300
431
  */
301
- export declare function AssertMatrix4(matrix: unknown, exception?: IAssertMatrixException): asserts matrix is IMatrix4;
432
+ export declare function ValidateMatrices(a: unknown, b: unknown, args?: IAssertMatricesArgs): boolean;
302
433
  export {};
303
434
  //# sourceMappingURL=asserts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"asserts.d.ts","sourceRoot":"","sources":["../../src/matrices/asserts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,gBAAgB,EAAwE,MAAM,4BAA4B,CAAC;AACnJ,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG7E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,UAAU,iBAAiB;IAC1B,oDAAoD;IACpD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2DAA2D;IAC3D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC;CACjC;AACD;;;;;;;;;;;;;;;;GAgBG;AACH,UAAU,mBAAmB;IAC5B;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACxB;AACD;;;;;;;;;GASG;AACH,UAAU,sBAAuB,SAAQ,gBAAgB;IACxD,qGAAqG;IACrG,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2GAA2G;IAC3G,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,WAAY,SAAQ,KAAK;IACrC;;;;OAIG;gBACS,OAAO,CAAC,EAAE,MAAM;CAM5B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,GAAE,iBAAsB,EAAE,SAAS,GAAE,sBAA2B,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CA8F7I;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,GAAE,sBAA2B,GAAG,OAAO,CAAC,GAAG,IAAI,MAAM,EAAE,CAuB7G;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,GAAE,sBAA2B,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM,CAWjH;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,GAAE,mBAAwB,EAAE,SAAS,GAAE,sBAA2B,GAAG,IAAI,CAgDnI;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,GAAE,sBAA2B,GAAG,OAAO,CAAC,MAAM,IAAI,QAAQ,CAOjH;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,GAAE,sBAA2B,GAAG,OAAO,CAAC,MAAM,IAAI,QAAQ,CAOjH;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,GAAE,sBAA2B,GAAG,OAAO,CAAC,MAAM,IAAI,QAAQ,CAOjH;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,GAAE,sBAA2B,GAAG,OAAO,CAAC,MAAM,IAAI,QAAQ,CAOjH"}
1
+ {"version":3,"file":"asserts.d.ts","sourceRoot":"","sources":["../../src/matrices/asserts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,gBAAgB,EAAwE,MAAM,4BAA4B,CAAC;AACnJ,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG7E;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,UAAU,iBAAiB;IAC1B,oDAAoD;IACpD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2DAA2D;IAC3D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC;CACjC;AACD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,mBAAmB;IACnC;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACxB;AACD;;;;;;;;;GASG;AACH,UAAU,sBAAuB,SAAQ,gBAAgB;IACxD,qGAAqG;IACrG,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2GAA2G;IAC3G,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,WAAY,SAAQ,KAAK;IACrC,SAAgB,IAAI,EAAE,MAAM,CAAkB;IAE9C;;;;;;OAMG;gBACS,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAM1D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,GAAE,iBAAsB,EAAE,SAAS,GAAE,sBAA2B,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CA8F7I;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,GAAE,sBAA2B,GAAG,OAAO,CAAC,GAAG,IAAI,MAAM,EAAE,CAuB7G;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,GAAE,sBAA2B,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM,CAiBjH;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,GAAE,mBAAwB,EAAE,SAAS,GAAE,sBAA2B,GAAG,IAAI,CAgDnI;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,GAAE,sBAA2B,GAAG,OAAO,CAAC,MAAM,IAAI,QAAQ,CAOjH;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,GAAE,sBAA2B,GAAG,OAAO,CAAC,MAAM,IAAI,QAAQ,CAOjH;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,GAAE,sBAA2B,GAAG,OAAO,CAAC,MAAM,IAAI,QAAQ,CAOjH;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,GAAE,sBAA2B,GAAG,OAAO,CAAC,MAAM,IAAI,QAAQ,CAOjH;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,GAAE,iBAAsB,GAAG,MAAM,IAAI,OAAO,CAO/F;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,QAAQ,CAOnE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,QAAQ,CAOnE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,QAAQ,CAOnE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,QAAQ,CAOnE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,MAAM,EAAE,CAO/D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAOnE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,GAAE,mBAAwB,GAAG,OAAO,CAOhG"}