Changeset 6964 for trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/OnlineCalculators/OnlineWeightedDirectionalSymmetryCalculator.cs
- Timestamp:
- 11/08/11 12:16:27 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/OnlineCalculators/OnlineWeightedDirectionalSymmetryCalculator.cs
r6807 r6964 83 83 84 84 85 public static double Calculate(IEnumerable<double> first, IEnumerable<double> second, out OnlineCalculatorError errorState) {86 IEnumerator<double> firstEnumerator = first.GetEnumerator();87 IEnumerator<double> secondEnumerator = second.GetEnumerator();85 public static double Calculate(IEnumerable<double> originalValues, IEnumerable<double> estimatedValues, out OnlineCalculatorError errorState) { 86 IEnumerator<double> originalEnumerator = originalValues.GetEnumerator(); 87 IEnumerator<double> estimatedEnumerator = estimatedValues.GetEnumerator(); 88 88 OnlineWeightedDirectionalSymmetryCalculator dsCalculator = new OnlineWeightedDirectionalSymmetryCalculator(); 89 89 90 90 // add first element of time series as a reference point 91 firstEnumerator.MoveNext();92 secondEnumerator.MoveNext();93 dsCalculator.Add( firstEnumerator.Current, secondEnumerator.Current);91 originalEnumerator.MoveNext(); 92 estimatedEnumerator.MoveNext(); 93 dsCalculator.Add(originalEnumerator.Current, estimatedEnumerator.Current); 94 94 95 95 // always move forward both enumerators (do not use short-circuit evaluation!) 96 while ( firstEnumerator.MoveNext() & secondEnumerator.MoveNext()) {97 double estimated = secondEnumerator.Current;98 double original = firstEnumerator.Current;96 while (originalEnumerator.MoveNext() & estimatedEnumerator.MoveNext()) { 97 double original = originalEnumerator.Current; 98 double estimated = estimatedEnumerator.Current; 99 99 dsCalculator.Add(original, estimated); 100 100 if (dsCalculator.ErrorState != OnlineCalculatorError.None) break; … … 103 103 // check if both enumerators are at the end to make sure both enumerations have the same length 104 104 if (dsCalculator.ErrorState == OnlineCalculatorError.None && 105 ( secondEnumerator.MoveNext() || firstEnumerator.MoveNext())) {106 throw new ArgumentException("Number of elements in first and second enumerationdoesn't match.");105 (originalEnumerator.MoveNext() || estimatedEnumerator.MoveNext())) { 106 throw new ArgumentException("Number of elements in originalValues and estimatedValues enumerations doesn't match."); 107 107 } else { 108 108 errorState = dsCalculator.ErrorState;
Note: See TracChangeset
for help on using the changeset viewer.