UNPKG

@thi.ng/vectors

Version:

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

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