@lakuna/umath 2.0.0 → 3.0.1

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 +12 -12
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js.map +1 -1
  8. package/dist/linalg/DualQuaternion.d.ts +158 -158
  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 +85 -85
  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 +134 -134
  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 +245 -246
  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 +147 -146
  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 +12 -12
  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 +7 -7
  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 +77 -77
  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 +143 -143
  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 +173 -173
  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 +137 -137
  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 +11 -1
  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 +49 -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 +13 -12
  69. package/src/algorithms/greatestCommonDivisor.ts +19 -7
  70. package/src/index.ts +21 -14
  71. package/src/linalg/DualQuaternion.ts +264 -238
  72. package/src/linalg/Matrix.ts +31 -28
  73. package/src/linalg/Matrix2.ts +157 -137
  74. package/src/linalg/Matrix3.ts +222 -191
  75. package/src/linalg/Matrix4.ts +464 -412
  76. package/src/linalg/Quaternion.ts +267 -234
  77. package/src/linalg/SlowMatrix.ts +31 -27
  78. package/src/linalg/SlowSquareMatrix.ts +19 -18
  79. package/src/linalg/SlowVector.ts +175 -174
  80. package/src/linalg/SquareMatrix.ts +9 -9
  81. package/src/linalg/Vector.ts +91 -89
  82. package/src/linalg/Vector2.ts +250 -217
  83. package/src/linalg/Vector3.ts +309 -269
  84. package/src/linalg/Vector4.ts +246 -206
  85. package/src/types/AxisAngle.ts +13 -1
  86. package/src/types/FieldOfView.ts +3 -3
  87. package/src/utility/BigNumber.ts +71 -38
  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: Readonly<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: Readonly<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: Readonly<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: Readonly<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: Readonly<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: Readonly<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: Readonly<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,QAAQ,CAAC,WAAW,CAAC,KAAK,UAAU,CAAC;IAEnD;;;OAGG;IACH,KAAK,EAAE,MAAM,UAAU,CAAC;IAExB;;;;OAIG;IACH,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAE9C;;;;OAIG;IACH,MAAM,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,KAAK,OAAO,CAAC;IAEnD;;;;OAIG;IACH,WAAW,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,KAAK,OAAO,CAAC;IAExD;;;OAGG;IACH,IAAI,IAAI,IAAI,MAAM,CAAC;IAEnB,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAC;IAEf;;;;;OAKG;IACH,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,KAAK,UAAU,CAAC;IAExD;;;;;OAKG;IACH,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,UAAU,CAAC;IAE/C;;;;;;;OAOG;IACH,oBAAoB,EAAE,CACrB,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,EAC7B,MAAM,EAAE,MAAM,KACV,UAAU,CAAC;IAEhB;;;;;OAKG;IACH,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,KAAK,UAAU,CAAC;IAExD;;;;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"}
