Index: stable/HeuristicLab.Analysis.Statistics.Views/3.3/ChartAnalysisView.cs
===================================================================
--- stable/HeuristicLab.Analysis.Statistics.Views/3.3/ChartAnalysisView.cs	(revision 13150)
+++ stable/HeuristicLab.Analysis.Statistics.Views/3.3/ChartAnalysisView.cs	(revision 13151)
@@ -313,6 +313,6 @@
         double stdDev = values.StandardDeviation();
         double variance = values.Variance();
-        double percentile25 = values.Percentile(0.25);
-        double percentile75 = values.Percentile(0.75);
+        double percentile25 = values.Quantile(0.25);
+        double percentile75 = values.Quantile(0.75);
         double lowerAvg = values.Count() > 4 ? values.OrderBy(x => x).Take((int)(values.Count() * 0.25)).Average() : double.NaN;
         double upperAvg = values.Count() > 4 ? values.OrderByDescending(x => x).Take((int)(values.Count() * 0.25)).Average() : double.NaN;
Index: stable/HeuristicLab.Analysis.Statistics.Views/3.3/SampleSizeInfluenceView.cs
===================================================================
--- stable/HeuristicLab.Analysis.Statistics.Views/3.3/SampleSizeInfluenceView.cs	(revision 13150)
+++ stable/HeuristicLab.Analysis.Statistics.Views/3.3/SampleSizeInfluenceView.cs	(revision 13151)
@@ -389,6 +389,6 @@
         matrix[5, i] = seriesValues.StandardDeviation();
         matrix[6, i] = seriesValues.Variance();
-        matrix[7, i] = seriesValues.Percentile(0.25);
-        matrix[8, i] = seriesValues.Percentile(0.75);
+        matrix[7, i] = seriesValues.Quantile(0.25);
+        matrix[8, i] = seriesValues.Quantile(0.75);
         matrix[9, i] = confIntervals.Item1;
         matrix[10, i] = confIntervals.Item2;
Index: stable/HeuristicLab.Common/3.3/EnumerableStatisticExtensions.cs
===================================================================
--- stable/HeuristicLab.Common/3.3/EnumerableStatisticExtensions.cs	(revision 13150)
+++ stable/HeuristicLab.Common/3.3/EnumerableStatisticExtensions.cs	(revision 13151)
@@ -65,8 +65,10 @@
 
     // Numerical Recipes in C++, §8.5 Selecting the Mth Largest, O(n)
-    // Giben k in [0..n-1] returns an array value from array arr[0..n-1] such that k array values are 
+    // Given k in [0..n-1] returns an array value from array arr[0..n-1] such that k array values are 
     // less than or equal to the one returned. The input array will be rearranged to have this value in 
     // location arr[k], with all smaller elements moved to arr[0..k-1] (in arbitrary order) and all 
     // larger elements in arr[k+1..n-1] (also in arbitrary order).
+    // 
+    // Could be changed to Select<T> where T is IComparable but in this case is significantly slower for double values
     private static double Select(int k, double[] arr) {
       Contract.Assert(arr.GetLowerBound(0) == 0);
@@ -198,23 +200,4 @@
     }
 
-    /// <summary>
-    /// Calculates the pth percentile of the values.
-    /// </summary>
-    public static double Percentile(this IEnumerable<double> values, double p) {
-      // iterate only once 
-      double[] valuesArr = values.ToArray();
-      int n = valuesArr.Length;
-      if (n == 0) throw new InvalidOperationException("Enumeration contains no elements.");
-      if (n == 1) return values.ElementAt(0);
-
-      if (p.IsAlmost(0.0)) return valuesArr[0];
-      if (p.IsAlmost(1.0)) return valuesArr[n - 1];
-
-      double t = p * (n - 1);
-      int index = (int)Math.Floor(t);
-      double percentage = t - index;
-      return valuesArr[index] * (1 - percentage) + valuesArr[index + 1] * percentage;
-    }
-
     public static IEnumerable<double> LimitToRange(this IEnumerable<double> values, double min, double max) {
       if (min > max) throw new ArgumentException(string.Format("Minimum {0} is larger than maximum {1}.", min, max));
Index: stable/HeuristicLab.DataPreprocessing/3.4/Implementations/StatisticsLogic.cs
===================================================================
--- stable/HeuristicLab.DataPreprocessing/3.4/Implementations/StatisticsLogic.cs	(revision 13150)
+++ stable/HeuristicLab.DataPreprocessing/3.4/Implementations/StatisticsLogic.cs	(revision 13151)
@@ -166,7 +166,7 @@
       double percentile = double.NaN;
       if (preprocessingData.VariableHasType<double>(columnIndex)) {
-        percentile = GetValuesWithoutNaN<double>(columnIndex).Percentile(0.25);
-      } else if (preprocessingData.VariableHasType<DateTime>(columnIndex)) {
-        percentile = GetDateTimeAsSeconds(columnIndex).Percentile(0.25);
+        percentile = GetValuesWithoutNaN<double>(columnIndex).Quantile(0.25);
+      } else if (preprocessingData.VariableHasType<DateTime>(columnIndex)) {
+        percentile = GetDateTimeAsSeconds(columnIndex).Quantile(0.25);
       }
       return percentile;
@@ -176,7 +176,7 @@
       double percentile = double.NaN;
       if (preprocessingData.VariableHasType<double>(columnIndex)) {
-        percentile = GetValuesWithoutNaN<double>(columnIndex).Percentile(0.75);
-      } else if (preprocessingData.VariableHasType<DateTime>(columnIndex)) {
-        percentile = GetDateTimeAsSeconds(columnIndex).Percentile(0.75);
+        percentile = GetValuesWithoutNaN<double>(columnIndex).Quantile(0.75);
+      } else if (preprocessingData.VariableHasType<DateTime>(columnIndex)) {
+        percentile = GetDateTimeAsSeconds(columnIndex).Quantile(0.75);
       }
       return percentile;
Index: stable/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionBoxPlotView.cs
===================================================================
--- stable/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionBoxPlotView.cs	(revision 13150)
+++ stable/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionBoxPlotView.cs	(revision 13151)
@@ -248,6 +248,6 @@
         matrix[5, i] = seriesValues.StandardDeviation();
         matrix[6, i] = seriesValues.Variance();
-        matrix[7, i] = seriesValues.Percentile(0.25);
-        matrix[8, i] = seriesValues.Percentile(0.75);
+        matrix[7, i] = seriesValues.Quantile(0.25);
+        matrix[8, i] = seriesValues.Quantile(0.75);
       }
       statisticsMatrixView.Content = matrix;
