@lakuna/umath 1.4.3 → 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.
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -1
- package/dist/linalg/DualQuaternion.d.ts +23 -46
- package/dist/linalg/DualQuaternion.d.ts.map +1 -1
- package/dist/linalg/DualQuaternion.js +47 -70
- package/dist/linalg/DualQuaternion.js.map +1 -1
- package/dist/linalg/Matrix2.d.ts +16 -30
- package/dist/linalg/Matrix2.d.ts.map +1 -1
- package/dist/linalg/Matrix2.js +30 -44
- package/dist/linalg/Matrix2.js.map +1 -1
- package/dist/linalg/Matrix3.d.ts +21 -42
- package/dist/linalg/Matrix3.d.ts.map +1 -1
- package/dist/linalg/Matrix3.js +43 -84
- package/dist/linalg/Matrix3.js.map +1 -1
- package/dist/linalg/Matrix4.d.ts +40 -79
- package/dist/linalg/Matrix4.d.ts.map +1 -1
- package/dist/linalg/Matrix4.js +86 -171
- package/dist/linalg/Matrix4.js.map +1 -1
- package/dist/linalg/Quaternion.d.ts +29 -60
- package/dist/linalg/Quaternion.d.ts.map +1 -1
- package/dist/linalg/Quaternion.js +54 -85
- package/dist/linalg/Quaternion.js.map +1 -1
- package/dist/linalg/SlowMatrix.d.ts.map +1 -1
- package/dist/linalg/SlowMatrix.js +52 -78
- package/dist/linalg/SlowMatrix.js.map +1 -1
- package/dist/linalg/SlowSquareMatrix.js +1 -1
- package/dist/linalg/SlowSquareMatrix.js.map +1 -1
- package/dist/linalg/SlowVector.d.ts +165 -0
- package/dist/linalg/SlowVector.d.ts.map +1 -0
- package/dist/linalg/SlowVector.js +369 -0
- package/dist/linalg/SlowVector.js.map +1 -0
- package/dist/linalg/Vector.d.ts +20 -15
- package/dist/linalg/Vector.d.ts.map +1 -1
- package/dist/linalg/Vector2.d.ts +42 -48
- package/dist/linalg/Vector2.d.ts.map +1 -1
- package/dist/linalg/Vector2.js +74 -82
- package/dist/linalg/Vector2.js.map +1 -1
- package/dist/linalg/Vector3.d.ts +46 -56
- package/dist/linalg/Vector3.d.ts.map +1 -1
- package/dist/linalg/Vector3.js +82 -104
- package/dist/linalg/Vector3.js.map +1 -1
- package/dist/linalg/Vector4.d.ts +40 -44
- package/dist/linalg/Vector4.d.ts.map +1 -1
- package/dist/linalg/Vector4.js +69 -79
- package/dist/linalg/Vector4.js.map +1 -1
- package/dist/utility/MatrixSizeError.d.ts +1 -1
- package/dist/utility/MatrixSizeError.d.ts.map +1 -1
- package/dist/utility/MatrixSizeError.js +1 -1
- package/dist/utility/MatrixSizeError.js.map +1 -1
- package/dist/utility/VectorSizeError.d.ts +12 -0
- package/dist/utility/VectorSizeError.d.ts.map +1 -0
- package/dist/utility/VectorSizeError.js +15 -0
- package/dist/utility/VectorSizeError.js.map +1 -0
- package/dist/utility/createAxisAngleLike.d.ts +10 -0
- package/dist/utility/createAxisAngleLike.d.ts.map +1 -0
- package/dist/utility/createAxisAngleLike.js +10 -0
- package/dist/utility/createAxisAngleLike.js.map +1 -0
- package/package.json +8 -10
- package/src/index.ts +16 -0
- package/src/linalg/DualQuaternion.ts +51 -134
- package/src/linalg/Matrix2.ts +32 -83
- package/src/linalg/Matrix3.ts +55 -149
- package/src/linalg/Matrix4.ts +136 -292
- package/src/linalg/Quaternion.ts +62 -153
- package/src/linalg/SlowMatrix.ts +82 -81
- package/src/linalg/SlowSquareMatrix.ts +1 -1
- package/src/linalg/SlowVector.ts +449 -0
- package/src/linalg/Vector.ts +21 -16
- package/src/linalg/Vector2.ts +84 -147
- package/src/linalg/Vector3.ts +102 -188
- package/src/linalg/Vector4.ts +88 -137
- package/src/utility/MatrixSizeError.ts +1 -1
- package/src/utility/VectorSizeError.ts +14 -0
- package/src/utility/createAxisAngleLike.ts +13 -0
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
import MatrixSizeError from "../utility/MatrixSizeError.js";
|
|
2
2
|
import PartialMatrixError from "../utility/PartialMatrixError.js";
|
|
3
|
-
import
|
|
3
|
+
import approx from "../algorithms/approx.js";
|
|
4
|
+
/**
|
|
5
|
+
* Determine whether the given `MatrixLike` has size information.
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
const isSized = (matrix) => "width" in matrix &&
|
|
9
|
+
typeof matrix.width === "number" &&
|
|
10
|
+
"height" in matrix &&
|
|
11
|
+
typeof matrix.height === "number";
|
|
4
12
|
/**
|
|
5
13
|
* A variable-size matrix.
|
|
6
14
|
* @see {@link https://en.wikipedia.org/wiki/Matrix_(mathematics) | Matrix}
|
|
@@ -14,14 +22,7 @@ export default class SlowMatrix extends Float32Array {
|
|
|
14
22
|
constructor(...cols) {
|
|
15
23
|
super(cols.flat());
|
|
16
24
|
this.width = cols.length;
|
|
17
|
-
|
|
18
|
-
if (typeof firstColumn === "undefined") {
|
|
19
|
-
throw new PartialMatrixError();
|
|
20
|
-
}
|
|
21
|
-
this.height = this.width && firstColumn.length;
|
|
22
|
-
if (this.width < 1 || this.height < 1) {
|
|
23
|
-
throw new MatrixSizeError();
|
|
24
|
-
}
|
|
25
|
+
this.height = cols[0]?.length ?? 0;
|
|
25
26
|
// Ensure that every column is the same height.
|
|
26
27
|
for (let i = 0; i < this.width; i++) {
|
|
27
28
|
if ((cols[i]?.length ?? 0) !== this.height) {
|
|
@@ -47,20 +48,16 @@ export default class SlowMatrix extends Float32Array {
|
|
|
47
48
|
* @see {@link https://en.wikipedia.org/wiki/Matrix_addition | Matrix addition}
|
|
48
49
|
*/
|
|
49
50
|
add(matrix) {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
51
|
+
if (!isSized(matrix) ||
|
|
52
|
+
this.width !== matrix.width ||
|
|
53
|
+
this.height !== matrix.height) {
|
|
53
54
|
throw new MatrixSizeError();
|
|
54
55
|
}
|
|
55
56
|
const cols = [];
|
|
56
57
|
for (let x = 0; x < this.width; x++) {
|
|
57
58
|
for (let y = 0; y < this.height; y++) {
|
|
58
|
-
const
|
|
59
|
-
|
|
60
|
-
if (typeof a === "undefined" || typeof b === "undefined") {
|
|
61
|
-
throw new PartialMatrixError();
|
|
62
|
-
}
|
|
63
|
-
(cols[x] ??= [])[y] = a + b;
|
|
59
|
+
const i = x * this.height + y;
|
|
60
|
+
(cols[x] ??= [])[y] = (this[i] ?? 0) + (matrix[i] ?? 0);
|
|
64
61
|
}
|
|
65
62
|
}
|
|
66
63
|
return new SlowMatrix(...cols);
|
|
@@ -73,11 +70,7 @@ export default class SlowMatrix extends Float32Array {
|
|
|
73
70
|
const cols = [];
|
|
74
71
|
for (let x = 0; x < this.width; x++) {
|
|
75
72
|
for (let y = 0; y < this.height; y++) {
|
|
76
|
-
|
|
77
|
-
if (typeof a === "undefined") {
|
|
78
|
-
throw new PartialMatrixError();
|
|
79
|
-
}
|
|
80
|
-
(cols[x] ??= [])[y] = a;
|
|
73
|
+
(cols[x] ??= [])[y] = this[x * this.height + y] ?? 0;
|
|
81
74
|
}
|
|
82
75
|
}
|
|
83
76
|
return new SlowMatrix(...cols);
|
|
@@ -88,19 +81,13 @@ export default class SlowMatrix extends Float32Array {
|
|
|
88
81
|
* @returns This matrix.
|
|
89
82
|
*/
|
|
90
83
|
copy(matrix) {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
84
|
+
if (!isSized(matrix) ||
|
|
85
|
+
this.width !== matrix.width ||
|
|
86
|
+
this.height !== matrix.height) {
|
|
94
87
|
throw new MatrixSizeError();
|
|
95
88
|
}
|
|
96
|
-
for (let
|
|
97
|
-
|
|
98
|
-
const a = matrix[x * this.height + y];
|
|
99
|
-
if (typeof a === "undefined") {
|
|
100
|
-
throw new PartialMatrixError();
|
|
101
|
-
}
|
|
102
|
-
this[x * this.width + y] = a;
|
|
103
|
-
}
|
|
89
|
+
for (let i = 0; i < matrix.width * matrix.height; i++) {
|
|
90
|
+
this[i] = matrix[i] ?? 0;
|
|
104
91
|
}
|
|
105
92
|
return this;
|
|
106
93
|
}
|
|
@@ -110,18 +97,13 @@ export default class SlowMatrix extends Float32Array {
|
|
|
110
97
|
* @returns Whether or not the matrices are equivalent.
|
|
111
98
|
*/
|
|
112
99
|
equals(matrix) {
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
100
|
+
if (!isSized(matrix) ||
|
|
101
|
+
this.width !== matrix.width ||
|
|
102
|
+
this.height !== matrix.height) {
|
|
116
103
|
return false;
|
|
117
104
|
}
|
|
118
105
|
for (let i = 0; i < this.length; i++) {
|
|
119
|
-
|
|
120
|
-
const b = matrix[i];
|
|
121
|
-
if (typeof a === "undefined" || typeof b === "undefined") {
|
|
122
|
-
throw new PartialMatrixError();
|
|
123
|
-
}
|
|
124
|
-
if (Math.abs(a - b) > epsilon) {
|
|
106
|
+
if (approx(this[i] ?? 0, matrix[i] ?? 0)) {
|
|
125
107
|
return false;
|
|
126
108
|
}
|
|
127
109
|
}
|
|
@@ -133,9 +115,9 @@ export default class SlowMatrix extends Float32Array {
|
|
|
133
115
|
* @returns Whether the matrices are equivalent.
|
|
134
116
|
*/
|
|
135
117
|
exactEquals(matrix) {
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
118
|
+
if (!isSized(matrix) ||
|
|
119
|
+
this.width !== matrix.width ||
|
|
120
|
+
this.height !== matrix.height) {
|
|
139
121
|
return false;
|
|
140
122
|
}
|
|
141
123
|
for (let i = 0; i < this.length; i++) {
|
|
@@ -152,25 +134,20 @@ export default class SlowMatrix extends Float32Array {
|
|
|
152
134
|
* @see {@link https://en.wikipedia.org/wiki/Matrix_multiplication | Matrix multiplication}
|
|
153
135
|
*/
|
|
154
136
|
multiply(matrix) {
|
|
155
|
-
|
|
156
|
-
const matrixHeight = "height" in matrix ? matrix.height : 1;
|
|
157
|
-
if (this.width !== matrixHeight) {
|
|
137
|
+
if (!isSized(matrix) || this.width !== matrix.height) {
|
|
158
138
|
throw new MatrixSizeError();
|
|
159
139
|
}
|
|
160
140
|
const n = this.height;
|
|
161
141
|
const m = this.width;
|
|
162
|
-
const p =
|
|
142
|
+
const p = matrix.width;
|
|
163
143
|
const out = [];
|
|
164
144
|
for (let i = 0; i < n; i++) {
|
|
165
145
|
for (let j = 0; j < p; j++) {
|
|
166
146
|
let sum = 0;
|
|
167
147
|
for (let k = 0; k < m; k++) {
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
throw new PartialMatrixError();
|
|
172
|
-
}
|
|
173
|
-
sum += a * b;
|
|
148
|
+
sum +=
|
|
149
|
+
(this[k * this.height + i] ?? 0) *
|
|
150
|
+
(matrix[j * matrix.height + k] ?? 0);
|
|
174
151
|
}
|
|
175
152
|
(out[j] ??= [])[i] = sum;
|
|
176
153
|
}
|
|
@@ -186,11 +163,7 @@ export default class SlowMatrix extends Float32Array {
|
|
|
186
163
|
multiplyScalar(scalar) {
|
|
187
164
|
const out = this.clone();
|
|
188
165
|
for (let i = 0; i < out.length; i++) {
|
|
189
|
-
|
|
190
|
-
if (typeof a === "undefined") {
|
|
191
|
-
throw new PartialMatrixError();
|
|
192
|
-
}
|
|
193
|
-
out[i] = a * scalar;
|
|
166
|
+
out[i] = (out[i] ?? 0) * scalar;
|
|
194
167
|
}
|
|
195
168
|
return out;
|
|
196
169
|
}
|
|
@@ -203,10 +176,19 @@ export default class SlowMatrix extends Float32Array {
|
|
|
203
176
|
* @see {@link https://en.wikipedia.org/wiki/Matrix_multiplication | Matrix multiplication}
|
|
204
177
|
*/
|
|
205
178
|
multiplyScalarAndAdd(matrix, scalar) {
|
|
206
|
-
if (!(
|
|
207
|
-
|
|
179
|
+
if (!isSized(matrix) ||
|
|
180
|
+
this.width !== matrix.width ||
|
|
181
|
+
this.height !== matrix.height) {
|
|
182
|
+
throw new MatrixSizeError();
|
|
183
|
+
}
|
|
184
|
+
const scaled = {
|
|
185
|
+
height: matrix.height,
|
|
186
|
+
width: matrix.width
|
|
187
|
+
};
|
|
188
|
+
for (let i = 0; i < matrix.width * matrix.height; i++) {
|
|
189
|
+
scaled[i] = (matrix[i] ?? 0) * scalar;
|
|
208
190
|
}
|
|
209
|
-
return this.add(
|
|
191
|
+
return this.add(scaled);
|
|
210
192
|
}
|
|
211
193
|
/**
|
|
212
194
|
* Subtract another matrix from this one.
|
|
@@ -215,20 +197,16 @@ export default class SlowMatrix extends Float32Array {
|
|
|
215
197
|
* @see {@link https://en.wikipedia.org/wiki/Matrix_addition | Matrix addition}
|
|
216
198
|
*/
|
|
217
199
|
subtract(matrix) {
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
200
|
+
if (!isSized(matrix) ||
|
|
201
|
+
this.width !== matrix.width ||
|
|
202
|
+
this.height !== matrix.height) {
|
|
221
203
|
throw new MatrixSizeError();
|
|
222
204
|
}
|
|
223
205
|
const cols = [];
|
|
224
206
|
for (let x = 0; x < this.width; x++) {
|
|
225
207
|
for (let y = 0; y < this.height; y++) {
|
|
226
|
-
const
|
|
227
|
-
|
|
228
|
-
if (typeof a === "undefined" || typeof b === "undefined") {
|
|
229
|
-
throw new PartialMatrixError();
|
|
230
|
-
}
|
|
231
|
-
(cols[x] ??= [])[y] = a - b;
|
|
208
|
+
const i = x * this.height + y;
|
|
209
|
+
(cols[x] ??= [])[y] = (this[i] ?? 0) - (matrix[i] ?? 0);
|
|
232
210
|
}
|
|
233
211
|
}
|
|
234
212
|
return new SlowMatrix(...cols);
|
|
@@ -242,11 +220,7 @@ export default class SlowMatrix extends Float32Array {
|
|
|
242
220
|
const cols = [];
|
|
243
221
|
for (let x = 0; x < this.width; x++) {
|
|
244
222
|
for (let y = 0; y < this.height; y++) {
|
|
245
|
-
|
|
246
|
-
if (typeof a === "undefined") {
|
|
247
|
-
throw new PartialMatrixError();
|
|
248
|
-
}
|
|
249
|
-
(cols[y] ??= [])[x] = a;
|
|
223
|
+
(cols[y] ??= [])[x] = this[x * this.height + y] ?? 0;
|
|
250
224
|
}
|
|
251
225
|
}
|
|
252
226
|
return new SlowMatrix(...cols);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SlowMatrix.js","sourceRoot":"","sources":["../../src/linalg/SlowMatrix.ts"],"names":[],"mappings":"AACA,OAAO,eAAe,MAAM,+BAA+B,CAAC;AAC5D,OAAO,kBAAkB,MAAM,kCAAkC,CAAC;AAClE,OAAO,
|
|
1
|
+
{"version":3,"file":"SlowMatrix.js","sourceRoot":"","sources":["../../src/linalg/SlowMatrix.ts"],"names":[],"mappings":"AACA,OAAO,eAAe,MAAM,+BAA+B,CAAC;AAC5D,OAAO,kBAAkB,MAAM,kCAAkC,CAAC;AAClE,OAAO,MAAM,MAAM,yBAAyB,CAAC;AAc7C;;;GAGG;AACH,MAAM,OAAO,GAAG,CAAC,MAAkB,EAA6B,EAAE,CACjE,OAAO,IAAI,MAAM;IACjB,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ;IAChC,QAAQ,IAAI,MAAM;IAClB,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC;AAEnC;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,YAAY;IACnD;;;OAGG;IACH,YAAmB,GAAG,IAAgB;QACrC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAEnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC;QAEnC,+CAA+C;QAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC5C,MAAM,IAAI,kBAAkB,EAAE,CAAC;YAChC,CAAC;QACF,CAAC;IACF,CAAC;IAED,yCAAyC;IACzB,MAAM,CAAS;IAE/B,4CAA4C;IAC5B,KAAK,CAAS;IAE9B;;;OAGG;IACH,IAAW,IAAI;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED;;;;;OAKG;IACI,GAAG,CAAC,MAAkB;QAC5B,IACC,CAAC,OAAO,CAAC,MAAM,CAAC;YAChB,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK;YAC3B,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAC5B,CAAC;YACF,MAAM,IAAI,eAAe,EAAE,CAAC;QAC7B,CAAC;QAED,MAAM,IAAI,GAAe,EAAE,CAAC;QAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC9B,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACzD,CAAC;QACF,CAAC;QAED,OAAO,IAAI,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC;IAChC,CAAC;IAED;;;OAGG;IACI,KAAK;QACX,MAAM,IAAI,GAAe,EAAE,CAAC;QAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;YACtD,CAAC;QACF,CAAC;QAED,OAAO,IAAI,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACI,IAAI,CAAC,MAAkB;QAC7B,IACC,CAAC,OAAO,CAAC,MAAM,CAAC;YAChB,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK;YAC3B,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAC5B,CAAC;YACF,MAAM,IAAI,eAAe,EAAE,CAAC;QAC7B,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvD,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,MAAkB;QAC/B,IACC,CAAC,OAAO,CAAC,MAAM,CAAC;YAChB,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK;YAC3B,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAC5B,CAAC;YACF,OAAO,KAAK,CAAC;QACd,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBAC1C,OAAO,KAAK,CAAC;YACd,CAAC;QACF,CAAC;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;OAIG;IACI,WAAW,CAAC,MAAkB;QACpC,IACC,CAAC,OAAO,CAAC,MAAM,CAAC;YAChB,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK;YAC3B,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAC5B,CAAC;YACF,OAAO,KAAK,CAAC;QACd,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3B,OAAO,KAAK,CAAC;YACd,CAAC;QACF,CAAC;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;;OAKG;IACI,QAAQ,CAAC,MAAkB;QACjC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;YACtD,MAAM,IAAI,eAAe,EAAE,CAAC;QAC7B,CAAC;QAED,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QACtB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QACrB,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;QAEvB,MAAM,GAAG,GAAe,EAAE,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5B,IAAI,GAAG,GAAG,CAAC,CAAC;gBACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC5B,GAAG;wBACF,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;4BAChC,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBACvC,CAAC;gBAED,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;YAC1B,CAAC;QACF,CAAC;QAED,OAAO,IAAI,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED;;;;;OAKG;IACI,cAAc,CAAC,MAAc;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC;QACjC,CAAC;QAED,OAAO,GAAG,CAAC;IACZ,CAAC;IAED;;;;;;;OAOG;IACI,oBAAoB,CAAC,MAAkB,EAAE,MAAc;QAC7D,IACC,CAAC,OAAO,CAAC,MAAM,CAAC;YAChB,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK;YAC3B,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAC5B,CAAC;YACF,MAAM,IAAI,eAAe,EAAE,CAAC;QAC7B,CAAC;QAED,MAAM,MAAM,GAAoB;YAC/B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,KAAK,EAAE,MAAM,CAAC,KAAK;SACnB,CAAC;QACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC;QACvC,CAAC;QAED,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC;IAED;;;;;OAKG;IACI,QAAQ,CAAC,MAAkB;QACjC,IACC,CAAC,OAAO,CAAC,MAAM,CAAC;YAChB,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK;YAC3B,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAC5B,CAAC;YACF,MAAM,IAAI,eAAe,EAAE,CAAC;QAC7B,CAAC;QAED,MAAM,IAAI,GAAe,EAAE,CAAC;QAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC9B,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACzD,CAAC;QACF,CAAC;QAED,OAAO,IAAI,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACI,SAAS;QACf,MAAM,IAAI,GAAe,EAAE,CAAC;QAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;YACtD,CAAC;QACF,CAAC;QAED,OAAO,IAAI,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC;IAChC,CAAC;CACD"}
|
|
@@ -17,7 +17,7 @@ export default class SlowSquareMatrix extends SlowMatrix {
|
|
|
17
17
|
// Ensure that every column is the same height and that the height is equal to the width.
|
|
18
18
|
for (let i = 0; i < this.width; i++) {
|
|
19
19
|
const col = cols[i];
|
|
20
|
-
if (
|
|
20
|
+
if (col?.length !== this.height) {
|
|
21
21
|
throw new MatrixSizeError();
|
|
22
22
|
}
|
|
23
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SlowSquareMatrix.js","sourceRoot":"","sources":["../../src/linalg/SlowSquareMatrix.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,+BAA+B,CAAC;AAC5D,OAAO,mBAAmB,MAAM,mCAAmC,CAAC;AACpE,OAAO,UAAU,MAAM,iBAAiB,CAAC;AAGzC;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,gBACpB,SAAQ,UAAU;IAGlB;;;;OAIG;IACH,YAAmB,GAAG,IAAgB;QACrC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;QAEf,yFAAyF;QACzF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,IAAI,
|
|
1
|
+
{"version":3,"file":"SlowSquareMatrix.js","sourceRoot":"","sources":["../../src/linalg/SlowSquareMatrix.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import type Vector from "./Vector.js";
|
|
2
|
+
import type { VectorLike } from "./Vector.js";
|
|
3
|
+
/**
|
|
4
|
+
* A variable-size vector.
|
|
5
|
+
* @see {@link https://en.wikipedia.org/wiki/Euclidean_vector | Euclidean vector}
|
|
6
|
+
* @public
|
|
7
|
+
*/
|
|
8
|
+
export default class SlowVector extends Float32Array implements Vector {
|
|
9
|
+
/**
|
|
10
|
+
* Create a variable-size vector from the given values.
|
|
11
|
+
* @param values - The values in the vector.
|
|
12
|
+
*/
|
|
13
|
+
constructor(...values: number[]);
|
|
14
|
+
/**
|
|
15
|
+
* Determine whether this vector is roughly equivalent to another.
|
|
16
|
+
* @param vector - The other vector.
|
|
17
|
+
* @returns Whether the vectors are equivalent.
|
|
18
|
+
*/
|
|
19
|
+
equals(vector: VectorLike): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Determine whether this vector is exactly equivalent to another.
|
|
22
|
+
* @param vector - The other vector.
|
|
23
|
+
* @returns Whether the vectors are equivalent.
|
|
24
|
+
*/
|
|
25
|
+
exactEquals(vector: VectorLike): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Add two vectors of the same size.
|
|
28
|
+
* @param vector - The other vector.
|
|
29
|
+
* @returns The sum of the vectors.
|
|
30
|
+
*/
|
|
31
|
+
add(vector: VectorLike): SlowVector;
|
|
32
|
+
/**
|
|
33
|
+
* Create a copy of this vector.
|
|
34
|
+
* @returns A copy of this vector.
|
|
35
|
+
*/
|
|
36
|
+
clone(): SlowVector;
|
|
37
|
+
/**
|
|
38
|
+
* Copy the values of another vector into this one.
|
|
39
|
+
* @param vector - The vector to copy.
|
|
40
|
+
* @returns This vector.
|
|
41
|
+
*/
|
|
42
|
+
copy(vector: VectorLike): this;
|
|
43
|
+
/**
|
|
44
|
+
* Multiply this vector by another.
|
|
45
|
+
* @param vector - The other vector.
|
|
46
|
+
* @returns The product of the vectors.
|
|
47
|
+
*/
|
|
48
|
+
multiply(vector: VectorLike): SlowVector;
|
|
49
|
+
/**
|
|
50
|
+
* Divide this vector by another.
|
|
51
|
+
* @param vector - The other vector.
|
|
52
|
+
* @returns The quotient of the vectors.
|
|
53
|
+
*/
|
|
54
|
+
divide(vector: VectorLike): SlowVector;
|
|
55
|
+
/**
|
|
56
|
+
* Subtract another vector from this one.
|
|
57
|
+
* @param vector - The other vector.
|
|
58
|
+
* @returns The difference between the vectors.
|
|
59
|
+
*/
|
|
60
|
+
subtract(vector: VectorLike): SlowVector;
|
|
61
|
+
/**
|
|
62
|
+
* Round up the components of this vector.
|
|
63
|
+
* @returns The rounded vector.
|
|
64
|
+
*/
|
|
65
|
+
ceil(): SlowVector;
|
|
66
|
+
/**
|
|
67
|
+
* Round down the components of this vector.
|
|
68
|
+
* @returns The rounded vector.
|
|
69
|
+
*/
|
|
70
|
+
floor(): SlowVector;
|
|
71
|
+
/**
|
|
72
|
+
* Round the components of this vector.
|
|
73
|
+
* @returns The rounded vector.
|
|
74
|
+
*/
|
|
75
|
+
round(): SlowVector;
|
|
76
|
+
/**
|
|
77
|
+
* Return the minimum of this and another vector.
|
|
78
|
+
* @param vector - The other vector.
|
|
79
|
+
* @returns The minimum.
|
|
80
|
+
*/
|
|
81
|
+
min(vector: VectorLike): SlowVector;
|
|
82
|
+
/**
|
|
83
|
+
* Return the maximum of this and another vector.
|
|
84
|
+
* @param vector - The other vector.
|
|
85
|
+
* @returns The maximum.
|
|
86
|
+
*/
|
|
87
|
+
max(vector: VectorLike): SlowVector;
|
|
88
|
+
/**
|
|
89
|
+
* Raise each component of this vector to the given power.
|
|
90
|
+
* @param exponent - The exponent (power) to raise each component to.
|
|
91
|
+
* @returns The power (result of the exponentiation).
|
|
92
|
+
*/
|
|
93
|
+
pow(exponent: number): SlowVector;
|
|
94
|
+
/**
|
|
95
|
+
* Scale this vector by a scalar.
|
|
96
|
+
* @param scalar - The scalar.
|
|
97
|
+
* @returns The scaled vector.
|
|
98
|
+
*/
|
|
99
|
+
scale(scalar: number): SlowVector;
|
|
100
|
+
/**
|
|
101
|
+
* Add another vector to this one after scaling the other by a scalar.
|
|
102
|
+
* @param vector - The other vector.
|
|
103
|
+
* @param scalar - The scalar.
|
|
104
|
+
* @returns The sum.
|
|
105
|
+
*/
|
|
106
|
+
scaleAndAdd(vector: VectorLike, scalar: number): SlowVector;
|
|
107
|
+
/**
|
|
108
|
+
* Calculate the Euclidean distance between this vector and another.
|
|
109
|
+
* @param vector - The other vector.
|
|
110
|
+
* @returns The distance.
|
|
111
|
+
*/
|
|
112
|
+
distance(vector: VectorLike): number;
|
|
113
|
+
/**
|
|
114
|
+
* Calculate the squared Euclidean distance between this vector and another.
|
|
115
|
+
* @param vector - The other vector.
|
|
116
|
+
* @returns The squared distance.
|
|
117
|
+
*/
|
|
118
|
+
squaredDistance(vector: VectorLike): number;
|
|
119
|
+
/** Get the magnitude (length) of this vector. */
|
|
120
|
+
get magnitude(): number;
|
|
121
|
+
/** Get the squared magnitude (length) of this vector. */
|
|
122
|
+
get squaredMagnitude(): number;
|
|
123
|
+
/**
|
|
124
|
+
* Negate this vector.
|
|
125
|
+
* @returns The negated vector.
|
|
126
|
+
*/
|
|
127
|
+
negate(): SlowVector;
|
|
128
|
+
/**
|
|
129
|
+
* Calculate the multiplicative inverse of the components of this vector.
|
|
130
|
+
* @returns The inverted vector.
|
|
131
|
+
*/
|
|
132
|
+
invert(): SlowVector;
|
|
133
|
+
/**
|
|
134
|
+
* Normalize this vector.
|
|
135
|
+
* @returns The normalized vector.
|
|
136
|
+
* @see {@link https://en.wikipedia.org/wiki/Unit_vector | Unit vector}
|
|
137
|
+
*/
|
|
138
|
+
normalize(): SlowVector;
|
|
139
|
+
/**
|
|
140
|
+
* Calculate the dot product of this and another vector.
|
|
141
|
+
* @param vector - The other vector.
|
|
142
|
+
* @returns The dot product.
|
|
143
|
+
* @see {@link https://en.wikipedia.org/wiki/Dot_product | Dot product}
|
|
144
|
+
*/
|
|
145
|
+
dot(vector: VectorLike): number;
|
|
146
|
+
/**
|
|
147
|
+
* Perform a linear interpolation between this and another vector.
|
|
148
|
+
* @param vector - The other vector.
|
|
149
|
+
* @param t - The interpolation amount (in `[0,1]`).
|
|
150
|
+
* @returns The interpolated vector.
|
|
151
|
+
*/
|
|
152
|
+
lerp(vector: VectorLike, t: number): SlowVector;
|
|
153
|
+
/**
|
|
154
|
+
* Set this vector to a random value with the given magnitude.
|
|
155
|
+
* @param magnitude - The magnitude.
|
|
156
|
+
* @returns This vector.
|
|
157
|
+
*/
|
|
158
|
+
random(magnitude: number): this;
|
|
159
|
+
/**
|
|
160
|
+
* Set this to the zero vector.
|
|
161
|
+
* @returns This vector.
|
|
162
|
+
*/
|
|
163
|
+
zero(): this;
|
|
164
|
+
}
|
|
165
|
+
//# sourceMappingURL=SlowVector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SlowVector.d.ts","sourceRoot":"","sources":["../../src/linalg/SlowVector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAoB9C;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,YAAa,YAAW,MAAM;IACrE;;;OAGG;gBACgB,GAAG,MAAM,EAAE,MAAM,EAAE;IAItC;;;;OAIG;IACI,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO;IAoB1C;;;;OAIG;IACI,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO;IAc/C;;;;OAIG;IACI,GAAG,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU;IAa1C;;;OAGG;IACI,KAAK,IAAI,UAAU;IAI1B;;;;OAIG;IACI,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAYrC;;;;OAIG;IACI,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU;IAa/C;;;;OAIG;IACI,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU;IAa7C;;;;OAIG;IACI,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU;IAa/C;;;OAGG;IACI,IAAI,IAAI,UAAU;IASzB;;;OAGG;IACI,KAAK,IAAI,UAAU;IAS1B;;;OAGG;IACI,KAAK,IAAI,UAAU;IAS1B;;;;OAIG;IACI,GAAG,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU;IAa1C;;;;OAIG;IACI,GAAG,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU;IAa1C;;;;OAIG;IACI,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU;IASxC;;;;OAIG;IACI,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU;IASxC;;;;;OAKG;IACI,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU;IAalE;;;;OAIG;IACI,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;IAa3C;;;;OAIG;IACI,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;IAalD,iDAAiD;IACjD,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,yDAAyD;IACzD,IAAW,gBAAgB,IAAI,MAAM,CAOpC;IAED;;;OAGG;IACI,MAAM,IAAI,UAAU;IAI3B;;;OAGG;IACI,MAAM,IAAI,UAAU;IAS3B;;;;OAIG;IACI,SAAS,IAAI,UAAU;IAI9B;;;;;OAKG;IACI,GAAG,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;IAatC;;;;;OAKG;IACI,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU;IActD;;;;OAIG;IACI,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IActC;;;OAGG;IACI,IAAI,IAAI,IAAI;CAOnB"}
|