public new void Accept(double value) { base.Accept(value); Min = Math.Min(Min, value); Max = Math.Max(Max, value); _sum.Add(value); }
public static double[] Incremental(double[] values) { var adder = new DoubleAdder(values[0]); for (var i = 1; i < values.Length; ++i) { values[i] = adder.Add(values[i]).DoubleValue; } return(values); }
protected void Accept(double value) { ++Count; double n = Count; var d = value - _m1.Value; var dN = d / n; var dN2 = dN * dN; var t1 = d * dN * (n - 1.0); _m1.Add(dN); _m4.Add(t1 * dN2 * (n * n - 3.0 * n + 3.0)) .Add(6.0 * dN2 * _m2.Value - 4.0 * dN * _m3.Value); _m3.Add(t1 * dN * (n - 2.0) - 3.0 * dN * _m2.Value); _m2.Add(t1); }