Refactored

This commit is contained in:
Thorsten Sommer 2020-09-29 17:30:07 +02:00
parent f2521ad256
commit 5d2cc1b29c

View File

@ -24,23 +24,23 @@ namespace FastRngTests.Double
// See Knuth TAOCP vol 2, 3rd edition, page 232 // See Knuth TAOCP vol 2, 3rd edition, page 232
if (this.NumberRecords == 1) if (this.NumberRecords == 1)
{ {
previousM = nextM = x; this.previousM = this.nextM = x;
previousS = 0.0; this.previousS = 0.0;
} }
else else
{ {
nextM = previousM + (x - previousM) / this.NumberRecords; this.nextM = this.previousM + (x - this.previousM) / this.NumberRecords;
nextS = previousS + (x - previousM) * (x - nextM); this.nextS = this.previousS + (x - this.previousM) * (x - this.nextM);
// set up for next iteration // set up for next iteration
previousM = nextM; this.previousM = this.nextM;
previousS = nextS; this.previousS = this.nextS;
} }
} }
public double Mean => this.NumberRecords > 0 ? nextM : 0.0; public double Mean => this.NumberRecords > 0 ? this.nextM : 0.0;
public double Variance => this.NumberRecords > 1 ? nextS / (NumberRecords - 1) : 0.0; public double Variance => this.NumberRecords > 1 ? this.nextS / (this.NumberRecords - 1) : 0.0;
public double StandardDeviation => Math.Sqrt(this.Variance); public double StandardDeviation => Math.Sqrt(this.Variance);
} }