public void SortDataPoints() { bool sorted = false; while (!sorted) { sorted = true; for (int i = 0; i < DataPoints.Count; i++) { if (i < DataPoints.Count - 1 && DataPoints[i].Label > DataPoints[i + 1].Label) { EvoDataPoint previous = DataPoints[i]; DataPoints[i] = DataPoints[i + 1]; DataPoints[i + 1] = previous; sorted = false; } } } Sorted = true; }
public double GetMinkowski(EvoDataPoint data1, EvoDataPoint data2, List <int> colOverride = null) { double sumOfDiffs = 0.0; if (colOverride == null) { for (int i = 0; i < data1.Data.Count; i++) { sumOfDiffs += Math.Pow(Math.Abs(data1.Data[i] - data2.Data[i]), P); } } else { foreach (int col in colOverride) { sumOfDiffs += Math.Pow(Math.Abs(data1.Data[Columns.IndexOf(col) - 2] - data2.Data[Columns.IndexOf(col) - 2]), P); } } return(Math.Pow(sumOfDiffs, (1.0 / P))); }
public EvoDataPoint ScaleNewData(EvoDataPoint data) { if (Scaled) { for (int i = 0; i < OriginalDataPoints[0].Data.Count; i++) //For col in data { double max = double.MinValue; double min = double.MaxValue; int maxE; int minE; foreach (EvoDataPoint evoData in OriginalDataPoints) { double value = evoData.Data[i]; if (value > max) { max = value; } if (value < min) { min = value; } } maxE = GetScientificExponent(max); minE = GetScientificExponent(min); if (minE < -2) { data.Data[i] = ScaleDataUp(data.Data[i], minE, maxE); } else if (max > 1.0 | min < -1.0) { data.Data[i] = ScaleDataDown(data.Data[i], min, max); } } } return(data); }