@thi.ng/vectors
Version:
Optimized 2d/3d/4d and arbitrary length vector operations, support for memory mapping/layouts
32 lines (31 loc) • 638 B
JavaScript
import { min2id, min3id, min4id } from "@thi.ng/math/interval";
import { vop } from "./vop.js";
const abs = Math.abs;
const minor = vop();
minor.default((a) => {
let id = -1;
let min = Infinity;
for (let i = 0, n = a.length; i < n; i++) {
const x = abs(a[i]);
if (x < min) {
min = x;
id = i;
}
}
return id;
});
const minor2 = minor.add(2, (a) => min2id(abs(a[0]), abs(a[1])));
const minor3 = minor.add(
3,
(a) => min3id(abs(a[0]), abs(a[1]), abs(a[2]))
);
const minor4 = minor.add(
4,
(a) => min4id(abs(a[0]), abs(a[1]), abs(a[2]), abs(a[3]))
);
export {
minor,
minor2,
minor3,
minor4
};