Index: /branches/3075_aifeynman_instances/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanBonus10.cs
===================================================================
--- /branches/3075_aifeynman_instances/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanBonus10.cs	(revision 17676)
+++ /branches/3075_aifeynman_instances/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanBonus10.cs	(revision 17676)
@@ -0,0 +1,83 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using HeuristicLab.Common;
+using HeuristicLab.Random;
+
+namespace HeuristicLab.Problems.Instances.DataAnalysis {
+  public class FeynmanBonus5 : FeynmanDescriptor {
+    private readonly int testSamples;
+    private readonly int trainingSamples;
+
+    public FeynmanBonus5() : this((int) DateTime.Now.Ticks, 10000, 10000, null) { }
+
+    public FeynmanBonus5(int seed) {
+      Seed            = seed;
+      trainingSamples = 10000;
+      testSamples     = 10000;
+      noiseRatio      = null;
+    }
+
+    public FeynmanBonus5(int seed, int trainingSamples, int testSamples, double? noiseRatio) {
+      Seed                 = seed;
+      this.trainingSamples = trainingSamples;
+      this.testSamples     = testSamples;
+      this.noiseRatio      = noiseRatio;
+    }
+
+    public override string Name {
+      get {
+        return string.Format("Goldstein 3.74: 2*pi*d**(3/2)/sqrt(G*(m1+m2)) | {0} samples | noise ({1})",
+          trainingSamples, noiseRatio == null ? "no noise" : noiseRatio.ToString());
+      }
+    }
+
+    protected override string TargetVariable { get { return noiseRatio == null ? "t" : "t_noise"; } }
+
+    protected override string[] VariableNames {
+      get { return new[] {"d", "G", "m1", "m2", noiseRatio == null ? "t" : "t_noise"}; }
+    }
+
+    protected override string[] AllowedInputVariables { get { return new[] {"d", "G", "m1", "m2"}; } }
+
+    public int Seed { get; private set; }
+
+    protected override int TrainingPartitionStart { get { return 0; } }
+    protected override int TrainingPartitionEnd { get { return trainingSamples; } }
+    protected override int TestPartitionStart { get { return trainingSamples; } }
+    protected override int TestPartitionEnd { get { return trainingSamples + testSamples; } }
+
+    protected override List<List<double>> GenerateValues() {
+      var rand = new MersenneTwister((uint) Seed);
+
+      var data = new List<List<double>>();
+      var d    = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 3).ToList();
+      var G    = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 3).ToList();
+      var m1   = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 3).ToList();
+      var m2   = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 3).ToList();
+
+      var t = new List<double>();
+
+      data.Add(d);
+      data.Add(G);
+      data.Add(m1);
+      data.Add(m2);
+      data.Add(t);
+
+      for (var i = 0; i < d.Count; i++) {
+        var res = 2 * Math.PI * Math.Pow(d[i], 3.0 / 2) / Math.Sqrt(G[i] * (m1[i] + m2[i]));
+        t.Add(res);
+      }
+
+      if (noiseRatio != null) {
+        var t_noise     = new List<double>();
+        var sigma_noise = (double) noiseRatio * t.StandardDeviationPop();
+        t_noise.AddRange(t.Select(md => md + NormalDistributedRandom.NextDouble(rand, 0, sigma_noise)));
+        data.Remove(t);
+        data.Add(t_noise);
+      }
+
+      return data;
+    }
+  }
+}
Index: anches/3075_aifeynman_instances/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanBonus10_.cs
===================================================================
--- /branches/3075_aifeynman_instances/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanBonus10_.cs	(revision 17675)
+++ 	(revision )
@@ -1,83 +1,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using HeuristicLab.Common;
-using HeuristicLab.Random;
-
-namespace HeuristicLab.Problems.Instances.DataAnalysis {
-  public class FeynmanBonus5 : FeynmanDescriptor {
-    private readonly int testSamples;
-    private readonly int trainingSamples;
-
-    public FeynmanBonus5() : this((int) DateTime.Now.Ticks, 10000, 10000, null) { }
-
-    public FeynmanBonus5(int seed) {
-      Seed            = seed;
-      trainingSamples = 10000;
-      testSamples     = 10000;
-      noiseRatio      = null;
-    }
-
-    public FeynmanBonus5(int seed, int trainingSamples, int testSamples, double? noiseRatio) {
-      Seed                 = seed;
-      this.trainingSamples = trainingSamples;
-      this.testSamples     = testSamples;
-      this.noiseRatio      = noiseRatio;
-    }
-
-    public override string Name {
-      get {
-        return string.Format("Goldstein 3.74: 2*pi*d**(3/2)/sqrt(G*(m1+m2)) | {0} samples | noise ({1})",
-          trainingSamples, noiseRatio == null ? "no noise" : noiseRatio.ToString());
-      }
-    }
-
-    protected override string TargetVariable { get { return noiseRatio == null ? "t" : "t_noise"; } }
-
-    protected override string[] VariableNames {
-      get { return new[] {"d", "G", "m1", "m2", noiseRatio == null ? "t" : "t_noise"}; }
-    }
-
-    protected override string[] AllowedInputVariables { get { return new[] {"d", "G", "m1", "m2"}; } }
-
-    public int Seed { get; private set; }
-
-    protected override int TrainingPartitionStart { get { return 0; } }
-    protected override int TrainingPartitionEnd { get { return trainingSamples; } }
-    protected override int TestPartitionStart { get { return trainingSamples; } }
-    protected override int TestPartitionEnd { get { return trainingSamples + testSamples; } }
-
-    protected override List<List<double>> GenerateValues() {
-      var rand = new MersenneTwister((uint) Seed);
-
-      var data = new List<List<double>>();
-      var d    = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 3).ToList();
-      var G    = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 3).ToList();
-      var m1   = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 3).ToList();
-      var m2   = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 3).ToList();
-
-      var t = new List<double>();
-
-      data.Add(d);
-      data.Add(G);
-      data.Add(m1);
-      data.Add(m2);
-      data.Add(t);
-
-      for (var i = 0; i < d.Count; i++) {
-        var res = 2 * Math.PI * Math.Pow(d[i], 3.0 / 2) / Math.Sqrt(G[i] * (m1[i] + m2[i]));
-        t.Add(res);
-      }
-
-      if (noiseRatio != null) {
-        var t_noise     = new List<double>();
-        var sigma_noise = (double) noiseRatio * t.StandardDeviationPop();
-        t_noise.AddRange(t.Select(md => md + NormalDistributedRandom.NextDouble(rand, 0, sigma_noise)));
-        data.Remove(t);
-        data.Add(t_noise);
-      }
-
-      return data;
-    }
-  }
-}
Index: /branches/3075_aifeynman_instances/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanBonus11.cs
===================================================================
--- /branches/3075_aifeynman_instances/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanBonus11.cs	(revision 17676)
+++ /branches/3075_aifeynman_instances/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanBonus11.cs	(revision 17676)
@@ -0,0 +1,95 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using HeuristicLab.Common;
+using HeuristicLab.Random;
+
+namespace HeuristicLab.Problems.Instances.DataAnalysis {
+  public class FeynmanBonus6 : FeynmanDescriptor {
+    private readonly int testSamples;
+    private readonly int trainingSamples;
+
+    public FeynmanBonus6() : this((int) DateTime.Now.Ticks, 10000, 10000, null) { }
+
+    public FeynmanBonus6(int seed) {
+      Seed            = seed;
+      trainingSamples = 10000;
+      testSamples     = 10000;
+      noiseRatio      = null;
+    }
+
+    public FeynmanBonus6(int seed, int trainingSamples, int testSamples, double? noiseRatio) {
+      Seed                 = seed;
+      this.trainingSamples = trainingSamples;
+      this.testSamples     = testSamples;
+      this.noiseRatio      = noiseRatio;
+    }
+
+    public override string Name {
+      get {
+        return string.Format(
+          "Goldstein 3.99: sqrt(1+2*epsilon**2*E_n*L**2/(m*(Z_1*Z_2*q**2)**2)) | {0} samples | noise ({1})",
+          trainingSamples, noiseRatio == null ? "no noise" : noiseRatio.ToString());
+      }
+    }
+
+    protected override string TargetVariable { get { return noiseRatio == null ? "alpha" : "alpha_noise"; } }
+
+    protected override string[] VariableNames {
+      get {
+        return new[] {"epsilon", "L", "m", "Z_1", "Z_2", "q", "E_n", noiseRatio == null ? "alpha" : "alpha_noise"};
+      }
+    }
+
+    protected override string[] AllowedInputVariables {
+      get { return new[] {"epsilon", "L", "m", "Z_1", "Z_2", "q", "E_n"}; }
+    }
+
+    public int Seed { get; private set; }
+
+    protected override int TrainingPartitionStart { get { return 0; } }
+    protected override int TrainingPartitionEnd { get { return trainingSamples; } }
+    protected override int TestPartitionStart { get { return trainingSamples; } }
+    protected override int TestPartitionEnd { get { return trainingSamples + testSamples; } }
+
+    protected override List<List<double>> GenerateValues() {
+      var rand = new MersenneTwister((uint) Seed);
+
+      var data    = new List<List<double>>();
+      var epsilon = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 3).ToList();
+      var L       = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 3).ToList();
+      var m       = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 3).ToList();
+      var Z_1     = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 3).ToList();
+      var Z_2     = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 3).ToList();
+      var q       = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 3).ToList();
+      var E_n     = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 3).ToList();
+
+      var alpha = new List<double>();
+
+      data.Add(epsilon);
+      data.Add(L);
+      data.Add(m);
+      data.Add(Z_1);
+      data.Add(Z_2);
+      data.Add(q);
+      data.Add(E_n);
+      data.Add(alpha);
+
+      for (var i = 0; i < epsilon.Count; i++) {
+        var res = Math.Sqrt(1 + 2 * Math.Pow(epsilon[i], 2) * E_n[i] * Math.Pow(L[i], 2) /
+                            (m[i] * Math.Pow(Z_1[i] * Z_2[i] * Math.Pow(q[i], 2), 2)));
+        alpha.Add(res);
+      }
+
+      if (noiseRatio != null) {
+        var alpha_noise = new List<double>();
+        var sigma_noise = (double) noiseRatio * alpha.StandardDeviationPop();
+        alpha_noise.AddRange(alpha.Select(md => md + NormalDistributedRandom.NextDouble(rand, 0, sigma_noise)));
+        data.Remove(alpha);
+        data.Add(alpha_noise);
+      }
+
+      return data;
+    }
+  }
+}
Index: anches/3075_aifeynman_instances/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanBonus11_.cs
===================================================================
--- /branches/3075_aifeynman_instances/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanBonus11_.cs	(revision 17675)
+++ 	(revision )
@@ -1,95 +1,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using HeuristicLab.Common;
-using HeuristicLab.Random;
-
-namespace HeuristicLab.Problems.Instances.DataAnalysis {
-  public class FeynmanBonus6 : FeynmanDescriptor {
-    private readonly int testSamples;
-    private readonly int trainingSamples;
-
-    public FeynmanBonus6() : this((int) DateTime.Now.Ticks, 10000, 10000, null) { }
-
-    public FeynmanBonus6(int seed) {
-      Seed            = seed;
-      trainingSamples = 10000;
-      testSamples     = 10000;
-      noiseRatio      = null;
-    }
-
-    public FeynmanBonus6(int seed, int trainingSamples, int testSamples, double? noiseRatio) {
-      Seed                 = seed;
-      this.trainingSamples = trainingSamples;
-      this.testSamples     = testSamples;
-      this.noiseRatio      = noiseRatio;
-    }
-
-    public override string Name {
-      get {
-        return string.Format(
-          "Goldstein 3.99: sqrt(1+2*epsilon**2*E_n*L**2/(m*(Z_1*Z_2*q**2)**2)) | {0} samples | noise ({1})",
-          trainingSamples, noiseRatio == null ? "no noise" : noiseRatio.ToString());
-      }
-    }
-
-    protected override string TargetVariable { get { return noiseRatio == null ? "alpha" : "alpha_noise"; } }
-
-    protected override string[] VariableNames {
-      get {
-        return new[] {"epsilon", "L", "m", "Z_1", "Z_2", "q", "E_n", noiseRatio == null ? "alpha" : "alpha_noise"};
-      }
-    }
-
-    protected override string[] AllowedInputVariables {
-      get { return new[] {"epsilon", "L", "m", "Z_1", "Z_2", "q", "E_n"}; }
-    }
-
-    public int Seed { get; private set; }
-
-    protected override int TrainingPartitionStart { get { return 0; } }
-    protected override int TrainingPartitionEnd { get { return trainingSamples; } }
-    protected override int TestPartitionStart { get { return trainingSamples; } }
-    protected override int TestPartitionEnd { get { return trainingSamples + testSamples; } }
-
-    protected override List<List<double>> GenerateValues() {
-      var rand = new MersenneTwister((uint) Seed);
-
-      var data    = new List<List<double>>();
-      var epsilon = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 3).ToList();
-      var L       = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 3).ToList();
-      var m       = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 3).ToList();
-      var Z_1     = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 3).ToList();
-      var Z_2     = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 3).ToList();
-      var q       = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 3).ToList();
-      var E_n     = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 3).ToList();
-
-      var alpha = new List<double>();
-
-      data.Add(epsilon);
-      data.Add(L);
-      data.Add(m);
-      data.Add(Z_1);
-      data.Add(Z_2);
-      data.Add(q);
-      data.Add(E_n);
-      data.Add(alpha);
-
-      for (var i = 0; i < epsilon.Count; i++) {
-        var res = Math.Sqrt(1 + 2 * Math.Pow(epsilon[i], 2) * E_n[i] * Math.Pow(L[i], 2) /
-                            (m[i] * Math.Pow(Z_1[i] * Z_2[i] * Math.Pow(q[i], 2), 2)));
-        alpha.Add(res);
-      }
-
-      if (noiseRatio != null) {
-        var alpha_noise = new List<double>();
-        var sigma_noise = (double) noiseRatio * alpha.StandardDeviationPop();
-        alpha_noise.AddRange(alpha.Select(md => md + NormalDistributedRandom.NextDouble(rand, 0, sigma_noise)));
-        data.Remove(alpha);
-        data.Add(alpha_noise);
-      }
-
-      return data;
-    }
-  }
-}
Index: /branches/3075_aifeynman_instances/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanBonus14.cs
===================================================================
--- /branches/3075_aifeynman_instances/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanBonus14.cs	(revision 17676)
+++ /branches/3075_aifeynman_instances/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanBonus14.cs	(revision 17676)
@@ -0,0 +1,88 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using HeuristicLab.Common;
+using HeuristicLab.Random;
+
+namespace HeuristicLab.Problems.Instances.DataAnalysis {
+  public class FeynmanBonus12 : FeynmanDescriptor {
+    private readonly int testSamples;
+    private readonly int trainingSamples;
+
+    public FeynmanBonus12() : this((int) DateTime.Now.Ticks, 10000, 10000, null) { }
+
+    public FeynmanBonus12(int seed) {
+      Seed            = seed;
+      trainingSamples = 10000;
+      testSamples     = 10000;
+      noiseRatio      = null;
+    }
+
+    public FeynmanBonus12(int seed, int trainingSamples, int testSamples, double? noiseRatio) {
+      Seed                 = seed;
+      this.trainingSamples = trainingSamples;
+      this.testSamples     = testSamples;
+      this.noiseRatio      = noiseRatio;
+    }
+
+    public override string Name {
+      get {
+        return string.Format(
+          "Jackson 2.11: q/(4*pi*epsilon*y**2)*(4*pi*epsilon*Volt*d-q*d*y**3/(y**2-d**2)**2) | {0} samples | noise ({1})",
+          trainingSamples, noiseRatio == null ? "no noise" : noiseRatio.ToString());
+      }
+    }
+
+    protected override string TargetVariable { get { return noiseRatio == null ? "F" : "F_noise"; } }
+
+    protected override string[] VariableNames {
+      get { return new[] {"q", "y", "Volt", "d", "epsilon", noiseRatio == null ? "F" : "F_noise"}; }
+    }
+
+    protected override string[] AllowedInputVariables { get { return new[] {"q", "y", "Volt", "d", "epsilon"}; } }
+
+    public int Seed { get; private set; }
+
+    protected override int TrainingPartitionStart { get { return 0; } }
+    protected override int TrainingPartitionEnd { get { return trainingSamples; } }
+    protected override int TestPartitionStart { get { return trainingSamples; } }
+    protected override int TestPartitionEnd { get { return trainingSamples + testSamples; } }
+
+    protected override List<List<double>> GenerateValues() {
+      var rand = new MersenneTwister((uint) Seed);
+
+      var data    = new List<List<double>>();
+      var q       = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 5).ToList();
+      var y       = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 3).ToList();
+      var Volt    = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 5).ToList();
+      var d       = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 4, 6).ToList();
+      var epsilon = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 5).ToList();
+
+      var F = new List<double>();
+
+      data.Add(q);
+      data.Add(y);
+      data.Add(Volt);
+      data.Add(d);
+      data.Add(epsilon);
+      data.Add(F);
+
+      for (var i = 0; i < q.Count; i++) {
+        var res = q[i] / (4 * Math.PI * epsilon[i] * Math.Pow(y[i], 2)) * (
+                    4 * Math.PI * epsilon[i] * Volt[i] * d[i] - q[i] * d[i] * Math.Pow(y[i], 3) /
+                    Math.Pow(Math.Pow(y[i], 2) - Math.Pow(d[i], 2), 2));
+        F.Add(res);
+      }
+
+      if (noiseRatio != null) {
+        var F_noise     = new List<double>();
+        var sigma_noise = (double) noiseRatio * F.StandardDeviationPop();
+        F_noise.AddRange(F.Select(md => md + NormalDistributedRandom.NextDouble(rand, 0, sigma_noise)));
+        data.Remove(F);
+        data.Add(F_noise);
+      }
+
+      return data;
+    }
+  }
+}
Index: anches/3075_aifeynman_instances/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanBonus14_.cs
===================================================================
--- /branches/3075_aifeynman_instances/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanBonus14_.cs	(revision 17675)
+++ 	(revision )
@@ -1,88 +1,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using HeuristicLab.Common;
-using HeuristicLab.Random;
-
-namespace HeuristicLab.Problems.Instances.DataAnalysis {
-  public class FeynmanBonus12 : FeynmanDescriptor {
-    private readonly int testSamples;
-    private readonly int trainingSamples;
-
-    public FeynmanBonus12() : this((int) DateTime.Now.Ticks, 10000, 10000, null) { }
-
-    public FeynmanBonus12(int seed) {
-      Seed            = seed;
-      trainingSamples = 10000;
-      testSamples     = 10000;
-      noiseRatio      = null;
-    }
-
-    public FeynmanBonus12(int seed, int trainingSamples, int testSamples, double? noiseRatio) {
-      Seed                 = seed;
-      this.trainingSamples = trainingSamples;
-      this.testSamples     = testSamples;
-      this.noiseRatio      = noiseRatio;
-    }
-
-    public override string Name {
-      get {
-        return string.Format(
-          "Jackson 2.11: q/(4*pi*epsilon*y**2)*(4*pi*epsilon*Volt*d-q*d*y**3/(y**2-d**2)**2) | {0} samples | noise ({1})",
-          trainingSamples, noiseRatio == null ? "no noise" : noiseRatio.ToString());
-      }
-    }
-
-    protected override string TargetVariable { get { return noiseRatio == null ? "F" : "F_noise"; } }
-
-    protected override string[] VariableNames {
-      get { return new[] {"q", "y", "Volt", "d", "epsilon", noiseRatio == null ? "F" : "F_noise"}; }
-    }
-
-    protected override string[] AllowedInputVariables { get { return new[] {"q", "y", "Volt", "d", "epsilon"}; } }
-
-    public int Seed { get; private set; }
-
-    protected override int TrainingPartitionStart { get { return 0; } }
-    protected override int TrainingPartitionEnd { get { return trainingSamples; } }
-    protected override int TestPartitionStart { get { return trainingSamples; } }
-    protected override int TestPartitionEnd { get { return trainingSamples + testSamples; } }
-
-    protected override List<List<double>> GenerateValues() {
-      var rand = new MersenneTwister((uint) Seed);
-
-      var data    = new List<List<double>>();
-      var q       = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 5).ToList();
-      var y       = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 3).ToList();
-      var Volt    = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 5).ToList();
-      var d       = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 4, 6).ToList();
-      var epsilon = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 5).ToList();
-
-      var F = new List<double>();
-
-      data.Add(q);
-      data.Add(y);
-      data.Add(Volt);
-      data.Add(d);
-      data.Add(epsilon);
-      data.Add(F);
-
-      for (var i = 0; i < q.Count; i++) {
-        var res = q[i] / (4 * Math.PI * epsilon[i] * Math.Pow(y[i], 2)) * (
-                    4 * Math.PI * epsilon[i] * Volt[i] * d[i] - q[i] * d[i] * Math.Pow(y[i], 3) /
-                    Math.Pow(Math.Pow(y[i], 2) - Math.Pow(d[i], 2), 2));
-        F.Add(res);
-      }
-
-      if (noiseRatio != null) {
-        var F_noise     = new List<double>();
-        var sigma_noise = (double) noiseRatio * F.StandardDeviationPop();
-        F_noise.AddRange(F.Select(md => md + NormalDistributedRandom.NextDouble(rand, 0, sigma_noise)));
-        data.Remove(F);
-        data.Add(F_noise);
-      }
-
-      return data;
-    }
-  }
-}
Index: /branches/3075_aifeynman_instances/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanBonus15.cs
===================================================================
--- /branches/3075_aifeynman_instances/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanBonus15.cs	(revision 17676)
+++ /branches/3075_aifeynman_instances/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanBonus15.cs	(revision 17676)
@@ -0,0 +1,85 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using HeuristicLab.Common;
+using HeuristicLab.Random;
+
+namespace HeuristicLab.Problems.Instances.DataAnalysis {
+  public class FeynmanBonus13 : FeynmanDescriptor {
+    private readonly int testSamples;
+    private readonly int trainingSamples;
+
+    public FeynmanBonus13() : this((int) DateTime.Now.Ticks, 10000, 10000, null) { }
+
+    public FeynmanBonus13(int seed) {
+      Seed            = seed;
+      trainingSamples = 10000;
+      testSamples     = 10000;
+      noiseRatio      = null;
+    }
+
+    public FeynmanBonus13(int seed, int trainingSamples, int testSamples, double? noiseRatio) {
+      Seed                 = seed;
+      this.trainingSamples = trainingSamples;
+      this.testSamples     = testSamples;
+      this.noiseRatio      = noiseRatio;
+    }
+
+    public override string Name {
+      get {
+        return string.Format(
+          "Jackson 3.45: q/sqrt(r**2+d**2-2*r*d*cos(alpha)) | {0} samples | noise ({1})",
+          trainingSamples, noiseRatio == null ? "no noise" : noiseRatio.ToString());
+      }
+    }
+
+    protected override string TargetVariable { get { return noiseRatio == null ? "Volt" : "Volt_noise"; } }
+
+    protected override string[] VariableNames {
+      get { return new[] {"q", "r", "d", "alpha", noiseRatio == null ? "Volt" : "Volt_noise"}; }
+    }
+
+    protected override string[] AllowedInputVariables { get { return new[] {"q", "r", "d", "alpha"}; } }
+
+    public int Seed { get; private set; }
+
+    protected override int TrainingPartitionStart { get { return 0; } }
+    protected override int TrainingPartitionEnd { get { return trainingSamples; } }
+    protected override int TestPartitionStart { get { return trainingSamples; } }
+    protected override int TestPartitionEnd { get { return trainingSamples + testSamples; } }
+
+    protected override List<List<double>> GenerateValues() {
+      var rand = new MersenneTwister((uint) Seed);
+
+      var data    = new List<List<double>>();
+      var q       = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 5).ToList();
+      var r       = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 3).ToList();
+      var d       = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 4, 6).ToList();
+      var alpha   = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 0, 6).ToList();
+
+      var Volt = new List<double>();
+
+      data.Add(q);
+      data.Add(r);
+      data.Add(d);
+      data.Add(alpha);
+      data.Add(Volt);
+
+      for (var i = 0; i < q.Count; i++) {
+        var res = q[i] /
+                  Math.Sqrt(Math.Pow(r[i], 2) + Math.Pow(d[i], 2) - 2 * r[i] * d[i] * Math.Cos(alpha[i]));
+        Volt.Add(res);
+      }
+
+      if (noiseRatio != null) {
+        var Volt_noise  = new List<double>();
+        var sigma_noise = (double) noiseRatio * Volt.StandardDeviationPop();
+        Volt_noise.AddRange(Volt.Select(md => md + NormalDistributedRandom.NextDouble(rand, 0, sigma_noise)));
+        data.Remove(Volt);
+        data.Add(Volt_noise);
+      }
+
+      return data;
+    }
+  }
+}
Index: anches/3075_aifeynman_instances/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanBonus15_.cs
===================================================================
--- /branches/3075_aifeynman_instances/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanBonus15_.cs	(revision 17675)
+++ 	(revision )
@@ -1,85 +1,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using HeuristicLab.Common;
-using HeuristicLab.Random;
-
-namespace HeuristicLab.Problems.Instances.DataAnalysis {
-  public class FeynmanBonus13 : FeynmanDescriptor {
-    private readonly int testSamples;
-    private readonly int trainingSamples;
-
-    public FeynmanBonus13() : this((int) DateTime.Now.Ticks, 10000, 10000, null) { }
-
-    public FeynmanBonus13(int seed) {
-      Seed            = seed;
-      trainingSamples = 10000;
-      testSamples     = 10000;
-      noiseRatio      = null;
-    }
-
-    public FeynmanBonus13(int seed, int trainingSamples, int testSamples, double? noiseRatio) {
-      Seed                 = seed;
-      this.trainingSamples = trainingSamples;
-      this.testSamples     = testSamples;
-      this.noiseRatio      = noiseRatio;
-    }
-
-    public override string Name {
-      get {
-        return string.Format(
-          "Jackson 3.45: q/sqrt(r**2+d**2-2*r*d*cos(alpha)) | {0} samples | noise ({1})",
-          trainingSamples, noiseRatio == null ? "no noise" : noiseRatio.ToString());
-      }
-    }
-
-    protected override string TargetVariable { get { return noiseRatio == null ? "Volt" : "Volt_noise"; } }
-
-    protected override string[] VariableNames {
-      get { return new[] {"q", "r", "d", "alpha", noiseRatio == null ? "Volt" : "Volt_noise"}; }
-    }
-
-    protected override string[] AllowedInputVariables { get { return new[] {"q", "r", "d", "alpha"}; } }
-
-    public int Seed { get; private set; }
-
-    protected override int TrainingPartitionStart { get { return 0; } }
-    protected override int TrainingPartitionEnd { get { return trainingSamples; } }
-    protected override int TestPartitionStart { get { return trainingSamples; } }
-    protected override int TestPartitionEnd { get { return trainingSamples + testSamples; } }
-
-    protected override List<List<double>> GenerateValues() {
-      var rand = new MersenneTwister((uint) Seed);
-
-      var data    = new List<List<double>>();
-      var q       = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 5).ToList();
-      var r       = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 3).ToList();
-      var d       = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 4, 6).ToList();
-      var alpha   = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 0, 6).ToList();
-
-      var Volt = new List<double>();
-
-      data.Add(q);
-      data.Add(r);
-      data.Add(d);
-      data.Add(alpha);
-      data.Add(Volt);
-
-      for (var i = 0; i < q.Count; i++) {
-        var res = q[i] /
-                  Math.Sqrt(Math.Pow(r[i], 2) + Math.Pow(d[i], 2) - 2 * r[i] * d[i] * Math.Cos(alpha[i]));
-        Volt.Add(res);
-      }
-
-      if (noiseRatio != null) {
-        var Volt_noise  = new List<double>();
-        var sigma_noise = (double) noiseRatio * Volt.StandardDeviationPop();
-        Volt_noise.AddRange(Volt.Select(md => md + NormalDistributedRandom.NextDouble(rand, 0, sigma_noise)));
-        data.Remove(Volt);
-        data.Add(Volt_noise);
-      }
-
-      return data;
-    }
-  }
-}
Index: /branches/3075_aifeynman_instances/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanBonus16.cs
===================================================================
--- /branches/3075_aifeynman_instances/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanBonus16.cs	(revision 17676)
+++ /branches/3075_aifeynman_instances/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanBonus16.cs	(revision 17676)
@@ -0,0 +1,87 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using HeuristicLab.Common;
+using HeuristicLab.Random;
+
+namespace HeuristicLab.Problems.Instances.DataAnalysis {
+  public class FeynmanBonus14 : FeynmanDescriptor {
+    private readonly int testSamples;
+    private readonly int trainingSamples;
+
+    public FeynmanBonus14() : this((int) DateTime.Now.Ticks, 10000, 10000, null) { }
+
+    public FeynmanBonus14(int seed) {
+      Seed            = seed;
+      trainingSamples = 10000;
+      testSamples     = 10000;
+      noiseRatio      = null;
+    }
+
+    public FeynmanBonus14(int seed, int trainingSamples, int testSamples, double? noiseRatio) {
+      Seed                 = seed;
+      this.trainingSamples = trainingSamples;
+      this.testSamples     = testSamples;
+      this.noiseRatio      = noiseRatio;
+    }
+
+    public override string Name {
+      get {
+        return string.Format(
+          "Jackson 4.60: Ef*cos(theta)*((alpha-1)/(alpha+2)*d**3/r**2-r) | {0} samples | noise ({1})",
+          trainingSamples, noiseRatio == null ? "no noise" : noiseRatio.ToString());
+      }
+    }
+
+    protected override string TargetVariable { get { return noiseRatio == null ? "Volt" : "Volt_noise"; } }
+
+    protected override string[] VariableNames {
+      get { return new[] {"Ef", "theta", "r", "d", "alpha", noiseRatio == null ? "Volt" : "Volt_noise"}; }
+    }
+
+    protected override string[] AllowedInputVariables { get { return new[] {"Ef", "theta", "r", "d", "alpha"}; } }
+
+    public int Seed { get; private set; }
+
+    protected override int TrainingPartitionStart { get { return 0; } }
+    protected override int TrainingPartitionEnd { get { return trainingSamples; } }
+    protected override int TestPartitionStart { get { return trainingSamples; } }
+    protected override int TestPartitionEnd { get { return trainingSamples + testSamples; } }
+
+    protected override List<List<double>> GenerateValues() {
+      var rand = new MersenneTwister((uint) Seed);
+
+      var data  = new List<List<double>>();
+      var Ef    = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 5).ToList();
+      var theta = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 0, 6).ToList();
+      var r     = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 5).ToList();
+      var d     = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 5).ToList();
+      var alpha = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 5).ToList();
+
+      var Volt = new List<double>();
+
+      data.Add(Ef);
+      data.Add(theta);
+      data.Add(r);
+      data.Add(d);
+      data.Add(alpha);
+      data.Add(Volt);
+
+      for (var i = 0; i < Ef.Count; i++) {
+        var res = Ef[i] * Math.Cos(theta[i]) *
+                  ((alpha[i] - 1) / (alpha[i] + 2) * Math.Pow(d[i], 3) / Math.Pow(r[i], 2) - r[i] );
+        Volt.Add(res);
+      }
+
+      if (noiseRatio != null) {
+        var Volt_noise  = new List<double>();
+        var sigma_noise = (double) noiseRatio * Volt.StandardDeviationPop();
+        Volt_noise.AddRange(Volt.Select(md => md + NormalDistributedRandom.NextDouble(rand, 0, sigma_noise)));
+        data.Remove(Volt);
+        data.Add(Volt_noise);
+      }
+
+      return data;
+    }
+  }
+}
Index: anches/3075_aifeynman_instances/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanBonus16_.cs
===================================================================
--- /branches/3075_aifeynman_instances/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanBonus16_.cs	(revision 17675)
+++ 	(revision )
@@ -1,87 +1,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using HeuristicLab.Common;
-using HeuristicLab.Random;
-
-namespace HeuristicLab.Problems.Instances.DataAnalysis {
-  public class FeynmanBonus14 : FeynmanDescriptor {
-    private readonly int testSamples;
-    private readonly int trainingSamples;
-
-    public FeynmanBonus14() : this((int) DateTime.Now.Ticks, 10000, 10000, null) { }
-
-    public FeynmanBonus14(int seed) {
-      Seed            = seed;
-      trainingSamples = 10000;
-      testSamples     = 10000;
-      noiseRatio      = null;
-    }
-
-    public FeynmanBonus14(int seed, int trainingSamples, int testSamples, double? noiseRatio) {
-      Seed                 = seed;
-      this.trainingSamples = trainingSamples;
-      this.testSamples     = testSamples;
-      this.noiseRatio      = noiseRatio;
-    }
-
-    public override string Name {
-      get {
-        return string.Format(
-          "Jackson 4.60: Ef*cos(theta)*((alpha-1)/(alpha+2)*d**3/r**2-r) | {0} samples | noise ({1})",
-          trainingSamples, noiseRatio == null ? "no noise" : noiseRatio.ToString());
-      }
-    }
-
-    protected override string TargetVariable { get { return noiseRatio == null ? "Volt" : "Volt_noise"; } }
-
-    protected override string[] VariableNames {
-      get { return new[] {"Ef", "theta", "r", "d", "alpha", noiseRatio == null ? "Volt" : "Volt_noise"}; }
-    }
-
-    protected override string[] AllowedInputVariables { get { return new[] {"Ef", "theta", "r", "d", "alpha"}; } }
-
-    public int Seed { get; private set; }
-
-    protected override int TrainingPartitionStart { get { return 0; } }
-    protected override int TrainingPartitionEnd { get { return trainingSamples; } }
-    protected override int TestPartitionStart { get { return trainingSamples; } }
-    protected override int TestPartitionEnd { get { return trainingSamples + testSamples; } }
-
-    protected override List<List<double>> GenerateValues() {
-      var rand = new MersenneTwister((uint) Seed);
-
-      var data  = new List<List<double>>();
-      var Ef    = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 5).ToList();
-      var theta = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 0, 6).ToList();
-      var r     = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 5).ToList();
-      var d     = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 5).ToList();
-      var alpha = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 5).ToList();
-
-      var Volt = new List<double>();
-
-      data.Add(Ef);
-      data.Add(theta);
-      data.Add(r);
-      data.Add(d);
-      data.Add(alpha);
-      data.Add(Volt);
-
-      for (var i = 0; i < Ef.Count; i++) {
-        var res = Ef[i] * Math.Cos(theta[i]) *
-                  ((alpha[i] - 1) / (alpha[i] + 2) * Math.Pow(d[i], 3) / Math.Pow(r[i], 2) - r[i] );
-        Volt.Add(res);
-      }
-
-      if (noiseRatio != null) {
-        var Volt_noise  = new List<double>();
-        var sigma_noise = (double) noiseRatio * Volt.StandardDeviationPop();
-        Volt_noise.AddRange(Volt.Select(md => md + NormalDistributedRandom.NextDouble(rand, 0, sigma_noise)));
-        data.Remove(Volt);
-        data.Add(Volt_noise);
-      }
-
-      return data;
-    }
-  }
-}
Index: /branches/3075_aifeynman_instances/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanBonus17.cs
===================================================================
--- /branches/3075_aifeynman_instances/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanBonus17.cs	(revision 17676)
+++ /branches/3075_aifeynman_instances/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanBonus17.cs	(revision 17676)
@@ -0,0 +1,85 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using HeuristicLab.Common;
+using HeuristicLab.Random;
+
+namespace HeuristicLab.Problems.Instances.DataAnalysis {
+  public class FeynmanBonus15 : FeynmanDescriptor {
+    private readonly int testSamples;
+    private readonly int trainingSamples;
+
+    public FeynmanBonus15() : this((int) DateTime.Now.Ticks, 10000, 10000, null) { }
+
+    public FeynmanBonus15(int seed) {
+      Seed            = seed;
+      trainingSamples = 10000;
+      testSamples     = 10000;
+      noiseRatio      = null;
+    }
+
+    public FeynmanBonus15(int seed, int trainingSamples, int testSamples, double? noiseRatio) {
+      Seed                 = seed;
+      this.trainingSamples = trainingSamples;
+      this.testSamples     = testSamples;
+      this.noiseRatio      = noiseRatio;
+    }
+
+    public override string Name {
+      get {
+        return string.Format(
+          "Jackson 11.38: sqrt(1-v**2/c**2)*omega/(1+v/c*cos(theta)) | {0} samples | noise ({1})",
+          trainingSamples, noiseRatio == null ? "no noise" : noiseRatio.ToString());
+      }
+    }
+
+    protected override string TargetVariable { get { return noiseRatio == null ? "omega_0" : "omega_0_noise"; } }
+
+    protected override string[] VariableNames {
+      get { return new[] {"c", "v", "omega", "theta", noiseRatio == null ? "omega_0" : "omega_0_noise"}; }
+    }
+
+    protected override string[] AllowedInputVariables { get { return new[] {"c", "v", "omega", "theta"}; } }
+
+    public int Seed { get; private set; }
+
+    protected override int TrainingPartitionStart { get { return 0; } }
+    protected override int TrainingPartitionEnd { get { return trainingSamples; } }
+    protected override int TestPartitionStart { get { return trainingSamples; } }
+    protected override int TestPartitionEnd { get { return trainingSamples + testSamples; } }
+
+    protected override List<List<double>> GenerateValues() {
+      var rand = new MersenneTwister((uint) Seed);
+
+      var data  = new List<List<double>>();
+      var c     = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 5, 20).ToList();
+      var v     = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 3).ToList();
+      var omega = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 5).ToList();
+      var theta = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 0, 6).ToList();
+
+      var omega_0 = new List<double>();
+
+      data.Add(c);
+      data.Add(v);
+      data.Add(omega);
+      data.Add(theta);
+      data.Add(omega_0);
+
+      for (var i = 0; i < c.Count; i++) {
+        var res = Math.Sqrt(1 - Math.Pow(v[i], 2) / Math.Pow(c[i], 2)) * omega[i] /
+                  (1 + v[i] / c[i] * Math.Cos(theta[i]));
+        omega_0.Add(res);
+      }
+
+      if (noiseRatio != null) {
+        var omega_0_noise = new List<double>();
+        var sigma_noise   = (double) noiseRatio * omega_0.StandardDeviationPop();
+        omega_0_noise.AddRange(omega_0.Select(md => md + NormalDistributedRandom.NextDouble(rand, 0, sigma_noise)));
+        data.Remove(omega_0);
+        data.Add(omega_0_noise);
+      }
+
+      return data;
+    }
+  }
+}
Index: anches/3075_aifeynman_instances/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanBonus17_.cs
===================================================================
--- /branches/3075_aifeynman_instances/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanBonus17_.cs	(revision 17675)
+++ 	(revision )
@@ -1,85 +1,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using HeuristicLab.Common;
-using HeuristicLab.Random;
-
-namespace HeuristicLab.Problems.Instances.DataAnalysis {
-  public class FeynmanBonus15 : FeynmanDescriptor {
-    private readonly int testSamples;
-    private readonly int trainingSamples;
-
-    public FeynmanBonus15() : this((int) DateTime.Now.Ticks, 10000, 10000, null) { }
-
-    public FeynmanBonus15(int seed) {
-      Seed            = seed;
-      trainingSamples = 10000;
-      testSamples     = 10000;
-      noiseRatio      = null;
-    }
-
-    public FeynmanBonus15(int seed, int trainingSamples, int testSamples, double? noiseRatio) {
-      Seed                 = seed;
-      this.trainingSamples = trainingSamples;
-      this.testSamples     = testSamples;
-      this.noiseRatio      = noiseRatio;
-    }
-
-    public override string Name {
-      get {
-        return string.Format(
-          "Jackson 11.38: sqrt(1-v**2/c**2)*omega/(1+v/c*cos(theta)) | {0} samples | noise ({1})",
-          trainingSamples, noiseRatio == null ? "no noise" : noiseRatio.ToString());
-      }
-    }
-
-    protected override string TargetVariable { get { return noiseRatio == null ? "omega_0" : "omega_0_noise"; } }
-
-    protected override string[] VariableNames {
-      get { return new[] {"c", "v", "omega", "theta", noiseRatio == null ? "omega_0" : "omega_0_noise"}; }
-    }
-
-    protected override string[] AllowedInputVariables { get { return new[] {"c", "v", "omega", "theta"}; } }
-
-    public int Seed { get; private set; }
-
-    protected override int TrainingPartitionStart { get { return 0; } }
-    protected override int TrainingPartitionEnd { get { return trainingSamples; } }
-    protected override int TestPartitionStart { get { return trainingSamples; } }
-    protected override int TestPartitionEnd { get { return trainingSamples + testSamples; } }
-
-    protected override List<List<double>> GenerateValues() {
-      var rand = new MersenneTwister((uint) Seed);
-
-      var data  = new List<List<double>>();
-      var c     = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 5, 20).ToList();
-      var v     = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 3).ToList();
-      var omega = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 5).ToList();
-      var theta = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 0, 6).ToList();
-
-      var omega_0 = new List<double>();
-
-      data.Add(c);
-      data.Add(v);
-      data.Add(omega);
-      data.Add(theta);
-      data.Add(omega_0);
-
-      for (var i = 0; i < c.Count; i++) {
-        var res = Math.Sqrt(1 - Math.Pow(v[i], 2) / Math.Pow(c[i], 2)) * omega[i] /
-                  (1 + v[i] / c[i] * Math.Cos(theta[i]));
-        omega_0.Add(res);
-      }
-
-      if (noiseRatio != null) {
-        var omega_0_noise = new List<double>();
-        var sigma_noise   = (double) noiseRatio * omega_0.StandardDeviationPop();
-        omega_0_noise.AddRange(omega_0.Select(md => md + NormalDistributedRandom.NextDouble(rand, 0, sigma_noise)));
-        data.Remove(omega_0);
-        data.Add(omega_0_noise);
-      }
-
-      return data;
-    }
-  }
-}
Index: /branches/3075_aifeynman_instances/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanBonus7.cs
===================================================================
--- /branches/3075_aifeynman_instances/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanBonus7.cs	(revision 17676)
+++ /branches/3075_aifeynman_instances/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanBonus7.cs	(revision 17676)
@@ -0,0 +1,85 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using HeuristicLab.Common;
+using HeuristicLab.Random;
+
+namespace HeuristicLab.Problems.Instances.DataAnalysis {
+  public class FeynmanBonus4 : FeynmanDescriptor {
+    private readonly int testSamples;
+    private readonly int trainingSamples;
+
+    public FeynmanBonus4() : this((int) DateTime.Now.Ticks, 10000, 10000, null) { }
+
+    public FeynmanBonus4(int seed) {
+      Seed            = seed;
+      trainingSamples = 10000;
+      testSamples     = 10000;
+      noiseRatio      = null;
+    }
+
+    public FeynmanBonus4(int seed, int trainingSamples, int testSamples, double? noiseRatio) {
+      Seed                 = seed;
+      this.trainingSamples = trainingSamples;
+      this.testSamples     = testSamples;
+      this.noiseRatio      = noiseRatio;
+    }
+
+    public override string Name {
+      get {
+        return string.Format("Goldstein 3.16: sqrt(2/m*(E_n-U-L**2/(2*m*r**2))) | {0} samples | noise ({1})",
+          trainingSamples, noiseRatio == null ? "no noise" : noiseRatio.ToString());
+      }
+    }
+
+    protected override string TargetVariable { get { return noiseRatio == null ? "v" : "v_noise"; } }
+
+    protected override string[] VariableNames {
+      get { return new[] {"m", "E_n", "U", "L", "r", noiseRatio == null ? "v" : "v_noise"}; }
+    }
+
+    protected override string[] AllowedInputVariables { get { return new[] {"m", "E_n", "U", "L", "r"}; } }
+
+    public int Seed { get; private set; }
+
+    protected override int TrainingPartitionStart { get { return 0; } }
+    protected override int TrainingPartitionEnd { get { return trainingSamples; } }
+    protected override int TestPartitionStart { get { return trainingSamples; } }
+    protected override int TestPartitionEnd { get { return trainingSamples + testSamples; } }
+
+    protected override List<List<double>> GenerateValues() {
+      var rand = new MersenneTwister((uint) Seed);
+
+      var data = new List<List<double>>();
+      var m    = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 3).ToList();
+      var E_n  = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 8, 12).ToList();
+      var U    = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 3).ToList();
+      var L    = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 3).ToList();
+      var r    = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 3).ToList();
+
+      var v = new List<double>();
+
+      data.Add(m);
+      data.Add(E_n);
+      data.Add(U);
+      data.Add(L);
+      data.Add(r);
+      data.Add(v);
+
+      for (var i = 0; i < m.Count; i++) {
+        var res = Math.Sqrt(2 / m[i] * (E_n[i] - U[i] - Math.Pow(L[i], 2) / (2 * m[i] * Math.Pow(r[i], 2))));
+        v.Add(res);
+      }
+
+      if (noiseRatio != null) {
+        var v_noise     = new List<double>();
+        var sigma_noise = (double) noiseRatio * v.StandardDeviationPop();
+        v_noise.AddRange(v.Select(md => md + NormalDistributedRandom.NextDouble(rand, 0, sigma_noise)));
+        data.Remove(v);
+        data.Add(v_noise);
+      }
+
+      return data;
+    }
+  }
+}
Index: anches/3075_aifeynman_instances/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanBonus7_.cs
===================================================================
--- /branches/3075_aifeynman_instances/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanBonus7_.cs	(revision 17675)
+++ 	(revision )
@@ -1,85 +1,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using HeuristicLab.Common;
-using HeuristicLab.Random;
-
-namespace HeuristicLab.Problems.Instances.DataAnalysis {
-  public class FeynmanBonus4 : FeynmanDescriptor {
-    private readonly int testSamples;
-    private readonly int trainingSamples;
-
-    public FeynmanBonus4() : this((int) DateTime.Now.Ticks, 10000, 10000, null) { }
-
-    public FeynmanBonus4(int seed) {
-      Seed            = seed;
-      trainingSamples = 10000;
-      testSamples     = 10000;
-      noiseRatio      = null;
-    }
-
-    public FeynmanBonus4(int seed, int trainingSamples, int testSamples, double? noiseRatio) {
-      Seed                 = seed;
-      this.trainingSamples = trainingSamples;
-      this.testSamples     = testSamples;
-      this.noiseRatio      = noiseRatio;
-    }
-
-    public override string Name {
-      get {
-        return string.Format("Goldstein 3.16: sqrt(2/m*(E_n-U-L**2/(2*m*r**2))) | {0} samples | noise ({1})",
-          trainingSamples, noiseRatio == null ? "no noise" : noiseRatio.ToString());
-      }
-    }
-
-    protected override string TargetVariable { get { return noiseRatio == null ? "v" : "v_noise"; } }
-
-    protected override string[] VariableNames {
-      get { return new[] {"m", "E_n", "U", "L", "r", noiseRatio == null ? "v" : "v_noise"}; }
-    }
-
-    protected override string[] AllowedInputVariables { get { return new[] {"m", "E_n", "U", "L", "r"}; } }
-
-    public int Seed { get; private set; }
-
-    protected override int TrainingPartitionStart { get { return 0; } }
-    protected override int TrainingPartitionEnd { get { return trainingSamples; } }
-    protected override int TestPartitionStart { get { return trainingSamples; } }
-    protected override int TestPartitionEnd { get { return trainingSamples + testSamples; } }
-
-    protected override List<List<double>> GenerateValues() {
-      var rand = new MersenneTwister((uint) Seed);
-
-      var data = new List<List<double>>();
-      var m    = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 3).ToList();
-      var E_n  = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 8, 12).ToList();
-      var U    = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 3).ToList();
-      var L    = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 3).ToList();
-      var r    = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 3).ToList();
-
-      var v = new List<double>();
-
-      data.Add(m);
-      data.Add(E_n);
-      data.Add(U);
-      data.Add(L);
-      data.Add(r);
-      data.Add(v);
-
-      for (var i = 0; i < m.Count; i++) {
-        var res = Math.Sqrt(2 / m[i] * (E_n[i] - U[i] - Math.Pow(L[i], 2) / (2 * m[i] * Math.Pow(r[i], 2))));
-        v.Add(res);
-      }
-
-      if (noiseRatio != null) {
-        var v_noise     = new List<double>();
-        var sigma_noise = (double) noiseRatio * v.StandardDeviationPop();
-        v_noise.AddRange(v.Select(md => md + NormalDistributedRandom.NextDouble(rand, 0, sigma_noise)));
-        data.Remove(v);
-        data.Add(v_noise);
-      }
-
-      return data;
-    }
-  }
-}
Index: /branches/3075_aifeynman_instances/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanBonus8.cs
===================================================================
--- /branches/3075_aifeynman_instances/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanBonus8.cs	(revision 17676)
+++ /branches/3075_aifeynman_instances/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanBonus8.cs	(revision 17676)
@@ -0,0 +1,92 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using HeuristicLab.Common;
+using HeuristicLab.Random;
+
+namespace HeuristicLab.Problems.Instances.DataAnalysis {
+  public class FeynmanBonus2 : FeynmanDescriptor {
+    private readonly int testSamples;
+    private readonly int trainingSamples;
+
+    public FeynmanBonus2() : this((int) DateTime.Now.Ticks, 10000, 10000, null) { }
+
+    public FeynmanBonus2(int seed) {
+      Seed            = seed;
+      trainingSamples = 10000;
+      testSamples     = 10000;
+      noiseRatio      = null;
+    }
+
+    public FeynmanBonus2(int seed, int trainingSamples, int testSamples, double? noiseRatio) {
+      Seed                 = seed;
+      this.trainingSamples = trainingSamples;
+      this.testSamples     = testSamples;
+      this.noiseRatio      = noiseRatio;
+    }
+
+    public override string Name {
+      get {
+        return string.Format(
+          "Goldstein 3.55: m*k_G/L**2*(1+sqrt(1+2*E_n*L**2/(m*k_G**2))*cos(theta1-theta2)) | {0} samples | noise ({1})",
+          trainingSamples, noiseRatio == null ? "no noise" : noiseRatio.ToString());
+      }
+    }
+
+    protected override string TargetVariable { get { return noiseRatio == null ? "k" : "k_noise"; } }
+
+    protected override string[] VariableNames {
+      get { return new[] {"m", "k_G", "L", "E_n", "theta1", "theta2", noiseRatio == null ? "k" : "k_noise"}; }
+    }
+
+    protected override string[] AllowedInputVariables {
+      get { return new[] {"m", "k_G", "L", "E_n", "theta1", "theta2"}; }
+    }
+
+    public int Seed { get; private set; }
+
+    protected override int TrainingPartitionStart { get { return 0; } }
+    protected override int TrainingPartitionEnd { get { return trainingSamples; } }
+    protected override int TestPartitionStart { get { return trainingSamples; } }
+    protected override int TestPartitionEnd { get { return trainingSamples + testSamples; } }
+
+    protected override List<List<double>> GenerateValues() {
+      var rand = new MersenneTwister((uint) Seed);
+
+      var data   = new List<List<double>>();
+      var m      = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 3).ToList();
+      var k_G    = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 3).ToList();
+      var L      = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 3).ToList();
+      var E_n    = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 3).ToList();
+      var theta1 = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 0, 6).ToList();
+      var theta2 = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 0, 6).ToList();
+
+      var k = new List<double>();
+
+      data.Add(m);
+      data.Add(k_G);
+      data.Add(L);
+      data.Add(E_n);
+      data.Add(theta1);
+      data.Add(theta2);
+      data.Add(k);
+
+      for (var i = 0; i < m.Count; i++) {
+        var res = m[i] * k_G[i] / Math.Pow(L[i], 2) *
+                  (1 + Math.Sqrt(1 + 2 * E_n[i] * Math.Pow(L[i], 2) / (m[i] * Math.Pow(k_G[i], 2))) *
+                   Math.Cos(theta1[i] - theta2[i]));
+        k.Add(res);
+      }
+
+      if (noiseRatio != null) {
+        var k_noise     = new List<double>();
+        var sigma_noise = (double) noiseRatio * k.StandardDeviationPop();
+        k_noise.AddRange(k.Select(md => md + NormalDistributedRandom.NextDouble(rand, 0, sigma_noise)));
+        data.Remove(k);
+        data.Add(k_noise);
+      }
+
+      return data;
+    }
+  }
+}
Index: anches/3075_aifeynman_instances/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanBonus8_.cs
===================================================================
--- /branches/3075_aifeynman_instances/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanBonus8_.cs	(revision 17675)
+++ 	(revision )
@@ -1,92 +1,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using HeuristicLab.Common;
-using HeuristicLab.Random;
-
-namespace HeuristicLab.Problems.Instances.DataAnalysis {
-  public class FeynmanBonus2 : FeynmanDescriptor {
-    private readonly int testSamples;
-    private readonly int trainingSamples;
-
-    public FeynmanBonus2() : this((int) DateTime.Now.Ticks, 10000, 10000, null) { }
-
-    public FeynmanBonus2(int seed) {
-      Seed            = seed;
-      trainingSamples = 10000;
-      testSamples     = 10000;
-      noiseRatio      = null;
-    }
-
-    public FeynmanBonus2(int seed, int trainingSamples, int testSamples, double? noiseRatio) {
-      Seed                 = seed;
-      this.trainingSamples = trainingSamples;
-      this.testSamples     = testSamples;
-      this.noiseRatio      = noiseRatio;
-    }
-
-    public override string Name {
-      get {
-        return string.Format(
-          "Goldstein 3.55: m*k_G/L**2*(1+sqrt(1+2*E_n*L**2/(m*k_G**2))*cos(theta1-theta2)) | {0} samples | noise ({1})",
-          trainingSamples, noiseRatio == null ? "no noise" : noiseRatio.ToString());
-      }
-    }
-
-    protected override string TargetVariable { get { return noiseRatio == null ? "k" : "k_noise"; } }
-
-    protected override string[] VariableNames {
-      get { return new[] {"m", "k_G", "L", "E_n", "theta1", "theta2", noiseRatio == null ? "k" : "k_noise"}; }
-    }
-
-    protected override string[] AllowedInputVariables {
-      get { return new[] {"m", "k_G", "L", "E_n", "theta1", "theta2"}; }
-    }
-
-    public int Seed { get; private set; }
-
-    protected override int TrainingPartitionStart { get { return 0; } }
-    protected override int TrainingPartitionEnd { get { return trainingSamples; } }
-    protected override int TestPartitionStart { get { return trainingSamples; } }
-    protected override int TestPartitionEnd { get { return trainingSamples + testSamples; } }
-
-    protected override List<List<double>> GenerateValues() {
-      var rand = new MersenneTwister((uint) Seed);
-
-      var data   = new List<List<double>>();
-      var m      = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 3).ToList();
-      var k_G    = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 3).ToList();
-      var L      = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 3).ToList();
-      var E_n    = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 3).ToList();
-      var theta1 = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 0, 6).ToList();
-      var theta2 = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 0, 6).ToList();
-
-      var k = new List<double>();
-
-      data.Add(m);
-      data.Add(k_G);
-      data.Add(L);
-      data.Add(E_n);
-      data.Add(theta1);
-      data.Add(theta2);
-      data.Add(k);
-
-      for (var i = 0; i < m.Count; i++) {
-        var res = m[i] * k_G[i] / Math.Pow(L[i], 2) *
-                  (1 + Math.Sqrt(1 + 2 * E_n[i] * Math.Pow(L[i], 2) / (m[i] * Math.Pow(k_G[i], 2))) *
-                   Math.Cos(theta1[i] - theta2[i]));
-        k.Add(res);
-      }
-
-      if (noiseRatio != null) {
-        var k_noise     = new List<double>();
-        var sigma_noise = (double) noiseRatio * k.StandardDeviationPop();
-        k_noise.AddRange(k.Select(md => md + NormalDistributedRandom.NextDouble(rand, 0, sigma_noise)));
-        data.Remove(k);
-        data.Add(k_noise);
-      }
-
-      return data;
-    }
-  }
-}
Index: /branches/3075_aifeynman_instances/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanBonus9.cs
===================================================================
--- /branches/3075_aifeynman_instances/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanBonus9.cs	(revision 17676)
+++ /branches/3075_aifeynman_instances/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanBonus9.cs	(revision 17676)
@@ -0,0 +1,84 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using HeuristicLab.Common;
+using HeuristicLab.Random;
+
+namespace HeuristicLab.Problems.Instances.DataAnalysis {
+  public class FeynmanBonus3 : FeynmanDescriptor {
+    private readonly int testSamples;
+    private readonly int trainingSamples;
+
+    public FeynmanBonus3() : this((int) DateTime.Now.Ticks, 10000, 10000, null) { }
+
+    public FeynmanBonus3(int seed) {
+      Seed            = seed;
+      trainingSamples = 10000;
+      testSamples     = 10000;
+      noiseRatio      = null;
+    }
+
+    public FeynmanBonus3(int seed, int trainingSamples, int testSamples, double? noiseRatio) {
+      Seed                 = seed;
+      this.trainingSamples = trainingSamples;
+      this.testSamples     = testSamples;
+      this.noiseRatio      = noiseRatio;
+    }
+
+    public override string Name {
+      get {
+        return string.Format(
+          "Goldstein 3.64: d*(1-alpha**2)/(1+alpha*cos(theta1-theta2)) | {0} samples | noise ({1})",
+          trainingSamples, noiseRatio == null ? "no noise" : noiseRatio.ToString());
+      }
+    }
+
+    protected override string TargetVariable { get { return noiseRatio == null ? "r" : "r_noise"; } }
+
+    protected override string[] VariableNames {
+      get { return new[] {"d", "alpha", "theta1", "theta2", noiseRatio == null ? "r" : "r_noise"}; }
+    }
+
+    protected override string[] AllowedInputVariables { get { return new[] {"d", "alpha", "theta1", "theta2"}; } }
+
+    public int Seed { get; private set; }
+
+    protected override int TrainingPartitionStart { get { return 0; } }
+    protected override int TrainingPartitionEnd { get { return trainingSamples; } }
+    protected override int TestPartitionStart { get { return trainingSamples; } }
+    protected override int TestPartitionEnd { get { return trainingSamples + testSamples; } }
+
+    protected override List<List<double>> GenerateValues() {
+      var rand = new MersenneTwister((uint) Seed);
+
+      var data   = new List<List<double>>();
+      var d      = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 3).ToList();
+      var alpha  = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 2, 4).ToList();
+      var theta1 = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 4, 5).ToList();
+      var theta2 = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 4, 5).ToList();
+
+      var r = new List<double>();
+
+      data.Add(d);
+      data.Add(alpha);
+      data.Add(theta1);
+      data.Add(theta2);
+      data.Add(r);
+
+      for (var i = 0; i < d.Count; i++) {
+        var res = d[i] * (1 - Math.Pow(alpha[i], 2)) / (1 + alpha[i] * Math.Cos(theta1[i] - theta2[i]));
+        r.Add(res);
+      }
+
+      if (noiseRatio != null) {
+        var r_noise     = new List<double>();
+        var sigma_noise = (double) noiseRatio * r.StandardDeviationPop();
+        r_noise.AddRange(r.Select(md => md + NormalDistributedRandom.NextDouble(rand, 0, sigma_noise)));
+        data.Remove(r);
+        data.Add(r_noise);
+      }
+
+      return data;
+    }
+  }
+}
Index: anches/3075_aifeynman_instances/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanBonus9_.cs
===================================================================
--- /branches/3075_aifeynman_instances/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanBonus9_.cs	(revision 17675)
+++ 	(revision )
@@ -1,84 +1,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using HeuristicLab.Common;
-using HeuristicLab.Random;
-
-namespace HeuristicLab.Problems.Instances.DataAnalysis {
-  public class FeynmanBonus3 : FeynmanDescriptor {
-    private readonly int testSamples;
-    private readonly int trainingSamples;
-
-    public FeynmanBonus3() : this((int) DateTime.Now.Ticks, 10000, 10000, null) { }
-
-    public FeynmanBonus3(int seed) {
-      Seed            = seed;
-      trainingSamples = 10000;
-      testSamples     = 10000;
-      noiseRatio      = null;
-    }
-
-    public FeynmanBonus3(int seed, int trainingSamples, int testSamples, double? noiseRatio) {
-      Seed                 = seed;
-      this.trainingSamples = trainingSamples;
-      this.testSamples     = testSamples;
-      this.noiseRatio      = noiseRatio;
-    }
-
-    public override string Name {
-      get {
-        return string.Format(
-          "Goldstein 3.64: d*(1-alpha**2)/(1+alpha*cos(theta1-theta2)) | {0} samples | noise ({1})",
-          trainingSamples, noiseRatio == null ? "no noise" : noiseRatio.ToString());
-      }
-    }
-
-    protected override string TargetVariable { get { return noiseRatio == null ? "r" : "r_noise"; } }
-
-    protected override string[] VariableNames {
-      get { return new[] {"d", "alpha", "theta1", "theta2", noiseRatio == null ? "r" : "r_noise"}; }
-    }
-
-    protected override string[] AllowedInputVariables { get { return new[] {"d", "alpha", "theta1", "theta2"}; } }
-
-    public int Seed { get; private set; }
-
-    protected override int TrainingPartitionStart { get { return 0; } }
-    protected override int TrainingPartitionEnd { get { return trainingSamples; } }
-    protected override int TestPartitionStart { get { return trainingSamples; } }
-    protected override int TestPartitionEnd { get { return trainingSamples + testSamples; } }
-
-    protected override List<List<double>> GenerateValues() {
-      var rand = new MersenneTwister((uint) Seed);
-
-      var data   = new List<List<double>>();
-      var d      = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 3).ToList();
-      var alpha  = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 2, 4).ToList();
-      var theta1 = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 4, 5).ToList();
-      var theta2 = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 4, 5).ToList();
-
-      var r = new List<double>();
-
-      data.Add(d);
-      data.Add(alpha);
-      data.Add(theta1);
-      data.Add(theta2);
-      data.Add(r);
-
-      for (var i = 0; i < d.Count; i++) {
-        var res = d[i] * (1 - Math.Pow(alpha[i], 2)) / (1 + alpha[i] * Math.Cos(theta1[i] - theta2[i]));
-        r.Add(res);
-      }
-
-      if (noiseRatio != null) {
-        var r_noise     = new List<double>();
-        var sigma_noise = (double) noiseRatio * r.StandardDeviationPop();
-        r_noise.AddRange(r.Select(md => md + NormalDistributedRandom.NextDouble(rand, 0, sigma_noise)));
-        data.Remove(r);
-        data.Add(r_noise);
-      }
-
-      return data;
-    }
-  }
-}