@@ -50,7 +50,7 @@ export declare const fromRotation: <T extends Matrix2Like>(r: number, out: T) =>
50
50
  * @see {@link https://en.wikipedia.org/wiki/Transformation_matrix | Transformation matrix}
51
51
  * @public
52
52
  */
53
- export declare const fromScaling: <T extends Matrix2Like>(vector: Vector2Like, out: T) => T;
53
+ export declare const fromScaling: <T extends Matrix2Like>(vector: Readonly<Vector2Like>, out: T) => T;
54
54
  /**
55
55
  * Determine whether or not two matrices are roughly equivalent.
56
56
  * @param a - The first matrix.
@@ -58,7 +58,7 @@ export declare const fromScaling: <T extends Matrix2Like>(vector: Vector2Like, o
58
58
  * @returns Whether or not the matrices are equivalent.
59
59
  * @public
60
60
  */
61
- export declare const equals: (a: Matrix2Like, b: Matrix2Like) => boolean;
61
+ export declare const equals: (a: Readonly<Matrix2Like>, b: Readonly<Matrix2Like>) => boolean;
62
62
  /**
63
63
  * Determine whether or not two matrices are exactly equivalent.
64
64
  * @param a - The first matrix.
@@ -66,7 +66,7 @@ export declare const equals: (a: Matrix2Like, b: Matrix2Like) => boolean;
66
66
  * @returns Whether the matrices are equivalent.
67
67
  * @public
68
68
  */
69
- export declare const exactEquals: (a: Matrix2Like, b: Matrix2Like) => boolean;
69
+ export declare const exactEquals: (a: Readonly<Matrix2Like>, b: Readonly<Matrix2Like>) => boolean;
70
70
  /**
71
71
  * Add two matrices.
72
72
  * @param a - The augend.
@@ -76,7 +76,7 @@ export declare const exactEquals: (a: Matrix2Like, b: Matrix2Like) => boolean;
76
76
  * @see {@link https://en.wikipedia.org/wiki/Matrix_addition | Matrix addition}
77
77
  * @public
78
78
  */
79
- export declare const add: <T extends Matrix2Like>(a: Matrix2Like, b: Matrix2Like, out: T) => T;
79
+ export declare const add: <T extends Matrix2Like>(a: Readonly<Matrix2Like>, b: Readonly<Matrix2Like>, out: T) => T;
80
80
  /**
81
81
  * Calculate the adjugate of a matrix.
82
82
  * @param matrix - The matrix.
@@ -85,7 +85,7 @@ export declare const add: <T extends Matrix2Like>(a: Matrix2Like, b: Matrix2Like
85
85
  * @see {@link https://en.wikipedia.org/wiki/Adjugate_matrix | Adjugate matrix}
86
86
  * @public
87
87
  */
88
- export declare const adjoint: <T extends Matrix2Like>(matrix: Matrix2Like, out: T) => T;
88
+ export declare const adjoint: <T extends Matrix2Like>(matrix: Readonly<Matrix2Like>, out: T) => T;
89
89
  /**
90
90
  * Copy the values from one matrix into another.
91
91
  * @param matrix - The matrix to copy.
@@ -93,7 +93,7 @@ export declare const adjoint: <T extends Matrix2Like>(matrix: Matrix2Like, out:
93
93
  * @returns The copy matrix.
94
94
  * @public
95
95
  */
96
- export declare const copy: <T extends Matrix2Like>(matrix: Matrix2Like, out: T) => T;
96
+ export declare const copy: <T extends Matrix2Like>(matrix: Readonly<Matrix2Like>, out: T) => T;
97
97
  /**
98
98
  * Calculate the Frobenius norm of a matrix.
99
99
  * @param matrix - The matrix.
@@ -101,7 +101,7 @@ export declare const copy: <T extends Matrix2Like>(matrix: Matrix2Like, out: T)
101
101
  * @see {@link https://en.wikipedia.org/wiki/Matrix_norm | Matrix norm}
102
102
  * @public
103
103
  */
104
- export declare const frob: (matrix: Matrix2Like) => number;
104
+ export declare const frob: (matrix: Readonly<Matrix2Like>) => number;
105
105
  /**
106
106
  * Multiply one matrix by another.
107
107
  * @param a - The multiplier.
@@ -111,7 +111,7 @@ export declare const frob: (matrix: Matrix2Like) => number;
111
111
  * @see {@link https://en.wikipedia.org/wiki/Matrix_multiplication | Matrix multiplication}
112
112
  * @public
113
113
  */
114
- export declare const multiply: <T extends Matrix2Like>(a: Matrix2Like, b: Matrix2Like, out: T) => T;
114
+ export declare const multiply: <T extends Matrix2Like>(a: Readonly<Matrix2Like>, b: Readonly<Matrix2Like>, out: T) => T;
115
115
  /**
116
116
  * Multiply a matrix by a scalar value.
117
117
  * @param matrix - The multiplier.
@@ -121,7 +121,7 @@ export declare const multiply: <T extends Matrix2Like>(a: Matrix2Like, b: Matrix
121
121
  * @see {@link https://en.wikipedia.org/wiki/Matrix_multiplication | Matrix multiplication}
122
122
  * @public
123
123
  */
124
- export declare const multiplyScalar: <T extends Matrix2Like>(matrix: Matrix2Like, scalar: number, out: T) => T;
124
+ export declare const multiplyScalar: <T extends Matrix2Like>(matrix: Readonly<Matrix2Like>, scalar: number, out: T) => T;
125
125
  /**
126
126
  * Add a matrix to another after multiplying the other by a scalar.
127
127
  * @param a - The augend.
@@ -133,7 +133,7 @@ export declare const multiplyScalar: <T extends Matrix2Like>(matrix: Matrix2Like
133
133
  * @see {@link https://en.wikipedia.org/wiki/Matrix_multiplication | Matrix multiplication}
134
134
  * @public
135
135
  */
136
- export declare const multiplyScalarAndAdd: <T extends Matrix2Like>(a: Matrix2Like, b: Matrix2Like, scalar: number, out: T) => T;
136
+ export declare const multiplyScalarAndAdd: <T extends Matrix2Like>(a: Readonly<Matrix2Like>, b: Readonly<Matrix2Like>, scalar: number, out: T) => T;
137
137
  /**
138
138
  * Subtract one matrix from another.
139
139
  * @param a - The minuend.
@@ -143,7 +143,7 @@ export declare const multiplyScalarAndAdd: <T extends Matrix2Like>(a: Matrix2Lik
143
143
  * @see {@link https://en.wikipedia.org/wiki/Matrix_addition | Matrix addition}
144
144
  * @public
145
145
  */
146
- export declare const subtract: <T extends Matrix2Like>(a: Matrix2Like, b: Matrix2Like, out: T) => T;
146
+ export declare const subtract: <T extends Matrix2Like>(a: Readonly<Matrix2Like>, b: Readonly<Matrix2Like>, out: T) => T;
147
147
  /**
148
148
  * Transpose a matrix.
149
149
  * @param matrix - The matrix.
@@ -152,7 +152,7 @@ export declare const subtract: <T extends Matrix2Like>(a: Matrix2Like, b: Matrix
152
152
  * @see {@link https://en.wikipedia.org/wiki/Transpose | Transpose}
153
153
  * @public
154
154
  */
155
- export declare const transpose: <T extends Matrix2Like>(matrix: Matrix2Like, out: T) => T;
155
+ export declare const transpose: <T extends Matrix2Like>(matrix: Readonly<Matrix2Like>, out: T) => T;
156
156
  /**
157
157
  * Calculate the determinant of a matrix.
158
158
  * @param matrix - The matrix.
@@ -160,7 +160,7 @@ export declare const transpose: <T extends Matrix2Like>(matrix: Matrix2Like, out
160
160
  * @see {@link https://en.wikipedia.org/wiki/Determinant | Determinant}
161
161
  * @public
162
162
  */
163
- export declare const determinant: (matrix: Matrix2Like) => number;
163
+ export declare const determinant: (matrix: Readonly<Matrix2Like>) => number;
164
164
  /**
165
165
  * Reset a matrix to identity.
166
166
  * @param out - The matrix to store the result in.
@@ -177,7 +177,7 @@ export declare const identity: <T extends Matrix2Like>(out: T) => T;
177
177
  * @see {@link https://en.wikipedia.org/wiki/Invertible_matrix | Invertible matrix}
178
178
  * @public
179
179
  */
180
- export declare const invert: <T extends Matrix2Like>(matrix: Matrix2Like, out: T) => T;
180
+ export declare const invert: <T extends Matrix2Like>(matrix: Readonly<Matrix2Like>, out: T) => T;
181
181
  /**
182
182
  * Rotate a matrix by the given angle.
183
183
  * @param matrix - The matrix.
@@ -187,7 +187,7 @@ export declare const invert: <T extends Matrix2Like>(matrix: Matrix2Like, out: T
187
187
  * @see {@link https://en.wikipedia.org/wiki/Rotation_matrix | Rotation matrix}
188
188
  * @public
189
189
  */
190
- export declare const rotate: <T extends Matrix2Like>(matrix: Matrix2Like, r: number, out: T) => T;
190
+ export declare const rotate: <T extends Matrix2Like>(matrix: Readonly<Matrix2Like>, r: number, out: T) => T;
191
191
  /**
192
192
  * Scale a matrix by the given vector.
193
193
  * @param matrix - The matrix.
@@ -197,13 +197,40 @@ export declare const rotate: <T extends Matrix2Like>(matrix: Matrix2Like, r: num
197
197
  * @see {@link https://en.wikipedia.org/wiki/Transformation_matrix | Transformation matrix}
198
198
  * @public
199
199
  */
200
- export declare const scale: <T extends Matrix2Like>(matrix: Matrix2Like, vector: Vector2Like, out: T) => T;
200
+ export declare const scale: <T extends Matrix2Like>(matrix: Readonly<Matrix2Like>, vector: Readonly<Vector2Like>, out: T) => T;
201
201
  /**
202
202
  * A two-by-two matrix.
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.
@@ -217,7 +244,7 @@ export default class Matrix2 extends Float32Array implements SquareMatrix, Matri
217
244
  * @returns The transformation matrix.
218
245
  * @see {@link https://en.wikipedia.org/wiki/Transformation_matrix | Transformation matrix}
219
246
  */
220
- static fromScaling(vector: Vector2Like): Matrix2;
247
+ static fromScaling(vector: Readonly<Vector2Like>): Matrix2;
221
248
  /**
222
249
  * Create a two-by-two matrix with the given values.
223
250
  * @param c0r0 - The value in the first column and first row.
@@ -227,42 +254,13 @@ 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.
262
260
  * @returns The sum of the matrices.
263
261
  * @see {@link https://en.wikipedia.org/wiki/Matrix_addition | Matrix addition}
264
262
  */
265
- add(matrix: Matrix2Like): Matrix2;
263
+ add(matrix: Readonly<Matrix2Like>): Matrix2;
266
264
  /**
267
265
  * Calculate the adjugate of this matrix.
268
266
  * @returns The adjugate of this matrix.
@@ -279,12 +277,31 @@ export default class Matrix2 extends Float32Array implements SquareMatrix, Matri
279
277
  * @param matrix - The matrix to copy.
280
278
  * @returns This matrix.
281
279
  */
282
- copy(matrix: Matrix2Like): this;
280
+ copy(matrix: Readonly<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: Readonly<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: Readonly<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.
@@ -292,7 +309,7 @@ export default class Matrix2 extends Float32Array implements SquareMatrix, Matri
292
309
  * @see {@link https://en.wikipedia.org/wiki/Matrix_multiplication | Matrix multiplication}
293
310
  * @public
294
311
  */
295
- multiply(matrix: Matrix2Like): Matrix2;
312
+ multiply(matrix: Readonly<Matrix2Like>): Matrix2;
296
313
  /**
297
314
  * Multiply this matrix by a scalar value.
298
315
  * @param scalar - The scalar value.
@@ -308,37 +325,7 @@ export default class Matrix2 extends Float32Array implements SquareMatrix, Matri
308
325
  * @see {@link https://en.wikipedia.org/wiki/Matrix_addition | Matrix addition}
309
326
  * @see {@link https://en.wikipedia.org/wiki/Matrix_multiplication | Matrix multiplication}
310
327
  */
311
- 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;
328
+ multiplyScalarAndAdd(matrix: Readonly<Matrix2Like>, scalar: number): Matrix2;
342
329
  /**
343
330
  * Rotate this matrix by the given angle.
344
331
  * @param r - The angle in radians.
@@ -352,6 +339,19 @@ export default class Matrix2 extends Float32Array implements SquareMatrix, Matri
352
339
  * @returns The scaled matrix.
353
340
  * @see {@link https://en.wikipedia.org/wiki/Transformation_matrix | Transformation matrix}
354
341
  */
355
- scale(vector: Vector2Like): Matrix2;
342
+ scale(vector: Readonly<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: Readonly<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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"}