@thi.ng/vectors
Version:
Optimized 2d/3d/4d and arbitrary length vector operations, support for memory mapping/layouts
32 lines (31 loc) • 639 B
JavaScript
import { max2id, max3id, max4id } from "@thi.ng/math/interval";
import { vop } from "./vop.js";
const abs = Math.abs;
const major = vop();
major.default((a) => {
let id = -1;
let max = -Infinity;
for (let i = 0, n = a.length; i < n; i++) {
const x = abs(a[i]);
if (x > max) {
max = x;
id = i;
}
}
return id;
});
const major2 = major.add(2, (a) => max2id(abs(a[0]), abs(a[1])));
const major3 = major.add(
3,
(a) => max3id(abs(a[0]), abs(a[1]), abs(a[2]))
);
const major4 = major.add(
4,
(a) => max4id(abs(a[0]), abs(a[1]), abs(a[2]), abs(a[3]))
);
export {
major,
major2,
major3,
major4
};