private synchronized void recomputeStdDev() { int count = getCount(); stdDev = count > 1 ? Math.sqrt(sk / (count - 1)) : Double.NaN; }
private synchronized void recomputeStdDev() { int count = getCount(); stdDev = count > 1 ? Math.sqrt(sk / (count - 1)) : Double.NaN; }
private synchronized void recomputeStdDev() { int count = getCount(); stdDev = count > 1 ? Math.sqrt(sk / (count - 1)) : Double.NaN; }
@Override public synchronized void removeDatum(double datum) { int oldCount = getCount(); super.removeDatum(datum); double oldmk = mk; mk = (oldCount * oldmk - datum) / (oldCount - 1); sk -= (datum - mk) * (datum - oldmk); recomputeStdDev(); }
@Override public synchronized void removeDatum(double datum) { int oldCount = getCount(); super.removeDatum(datum); double oldmk = mk; mk = (oldCount * oldmk - datum) / (oldCount - 1); sk -= (datum - mk) * (datum - oldmk); recomputeStdDev(); }
@Override public synchronized void removeDatum(double datum) { int oldCount = getCount(); super.removeDatum(datum); double oldmk = mk; mk = (oldCount * oldmk - datum) / (oldCount - 1); sk -= (datum - mk) * (datum - oldmk); recomputeStdDev(); }
@Override public synchronized void addDatum(double datum) { super.addDatum(datum); int count = getCount(); if (count == 1) { mk = datum; sk = 0.0; } else { double oldmk = mk; double diff = datum - oldmk; mk += diff / count; sk += diff * (datum - mk); } recomputeStdDev(); }
@Override public synchronized void addDatum(double datum) { super.addDatum(datum); int count = getCount(); if (count == 1) { mk = datum; sk = 0.0; } else { double oldmk = mk; double diff = datum - oldmk; mk += diff / count; sk += diff * (datum - mk); } recomputeStdDev(); }
@Override public synchronized void addDatum(double datum) { super.addDatum(datum); int count = getCount(); if (count == 1) { mk = datum; sk = 0.0; } else { double oldmk = mk; double diff = datum - oldmk; mk += diff / count; sk += diff * (datum - mk); } recomputeStdDev(); }