UNPKG

@thi.ng/vectors

Version:

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

16 lines (15 loc) 521 B
import { unsupported } from "@thi.ng/errors/unsupported"; const vop = (dispatch = 1, fallback, ...optimized) => { const impls = [, ,].concat(optimized); const fn = (...args) => { const g = impls[args[dispatch].length] || fallback; return g ? g(...args) : unsupported(`no impl for vec size ${args[dispatch].length}`); }; fn.add = (dim, fn2) => impls[dim] = fn2; fn.default = (fn2) => fallback = fn2; fn.impl = (dim) => dim != null ? impls[dim] || fallback : fallback; return fn; }; export { vop };