Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
DoubleAggregator.cs
Go to the documentation of this file.
2
4
6public struct DoubleAggregator
7{
8 private double _result;
9
10 private int _cnt;
11
12 public double SumResult => _result;
13
14 public double AverageResult => _result / (double)_cnt;
15
16 public double MinimumResult => _result;
17
18 public double MaximumResult => _result;
19
20 public bool IsEmpty => _cnt == 0;
21
22 public void Create()
23 {
24 _cnt = 0;
25 }
26
27 public void Sum(double value)
28 {
29 if (_cnt == 0)
30 {
31 _result = value;
32 _cnt = 1;
33 }
34 else
35 {
36 _result += value;
37 }
38 }
39
40 public void Average(double value)
41 {
42 if (_cnt == 0)
43 {
44 _result = value;
45 }
46 else
47 {
48 _result += value;
49 }
50 _cnt++;
51 }
52
53 public void Minimum(double value)
54 {
55 if (_cnt == 0 || value < _result || double.IsNaN(value))
56 {
57 _result = value;
58 }
59 _cnt = 1;
60 }
61
62 public void Maximum(double value)
63 {
64 if (_cnt == 0 || value > _result || double.IsNaN(value))
65 {
66 _result = value;
67 }
68 _cnt = 1;
69 }
70}