@lakuna/umath 1.3.4 → 1.3.6

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 (162) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +7 -9
  3. package/dist/algorithms/combinations.d.ts +7 -0
  4. package/dist/algorithms/combinations.d.ts.map +1 -1
  5. package/dist/algorithms/combinations.js +8 -1
  6. package/dist/algorithms/combinations.js.map +1 -1
  7. package/dist/algorithms/degreesToRadians.d.ts +7 -0
  8. package/dist/algorithms/degreesToRadians.d.ts.map +1 -1
  9. package/dist/algorithms/degreesToRadians.js +7 -0
  10. package/dist/algorithms/degreesToRadians.js.map +1 -1
  11. package/dist/algorithms/factorial.d.ts +6 -0
  12. package/dist/algorithms/factorial.d.ts.map +1 -1
  13. package/dist/algorithms/factorial.js +15 -5
  14. package/dist/algorithms/factorial.js.map +1 -1
  15. package/dist/algorithms/fibonacci.d.ts +6 -1
  16. package/dist/algorithms/fibonacci.d.ts.map +1 -1
  17. package/dist/algorithms/fibonacci.js +6 -1
  18. package/dist/algorithms/fibonacci.js.map +1 -1
  19. package/dist/algorithms/greatestCommonDivisor.d.ts +14 -0
  20. package/dist/algorithms/greatestCommonDivisor.d.ts.map +1 -1
  21. package/dist/algorithms/greatestCommonDivisor.js +7 -9
  22. package/dist/algorithms/greatestCommonDivisor.js.map +1 -1
  23. package/dist/algorithms/hypergeometricPmf.d.ts +9 -0
  24. package/dist/algorithms/hypergeometricPmf.d.ts.map +1 -1
  25. package/dist/algorithms/hypergeometricPmf.js +10 -1
  26. package/dist/algorithms/hypergeometricPmf.js.map +1 -1
  27. package/dist/algorithms/isPrime.d.ts +6 -0
  28. package/dist/algorithms/isPrime.d.ts.map +1 -1
  29. package/dist/algorithms/isPrime.js +8 -1
  30. package/dist/algorithms/isPrime.js.map +1 -1
  31. package/dist/algorithms/permutations.d.ts +7 -0
  32. package/dist/algorithms/permutations.d.ts.map +1 -1
  33. package/dist/algorithms/permutations.js +8 -1
  34. package/dist/algorithms/permutations.js.map +1 -1
  35. package/dist/algorithms/primeFactorization.d.ts +7 -1
  36. package/dist/algorithms/primeFactorization.d.ts.map +1 -1
  37. package/dist/algorithms/primeFactorization.js +10 -3
  38. package/dist/algorithms/primeFactorization.js.map +1 -1
  39. package/dist/algorithms/radiansToDegrees.d.ts +7 -0
  40. package/dist/algorithms/radiansToDegrees.d.ts.map +1 -1
  41. package/dist/algorithms/radiansToDegrees.js +7 -0
  42. package/dist/algorithms/radiansToDegrees.js.map +1 -1
  43. package/dist/algorithms/summation.d.ts +8 -0
  44. package/dist/algorithms/summation.d.ts.map +1 -1
  45. package/dist/algorithms/summation.js +9 -0
  46. package/dist/algorithms/summation.js.map +1 -1
  47. package/dist/index.d.ts +32 -33
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +27 -27
  50. package/dist/index.js.map +1 -1
  51. package/dist/linalg/DualQuaternion.d.ts +460 -83
  52. package/dist/linalg/DualQuaternion.d.ts.map +1 -1
  53. package/dist/linalg/DualQuaternion.js +514 -133
  54. package/dist/linalg/DualQuaternion.js.map +1 -1
  55. package/dist/linalg/Matrix.d.ts +80 -12
  56. package/dist/linalg/Matrix.d.ts.map +1 -1
  57. package/dist/linalg/Matrix2.d.ts +337 -52
  58. package/dist/linalg/Matrix2.d.ts.map +1 -1
  59. package/dist/linalg/Matrix2.js +345 -61
  60. package/dist/linalg/Matrix2.js.map +1 -1
  61. package/dist/linalg/Matrix3.d.ts +470 -72
  62. package/dist/linalg/Matrix3.d.ts.map +1 -1
  63. package/dist/linalg/Matrix3.js +488 -94
  64. package/dist/linalg/Matrix3.js.map +1 -1
  65. package/dist/linalg/Matrix4.d.ts +842 -137
  66. package/dist/linalg/Matrix4.d.ts.map +1 -1
  67. package/dist/linalg/Matrix4.js +896 -175
  68. package/dist/linalg/Matrix4.js.map +1 -1
  69. package/dist/linalg/Quaternion.d.ts +395 -70
  70. package/dist/linalg/Quaternion.d.ts.map +1 -1
  71. package/dist/linalg/Quaternion.js +416 -70
  72. package/dist/linalg/Quaternion.js.map +1 -1
  73. package/dist/linalg/SlowMatrix.d.ts +79 -9
  74. package/dist/linalg/SlowMatrix.d.ts.map +1 -1
  75. package/dist/linalg/SlowMatrix.js +147 -27
  76. package/dist/linalg/SlowMatrix.js.map +1 -1
  77. package/dist/linalg/SlowSquareMatrix.d.ts +58 -3
  78. package/dist/linalg/SlowSquareMatrix.d.ts.map +1 -1
  79. package/dist/linalg/SlowSquareMatrix.js +111 -21
  80. package/dist/linalg/SlowSquareMatrix.js.map +1 -1
  81. package/dist/linalg/SquareMatrix.d.ts +26 -3
  82. package/dist/linalg/SquareMatrix.d.ts.map +1 -1
  83. package/dist/linalg/Vector.d.ts +148 -24
  84. package/dist/linalg/Vector.d.ts.map +1 -1
  85. package/dist/linalg/Vector2.d.ts +484 -84
  86. package/dist/linalg/Vector2.d.ts.map +1 -1
  87. package/dist/linalg/Vector2.js +487 -71
  88. package/dist/linalg/Vector2.js.map +1 -1
  89. package/dist/linalg/Vector3.d.ts +582 -98
  90. package/dist/linalg/Vector3.d.ts.map +1 -1
  91. package/dist/linalg/Vector3.js +625 -134
  92. package/dist/linalg/Vector3.js.map +1 -1
  93. package/dist/linalg/Vector4.d.ts +450 -75
  94. package/dist/linalg/Vector4.d.ts.map +1 -1
  95. package/dist/linalg/Vector4.js +447 -62
  96. package/dist/linalg/Vector4.js.map +1 -1
  97. package/dist/types/AxisAngle.d.ts +4 -1
  98. package/dist/types/AxisAngle.d.ts.map +1 -1
  99. package/dist/types/FieldOfView.d.ts +5 -0
  100. package/dist/types/FieldOfView.d.ts.map +1 -1
  101. package/dist/utility/BigNumber.d.ts +41 -8
  102. package/dist/utility/BigNumber.d.ts.map +1 -1
  103. package/dist/utility/BigNumber.js +47 -5
  104. package/dist/utility/BigNumber.js.map +1 -1
  105. package/dist/utility/MagnitudeError.d.ts +5 -0
  106. package/dist/utility/MagnitudeError.d.ts.map +1 -1
  107. package/dist/utility/MagnitudeError.js +6 -1
  108. package/dist/utility/MagnitudeError.js.map +1 -1
  109. package/dist/utility/MatrixSizeError.d.ts +5 -0
  110. package/dist/utility/MatrixSizeError.d.ts.map +1 -1
  111. package/dist/utility/MatrixSizeError.js +5 -0
  112. package/dist/utility/MatrixSizeError.js.map +1 -1
  113. package/dist/utility/PartialMatrixError.d.ts +5 -0
  114. package/dist/utility/PartialMatrixError.d.ts.map +1 -1
  115. package/dist/utility/PartialMatrixError.js +5 -0
  116. package/dist/utility/PartialMatrixError.js.map +1 -1
  117. package/dist/utility/SingularMatrixError.d.ts +8 -0
  118. package/dist/utility/SingularMatrixError.d.ts.map +1 -1
  119. package/dist/utility/SingularMatrixError.js +8 -0
  120. package/dist/utility/SingularMatrixError.js.map +1 -1
  121. package/dist/utility/epsilon.d.ts +1 -0
  122. package/dist/utility/epsilon.d.ts.map +1 -1
  123. package/dist/utility/epsilon.js +1 -0
  124. package/dist/utility/epsilon.js.map +1 -1
  125. package/package.json +20 -51
  126. package/src/algorithms/combinations.ts +4 -4
  127. package/src/algorithms/degreesToRadians.ts +3 -3
  128. package/src/algorithms/factorial.ts +13 -8
  129. package/src/algorithms/fibonacci.ts +3 -3
  130. package/src/algorithms/greatestCommonDivisor.ts +15 -19
  131. package/src/algorithms/hypergeometricPmf.ts +5 -6
  132. package/src/algorithms/isPrime.ts +4 -4
  133. package/src/algorithms/permutations.ts +4 -4
  134. package/src/algorithms/primeFactorization.ts +9 -9
  135. package/src/algorithms/radiansToDegrees.ts +3 -3
  136. package/src/algorithms/summation.ts +5 -5
  137. package/src/index.ts +35 -33
  138. package/src/linalg/DualQuaternion.ts +558 -804
  139. package/src/linalg/Matrix.ts +35 -36
  140. package/src/linalg/Matrix2.ts +277 -413
  141. package/src/linalg/Matrix3.ts +532 -737
  142. package/src/linalg/Matrix4.ts +1078 -1604
  143. package/src/linalg/Quaternion.ts +415 -690
  144. package/src/linalg/SlowMatrix.ts +118 -69
  145. package/src/linalg/SlowSquareMatrix.ts +85 -56
  146. package/src/linalg/SquareMatrix.ts +7 -7
  147. package/src/linalg/Vector.ts +71 -70
  148. package/src/linalg/Vector2.ts +380 -576
  149. package/src/linalg/Vector3.ts +544 -840
  150. package/src/linalg/Vector4.ts +383 -549
  151. package/src/types/AxisAngle.ts +1 -1
  152. package/src/utility/BigNumber.ts +33 -42
  153. package/src/utility/MagnitudeError.ts +4 -4
  154. package/src/utility/MatrixSizeError.ts +2 -3
  155. package/src/utility/PartialMatrixError.ts +2 -3
  156. package/src/utility/SingularMatrixError.ts +2 -2
  157. package/src/utility/epsilon.ts +1 -4
  158. package/dist/types/IntegerRepresentation.d.ts +0 -2
  159. package/dist/types/IntegerRepresentation.d.ts.map +0 -1
  160. package/dist/types/IntegerRepresentation.js +0 -2
  161. package/dist/types/IntegerRepresentation.js.map +0 -1
  162. package/src/types/IntegerRepresentation.ts +0 -2
