@lakuna/umath 2.0.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/LICENSE +1 -1
  2. package/dist/algorithms/greatestCommonDivisor.d.ts.map +1 -1
  3. package/dist/algorithms/greatestCommonDivisor.js +14 -4
  4. package/dist/algorithms/greatestCommonDivisor.js.map +1 -1
  5. package/dist/index.d.ts +11 -11
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js.map +1 -1
  8. package/dist/linalg/DualQuaternion.d.ts +124 -124
  9. package/dist/linalg/DualQuaternion.d.ts.map +1 -1
  10. package/dist/linalg/DualQuaternion.js +173 -165
  11. package/dist/linalg/DualQuaternion.js.map +1 -1
  12. package/dist/linalg/Matrix.d.ts +24 -24
  13. package/dist/linalg/Matrix.d.ts.map +1 -1
  14. package/dist/linalg/Matrix2.d.ts +63 -63
  15. package/dist/linalg/Matrix2.d.ts.map +1 -1
  16. package/dist/linalg/Matrix2.js +92 -88
  17. package/dist/linalg/Matrix2.js.map +1 -1
  18. package/dist/linalg/Matrix3.d.ts +107 -107
  19. package/dist/linalg/Matrix3.d.ts.map +1 -1
  20. package/dist/linalg/Matrix3.js +147 -138
  21. package/dist/linalg/Matrix3.js.map +1 -1
  22. package/dist/linalg/Matrix4.d.ts +200 -201
  23. package/dist/linalg/Matrix4.d.ts.map +1 -1
  24. package/dist/linalg/Matrix4.js +272 -251
  25. package/dist/linalg/Matrix4.js.map +1 -1
  26. package/dist/linalg/Quaternion.d.ts +116 -116
  27. package/dist/linalg/Quaternion.d.ts.map +1 -1
  28. package/dist/linalg/Quaternion.js +175 -161
  29. package/dist/linalg/Quaternion.js.map +1 -1
  30. package/dist/linalg/SlowMatrix.d.ts +5 -5
  31. package/dist/linalg/SlowMatrix.d.ts.map +1 -1
  32. package/dist/linalg/SlowMatrix.js +12 -12
  33. package/dist/linalg/SlowMatrix.js.map +1 -1
  34. package/dist/linalg/SlowSquareMatrix.d.ts +6 -6
  35. package/dist/linalg/SlowSquareMatrix.d.ts.map +1 -1
  36. package/dist/linalg/SlowSquareMatrix.js +15 -15
  37. package/dist/linalg/SlowSquareMatrix.js.map +1 -1
  38. package/dist/linalg/SlowVector.d.ts +70 -70
  39. package/dist/linalg/SlowVector.d.ts.map +1 -1
  40. package/dist/linalg/SlowVector.js +153 -153
  41. package/dist/linalg/SlowVector.js.map +1 -1
  42. package/dist/linalg/SquareMatrix.d.ts +8 -8
  43. package/dist/linalg/SquareMatrix.d.ts.map +1 -1
  44. package/dist/linalg/Vector.d.ts +85 -84
  45. package/dist/linalg/Vector.d.ts.map +1 -1
  46. package/dist/linalg/Vector2.d.ts +104 -104
  47. package/dist/linalg/Vector2.d.ts.map +1 -1
  48. package/dist/linalg/Vector2.js +145 -143
  49. package/dist/linalg/Vector2.js.map +1 -1
  50. package/dist/linalg/Vector3.d.ts +130 -130
  51. package/dist/linalg/Vector3.d.ts.map +1 -1
  52. package/dist/linalg/Vector3.js +176 -173
  53. package/dist/linalg/Vector3.js.map +1 -1
  54. package/dist/linalg/Vector4.d.ts +101 -101
  55. package/dist/linalg/Vector4.d.ts.map +1 -1
  56. package/dist/linalg/Vector4.js +144 -140
  57. package/dist/linalg/Vector4.js.map +1 -1
  58. package/dist/types/AxisAngle.d.ts +2 -2
  59. package/dist/types/AxisAngle.d.ts.map +1 -1
  60. package/dist/types/FieldOfView.d.ts +2 -2
  61. package/dist/types/FieldOfView.d.ts.map +1 -1
  62. package/dist/utility/BigNumber.d.ts +21 -11
  63. package/dist/utility/BigNumber.d.ts.map +1 -1
  64. package/dist/utility/BigNumber.js +42 -31
  65. package/dist/utility/BigNumber.js.map +1 -1
  66. package/dist/utility/createAxisAngleLike.d.ts.map +1 -1
  67. package/dist/utility/createAxisAngleLike.js.map +1 -1
  68. package/package.json +11 -9
  69. package/src/algorithms/greatestCommonDivisor.ts +19 -7
  70. package/src/index.ts +17 -13
  71. package/src/linalg/DualQuaternion.ts +208 -193
  72. package/src/linalg/Matrix.ts +28 -28
  73. package/src/linalg/Matrix2.ts +117 -108
  74. package/src/linalg/Matrix3.ts +177 -158
  75. package/src/linalg/Matrix4.ts +386 -348
  76. package/src/linalg/Quaternion.ts +207 -189
  77. package/src/linalg/SlowMatrix.ts +19 -18
  78. package/src/linalg/SlowSquareMatrix.ts +19 -18
  79. package/src/linalg/SlowVector.ts +170 -169
  80. package/src/linalg/SquareMatrix.ts +9 -9
  81. package/src/linalg/Vector.ts +91 -89
  82. package/src/linalg/Vector2.ts +160 -155
  83. package/src/linalg/Vector3.ts +206 -199
  84. package/src/linalg/Vector4.ts +165 -156
  85. package/src/types/AxisAngle.ts +3 -3
  86. package/src/types/FieldOfView.ts +3 -3
  87. package/src/utility/BigNumber.ts +63 -41
  88. package/src/utility/createAxisAngleLike.ts +1 -0
