@thi.ng/vectors
Version:
Optimized 2d/3d/4d and arbitrary length vector operations, support for memory mapping/layouts
20 lines (19 loc) • 424 B
JavaScript
import { __ensureInputs } from "./ensure.js";
const median = (out, src) => {
__ensureInputs(src);
out = out || [];
const m = src.length >> 1;
for (let i = src[0].length; i-- > 0; ) {
out[i] = src.map((x) => x[i]).sort((a, b) => a - b)[m];
}
return out;
};
const vmedian = (a) => {
if (!a.length) return 0;
a = [...a].sort((a2, b) => a2 - b);
return a[a.length >> 1];
};
export {
median,
vmedian
};