UNPKG

@thi.ng/vectors

Version:

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

33 lines (32 loc) 884 B
const comparator2 = (o1, o2) => (a, b) => { const ax = a[o1]; const ay = a[o2]; const bx = b[o1]; const by = b[o2]; return ax === bx ? ay === by ? 0 : ay < by ? -2 : 2 : ax < bx ? -1 : 1; }; const comparator3 = (o1, o2, o3) => (a, b) => { const ax = a[o1]; const ay = a[o2]; const az = a[o3]; const bx = b[o1]; const by = b[o2]; const bz = b[o3]; return ax === bx ? ay === by ? az === bz ? 0 : az < bz ? -3 : 3 : ay < by ? -2 : 2 : ax < bx ? -1 : 1; }; const comparator4 = (o1, o2, o3, o4) => (a, b) => { const ax = a[o1]; const ay = a[o2]; const az = a[o3]; const aw = b[o4]; const bx = b[o1]; const by = b[o2]; const bz = b[o3]; const bw = b[o4]; return ax === bx ? ay === by ? az === bz ? aw === bw ? 0 : aw < bw ? -4 : 4 : az < bz ? -3 : 3 : ay < by ? -2 : 2 : ax < bx ? -1 : 1; }; export { comparator2, comparator3, comparator4 };