@@ -1,68 +1,61 @@
1
1
  import type { Matrix4Like } from "./Matrix4.js";
2
- /**
3
- * An object that could be interpreted as a matrix.
4
- * @public
5
- */
6
- export type MatrixLike = Record<number, number>;
7
2
  /**
8
3
  * A rectangular array of numbers, arranged in rows and columns.
9
4
  * @see {@link https://en.wikipedia.org/wiki/Matrix_(mathematics) | Matrix}
10
5
  * @public
11
6
  */
12
7
  export default interface Matrix extends MatrixLike {
13
- /** The number of rows in this matrix. */
14
- height: number;
15
- /** The number of columns in this matrix. */
16
- width: number;
17
- /**
18
- * Get the Frobenius norm of this matrix.
19
- * @see {@link https://en.wikipedia.org/wiki/Matrix_norm | Matrix norm}
20
- */
21
- get frob(): number;
22
8
  /**
23
9
  * Add two matrices of the same size.
24
10
  * @param matrix - The other matrix.
25
11
  * @returns The sum of the matrices.
26
12
  * @see {@link https://en.wikipedia.org/wiki/Matrix_addition | Matrix addition}
27
13
  */
28
- add(matrix: Matrix4Like): MatrixLike;
14
+ add: (matrix: Matrix4Like) => MatrixLike;
29
15
  /**
30
16
  * Create a copy of this matrix.
31
17
  * @returns A copy of this matrix.
32
18
  */
33
- clone(): MatrixLike;
19
+ clone: () => MatrixLike;
34
20
  /**
35
21
  * Copy the values of another matrix into this one.
36
22
  * @param matrix - The matrix to copy.
37
23
  * @returns This matrix.
38
24
  */
39
- copy(matrix: Matrix4Like): this;
25
+ copy: (matrix: Matrix4Like) => this;
40
26
  /**
41
27
  * Determine whether or not this matrix is roughly equivalent to another.
42
28
  * @param matrix - The other matrix.
43
29
  * @returns Whether the matrices are equivalent.
44
30
  */
45
- equals(matrix: Matrix4Like): boolean;
31
+ equals: (matrix: Matrix4Like) => boolean;
46
32
  /**
47
33
  * Determine whether or not this matrix is exactly equivalent to another.
48
34
  * @param matrix - The other matrix.
49
35
  * @returns Whether the matrices are equivalent.
50
36
  */
51
- exactEquals(matrix: Matrix4Like): boolean;
37
+ exactEquals: (matrix: Matrix4Like) => boolean;
38
+ /**
39
+ * Get the Frobenius norm of this matrix.
40
+ * @see {@link https://en.wikipedia.org/wiki/Matrix_norm | Matrix norm}
41
+ */
42
+ get frob(): number;
43
+ /** The number of rows in this matrix. */
44
+ height: number;
52
45
  /**
53
46
  * Multiply this matrix by another.
54
47
  * @param matrix - The other matrix.
55
48
  * @returns The product of the matrices.
56
49
  * @see {@link https://en.wikipedia.org/wiki/Matrix_multiplication | Matrix multiplication}
57
50
  */
58
- multiply(matrix: Matrix4Like): MatrixLike;
51
+ multiply: (matrix: Matrix4Like) => MatrixLike;
59
52
  /**
60
53
  * Multiply this matrix by a scalar value.
61
54
  * @param scalar - The scalar value.
62
55
  * @returns The product of the matrix and the scalar value.
63
56
  * @see {@link https://en.wikipedia.org/wiki/Matrix_multiplication | Matrix multiplication}
64
57
  */
65
- multiplyScalar(scalar: number): MatrixLike;
58
+ multiplyScalar: (scalar: number) => MatrixLike;
66
59
  /**
67
60
  * Add this matrix to another after multiplying the other by a scalar.
68
61
  * @param matrix - The other matrix.
@@ -71,19 +64,26 @@ export default interface Matrix extends MatrixLike {
71
64
  * @see {@link https://en.wikipedia.org/wiki/Matrix_addition | Matrix addition}
72
65
  * @see {@link https://en.wikipedia.org/wiki/Matrix_multiplication | Matrix multiplication}
73
66
  */
74
- multiplyScalarAndAdd(matrix: Matrix4Like, scalar: number): MatrixLike;
67
+ multiplyScalarAndAdd: (matrix: Matrix4Like, scalar: number) => MatrixLike;
75
68
  /**
76
69
  * Subtract another matrix from this one.
77
70
  * @param matrix - The other matrix.
78
71
  * @returns The difference between the matrices.
79
72
  * @see {@link https://en.wikipedia.org/wiki/Matrix_addition | Matrix addition}
80
73
  */
81
- subtract(matrix: Matrix4Like): MatrixLike;
74
+ subtract: (matrix: Matrix4Like) => MatrixLike;
82
75
  /**
83
76
  * Transpose this matrix.
84
77
  * @returns The transpose of this matrix.
85
78
  * @see {@link https://en.wikipedia.org/wiki/Transpose | Transpose}
86
79
  */
87
- transpose(): MatrixLike;
80
+ transpose: () => MatrixLike;
81
+ /** The number of columns in this matrix. */
82
+ width: number;
88
83
  }
