Index: /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Classification/CSV/ClassifiactionCSVInstanceProvider.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Classification/CSV/ClassifiactionCSVInstanceProvider.cs	(revision 7860)
+++ /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Classification/CSV/ClassifiactionCSVInstanceProvider.cs	(revision 7860)
@@ -0,0 +1,51 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 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.Collections.Generic;
+using HeuristicLab.Problems.DataAnalysis;
+namespace HeuristicLab.Problems.Instances.DataAnalysis {
+  public class ClassificationCSVInstanceProvider : ClassificationInstanceProvider {
+    public override string Name {
+      get { return "CSV Problem Provider"; }
+    }
+    public override string Description {
+      get {
+        return "";
+      }
+    }
+    public override Uri WebLink {
+      get { return new Uri("http://dev.heuristiclab.com/trac/hl/core/wiki/UsersFAQ#DataAnalysisImportFileFormat"); }
+    }
+    public override string ReferencePublication {
+      get { return ""; }
+    }
+
+    public override IEnumerable<IDataDescriptor> GetDataDescriptors() {
+      return new List<IDataDescriptor>();
+    }
+
+    public override IClassificationProblemData LoadData(IDataDescriptor descriptor) {
+      throw new NotImplementedException();
+    }
+  }
+}
Index: /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/HeuristicLab.Problems.Instances.DataAnalysis-3.3.csproj
===================================================================
--- /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/HeuristicLab.Problems.Instances.DataAnalysis-3.3.csproj	(revision 7859)
+++ /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/HeuristicLab.Problems.Instances.DataAnalysis-3.3.csproj	(revision 7860)
@@ -43,4 +43,6 @@
     <Reference Include="System" />
     <Reference Include="System.Core" />
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Windows.Forms" />
     <Reference Include="System.Xml.Linq" />
     <Reference Include="System.Data.DataSetExtensions" />
@@ -53,4 +55,5 @@
     <Compile Include="Classification\ArtificialClassificationInstanceProvider.cs" />
     <Compile Include="Classification\ClassificationInstanceProvider.cs" />
+    <Compile Include="Classification\CSV\ClassifiactionCSVInstanceProvider.cs" />
     <Compile Include="Classification\RealWorld\Iris.cs" />
     <Compile Include="Classification\RealWorld\Mammography.cs" />
@@ -62,4 +65,9 @@
     <Compile Include="Regression\ArtificialRegressionDataDescriptor.cs" />
     <Compile Include="Regression\ArtificialRegressionInstanceProvider.cs" />
+    <Compile Include="Regression\CSV\RegressionCSVInstanceProvider.cs" />
+    <Compile Include="Regression\Keijzer\KeijzerFunctionFourteen.cs" />
+    <Compile Include="Regression\Keijzer\KeijzerFunctionEleven.cs" />
+    <Compile Include="Regression\Keijzer\KeijzerFunctionNine.cs" />
+    <Compile Include="Regression\Keijzer\KeijzerFunctionFive.cs" />
     <Compile Include="Regression\Keijzer\KeijzerFunctionEight.cs" />
     <Compile Include="Regression\Keijzer\KeijzerFunctionFifteen.cs" />
@@ -106,4 +114,6 @@
     <Compile Include="Regression\ValueGenerator.cs" />
     <Compile Include="Regression\Various\BreimanOne.cs" />
+    <Compile Include="Regression\Various\FriedmanTwo.cs" />
+    <Compile Include="Regression\Various\FriedmanOne.cs" />
     <Compile Include="Regression\Various\PolyTen.cs" />
     <Compile Include="Regression\Various\SpatialCoevolution.cs" />
