@thi.ng/vectors
Version:
Optimized 2d/3d/4d and arbitrary length vector operations, support for memory mapping/layouts
18 lines (17 loc) • 731 B
JavaScript
import { abs } from "./abs.js";
import { center } from "./center.js";
import { magSq } from "./magsq.js";
import { sum } from "./sum.js";
const variance = (a, isCentered = false, corrected = false) => {
const k = ~~corrected;
return a.length > k ? magSq(isCentered ? a : center([], a)) / (a.length - k) : 0;
};
const sd = (a, isCentered = false, corrected = false) => Math.sqrt(variance(a, isCentered, corrected));
const sdError = (a, isCentered = false, corrected = false) => a.length > 1 ? sd(a, isCentered, corrected) / Math.sqrt(a.length) : 0;
const meanAD = (a, isCentered = false) => a.length > 1 ? sum(isCentered ? abs([], a) : abs(null, center([], a))) / a.length : 0;
export {
meanAD,
sd,
sdError,
variance
};