84
+ /**
85
+ * An object that could be interpreted as a matrix.
86
+ * @public
87
+ */
88
+ export type MatrixLike = Record<number, number>;
89
89
  //# sourceMappingURL=Matrix.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Matrix.d.ts","sourceRoot":"","sources":["../../src/linalg/Matrix.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEhD;;;;GAIG;AACH,MAAM,CAAC,OAAO,WAAW,MAAO,SAAQ,UAAU;IACjD,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAC;IAEf,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,IAAI,IAAI,IAAI,MAAM,CAAC;IAEnB;;;;;OAKG;IACH,GAAG,CAAC,MAAM,EAAE,WAAW,GAAG,UAAU,CAAC;IAErC;;;OAGG;IACH,KAAK,IAAI,UAAU,CAAC;IAEpB;;;;OAIG;IACH,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAEhC;;;;OAIG;IACH,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC;IAErC;;;;OAIG;IACH,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC;IAE1C;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,UAAU,CAAC;IAE1C;;;;;OAKG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC;IAE3C;;;;;;;OAOG;IACH,oBAAoB,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC;IAEtE;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,UAAU,CAAC;IAE1C;;;;OAIG;IACH,SAAS,IAAI,UAAU,CAAC;CACxB"}
1
+ {"version":3,"file":"Matrix.d.ts","sourceRoot":"","sources":["../../src/linalg/Matrix.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD;;;;GAIG;AACH,MAAM,CAAC,OAAO,WAAW,MAAO,SAAQ,UAAU;IACjD;;;;;OAKG;IACH,GAAG,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,UAAU,CAAC;IAEzC;;;OAGG;IACH,KAAK,EAAE,MAAM,UAAU,CAAC;IAExB;;;;OAIG;IACH,IAAI,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;IAEpC;;;;OAIG;IACH,MAAM,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC;IAEzC;;;;OAIG;IACH,WAAW,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC;IAE9C;;;OAGG;IACH,IAAI,IAAI,IAAI,MAAM,CAAC;IAEnB,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAC;IAEf;;;;;OAKG;IACH,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,UAAU,CAAC;IAE9C;;;;;OAKG;IACH,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,UAAU,CAAC;IAE/C;;;;;;;OAOG;IACH,oBAAoB,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,KAAK,UAAU,CAAC;IAE1E;;;;;OAKG;IACH,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,UAAU,CAAC;IAE9C;;;;OAIG;IACH,SAAS,EAAE,MAAM,UAAU,CAAC;IAE5B,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC"}
@@ -203,7 +203,34 @@ export declare const scale: <T extends Matrix2Like>(matrix: Matrix2Like, vector:
203
203
  * @see {@link https://en.wikipedia.org/wiki/Matrix_(mathematics) | Matrix}
204
204
  * @public
205
205
  */
206
- export default class Matrix2 extends Float32Array implements SquareMatrix, Matrix2Like {
206
+ export default class Matrix2 extends Float32Array implements Matrix2Like, SquareMatrix {
207
+ /** The value in the first column and first row. */
208
+ 0: number;
209
+ /** The value in the first column and second row. */
210
+ 1: number;
211
+ /** The value in the second column and first row. */
212
+ 2: number;
213
+ /** The value in the second column and second row. */
214
+ 3: number;
215
+ /** The number of rows in this matrix. */
216
+ readonly height: 2;
217
+ /** The number of columns in this matrix. */
218
+ readonly width: 2;
219
+ /**
220
+ * Get the determinant of this matrix.
221
+ * @see {@link https://en.wikipedia.org/wiki/Determinant | Determinant}
222
+ */
223
+ get determinant(): number;
224
+ /**
225
+ * Get the Frobenius norm of this matrix.
226
+ * @see {@link https://en.wikipedia.org/wiki/Matrix_norm | Matrix norm}
227
+ */
228
+ get frob(): number;
229
+ /**
230
+ * Create a two-by-two identity matrix.
231
+ * @see {@link https://en.wikipedia.org/wiki/Identity_matrix | Identity matrix}
232
+ */
233
+ constructor();
207
234
  /**
208
235
  * Create a transformation matrix that represents a rotation by the given angle around the Z-axis.
209
236
  * @param r - The angle in radians.
@@ -227,35 +254,6 @@ export default class Matrix2 extends Float32Array implements SquareMatrix, Matri
227
254
  * @returns The matrix.
228
255
  */
229
256
  static fromValues(c0r0: number, c0r1: number, c1r0: number, c1r1: number): Matrix2;
230
- /**
231
- * Create a two-by-two identity matrix.
232
- * @see {@link https://en.wikipedia.org/wiki/Identity_matrix | Identity matrix}
233
- */
234
- constructor();
235
- /** The value in the first column and first row. */
236
- 0: number;
237
- /** The value in the first column and second row. */
238
- 1: number;
239
- /** The value in the second column and first row. */
240
- 2: number;
241
- /** The value in the second column and second row. */
242
- 3: number;
243
- /** The number of columns in this matrix. */
244
- readonly width: 2;
245
- /** The number of rows in this matrix. */
246
- readonly height: 2;
247
- /**
248
- * Determine whether or not this matrix is roughly equivalent to another.
249
- * @param matrix - The other matrix.
250
- * @returns Whether the matrices are equivalent.
251
- */
252
- equals(matrix: Matrix2Like): boolean;
253
- /**
254
- * Determine whether or not this matrix is exactly equivalent to another.
255
- * @param matrix - The other matrix.
256
- * @returns Whether the matrices are equivalent.
257
- */
258
- exactEquals(matrix: Matrix2Like): boolean;
259
257
  /**
260
258
  * Add another matrix to this one.
261
259
  * @param matrix - The other matrix.
@@ -281,10 +279,29 @@ export default class Matrix2 extends Float32Array implements SquareMatrix, Matri
281
279
  */
282
280
  copy(matrix: Matrix2Like): this;
283
281
  /**
284
- * Get the Frobenius norm of this matrix.
285
- * @see {@link https://en.wikipedia.org/wiki/Matrix_norm | Matrix norm}
282
+ * Determine whether or not this matrix is roughly equivalent to another.
283
+ * @param matrix - The other matrix.
284
+ * @returns Whether the matrices are equivalent.
286
285
  */
287
- get frob(): number;
286
+ equals(matrix: Matrix2Like): boolean;
287
+ /**
288
+ * Determine whether or not this matrix is exactly equivalent to another.
289
+ * @param matrix - The other matrix.
290
+ * @returns Whether the matrices are equivalent.
291
+ */
292
+ exactEquals(matrix: Matrix2Like): boolean;
293
+ /**
294
+ * Reset this matrix to identity.
295
+ * @returns This matrix.
296
+ * @see {@link https://en.wikipedia.org/wiki/Identity_matrix | Identity matrix}
297
+ */
298
+ identity(): this;
299
+ /**
300
+ * Invert this matrix.
301
+ * @returns The inverted matrix.
302
+ * @see {@link https://en.wikipedia.org/wiki/Invertible_matrix | Invertible matrix}
303
+ */
304
+ invert(): Matrix2;
288
305
  /**
289
306
  * Multiply this matrix by another.
290
307
  * @param matrix - The other matrix.
@@ -309,36 +326,6 @@ export default class Matrix2 extends Float32Array implements SquareMatrix, Matri
309
326
  * @see {@link https://en.wikipedia.org/wiki/Matrix_multiplication | Matrix multiplication}
310
327
  */
311
328
  multiplyScalarAndAdd(matrix: Matrix2Like, scalar: number): Matrix2;
312
- /**
313
- * Subtract another matrix from this one.
314
- * @param matrix - The other matrix.
315
- * @returns The difference between the matrices.
316
- * @see {@link https://en.wikipedia.org/wiki/Matrix_addition | Matrix addition}
317
- */
318
- subtract(matrix: Matrix2Like): Matrix2;
319
- /**
320
- * Transpose this matrix.
321
- * @returns The transpose of this matrix.
322
- * @see {@link https://en.wikipedia.org/wiki/Transpose | Transpose}
323
- */
324
- transpose(): Matrix2;
325
- /**
326
- * Get the determinant of this matrix.
327
- * @see {@link https://en.wikipedia.org/wiki/Determinant | Determinant}
328
- */
329
- get determinant(): number;
330
- /**
331
- * Reset this matrix to identity.
332
- * @returns This matrix.
333
- * @see {@link https://en.wikipedia.org/wiki/Identity_matrix | Identity matrix}
334
- */
335
- identity(): this;
336
- /**
337
- * Invert this matrix.
338
- * @returns The inverted matrix.
339
- * @see {@link https://en.wikipedia.org/wiki/Invertible_matrix | Invertible matrix}
340
- */
341
- invert(): Matrix2;
342
329
  /**
343
330
  * Rotate this matrix by the given angle.
344
331
  * @param r - The angle in radians.
@@ -353,5 +340,18 @@ export default class Matrix2 extends Float32Array implements SquareMatrix, Matri
353
340
  * @see {@link https://en.wikipedia.org/wiki/Transformation_matrix | Transformation matrix}
354
341
  */
355
342
  scale(vector: Vector2Like): Matrix2;
343
+ /**
344
+ * Subtract another matrix from this one.
345
+ * @param matrix - The other matrix.
346
+ * @returns The difference between the matrices.
347
+ * @see {@link https://en.wikipedia.org/wiki/Matrix_addition | Matrix addition}
348
+ */
349
+ subtract(matrix: Matrix2Like): Matrix2;
350
+ /**
351
+ * Transpose this matrix.
352
+ * @returns The transpose of this matrix.
353
+ * @see {@link https://en.wikipedia.org/wiki/Transpose | Transpose}
354
+ */
355
+ transpose(): Matrix2;
356
356
  }
357
357
  //# sourceMappingURL=Matrix2.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Matrix2.d.ts","sourceRoot":"","sources":["../../src/linalg/Matrix2.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Matrix2.d.ts","sourceRoot":"","sources":["../../src/linalg/Matrix2.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,14 @@
1
- import { add as vector4Add, copy as vector4Copy, exactEquals as vector4ExactEquals, fromValues as vector4FromValues, getMagnitude as vector4GetMagnitude, scale as vector4Scale, scaleAndAdd as vector4ScaleAndAdd, subtract as vector4Subtract } from "./Vector4.js";
2
- import SingularMatrixError from "../utility/SingularMatrixError.js";
3
1
  import approxRelative from "../algorithms/approxRelative.js";
2
+ import SingularMatrixError from "../utility/SingularMatrixError.js";
3
+ import { add as vector4Add, copy as vector4Copy, exactEquals as vector4ExactEquals, fromValues as vector4FromValues, getMagnitude as vector4GetMagnitude, scale as vector4Scale, scaleAndAdd as vector4ScaleAndAdd, subtract as vector4Subtract } from "./Vector4.js";
4
4
  /**
5
5
  * Create a two-by-two matrix-like object.
6
6
  * @returns A two-by-two matrix-like object.
7
7
  * @public
8
8
  */
9
- export const createMatrix2Like = () => {
10
- return new Float32Array(4);
11
- };
9
+ export const createMatrix2Like = () =>
10
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
11
+ new Float32Array(4);
12
12
  /**
13
13
  * Create a two-by-two matrix with the given values.
14
14
  * @param c0r0 - The value in the first column and first row.
@@ -239,6 +239,47 @@ export const scale = (matrix, vector, out) => {
239
239
  * @public
240
240
  */
241
241
  export default class Matrix2 extends Float32Array {
242
+ /** The value in the first column and first row. */
243
+ // eslint-disable-next-line @typescript-eslint/naming-convention
244
+ 0;
245
+ /** The value in the first column and second row. */
246
+ // eslint-disable-next-line @typescript-eslint/naming-convention
247
+ 1;
248
+ /** The value in the second column and first row. */
249
+ // eslint-disable-next-line @typescript-eslint/naming-convention
250
+ 2;
251
+ /** The value in the second column and second row. */
252
+ // eslint-disable-next-line @typescript-eslint/naming-convention
253
+ 3;
254
+ /** The number of rows in this matrix. */
255
+ height;
256
+ /** The number of columns in this matrix. */
257
+ width;
258
+ /**
259
+ * Get the determinant of this matrix.
260
+ * @see {@link https://en.wikipedia.org/wiki/Determinant | Determinant}
261
+ */
262
+ get determinant() {
263
+ return determinant(this);
264
+ }
265
+ /**
266
+ * Get the Frobenius norm of this matrix.
267
+ * @see {@link https://en.wikipedia.org/wiki/Matrix_norm | Matrix norm}
268
+ */
269
+ get frob() {
270
+ return frob(this);
271
+ }
272
+ /**
273
+ * Create a two-by-two identity matrix.
274
+ * @see {@link https://en.wikipedia.org/wiki/Identity_matrix | Identity matrix}
275
+ */
276
+ constructor() {
277
+ super(4);
278
+ this[0] = 1;
279
+ this[3] = 1;
280
+ this.width = 2;
281
+ this.height = 2;
282
+ }
242
283
  /**
243
284
  * Create a transformation matrix that represents a rotation by the given angle around the Z-axis.
244
285
  * @param r - The angle in radians.
@@ -268,45 +309,6 @@ export default class Matrix2 extends Float32Array {
268
309
  static fromValues(c0r0, c0r1, c1r0, c1r1) {
269
310
  return fromValues(c0r0, c0r1, c1r0, c1r1, new Matrix2());
270
311
  }
271
- /**
272
- * Create a two-by-two identity matrix.
273
- * @see {@link https://en.wikipedia.org/wiki/Identity_matrix | Identity matrix}
274
- */
275
- constructor() {
276
- super(4);
277
- this[0] = 1;
278
- this[3] = 1;
279
- this.width = 2;
280
- this.height = 2;
281
- }
282
- /** The value in the first column and first row. */
283
- 0;
284
- /** The value in the first column and second row. */
285
- 1;
286
- /** The value in the second column and first row. */
287
- 2;
288
- /** The value in the second column and second row. */
289
- 3;
290
- /** The number of columns in this matrix. */
291
- width;
292
- /** The number of rows in this matrix. */
293
- height;
294
- /**
295
- * Determine whether or not this matrix is roughly equivalent to another.
296
- * @param matrix - The other matrix.
297
- * @returns Whether the matrices are equivalent.
298
- */
299
- equals(matrix) {
300
- return equals(this, matrix);
301
- }
302
- /**
303
- * Determine whether or not this matrix is exactly equivalent to another.
304
- * @param matrix - The other matrix.
305
- * @returns Whether the matrices are equivalent.
306
- */
307
- exactEquals(matrix) {
308
- return exactEquals(this, matrix);
309
- }
310
312
  /**
311
313
  * Add another matrix to this one.
312
314
  * @param matrix - The other matrix.
@@ -340,11 +342,36 @@ export default class Matrix2 extends Float32Array {
340
342
  return copy(matrix, this);
341
343
  }
342
344
  /**
343
- * Get the Frobenius norm of this matrix.
344
- * @see {@link https://en.wikipedia.org/wiki/Matrix_norm | Matrix norm}
345
+ * Determine whether or not this matrix is roughly equivalent to another.
346
+ * @param matrix - The other matrix.
347
+ * @returns Whether the matrices are equivalent.
345
348
  */
346
- get frob() {
347
- return frob(this);
349
+ equals(matrix) {
350
+ return equals(this, matrix);
351
+ }
352
+ /**
353
+ * Determine whether or not this matrix is exactly equivalent to another.
354
+ * @param matrix - The other matrix.
355
+ * @returns Whether the matrices are equivalent.
356
+ */
357
+ exactEquals(matrix) {
358
+ return exactEquals(this, matrix);
359
+ }
360
+ /**
361
+ * Reset this matrix to identity.
362
+ * @returns This matrix.
363
+ * @see {@link https://en.wikipedia.org/wiki/Identity_matrix | Identity matrix}
364
+ */
365
+ identity() {
366
+ return identity(this);
367
+ }
368
+ /**
369
+ * Invert this matrix.
370
+ * @returns The inverted matrix.
371
+ * @see {@link https://en.wikipedia.org/wiki/Invertible_matrix | Invertible matrix}
372
+ */
373
+ invert() {
374
+ return invert(this, new Matrix2());
348
375
  }
349
376
  /**
350
377
  * Multiply this matrix by another.
@@ -376,46 +403,6 @@ export default class Matrix2 extends Float32Array {
376
403
  multiplyScalarAndAdd(matrix, scalar) {
377
404
  return multiplyScalarAndAdd(this, matrix, scalar, new Matrix2());
378
405
  }
379
- /**
380
- * Subtract another matrix from this one.
381
- * @param matrix - The other matrix.
382
- * @returns The difference between the matrices.
383
- * @see {@link https://en.wikipedia.org/wiki/Matrix_addition | Matrix addition}
384
- */
385
- subtract(matrix) {
386
- return subtract(this, matrix, new Matrix2());
387
- }
388
- /**
389
- * Transpose this matrix.
390
- * @returns The transpose of this matrix.
391
- * @see {@link https://en.wikipedia.org/wiki/Transpose | Transpose}
392
- */
393
- transpose() {
394
- return transpose(this, new Matrix2());
395
- }
396
- /**
397
- * Get the determinant of this matrix.
398
- * @see {@link https://en.wikipedia.org/wiki/Determinant | Determinant}
399
- */
400
- get determinant() {
401
- return determinant(this);
402
- }
403
- /**
404
- * Reset this matrix to identity.
405
- * @returns This matrix.
406
- * @see {@link https://en.wikipedia.org/wiki/Identity_matrix | Identity matrix}
407
- */
408
- identity() {
409
- return identity(this);
410
- }
411
- /**
412
- * Invert this matrix.
413
- * @returns The inverted matrix.
414
- * @see {@link https://en.wikipedia.org/wiki/Invertible_matrix | Invertible matrix}
415
- */
416
- invert() {
417
- return invert(this, new Matrix2());
418
- }
419
406
  /**
420
407
  * Rotate this matrix by the given angle.
421
408
  * @param r - The angle in radians.
@@ -434,5 +421,22 @@ export default class Matrix2 extends Float32Array {
434
421
  scale(vector) {
435
422
  return scale(this, vector, new Matrix2());
436
423
  }
424
+ /**
425
+ * Subtract another matrix from this one.
426
+ * @param matrix - The other matrix.
427
+ * @returns The difference between the matrices.
428
+ * @see {@link https://en.wikipedia.org/wiki/Matrix_addition | Matrix addition}
429
+ */
430
+ subtract(matrix) {
431
+ return subtract(this, matrix, new Matrix2());
432
+ }
433
+ /**
434
+ * Transpose this matrix.
435
+ * @returns The transpose of this matrix.
436
+ * @see {@link https://en.wikipedia.org/wiki/Transpose | Transpose}
437
+ */
438
+ transpose() {
439
+ return transpose(this, new Matrix2());
440
+ }
437
441
  }
438
442
  //# sourceMappingURL=Matrix2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Matrix2.js","sourceRoot":"","sources":["../../src/linalg/Matrix2.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Matrix2.js","sourceRoot":"","sources":["../../src/linalg/Matrix2.ts"],"names":[],"mappings":"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"}