reductio
Version:
Reductio: Crossfilter groupings
37 lines (36 loc) • 821 B
JavaScript
var std = {
add: function (prior, path) {
return function (p, v, nf) {
if(prior) prior(p, v, nf);
if(path(p).count > 0) {
path(p).std = 0.0;
var n = path(p).sumOfSq - path(p).sum*path(p).sum/path(p).count;
if (n>0.0) path(p).std = Math.sqrt(n/(path(p).count-1));
} else {
path(p).std = 0.0;
}
return p;
};
},
remove: function (prior, path) {
return function (p, v, nf) {
if(prior) prior(p, v, nf);
if(path(p).count > 0) {
path(p).std = 0.0;
var n = path(p).sumOfSq - path(p).sum*path(p).sum/path(p).count;
if (n>0.0) path(p).std = Math.sqrt(n/(path(p).count-1));
} else {
path(p).std = 0;
}
return p;
};
},
initial: function (prior, path) {
return function (p) {
p = prior(p);
path(p).std = 0;
return p;
};
}
};
export default std;