@@ -1,63 +1,348 @@
1
- import type SquareMatrix from "#SquareMatrix";
2
- import type { Vector2Like } from "#Vector2";
3
- export type Matrix2Like = Matrix2 | [number, number, number, number];
4
- export declare function createMatrix2Like(): Matrix2Like;
5
- export declare function fromRotation<T extends Matrix2Like>(radians: number, out: T): T;
6
- export declare function fromScaling<T extends Matrix2Like>(vector: Vector2Like, out: T): T;
7
- export declare function fromValues<T extends Matrix2Like>(c0r0: number, c0r1: number, c1r0: number, c1r1: number, out: T): T;
8
- export declare function equals(a: Matrix2Like, b: Matrix2Like): boolean;
9
- export declare function exactEquals(a: Matrix2Like, b: Matrix2Like): boolean;
10
- export declare function add<T extends Matrix2Like>(a: Matrix2Like, b: Matrix2Like, out: T): T;
11
- export declare function adjoint<T extends Matrix2Like>(matrix: Matrix2Like, out: T): T;
12
- export declare function copy<T extends Matrix2Like>(matrix: Matrix2Like, out: T): T;
13
- export declare function frob(matrix: Matrix2Like): number;
14
- export declare function multiply<T extends Matrix2Like>(a: Matrix2Like, b: Matrix2Like, out: T): T;
15
- export declare function multiplyScalar<T extends Matrix2Like>(matrix: Matrix2Like, scalar: number, out: T): T;
16
- export declare function multiplyScalarAndAdd<T extends Matrix2Like>(a: Matrix2Like, b: Matrix2Like, scalar: number, out: T): T;
17
- export declare function subtract<T extends Matrix2Like>(a: Matrix2Like, b: Matrix2Like, out: T): T;
18
- export declare function transpose<T extends Matrix2Like>(matrix: Matrix2Like, out: T): T;
19
- export declare function determinant(matrix: Matrix2Like): number;
20
- export declare function identity<T extends Matrix2Like>(out: T): T;
21
- export declare function invert<T extends Matrix2Like>(matrix: Matrix2Like, out: T): T;
22
- export declare function rotate<T extends Matrix2Like>(matrix: Matrix2Like, radians: number, out: T): T;
23
- export declare function scale<T extends Matrix2Like>(matrix: Matrix2Like, vector: Vector2Like, out: T): T;
24
- export default class Matrix2 extends Float32Array implements SquareMatrix {
25
- static fromRotation(radians: number): Matrix2;
26
- static fromRotation<T extends Matrix2Like>(radians: number, out: T): T;
27
- static fromScaling(vector: Vector2Like): Matrix2;
28
- static fromScaling<T extends Matrix2Like>(vector: Vector2Like, out: T): T;
29
- static fromValues(c0r0: number, c0r1: number, c1r0: number, c1r1: number): Matrix2;
30
- static fromValues<T extends Matrix2Like>(c0r0: number, c0r1: number, c1r0: number, c1r1: number, out: T): T;
1
+ import type { MatrixLike } from "./Matrix.js";
2
+ import type SquareMatrix from "./SquareMatrix.js";
3
+ import type { Vector2Like } from "./Vector2.js";
4
+ /**
5
+ * Numbers arranged into two columns and two rows.
6
+ * @see [Matrix](https://en.wikipedia.org/wiki/Matrix_(mathematics))
7
+ */
8
+ export interface Matrix2Like extends MatrixLike {
9
+ /** The value in the first column and first row. */
10
+ 0: number;
11
+ /** The value in the first column and second row. */
12
+ 1: number;
13
+ /** The value in the second column and first row. */
14
+ 2: number;
15
+ /** The value in the second column and second row. */
16
+ 3: number;
17
+ }
18
+ /**
19
+ * Create a 2x2 matrix-like object.
20
+ * @returns A 2x2 matrix-like object.
21
+ */
22
+ export declare const createMatrix2Like: () => Matrix2Like;
23
+ /**
24
+ * Create a transformation matrix that represents a rotation by the given angle around the Z-axis.
25
+ * @param r - The angle in radians.
26
+ * @param out - The matrix to store the result in.
27
+ * @returns The transformation matrix.
28
+ * @see [Rotation matrix](https://en.wikipedia.org/wiki/Rotation_matrix)
29
+ */
30
+ export declare const fromRotation: <T extends Matrix2Like>(r: number, out: T) => T;
31
+ /**
32
+ * Create a transformation matrix that represents a scaling by the given vector.
33
+ * @param v - The scaling vector.
34
+ * @param out - The matrix to store the result in.
35
+ * @returns The transformation matrix.
36
+ * @see [Transformation matrix](https://en.wikipedia.org/wiki/Transformation_matrix)
37
+ */
38
+ export declare const fromScaling: <T extends Matrix2Like>(vector: Vector2Like, out: T) => T;
39
+ /**
40
+ * Create a two-by-two matrix with the given values.
41
+ * @param c0r0 - The value in the first column and first row.
42
+ * @param c0r1 - The value in the first column and second row.
43
+ * @param c1r0 - The value in the second column and first row.
44
+ * @param c1r1 - The value in the second column and second row.
45
+ * @param out - The matrix to store the result in.
46
+ * @returns The matrix.
47
+ */
48
+ export declare const fromValues: <T extends Matrix2Like>(c0r0: number, c0r1: number, c1r0: number, c1r1: number, out: T) => T;
49
+ /**
50
+ * Determine whether or not two matrices are roughly equivalent.
51
+ * @param a - The first matrix.
52
+ * @param b - The second matrix.
53
+ * @returns Whether or not the matrices are equivalent.
54
+ */
55
+ export declare const equals: (a: Matrix2Like, b: Matrix2Like) => boolean;
56
+ /**
57
+ * Determine whether or not two matrices are exactly equivalent.
58
+ * @param a - The first matrix.
59
+ * @param b - The second matrix.
60
+ * @returns Whether the matrices are equivalent.
61
+ */
62
+ export declare const exactEquals: (a: Matrix2Like, b: Matrix2Like) => boolean;
63
+ /**
64
+ * Add two matrices.
65
+ * @param a - The augend.
66
+ * @param b - The addend.
67
+ * @param out - The matrix to store the result in.
68
+ * @returns The sum.
69
+ * @see [Matrix addition](https://en.wikipedia.org/wiki/Matrix_addition)
70
+ */
71
+ export declare const add: <T extends Matrix2Like>(a: Matrix2Like, b: Matrix2Like, out: T) => T;
72
+ /**
73
+ * Calculate the adjugate of a matrix.
74
+ * @param matrix - The matrix.
75
+ * @param out - The matrix to store the result in.
76
+ * @returns The adjugate of the matrix.
77
+ * @see [Adjugate matrix](https://en.wikipedia.org/wiki/Adjugate_matrix)
78
+ */
79
+ export declare const adjoint: <T extends Matrix2Like>(matrix: Matrix2Like, out: T) => T;
80
+ /**
81
+ * Copy the values from one matrix into another.
82
+ * @param matrix - The matrix to copy.
83
+ * @param out - The matrix to store the result in.
84
+ * @returns The copy matrix.
85
+ */
86
+ export declare const copy: <T extends Matrix2Like>(matrix: Matrix2Like, out: T) => T;
87
+ /**
88
+ * Calculate the Frobenius norm of a matrix.
89
+ * @param matrix - The matrix.
90
+ * @returns The Frobenius norm.
91
+ * @see [Matrix norm](https://en.wikipedia.org/wiki/Matrix_norm)
92
+ */
93
+ export declare const frob: (matrix: Matrix2Like) => number;
94
+ /**
95
+ * Multiply one matrix by another.
96
+ * @param a - The multiplicand.
97
+ * @param b - The multiplier.
98
+ * @param out - The matrix to store the result in.
99
+ * @returns The product.
100
+ * @see [Matrix multiplication](https://en.wikipedia.org/wiki/Matrix_multiplication)
101
+ */
102
+ export declare const multiply: <T extends Matrix2Like>(a: Matrix2Like, b: Matrix2Like, out: T) => T;
103
+ /**
104
+ * Multiply a matrix by a scalar value.
105
+ * @param matrix - The multiplicand.
106
+ * @param scalar - The multiplier.
107
+ * @param out - The matrix to store the result in.
108
+ * @returns The product.
109
+ * @see [Matrix multiplication](https://en.wikipedia.org/wiki/Matrix_multiplication)
110
+ */
111
+ export declare const multiplyScalar: <T extends Matrix2Like>(matrix: Matrix2Like, scalar: number, out: T) => T;
112
+ /**
113
+ * Add a matrix to another after multiplying the other by a scalar.
114
+ * @param a - The augend.
115
+ * @param b - The addend.
116
+ * @param scalar - The multiplier.
117
+ * @param out - The matrix to store the result in.
118
+ * @returns The sum.
119
+ * @see [Matrix addition](https://en.wikipedia.org/wiki/Matrix_addition)
120
+ * @see [Matrix multiplication](https://en.wikipedia.org/wiki/Matrix_multiplication)
121
+ */
122
+ export declare const multiplyScalarAndAdd: <T extends Matrix2Like>(a: Matrix2Like, b: Matrix2Like, scalar: number, out: T) => T;
123
+ /**
124
+ * Subtract one matrix from another.
125
+ * @param a - The minuend.
126
+ * @param b - The subtrahend.
127
+ * @param out - The matrix to store the result in.
128
+ * @returns The difference.
129
+ * @see [Matrix addition](https://en.wikipedia.org/wiki/Matrix_addition)
130
+ */
131
+ export declare const subtract: <T extends Matrix2Like>(a: Matrix2Like, b: Matrix2Like, out: T) => T;
132
+ /**
133
+ * Transpose a matrix.
134
+ * @param matrix - The matrix.
135
+ * @param out - The matrix to store the result in.
136
+ * @returns The transpose of the matrix.
137
+ * @see [Transpose](https://en.wikipedia.org/wiki/Transpose)
138
+ */
139
+ export declare const transpose: <T extends Matrix2Like>(matrix: Matrix2Like, out: T) => T;
140
+ /**
141
+ * Calculate the determinant of a matrix.
142
+ * @param matrix- The matrix.
143
+ * @returns The determinant.
144
+ * @see [Determinant](https://en.wikipedia.org/wiki/Determinant)
145
+ */
146
+ export declare const determinant: (matrix: Matrix2Like) => number;
147
+ /**
148
+ * Reset a matrix to identity.
149
+ * @param out - The matrix to store the result in.
150
+ * @returns The matrix.
151
+ * @see [Identity matrix](https://en.wikipedia.org/wiki/Identity_matrix)
152
+ */
153
+ export declare const identity: <T extends Matrix2Like>(out: T) => T;
154
+ /**
155
+ * Invert a matrix.
156
+ * @param matrix - The matrix.
157
+ * @param out - The matrix to store the result in.
158
+ * @returns The inverted matrix.
159
+ * @see [Invertible matrix](https://en.wikipedia.org/wiki/Invertible_matrix)
160
+ */
161
+ export declare const invert: <T extends Matrix2Like>(matrix: Matrix2Like, out: T) => T;
162
+ /**
163
+ * Rotate a matrix by the given angle.
164
+ * @param matrix - The matrix.
165
+ * @param r - The angle in radians.
166
+ * @param out - The matrix to store the result in.
167
+ * @returns The rotated matrix.
168
+ * @see [Rotation matrix](https://en.wikipedia.org/wiki/Rotation_matrix)
169
+ */
170
+ export declare const rotate: <T extends Matrix2Like>(matrix: Matrix2Like, r: number, out: T) => T;
171
+ /**
172
+ * Scale a matrix by the given vector.
173
+ * @param matrix - The matrix.
174
+ * @param vector - The scaling vector.
175
+ * @param out - The matrix to store the result in.
176
+ * @returns The scaled matrix.
177
+ * @see [Transformation matrix](https://en.wikipedia.org/wiki/Transformation_matrix)
178
+ */
179
+ export declare const scale: <T extends Matrix2Like>(matrix: Matrix2Like, vector: Vector2Like, out: T) => T;
180
+ /**
181
+ * A two-by-two matrix.
182
+ * @see [Matrix](https://en.wikipedia.org/wiki/Matrix_(mathematics))
183
+ */
184
+ export default class Matrix2 extends Float32Array implements SquareMatrix, Matrix2Like {
185
+ /**
186
+ * Create a transformation matrix that represents a rotation by the given angle around the Z-axis.
187
+ * @param r - The angle in radians.
188
+ * @param out - The matrix to store the result in.
189
+ * @returns The transformation matrix.
190
+ * @see [Rotation matrix](https://en.wikipedia.org/wiki/Rotation_matrix)
191
+ */
192
+ static fromRotation<T extends Matrix2Like>(r: number, out?: T): T;
193
+ /**
194
+ * Create a transformation matrix that represents a scaling by the given vector.
195
+ * @param vector - The scaling vector.
196
+ * @param out - The matrix to store the result in.
197
+ * @returns The transformation matrix.
198
+ * @see [Transformation matrix](https://en.wikipedia.org/wiki/Transformation_matrix)
199
+ */
200
+ static fromScaling<T extends Matrix2Like>(vector: Vector2Like, out?: T): T;
201
+ /**
202
+ * Create a two-by-two matrix with the given values.
203
+ * @param c0r0 - The value in the first column and first row.
204
+ * @param c0r1 - The value in the first column and second row.
205
+ * @param c1r0 - The value in the second column and first row.
206
+ * @param c1r1 - The value in the second column and second row.
207
+ * @param out - The matrix to store the result in.
208
+ * @returns The matrix.
209
+ */
210
+ static fromValues<T extends Matrix2Like>(c0r0: number, c0r1: number, c1r0: number, c1r1: number, out?: T): T;
211
+ /**
212
+ * Create a two-by-two identity matrix.
213
+ * @see [Identity matrix](https://en.wikipedia.org/wiki/Identity_matrix)
214
+ */
31
215
  constructor();
216
+ /** The value in the first column and first row. */
217
+ 0: number;
218
+ /** The value in the first column and second row. */
219
+ 1: number;
220
+ /** The value in the second column and first row. */
221
+ 2: number;
222
+ /** The value in the second column and second row. */
223
+ 3: number;
224
+ /** The number of columns in this matrix. */
32
225
  readonly width: 2;
226
+ /** The number of rows in this matrix. */
33
227
  readonly height: 2;
228
+ /**
229
+ * Determine whether or not this matrix is roughly equivalent to another.
230
+ * @param matrix - The other matrix.
231
+ * @returns Whether the matrices are equivalent.
232
+ */
34
233
  equals(matrix: Matrix2Like): boolean;
234
+ /**
235
+ * Determine whether or not this matrix is exactly equivalent to another.
236
+ * @param matrix - The other matrix.
237
+ * @returns Whether the matrices are equivalent.
238
+ */
35
239
  exactEquals(matrix: Matrix2Like): boolean;
36
- add(matrix: Matrix2Like): Matrix2;
37
- add<T extends Matrix2Like>(matrix: Matrix2Like, out: T): T;
38
- adjoint(): Matrix2;
39
- adjoint<T extends Matrix2Like>(out: T): T;
40
- clone(): Matrix2;
41
- clone<T extends Matrix2Like>(out: T): T;
240
+ /**
241
+ * Add another matrix to this one.
242
+ * @param matrix - The other matrix.
243
+ * @param out - The matrix to store the result in.
244
+ * @returns The sum of the matrices.
245
+ * @see [Matrix addition](https://en.wikipedia.org/wiki/Matrix_addition)
246
+ */
247
+ add<T extends Matrix2Like>(matrix: Matrix2Like, out?: T): T;
248
+ /**
249
+ * Calculate the adjugate of this matrix.
250
+ * @param out - The matrix to store the result in.
251
+ * @returns The adjugate of this matrix.
252
+ * @see [Adjugate matrix](https://en.wikipedia.org/wiki/Adjugate_matrix)
253
+ */
254
+ adjoint<T extends Matrix2Like>(out?: T): T;
255
+ /**
256
+ * Copy the values from this matrix to another one.
257
+ * @param out - The matrix to store the result in.
258
+ * @returns The copy.
259
+ */
260
+ clone<T extends Matrix2Like>(out?: T): T;
261
+ /**
262
+ * Copy the values of another matrix into this one.
263
+ * @param matrix - The matrix to copy.
264
+ * @returns This matrix.
265
+ */
42
266
  copy(matrix: Matrix2Like): this;
267
+ /**
268
+ * Get the Frobenius norm of this matrix.
269
+ * @see [Matrix norm](https://en.wikipedia.org/wiki/Matrix_norm)
270
+ */
43
271
  get frob(): number;
44
- multiply(matrix: Matrix2Like): Matrix2;
45
- multiply<T extends Matrix2Like>(matrix: Matrix2Like, out: T): T;
46
- multiplyScalar(scalar: number): Matrix2;
47
- multiplyScalar<T extends Matrix2Like>(scalar: number, out: T): T;
48
- multiplyScalarAndAdd(matrix: Matrix2Like, scalar: number): Matrix2;
49
- multiplyScalarAndAdd<T extends Matrix2Like>(matrix: Matrix2Like, scalar: number, out: T): T;
50
- subtract(matrix: Matrix2Like): Matrix2;
51
- subtract<T extends Matrix2Like>(matrix: Matrix2Like, out: T): T;
52
- transpose(): Matrix2;
53
- transpose<T extends Matrix2Like>(out: T): T;
272
+ /**
273
+ * Multiply this matrix by another.
274
+ * @param matrix - The other matrix.
275
+ * @param out - The matrix to store the result in.
276
+ * @returns The product of the matrices.
277
+ * @see [Matrix multiplication](https://en.wikipedia.org/wiki/Matrix_multiplication)
278
+ */
279
+ multiply<T extends Matrix2Like>(matrix: Matrix2Like, out?: T): T;
280
+ /**
281
+ * Multiply this matrix by a scalar value.
282
+ * @param scalar - The scalar value.
283
+ * @param out - The matrix to store the result in.
284
+ * @returns The product of the matrix and the scalar value.
285
+ * @see [Matrix multiplication](https://en.wikipedia.org/wiki/Matrix_multiplication)
286
+ */
287
+ multiplyScalar<T extends Matrix2Like>(scalar: number, out?: T): T;
288
+ /**
289
+ * Add this matrix to another after multiplying the other by a scalar.
290
+ * @param matrix - The other matrix.
291
+ * @param scalar - The scalar.
292
+ * @param out - The matrix to store the result in.
293
+ * @returns The sum.
294
+ * @see [Matrix addition](https://en.wikipedia.org/wiki/Matrix_addition)
295
+ * @see [Matrix multiplication](https://en.wikipedia.org/wiki/Matrix_multiplication)
296
+ */
297
+ multiplyScalarAndAdd<T extends Matrix2Like>(matrix: Matrix2Like, scalar: number, out?: T): T;
298
+ /**
299
+ * Subtract another matrix from this one.
300
+ * @param matrix - The other matrix.
301
+ * @param out - The matrix to store the result in.
302
+ * @returns The difference between the matrices.
303
+ * @see [Matrix addition](https://en.wikipedia.org/wiki/Matrix_addition)
304
+ */
305
+ subtract<T extends Matrix2Like>(matrix: Matrix2Like, out?: T): T;
306
+ /**
307
+ * Transpose this matrix.
308
+ * @param out - The matrix to store the result in.
309
+ * @returns The transpose of this matrix.
310
+ * @see [Transpose](https://en.wikipedia.org/wiki/Transpose)
311
+ */
312
+ transpose<T extends Matrix2Like>(out?: T): T;
313
+ /**
314
+ * Get the determinant of this matrix.
315
+ * @see [Determinant](https://en.wikipedia.org/wiki/Determinant)
316
+ */
54
317
  get determinant(): number;
318
+ /**
319
+ * Reset this matrix to identity.
320
+ * @returns This matrix.
321
+ * @see [Identity matrix](https://en.wikipedia.org/wiki/Identity_matrix)
322
+ */
55
323
  identity(): this;
56
- invert(): Matrix2;
57
- invert<T extends Matrix2Like>(out: T): T;
58
- rotate(radians: number): Matrix2;
59
- rotate<T extends Matrix2Like>(radians: number, out: T): T;
60
- scale(v: Vector2Like): Matrix2;
61
- scale<T extends Matrix2Like>(vector: Vector2Like, out: T): T;
324
+ /**
325
+ * Invert this matrix.
326
+ * @param out - The matrix to store the result in.
327
+ * @returns The inverted matrix.
328
+ * @see [Invertible matrix](https://en.wikipedia.org/wiki/Invertible_matrix)
329
+ */
330
+ invert<T extends Matrix2Like>(out?: T): T;
331
+ /**
332
+ * Rotate this matrix by the given angle.
333
+ * @param r - The angle in radians.
334
+ * @param out - The matrix to store the result in.
335
+ * @returns The rotated matrix.
336
+ * @see [Rotation matrix](https://en.wikipedia.org/wiki/Rotation_matrix)
337
+ */
338
+ rotate<T extends Matrix2Like>(r: number, out?: T): T;
339
+ /**
340
+ * Scale this matrix by the given vector.
341
+ * @param vector - The scaling vector.
342
+ * @param out - The matrix to store the result in.
343
+ * @returns The scaled matrix.
344
+ * @see [Transformation matrix](https://en.wikipedia.org/wiki/Transformation_matrix)
345
+ */
346
+ scale<T extends Matrix2Like>(vector: Vector2Like, out?: T): T;
62
347
  }
63
348
  //# 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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"}