using System; namespace TBF.BenchControl.Sequences { public class Statistics { double first; double last; double min; double max; double sum; UInt32 count; public double First { get { return first; } } public double Last { get { return last; } } public double Min { get { return min; } } public double Max { get { return max; } } public double Average { get { if (Count > 0) return (sum / (double)count); else return 0; } } public UInt32 Count { get { return count; } } public double Sum { get { return sum; } } public Statistics() { Clear(); } /// /// Resets statistics /// public void Clear() { sum = 0; min = double.MaxValue; max = double.MinValue; first = 0; last = 0; count = 0; } /// /// Updates statistics /// /// New value public void Update(double value) { if (count == 0) first = value; last = value; sum += value; if (value < min) min = value; if (value > max) max = value; count++; } /// /// Updates statistics /// /// New boxed value public void Update(TBF.Boxes.DoubleBox box) { Update(box.Val); } /// /// Updates statistics /// /// New boxed value public void Update(TBF.Boxes.FloatBox box) { Update(box.Val); } } }