Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
NullableDoubleAverageAggregationOperator.cs
Go to the documentation of this file.
3
5
6internal sealed class NullableDoubleAverageAggregationOperator : InlinedAggregationOperator<double?, Pair<double, long>, double?>
7{
9 {
11
17
19 {
20 double num = 0.0;
21 long num2 = 0L;
23 double? currentElement2 = null;
24 TKey currentKey = default(TKey);
25 int num3 = 0;
26 while (source.MoveNext(ref currentElement2, ref currentKey))
27 {
28 if (currentElement2.HasValue)
29 {
30 if ((num3++ & 0x3F) == 0)
31 {
33 }
34 num += currentElement2.GetValueOrDefault();
35 num2 = checked(num2 + 1);
36 }
37 }
39 return num2 > 0;
40 }
41
42 protected override void Dispose(bool disposing)
43 {
45 }
46 }
47
52
54 {
56 {
58 if (!enumerator.MoveNext())
59 {
60 return null;
61 }
62 Pair<double, long> current = enumerator.Current;
63 while (enumerator.MoveNext())
64 {
65 current.First += enumerator.Current.First;
66 current.Second += enumerator.Current.Second;
67 }
68 return current.First / (double)current.Second;
69 }
70 }
71
76}
NullableDoubleAverageAggregationOperatorEnumerator(QueryOperatorEnumerator< double?, TKey > source, int partitionIndex, CancellationToken cancellationToken)
override? double InternalAggregate(ref Exception singularExceptionToThrow)
override QueryOperatorEnumerator< Pair< double, long >, int > CreateEnumerator< TKey >(int index, int count, QueryOperatorEnumerator< double?, TKey > source, object sharedData, CancellationToken cancellationToken)