UNPKG

@thi.ng/vectors

Version:

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

31 lines (30 loc) 620 B
import { min2id, min3id, min4id } from "@thi.ng/math/interval"; import { vop } from "./vop.js"; const { abs } = Math; const minor2 = (a) => min2id(abs(a[0]), abs(a[1])); const minor3 = (a) => min3id(abs(a[0]), abs(a[1]), abs(a[2])); const minor4 = (a) => min4id(abs(a[0]), abs(a[1]), abs(a[2]), abs(a[3])); const minor = vop( 0, (a) => { let id = -1; let min = Infinity; for (let i = a.length; i-- > 0; ) { const x = abs(a[i]); if (x < min) { min = x; id = i; } } return id; }, minor2, minor3, minor4 ); export { minor, minor2, minor3, minor4 };