Index: /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/CSV/RegressionCSVInstanceProvider.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/CSV/RegressionCSVInstanceProvider.cs	(revision 7860)
+++ /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/CSV/RegressionCSVInstanceProvider.cs	(revision 7860)
@@ -0,0 +1,51 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 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.Collections.Generic;
+using HeuristicLab.Problems.DataAnalysis;
+namespace HeuristicLab.Problems.Instances.DataAnalysis {
+  public class RegressionCSVInstanceProvider : RegressionInstanceProvider {
+    public override string Name {
+      get { return "CSV Problem Provider"; }
+    }
+    public override string Description {
+      get {
+        return "";
+      }
+    }
+    public override Uri WebLink {
+      get { return new Uri("http://dev.heuristiclab.com/trac/hl/core/wiki/UsersFAQ#DataAnalysisImportFileFormat"); }
+    }
+    public override string ReferencePublication {
+      get { return ""; }
+    }
+
+    public override IEnumerable<IDataDescriptor> GetDataDescriptors() {
+      return new List<IDataDescriptor>();
+    }
+
+    public override IRegressionProblemData LoadData(IDataDescriptor descriptor) {
+      throw new NotImplementedException();
+    }
+  }
+}
Index: /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Keijzer/KeijzerFunctionEleven.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Keijzer/KeijzerFunctionEleven.cs	(revision 7860)
+++ /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Keijzer/KeijzerFunctionEleven.cs	(revision 7860)
@@ -0,0 +1,72 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 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.Collections.Generic;
+using System.Linq;
+
+namespace HeuristicLab.Problems.Instances.DataAnalysis {
+  public class KeijzerFunctionEleven : ArtificialRegressionDataDescriptor {
+
+    public override string Name { get { return "Keijzer 11 f(x, y) = x ^ y"; } }
+    public override string Description {
+      get {
+        return "Paper: Improving Symbolic Regression with Interval Arithmetic and Linear Scaling" + Environment.NewLine
+        + "Authors: Maarten Keijzer" + Environment.NewLine
+        + "Function: f(x, y) = x ^ y" + Environment.NewLine
+        + "range(train): 100 Train cases x,y = rnd(0, 1)" + Environment.NewLine
+        + "range(test): x,y = [0:0.01:1]" + Environment.NewLine
+        + "Function Set: x + y, x * y, 1/x, -x, sqrt(x)";
+      }
+    }
+    protected override string TargetVariable { get { return "F"; } }
+    protected override string[] InputVariables { get { return new string[] { "X", "Y", "F" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X", "Y" }; } }
+    protected override int TrainingPartitionStart { get { return 0; } }
+    protected override int TrainingPartitionEnd { get { return 100; } }
+    protected override int TestPartitionStart { get { return 100; } }
+    protected override int TestPartitionEnd { get { return 10301; } }
+
+    protected override List<List<double>> GenerateValues() {
+      List<List<double>> data = new List<List<double>>();
+
+      List<double> oneVariableTestData = ValueGenerator.GenerateSteps(0, 1, 0.01).ToList();
+      List<List<double>> testData = new List<List<double>>() { oneVariableTestData, oneVariableTestData };
+
+      var combinations = ValueGenerator.GenerateAllCombinationsOfValuesInLists(testData).ToList<IEnumerable<double>>();
+      for (int i = 0; i < AllowedInputVariables.Count(); i++) {
+        data.Add(ValueGenerator.GenerateUniformDistributedValues(100, 0, 1).ToList());
+        data[i].AddRange(combinations[i]);
+      }
+
+      double x, y;
+      List<double> results = new List<double>();
+      for (int i = 0; i < data[0].Count; i++) {
+        x = data[0][i];
+        y = data[1][i];
+        results.Add(Math.Pow(x, y));
+      }
+      data.Add(results);
+
+      return data;
+    }
+  }
+}
Index: /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Keijzer/KeijzerFunctionFifteen.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Keijzer/KeijzerFunctionFifteen.cs	(revision 7859)
+++ /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Keijzer/KeijzerFunctionFifteen.cs	(revision 7860)
@@ -27,5 +27,5 @@
   public class KeijzerFunctionFifteen : ArtificialRegressionDataDescriptor {
 
-    public override string Name { get { return "Keijzer 15 f(x) = 8 / (2 + x^2 + y^2)"; } }
+    public override string Name { get { return "Keijzer 15 f(x, y) = 8 / (2 + x^2 + y^2)"; } }
     public override string Description {
       get {
Index: /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Keijzer/KeijzerFunctionFive.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Keijzer/KeijzerFunctionFive.cs	(revision 7860)
+++ /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Keijzer/KeijzerFunctionFive.cs	(revision 7860)
@@ -0,0 +1,65 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 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.Collections.Generic;
+using System.Linq;
+
+namespace HeuristicLab.Problems.Instances.DataAnalysis {
+  public class KeijzerFunctionFive : ArtificialRegressionDataDescriptor {
+
+    public override string Name { get { return "Keijzer 5 f(x) = x ^ 3  * exp(-x) * cos(x) * sin(x) * (sin(x) ^ 2 * cos(x) - 1)"; } }
+    public override string Description {
+      get {
+        return "Paper: Improving Symbolic Regression with Interval Arithmetic and Linear Scaling" + Environment.NewLine
+        + "Authors: Maarten Keijzer" + Environment.NewLine
+        + "Function: f(x) = x ^ 3  * exp(-x) * cos(x) * sin(x) * (sin(x) ^ 2 * cos(x) - 1)" + Environment.NewLine
+        + "range(train): x = [0:0.05:10]" + Environment.NewLine
+        + "range(test): x = [0.05:0.05:10.05]" + Environment.NewLine
+        + "Function Set: x + y, x * y, 1/x, -x, sqrt(x)" + Environment.NewLine
+        + "Note: {exp, log, sin, cos}, 100000 evals";
+      }
+    }
+    protected override string TargetVariable { get { return "F"; } }
+    protected override string[] InputVariables { get { return new string[] { "X", "F" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X" }; } }
+    protected override int TrainingPartitionStart { get { return 0; } }
+    protected override int TrainingPartitionEnd { get { return 201; } }
+    protected override int TestPartitionStart { get { return 201; } }
+    protected override int TestPartitionEnd { get { return 402; } }
+
+    protected override List<List<double>> GenerateValues() {
+      List<List<double>> data = new List<List<double>>();
+      data.Add(ValueGenerator.GenerateSteps(0, 10, 0.05).ToList());
+      data[0].AddRange(ValueGenerator.GenerateSteps(0.05, 10.05, 0.05));
+
+      double x;
+      List<double> results = new List<double>();
+      for (int i = 0; i < data[0].Count; i++) {
+        x = data[0][i];
+        results.Add(Math.Pow(x, 3) * Math.Exp(-x) * Math.Cos(x) * Math.Sin(x) * (Math.Pow(Math.Sin(x), 2) * Math.Cos(x) - 1));
+      }
+      data.Add(results);
+
+      return data;
+    }
+  }
+}
Index: /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Keijzer/KeijzerFunctionFourteen.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Keijzer/KeijzerFunctionFourteen.cs	(revision 7860)
+++ /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Keijzer/KeijzerFunctionFourteen.cs	(revision 7860)
@@ -0,0 +1,68 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 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.Collections.Generic;
+using System.Linq;
+
+namespace HeuristicLab.Problems.Instances.DataAnalysis {
+  public class KeijzerFunctionFourteen : ArtificialRegressionDataDescriptor {
+
+    public override string Name { get { return "Keijzer 14 f(x, y) = 6 * sin(x) * cos(y)"; } }
+    public override string Description {
+      get {
+        return "Paper: Improving Symbolic Regression with Interval Arithmetic and Linear Scaling" + Environment.NewLine
+        + "Authors: Maarten Keijzer" + Environment.NewLine
+        + "Function: f(x, y) = 6 * sin(x) * cos(y)" + Environment.NewLine
+        + "range(train): 20 Train cases x,y = rnd(-3, 3)" + Environment.NewLine
+        + "range(test): x,y = [-3:0.01:3]" + Environment.NewLine
+        + "Function Set: x + y, x * y, 1/x, -x, sqrt(x)" + Environment.NewLine + Environment.NewLine
+        + "Note: Test partition has been adjusted to only 100 random uniformly distributed test cases in the intercal [-3, 3] (not ca. 360000 as described) "
+        + ", but 5000 cases are created";
+      }
+    }
+    protected override string TargetVariable { get { return "F"; } }
+    protected override string[] InputVariables { get { return new string[] { "X", "Y", "F" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X", "Y" }; } }
+    protected override int TrainingPartitionStart { get { return 0; } }
+    protected override int TrainingPartitionEnd { get { return 20; } }
+    protected override int TestPartitionStart { get { return 2500; } }
+    protected override int TestPartitionEnd { get { return 5000; } }
+
+    protected override List<List<double>> GenerateValues() {
+      List<List<double>> data = new List<List<double>>();
+      for (int i = 0; i < AllowedInputVariables.Count(); i++) {
+        data.Add(ValueGenerator.GenerateUniformDistributedValues(5000, -3, 3).ToList());
+      }
+
+      double x, y;
+      List<double> results = new List<double>();
+      for (int i = 0; i < data[0].Count; i++) {
+        x = data[0][i];
+        y = data[1][i];
+        results.Add(6 * Math.Sin(x) * Math.Cos(y));
+      }
+      data.Add(results);
+
+      return data;
+    }
+  }
+}
Index: /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Keijzer/KeijzerFunctionNine.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Keijzer/KeijzerFunctionNine.cs	(revision 7860)
+++ /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Keijzer/KeijzerFunctionNine.cs	(revision 7860)
@@ -0,0 +1,64 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 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.Collections.Generic;
+using System.Linq;
+
+namespace HeuristicLab.Problems.Instances.DataAnalysis {
+  public class KeijzerFunctionNine : ArtificialRegressionDataDescriptor {
+
+    public override string Name { get { return "Keijzer 9 f(x) = sqrt(x)"; } }
+    public override string Description {
+      get {
+        return "Paper: Improving Symbolic Regression with Interval Arithmetic and Linear Scaling" + Environment.NewLine
+        + "Authors: Maarten Keijzer" + Environment.NewLine
+        + "Function: f(x) = sqrt(x)" + Environment.NewLine
+        + "range(train): x = [0:1:100]" + Environment.NewLine
+        + "range(test): x = [0:0.1:100]" + Environment.NewLine
+        + "Function Set: x + y, x * y, 1/x, -x, sqrt(x)";
+      }
+    }
+    protected override string TargetVariable { get { return "F"; } }
+    protected override string[] InputVariables { get { return new string[] { "X", "F" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X" }; } }
+    protected override int TrainingPartitionStart { get { return 0; } }
+    protected override int TrainingPartitionEnd { get { return 101; } }
+    protected override int TestPartitionStart { get { return 101; } }
+    protected override int TestPartitionEnd { get { return 1102; } }
+
+    protected override List<List<double>> GenerateValues() {
+      List<List<double>> data = new List<List<double>>();
+      data.Add(ValueGenerator.GenerateSteps(0, 100, 1).ToList());
+      data[0].AddRange(ValueGenerator.GenerateSteps(0, 100, 0.1));
+
+      double x;
+      List<double> results = new List<double>();
+      for (int i = 0; i < data[0].Count; i++) {
+        x = data[0][i];
+        results.Add(Math.Sqrt(x));
+      }
+      data.Add(results);
+
+      return data;
+    }
+  }
+}
Index: /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Keijzer/KeijzerFunctionSixteen.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Keijzer/KeijzerFunctionSixteen.cs	(revision 7859)
+++ /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Keijzer/KeijzerFunctionSixteen.cs	(revision 7860)
@@ -27,5 +27,5 @@
   public class KeijzerFunctionSixteen : ArtificialRegressionDataDescriptor {
 
-    public override string Name { get { return "Keijzer 16 f(x) = x^3 / 5 + y^3 / 2 - y - x"; } }
+    public override string Name { get { return "Keijzer 16 f(x, y) = x^3 / 5 + y^3 / 2 - y - x"; } }
     public override string Description {
       get {
Index: /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Keijzer/KeijzerFunctionThirteen.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Keijzer/KeijzerFunctionThirteen.cs	(revision 7859)
+++ /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Keijzer/KeijzerFunctionThirteen.cs	(revision 7860)
@@ -27,5 +27,5 @@
   public class KeijzerFunctionThirteen : ArtificialRegressionDataDescriptor {
 
-    public override string Name { get { return "Keijzer 13 f(x) = x^4 - x^3 + y^2 / 2 - y"; } }
+    public override string Name { get { return "Keijzer 13 f(x, y) = x^4 - x^3 + y^2 / 2 - y"; } }
     public override string Description {
       get {
Index: /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Keijzer/KeijzerFunctionTwelve.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Keijzer/KeijzerFunctionTwelve.cs	(revision 7859)
+++ /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Keijzer/KeijzerFunctionTwelve.cs	(revision 7860)
@@ -27,5 +27,5 @@
   public class KeijzerFunctionTwelve : ArtificialRegressionDataDescriptor {
 
-    public override string Name { get { return "Keijzer 12 f(x) = xy + sin((x - 1)(y - 1))"; } }
+    public override string Name { get { return "Keijzer 12 f(x, y) = xy + sin((x - 1)(y - 1))"; } }
     public override string Description {
       get {
Index: /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Keijzer/KeijzerInstanceProvider.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Keijzer/KeijzerInstanceProvider.cs	(revision 7859)
+++ /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Keijzer/KeijzerInstanceProvider.cs	(revision 7860)
@@ -41,9 +41,13 @@
       List<IDataDescriptor> descriptorList = new List<IDataDescriptor>();
       descriptorList.Add(new KeijzerFunctionFour());
+      descriptorList.Add(new KeijzerFunctionFive());
       descriptorList.Add(new KeijzerFunctionSix());
       descriptorList.Add(new KeijzerFunctionSeven());
       descriptorList.Add(new KeijzerFunctionEight());
+      descriptorList.Add(new KeijzerFunctionNine());
+      descriptorList.Add(new KeijzerFunctionEleven());
       descriptorList.Add(new KeijzerFunctionTwelve());
       descriptorList.Add(new KeijzerFunctionThirteen());
+      descriptorList.Add(new KeijzerFunctionFourteen());
       descriptorList.Add(new KeijzerFunctionFifteen());
       descriptorList.Add(new KeijzerFunctionSixteen());
Index: /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/RegressionInstanceProvider.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/RegressionInstanceProvider.cs	(revision 7859)
+++ /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/RegressionInstanceProvider.cs	(revision 7860)
@@ -37,4 +37,5 @@
       Dataset dataset = new Dataset(csvFileParser.VariableNames, csvFileParser.Values);
       string targetVar = csvFileParser.VariableNames.Last();
+
       IEnumerable<string> allowedInputVars = csvFileParser.VariableNames.Where(x => !x.Equals(targetVar));
 
Index: /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Various/BreimanOne.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Various/BreimanOne.cs	(revision 7859)
+++ /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Various/BreimanOne.cs	(revision 7860)
@@ -48,8 +48,8 @@
       List<List<double>> data = new List<List<double>>();
       List<int> values = new List<int>() { -1, 1 };
-      data.Add(BreimanOne.GenerateUniformIntegerDistribution(values, TestPartitionEnd));
+      data.Add(GenerateUniformIntegerDistribution(values, TestPartitionEnd));
       values.Add(0);
       for (int i = 0; i < AllowedInputVariables.Count() - 1; i++) {
-        data.Add(BreimanOne.GenerateUniformIntegerDistribution(values, TestPartitionEnd));
+        data.Add(GenerateUniformIntegerDistribution(values, TestPartitionEnd));
       }
 
@@ -79,5 +79,5 @@
     }
 
-    public static List<double> GenerateUniformIntegerDistribution(List<int> classes, int amount) {
+    private List<double> GenerateUniformIntegerDistribution(List<int> classes, int amount) {
       List<double> values = new List<double>();
       for (int i = 0; i < amount; i++) {
Index: /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Various/FriedmanOne.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Various/FriedmanOne.cs	(revision 7860)
+++ /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Various/FriedmanOne.cs	(revision 7860)
@@ -0,0 +1,72 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 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.Collections.Generic;
+using System.Linq;
+using HeuristicLab.Random;
+
+namespace HeuristicLab.Problems.Instances.DataAnalysis {
+  public class FriedmanOne : ArtificialRegressionDataDescriptor {
+
+    public override string Name { get { return "Friedman - I"; } }
+    public override string Description {
+      get {
+        return "Paper: Multivariate Adaptive Regression Splines" + Environment.NewLine
+        + "Authors: Jerome H. Friedman";
+      }
+    }
+    protected override string TargetVariable { get { return "Y"; } }
+    protected override string[] InputVariables { get { return new string[] { "X1", "X2", "X3", "X4", "X5", "X6", "X7", "X8", "X9", "X10", "Y" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X1", "X2", "X3", "X4", "X5", "X6", "X7", "X8", "X9", "X10" }; } }
+    protected override int TrainingPartitionStart { get { return 0; } }
+    protected override int TrainingPartitionEnd { get { return 5000; } }
+    protected override int TestPartitionStart { get { return 5000; } }
+    protected override int TestPartitionEnd { get { return 10000; } }
+
+    protected static FastRandom rand = new FastRandom();
+
+    protected override List<List<double>> GenerateValues() {
+      List<List<double>> data = new List<List<double>>();
+      for (int i = 0; i < AllowedInputVariables.Count(); i++) {
+        data.Add(ValueGenerator.GenerateUniformDistributedValues(10000, 0, 1).ToList());
+      }
+
+      double x1, x2, x3, x4, x5;
+      double f;
+      List<double> results = new List<double>();
+      for (int i = 0; i < data[0].Count; i++) {
+        x1 = data[0][i];
+        x2 = data[1][i];
+        x3 = data[2][i];
+        x4 = data[3][i];
+        x5 = data[4][i];
+
+        f = 0.1 * Math.Exp(4 * x1) + 4 / (1 + Math.Exp(-20 * (x2 - 0.5))) + 3 * x3 + 2 * x4 + x5;
+
+        results.Add(f + NormalDistributedRandom.NextDouble(rand, 0, 1));
+      }
+      data.Add(results);
+
+      return data;
+    }
+  }
+}
Index: /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Various/FriedmanTwo.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Various/FriedmanTwo.cs	(revision 7860)
+++ /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Various/FriedmanTwo.cs	(revision 7860)
@@ -0,0 +1,72 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 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.Collections.Generic;
+using System.Linq;
+using HeuristicLab.Random;
+
+namespace HeuristicLab.Problems.Instances.DataAnalysis {
+  public class FriedmanTwo : ArtificialRegressionDataDescriptor {
+
+    public override string Name { get { return "Friedman - II"; } }
+    public override string Description {
+      get {
+        return "Paper: Multivariate Adaptive Regression Splines" + Environment.NewLine
+        + "Authors: Jerome H. Friedman";
+      }
+    }
+    protected override string TargetVariable { get { return "Y"; } }
+    protected override string[] InputVariables { get { return new string[] { "X1", "X2", "X3", "X4", "X5", "Y" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X1", "X2", "X3", "X4", "X5" }; } }
+    protected override int TrainingPartitionStart { get { return 0; } }
+    protected override int TrainingPartitionEnd { get { return 5000; } }
+    protected override int TestPartitionStart { get { return 5000; } }
+    protected override int TestPartitionEnd { get { return 10000; } }
+
+    protected static FastRandom rand = new FastRandom();
+
+    protected override List<List<double>> GenerateValues() {
+      List<List<double>> data = new List<List<double>>();
+      for (int i = 0; i < AllowedInputVariables.Count(); i++) {
+        data.Add(ValueGenerator.GenerateUniformDistributedValues(10000, 0, 1).ToList());
+      }
+
+      double x1, x2, x3, x4, x5;
+      double f;
+      List<double> results = new List<double>();
+      for (int i = 0; i < data[0].Count; i++) {
+        x1 = data[0][i];
+        x2 = data[1][i];
+        x3 = data[2][i];
+        x4 = data[3][i];
+        x5 = data[4][i];
+
+        f = 10 * Math.Sin(Math.PI * x1 * x2) + 20 * Math.Pow(x3 - 0.5, 2) + 10 * x4 + 5 * x5;
+
+        results.Add(f + NormalDistributedRandom.NextDouble(rand, 0, 1));
+      }
+      data.Add(results);
+
+      return data;
+    }
+  }
+}
Index: /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Various/VariousInstanceProvider.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Various/VariousInstanceProvider.cs	(revision 7859)
+++ /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Various/VariousInstanceProvider.cs	(revision 7860)
@@ -32,5 +32,5 @@
     }
     public override Uri WebLink {
-      get { return null; }
+      get { return new Uri("http://dev.heuristiclab.com/trac/hl/core/wiki/AdditionalMaterial"); }
     }
     public override string ReferencePublication {
@@ -41,4 +41,6 @@
       List<IDataDescriptor> descriptorList = new List<IDataDescriptor>();
       descriptorList.Add(new BreimanOne());
+      descriptorList.Add(new FriedmanOne());
+      descriptorList.Add(new FriedmanTwo());
       descriptorList.Add(new PolyTen());
       descriptorList.Add(new SpatialCoevolution());
Index: /trunk/sources/HeuristicLab.Problems.Instances.Views/3.3/ProblemInstanceConsumerView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.Instances.Views/3.3/ProblemInstanceConsumerView.cs	(revision 7859)
+++ /trunk/sources/HeuristicLab.Problems.Instances.Views/3.3/ProblemInstanceConsumerView.cs	(revision 7860)
@@ -52,5 +52,5 @@
       InitializeComponent();
       libraryInfoButton.Text = String.Empty;
-      libraryInfoButton.Image = VSImageLibrary.Internet;
+      libraryInfoButton.Image = VSImageLibrary.Help;
     }
 
Index: /trunk/sources/HeuristicLab.Problems.Instances.Views/3.3/ProblemInstanceProviderViewGeneric.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.Instances.Views/3.3/ProblemInstanceProviderViewGeneric.cs	(revision 7859)
+++ /trunk/sources/HeuristicLab.Problems.Instances.Views/3.3/ProblemInstanceProviderViewGeneric.cs	(revision 7860)
@@ -21,4 +21,5 @@
 
 using System;
+using System.Collections.Generic;
 using System.IO;
 using System.Linq;
@@ -65,5 +66,5 @@
       importButton.Text = String.Empty;
       importButton.Image = VSImageLibrary.Open;
-      toolTip.SetToolTip(importButton, "Import a " + GetProblemType() + " problem from file.");
+      toolTip.SetToolTip(importButton, "Open a " + GetProblemType() + " problem from file.");
       exportButton.Text = String.Empty;
       exportButton.Image = VSImageLibrary.Save;
@@ -80,5 +81,19 @@
       } else {
         instancesComboBox.DisplayMember = "Name";
-        instancesComboBox.DataSource = Content.GetDataDescriptors().ToList();
+        IEnumerable<IDataDescriptor> dataDescriptors = Content.GetDataDescriptors().ToList();
+        ShowInstanceLoad(dataDescriptors.Count() > 0);
+        instancesComboBox.DataSource = dataDescriptors;
+      }
+    }
+
+    protected void ShowInstanceLoad(bool show) {
+      if (show) {
+        instanceLabel.Show();
+        instancesComboBox.Show();
+        loadButton.Show();
+      } else {
+        instanceLabel.Hide();
+        instancesComboBox.Hide();
+        loadButton.Hide();
       }
     }
