UNPKG

@thi.ng/vectors

Version:

Optimized 2d/3d/4d and arbitrary length vector operations, support for memory mapping/layouts

32 lines (31 loc) 638 B
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 };