Index: trunk/sources/HeuristicLab.Analysis/3.3/Statistics/BonferroniHolm.cs
===================================================================
--- trunk/sources/HeuristicLab.Analysis/3.3/Statistics/BonferroniHolm.cs	(revision 11703)
+++ trunk/sources/HeuristicLab.Analysis/3.3/Statistics/BonferroniHolm.cs	(revision 11914)
@@ -41,17 +41,17 @@
         pValuesIndizes.Add(i, pValues[i]);
       }
-      var sortedPValues = pValuesIndizes.OrderBy(x => x.Value);
+      var sortedPValues = pValuesIndizes.OrderBy(x => x.Value).ToArray();
 
       for (int i = 1; i < k + 1; i++) {
         alphaNiveau[i - 1] = globalAlpha / (k - i + 1);
-        int idx = sortedPValues.ElementAt(i - 1).Key;
+        int idx = sortedPValues[i - 1].Key;
 
         if (i == 1) {
           //true means reject
-          decision[idx] = sortedPValues.ElementAt(i - 1).Value < alphaNiveau[i - 1];
-          adjustedPValues[idx] = sortedPValues.ElementAt(i - 1).Value * (k - i + 1);
+          decision[idx] = sortedPValues[i - 1].Value < alphaNiveau[i - 1];
+          adjustedPValues[idx] = sortedPValues[i - 1].Value * (k - i + 1);
         } else {
-          decision[idx] = decision[sortedPValues.ElementAt(i - 2).Key] ? (sortedPValues.ElementAt(i - 1).Value < alphaNiveau[i - 1]) : false;
-          adjustedPValues[idx] = Math.Max(adjustedPValues[sortedPValues.ElementAt(i - 2).Key], sortedPValues.ElementAt(i - 1).Value * (k - i + 1));
+          decision[idx] = decision[sortedPValues[i - 2].Key] && (sortedPValues[i - 1].Value < alphaNiveau[i - 1]);
+          adjustedPValues[idx] = Math.Max(adjustedPValues[sortedPValues[i - 2].Key], sortedPValues[i - 1].Value * (k - i + 1));
         }
         if (adjustedPValues[idx] > 1.0) {
Index: trunk/sources/HeuristicLab.Analysis/3.3/Statistics/EnumerableStatisticsExtension.cs
===================================================================
--- trunk/sources/HeuristicLab.Analysis/3.3/Statistics/EnumerableStatisticsExtension.cs	(revision 11703)
+++ trunk/sources/HeuristicLab.Analysis/3.3/Statistics/EnumerableStatisticsExtension.cs	(revision 11914)
@@ -28,10 +28,14 @@
   public static class EnumerableStatisticExtensions {
     public static Tuple<double, double> ConfidenceIntervals(this IEnumerable<double> values, double alpha) {
-      if (values.Count() <= 1) return new Tuple<double, double>(double.NaN, double.NaN);
+      return ConfidenceIntervals(values.ToArray(), alpha);
+    }
 
+    public static Tuple<double, double> ConfidenceIntervals(this double[] values, double alpha) {
       double lower, upper;
+      int n = values.Length;
+      if (n <= 1) return new Tuple<double, double>(double.NaN, double.NaN);
+
       double s = values.StandardDeviation();
       double x = values.Average();
-      int n = values.Count();
       double t = alglib.invstudenttdistribution(n - 1, (1.0 - alpha) / 2.0);
 
Index: trunk/sources/HeuristicLab.Analysis/3.3/Statistics/ExpFitting.cs
===================================================================
--- trunk/sources/HeuristicLab.Analysis/3.3/Statistics/ExpFitting.cs	(revision 11703)
+++ 	(revision )
@@ -1,98 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using System;
-using System.Linq;
-
-namespace HeuristicLab.Analysis.Statistics {
-  public class ExpFitting : IFitting {
-    private void LogFunc(double[] c, double[] x, ref double func, object obj) {
-      func = Math.Exp(-c[0] * Math.Pow(x[0], 2));
-    }
-
-    private double[] GetDefaultXValues(int n) {
-      var stdX = Enumerable.Range(1, n).Select(x => (double)x).ToArray();
-      return stdX;
-    }
-
-    public void Calculate(double[] dataPoints, out double p0, out double p1) {
-      var stdX = GetDefaultXValues(dataPoints.Count());
-      Calculate(dataPoints, stdX, out p0, out p1);
-    }
-
-    public void Calculate(double[] y, double[] x, out double p0, out double p1) {
-      if (y.Count() != x.Count()) {
-        throw new ArgumentException("The lenght of x and y needs do be equal. ");
-      }
-
-      double[] c = new double[] { 0.3 };
-      double epsf = 0;
-      double epsx = 0.000001;
-      int maxits = 0;
-      int info;
-      alglib.lsfitstate state;
-      alglib.lsfitreport rep;
-      double diffstep = 0.0001;
-      double[,] xx = new double[x.Count(), 1];
-
-      for (int i = 0; i < x.Count(); i++) {
-        xx[i, 0] = x[i];
-      }
-
-      alglib.lsfitcreatef(xx, y, c, diffstep, out state);
-      alglib.lsfitsetcond(state, epsf, epsx, maxits);
-      alglib.lsfitfit(state, LogFunc, null, null);
-      alglib.lsfitresults(state, out info, out c, out rep);
-
-      p0 = c[0];
-      p1 = c[0];
-    }
-
-    public DataRow CalculateFittedLine(double[] dataPoints, string rowName) {
-      DataRow newRow = new DataRow(rowName);
-      double c0, c1;
-      Calculate(dataPoints, out c0, out c1);
-      var stdX = GetDefaultXValues(dataPoints.Count());
-
-      for (int i = 0; i < stdX.Count(); i++) {
-        newRow.Values.Add(Math.Exp(-c0 * Math.Pow(stdX[i], 2)));
-      }
-
-      return newRow;
-    }
-
-    public DataRow CalculateFittedLine(double[] y, double[] x, string rowName) {
-      DataRow newRow = new DataRow(rowName);
-      double c0, c1;
-      Calculate(y, x, out c0, out c1);
-
-      for (int i = 0; i < x.Count(); i++) {
-        newRow.Values.Add(Math.Exp(-c0 * Math.Pow(x[i], 2)));
-      }
-
-      return newRow;
-    }
-
-    public override string ToString() {
-      return "Exponential Fitting";
-    }
-  }
-}
Index: trunk/sources/HeuristicLab.Analysis/3.3/Statistics/Fitting/ExpFitting.cs
===================================================================
--- trunk/sources/HeuristicLab.Analysis/3.3/Statistics/Fitting/ExpFitting.cs	(revision 11914)
+++ trunk/sources/HeuristicLab.Analysis/3.3/Statistics/Fitting/ExpFitting.cs	(revision 11914)
@@ -0,0 +1,97 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Linq;
+
+namespace HeuristicLab.Analysis.Statistics {
+  public class ExpFitting : IFitting {
+    private void ExpFunc(double[] c, double[] x, ref double func, object obj) {
+      func = Math.Exp(-c[0] * Math.Pow(x[0], 2));
+    }
+
+    private double[] GetDefaultXValues(int n) {
+      var stdX = Enumerable.Range(1, n).Select(x => (double)x).ToArray();
+      return stdX;
+    }
+
+    public void Calculate(double[] dataPoints, out double p0) {
+      var stdX = GetDefaultXValues(dataPoints.Count());
+      Calculate(dataPoints, stdX, out p0);
+    }
+
+    public void Calculate(double[] y, double[] x, out double p0) {
+      if (y.Count() != x.Count()) {
+        throw new ArgumentException("The lenght of x and y needs do be equal. ");
+      }
+
+      double[] c = new double[] { 0.3 };
+      double epsf = 0;
+      double epsx = 0.000001;
+      int maxits = 0;
+      int info;
+      alglib.lsfitstate state;
+      alglib.lsfitreport rep;
+      double diffstep = 0.0001;
+      double[,] xx = new double[x.Count(), 1];
+
+      for (int i = 0; i < x.Count(); i++) {
+        xx[i, 0] = x[i];
+      }
+
+      alglib.lsfitcreatef(xx, y, c, diffstep, out state);
+      alglib.lsfitsetcond(state, epsf, epsx, maxits);
+      alglib.lsfitfit(state, ExpFunc, null, null);
+      alglib.lsfitresults(state, out info, out c, out rep);
+
+      p0 = c[0];
+    }
+
+    public DataRow CalculateFittedLine(double[] dataPoints) {
+      DataRow newRow = new DataRow();
+      double c0;
+      Calculate(dataPoints, out c0);
+      var stdX = GetDefaultXValues(dataPoints.Count());
+
+      for (int i = 0; i < stdX.Count(); i++) {
+        newRow.Values.Add(Math.Exp(-c0 * Math.Pow(stdX[i], 2)));
+      }
+
+      return newRow;
+    }
+
+    public DataRow CalculateFittedLine(double[] y, double[] x) {
+      DataRow newRow = new DataRow();
+      double c0;
+      Calculate(y, x, out c0);
+
+      for (int i = 0; i < x.Count(); i++) {
+        newRow.Values.Add(Math.Exp(-c0 * Math.Pow(x[i], 2)));
+      }
+
+      return newRow;
+    }
+
+    public override string ToString() {
+      return "Exponential Fitting";
+    }
+  }
+}
Index: trunk/sources/HeuristicLab.Analysis/3.3/Statistics/Fitting/IFitting.cs
===================================================================
--- trunk/sources/HeuristicLab.Analysis/3.3/Statistics/Fitting/IFitting.cs	(revision 11914)
+++ trunk/sources/HeuristicLab.Analysis/3.3/Statistics/Fitting/IFitting.cs	(revision 11914)
@@ -0,0 +1,27 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+namespace HeuristicLab.Analysis.Statistics {
+  public interface IFitting {
+    DataRow CalculateFittedLine(double[] dataPoints);
+    DataRow CalculateFittedLine(double[] y, double[] x);
+  }
+}
Index: trunk/sources/HeuristicLab.Analysis/3.3/Statistics/Fitting/LinearLeastSquaresFitting.cs
===================================================================
--- trunk/sources/HeuristicLab.Analysis/3.3/Statistics/Fitting/LinearLeastSquaresFitting.cs	(revision 11914)
+++ trunk/sources/HeuristicLab.Analysis/3.3/Statistics/Fitting/LinearLeastSquaresFitting.cs	(revision 11914)
@@ -0,0 +1,98 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Linq;
+
+namespace HeuristicLab.Analysis.Statistics {
+  public class LinearLeastSquaresFitting : IFitting {
+    public void Calculate(double[] dataPoints, out double slope, out double intercept) {
+      var stdX = Enumerable.Range(0, dataPoints.Count()).Select(x => (double)x).ToArray();
+      Calculate(dataPoints, stdX, out slope, out intercept);
+    }
+
+    public void Calculate(double[] y, double[] x, out double slope, out double intercept) {
+      if (y.Count() != x.Count()) {
+        throw new ArgumentException("The lenght of x and y needs do be equal. ");
+      }
+
+      double sxy = 0.0;
+      double sxx = 0.0;
+      int n = y.Count();
+      double sy = y.Sum();
+      double sx = ((n - 1) * n) / 2.0;
+      double avgy = sy / n;
+      double avgx = sx / n;
+
+      for (int i = 0; i < n; i++) {
+        sxy += x[i] * y[i];
+        sxx += x[i] * x[i];
+      }
+
+      slope = (sxy - (n * avgx * avgy)) / (sxx - (n * avgx * avgx));
+      intercept = avgy - slope * avgx;
+    }
+
+    public double CalculateError(double[] dataPoints, double slope, double intercept) {
+      double r;
+      double avgy = dataPoints.Average();
+      double sstot = 0.0;
+      double sserr = 0.0;
+
+      for (int i = 0; i < dataPoints.Count(); i++) {
+        double y = slope * i + intercept;
+        sstot += Math.Pow(dataPoints[i] - avgy, 2);
+        sserr += Math.Pow(dataPoints[i] - y, 2);
+      }
+
+      r = 1.0 - (sserr / sstot);
+      return r;
+    }
+
+    public DataRow CalculateFittedLine(double[] y, double[] x) {
+      double slope, intercept;
+      Calculate(y, x, out slope, out intercept);
+
+      DataRow newRow = new DataRow();
+      for (int i = 0; i < x.Count(); i++) {
+        newRow.Values.Add(slope * x[i] + intercept);
+      }
+      return newRow;
+    }
+
+    public DataRow CalculateFittedLine(double[] dataPoints) {
+      DataRow newRow = new DataRow();
+      double slope, intercept;
+      Calculate(dataPoints, out slope, out intercept);
+      var stdX = Enumerable.Range(0, dataPoints.Count()).Select(x => (double)x).ToArray();
+
+      for (int i = 0; i < stdX.Count(); i++) {
+        newRow.Values.Add(slope * stdX[i] + intercept);
+      }
+
+      return newRow;
+    }
+
+    public override string ToString() {
+      return "Linear Fitting";
+    }
+  }
+}
Index: trunk/sources/HeuristicLab.Analysis/3.3/Statistics/Fitting/LogFitting.cs
===================================================================
--- trunk/sources/HeuristicLab.Analysis/3.3/Statistics/Fitting/LogFitting.cs	(revision 11914)
+++ trunk/sources/HeuristicLab.Analysis/3.3/Statistics/Fitting/LogFitting.cs	(revision 11914)
@@ -0,0 +1,98 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Linq;
+
+namespace HeuristicLab.Analysis.Statistics {
+  public class LogFitting : IFitting {
+    private void LogFunc(double[] c, double[] x, ref double func, object obj) {
+      func = c[0] * Math.Exp(c[1] / x[0]);
+    }
+
+    private double[] GetDefaultXValues(int n) {
+      var stdX = Enumerable.Range(1, n).Select(x => (double)x).ToArray();
+      return stdX;
+    }
+
+    public void Calculate(double[] dataPoints, out double p0, out double p1) {
+      var stdX = GetDefaultXValues(dataPoints.Count());
+      Calculate(dataPoints, stdX, out p0, out p1);
+    }
+
+    public void Calculate(double[] y, double[] x, out double p0, out double p1) {
+      if (y.Count() != x.Count()) {
+        throw new ArgumentException("The lenght of x and y needs do be equal. ");
+      }
+
+      double[] c = new double[] { 0.3, 0.3 };
+      double epsf = 0;
+      double epsx = 0.000001;
+      int maxits = 0;
+      int info;
+      alglib.lsfitstate state;
+      alglib.lsfitreport rep;
+      double diffstep = 0.0001;
+      double[,] xx = new double[x.Count(), 1];
+
+      for (int i = 0; i < x.Count(); i++) {
+        xx[i, 0] = x[i];
+      }
+
+      alglib.lsfitcreatef(xx, y, c, diffstep, out state);
+      alglib.lsfitsetcond(state, epsf, epsx, maxits);
+      alglib.lsfitfit(state, LogFunc, null, null);
+      alglib.lsfitresults(state, out info, out c, out rep);
+
+      p0 = c[0];
+      p1 = c[1];
+    }
+
+    public DataRow CalculateFittedLine(double[] dataPoints) {
+      DataRow newRow = new DataRow();
+      double c0, c1;
+      Calculate(dataPoints, out c0, out c1);
+      var stdX = GetDefaultXValues(dataPoints.Count());
+
+      for (int i = 0; i < stdX.Count(); i++) {
+        newRow.Values.Add(c0 * Math.Exp(c1 / stdX[i]));
+      }
+
+      return newRow;
+    }
+
+    public DataRow CalculateFittedLine(double[] y, double[] x) {
+      DataRow newRow = new DataRow();
+      double c0, c1;
+      Calculate(y, x, out c0, out c1);
+
+      for (int i = 0; i < x.Count(); i++) {
+        newRow.Values.Add(c0 * Math.Exp(c1 / x[i]));
+      }
+
+      return newRow;
+    }
+
+    public override string ToString() {
+      return "Logarithmic Fitting";
+    }
+  }
+}
Index: trunk/sources/HeuristicLab.Analysis/3.3/Statistics/IFitting.cs
===================================================================
--- trunk/sources/HeuristicLab.Analysis/3.3/Statistics/IFitting.cs	(revision 11703)
+++ 	(revision )
@@ -1,30 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-namespace HeuristicLab.Analysis.Statistics {
-  public interface IFitting {
-    void Calculate(double[] dataPoints, out double p0, out double p1);
-    void Calculate(double[] y, double[] x, out double p0, out double p1);
-
-    DataRow CalculateFittedLine(double[] dataPoints, string rowName);
-    DataRow CalculateFittedLine(double[] y, double[] x, string rowName);
-  }
-}
Index: trunk/sources/HeuristicLab.Analysis/3.3/Statistics/LinearLeastSquaresFitting.cs
===================================================================
--- trunk/sources/HeuristicLab.Analysis/3.3/Statistics/LinearLeastSquaresFitting.cs	(revision 11703)
+++ 	(revision )
@@ -1,98 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using System;
-using System.Linq;
-
-namespace HeuristicLab.Analysis.Statistics {
-  public class LinearLeastSquaresFitting : IFitting {
-    public void Calculate(double[] dataPoints, out double p0, out double p1) {
-      var stdX = Enumerable.Range(0, dataPoints.Count()).Select(x => (double)x).ToArray();
-      Calculate(dataPoints, stdX, out p0, out p1);
-    }
-
-    public void Calculate(double[] y, double[] x, out double p0, out double p1) {
-      if (y.Count() != x.Count()) {
-        throw new ArgumentException("The lenght of x and y needs do be equal. ");
-      }
-
-      double sxy = 0.0;
-      double sxx = 0.0;
-      int n = y.Count();
-      double sy = y.Sum();
-      double sx = ((n - 1) * n) / 2.0;
-      double avgy = sy / n;
-      double avgx = sx / n;
-
-      for (int i = 0; i < n; i++) {
-        sxy += x[i] * y[i];
-        sxx += x[i] * x[i];
-      }
-
-      p0 = (sxy - (n * avgx * avgy)) / (sxx - (n * avgx * avgx));
-      p1 = avgy - p0 * avgx;
-    }
-
-    public double CalculateError(double[] dataPoints, double p0, double p1) {
-      double r;
-      double avgy = dataPoints.Average();
-      double sstot = 0.0;
-      double sserr = 0.0;
-
-      for (int i = 0; i < dataPoints.Count(); i++) {
-        double y = p0 * i + p1;
-        sstot += Math.Pow(dataPoints[i] - avgy, 2);
-        sserr += Math.Pow(dataPoints[i] - y, 2);
-      }
-
-      r = 1.0 - (sserr / sstot);
-      return r;
-    }
-
-    public DataRow CalculateFittedLine(double[] y, double[] x, string rowName) {
-      double k, d;
-      Calculate(y, x, out k, out d);
-
-      DataRow newRow = new DataRow(rowName);
-      for (int i = 0; i < x.Count(); i++) {
-        newRow.Values.Add(k * x[i] + d);
-      }
-      return newRow;
-    }
-
-    public DataRow CalculateFittedLine(double[] dataPoints, string rowName) {
-      DataRow newRow = new DataRow(rowName);
-      double c0, c1;
-      Calculate(dataPoints, out c0, out c1);
-      var stdX = Enumerable.Range(0, dataPoints.Count()).Select(x => (double)x).ToArray();
-
-      for (int i = 0; i < stdX.Count(); i++) {
-        newRow.Values.Add(c0 * stdX[i] + c1);
-      }
-
-      return newRow;
-    }
-
-    public override string ToString() {
-      return "Linear Fitting";
-    }
-  }
-}
Index: trunk/sources/HeuristicLab.Analysis/3.3/Statistics/LogFitting.cs
===================================================================
--- trunk/sources/HeuristicLab.Analysis/3.3/Statistics/LogFitting.cs	(revision 11703)
+++ 	(revision )
@@ -1,98 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using System;
-using System.Linq;
-
-namespace HeuristicLab.Analysis.Statistics {
-  public class LogFitting : IFitting {
-    private void LogFunc(double[] c, double[] x, ref double func, object obj) {
-      func = c[0] * Math.Exp(c[1] / x[0]);
-    }
-
-    private double[] GetDefaultXValues(int n) {
-      var stdX = Enumerable.Range(1, n).Select(x => (double)x).ToArray();
-      return stdX;
-    }
-
-    public void Calculate(double[] dataPoints, out double p0, out double p1) {
-      var stdX = GetDefaultXValues(dataPoints.Count());
-      Calculate(dataPoints, stdX, out p0, out p1);
-    }
-
-    public void Calculate(double[] y, double[] x, out double p0, out double p1) {
-      if (y.Count() != x.Count()) {
-        throw new ArgumentException("The lenght of x and y needs do be equal. ");
-      }
-
-      double[] c = new double[] { 0.3, 0.3 };
-      double epsf = 0;
-      double epsx = 0.000001;
-      int maxits = 0;
-      int info;
-      alglib.lsfitstate state;
-      alglib.lsfitreport rep;
-      double diffstep = 0.0001;
-      double[,] xx = new double[x.Count(), 1];
-
-      for (int i = 0; i < x.Count(); i++) {
-        xx[i, 0] = x[i];
-      }
-
-      alglib.lsfitcreatef(xx, y, c, diffstep, out state);
-      alglib.lsfitsetcond(state, epsf, epsx, maxits);
-      alglib.lsfitfit(state, LogFunc, null, null);
-      alglib.lsfitresults(state, out info, out c, out rep);
-
-      p0 = c[0];
-      p1 = c[1];
-    }
-
-    public DataRow CalculateFittedLine(double[] dataPoints, string rowName) {
-      DataRow newRow = new DataRow(rowName);
-      double c0, c1;
-      Calculate(dataPoints, out c0, out c1);
-      var stdX = GetDefaultXValues(dataPoints.Count());
-
-      for (int i = 0; i < stdX.Count(); i++) {
-        newRow.Values.Add(c0 * Math.Exp(c1 / stdX[i]));
-      }
-
-      return newRow;
-    }
-
-    public DataRow CalculateFittedLine(double[] y, double[] x, string rowName) {
-      DataRow newRow = new DataRow(rowName);
-      double c0, c1;
-      Calculate(y, x, out c0, out c1);
-
-      for (int i = 0; i < x.Count(); i++) {
-        newRow.Values.Add(c0 * Math.Exp(c1 / x[i]));
-      }
-
-      return newRow;
-    }
-
-    public override string ToString() {
-      return "Logarithmic Fitting";
-    }
-  }
-}
Index: trunk/sources/HeuristicLab.Analysis/3.3/Statistics/SampleSizeDetermination.cs
===================================================================
--- trunk/sources/HeuristicLab.Analysis/3.3/Statistics/SampleSizeDetermination.cs	(revision 11703)
+++ trunk/sources/HeuristicLab.Analysis/3.3/Statistics/SampleSizeDetermination.cs	(revision 11914)
@@ -36,5 +36,5 @@
       if (conf < 0.0 || conf > 1.0) throw new ArgumentException("The confidence interval must be between zero and one.");
 
-      var confInterval = samples.ConfidenceIntervals(0.95);
+      var confInterval = samples.ConfidenceIntervals(conf);
       double e = (confInterval.Item2 - confInterval.Item1) / 2;
       double s = samples.StandardDeviation();
@@ -43,21 +43,4 @@
 
       double result = Math.Pow(s, 2) / ((Math.Pow(e, 2) / Math.Pow(z, 2)) + (Math.Pow(s, 2) / n));
-
-      result = Math.Ceiling(result);
-      if (result > int.MaxValue)
-        return int.MaxValue;
-      else
-        return (int)result;
-    }
-
-    public static int DetermineSampleSizeByEstimatingMeanForLargeSampleSizes(double[] samples, double conf = 0.95) {
-      if (conf < 0.0 || conf > 1.0) throw new ArgumentException("The confidence interval must be between zero and one.");
-
-      var confInterval = samples.ConfidenceIntervals(0.95);
-      double e = (confInterval.Item2 - confInterval.Item1) / 2;
-      double s = samples.StandardDeviation();
-      double z = alglib.invnormaldistribution((conf + 1) / 2);
-
-      double result = Math.Pow(z, 2) * (Math.Pow(s, 2) / Math.Pow(e, 2));
 
       result = Math.Ceiling(result);
