Index: /trunk/HeuristicLab.Tests/HeuristicLab-3.3/Samples/GPSymbolicRegressionSampleWithOSTest.cs
===================================================================
--- /trunk/HeuristicLab.Tests/HeuristicLab-3.3/Samples/GPSymbolicRegressionSampleWithOSTest.cs	(revision 17947)
+++ /trunk/HeuristicLab.Tests/HeuristicLab-3.3/Samples/GPSymbolicRegressionSampleWithOSTest.cs	(revision 17948)
@@ -69,17 +69,17 @@
         // been able to identify the real cause. Presumably, execution on a Xeon and a Core i7 processor 
         // leads to different results. 
-        Assert.AreEqual(0.99174959007940156, SamplesUtils.GetDoubleResult(osga, "BestQuality"), 1E-8, Environment.NewLine + "Best Quality differs.");
-        Assert.AreEqual(0.9836083751914968, SamplesUtils.GetDoubleResult(osga, "CurrentAverageQuality"), 1E-8, Environment.NewLine + "Current Average Quality differs.");
-        Assert.AreEqual(0.98298394717065463, SamplesUtils.GetDoubleResult(osga, "CurrentWorstQuality"), 1E-8, Environment.NewLine + "Current Worst Quality differs.");
-        Assert.AreEqual(10100, SamplesUtils.GetIntResult(osga, "EvaluatedSolutions"), Environment.NewLine + "Evaluated Solutions differ.");
-        Assert.AreEqual(0.99174959007940156, bestTrainingSolution.TrainingRSquared, 1E-8, Environment.NewLine + "Best Training Solution Training R² differs.");
-        Assert.AreEqual(0.8962902319942232, bestTrainingSolution.TestRSquared, 1E-8, Environment.NewLine + "Best Training Solution Test R² differs.");
+        Assert.AreEqual(0.996270926227739, SamplesUtils.GetDoubleResult(osga, "BestQuality"), 1E-8, Environment.NewLine + "Best Quality differs.");
+        Assert.AreEqual(0.95742113235788184, SamplesUtils.GetDoubleResult(osga, "CurrentAverageQuality"), 1E-8, Environment.NewLine + "Current Average Quality differs.");
+        Assert.AreEqual(0.83998301518760388, SamplesUtils.GetDoubleResult(osga, "CurrentWorstQuality"), 1E-8, Environment.NewLine + "Current Worst Quality differs.");
+        Assert.AreEqual(10600, SamplesUtils.GetIntResult(osga, "EvaluatedSolutions"), Environment.NewLine + "Evaluated Solutions differ.");
+        Assert.AreEqual(0.996270926227739, bestTrainingSolution.TrainingRSquared, 1E-8, Environment.NewLine + "Best Training Solution Training R² differs.");
+        Assert.AreEqual(0.9963422035282139, bestTrainingSolution.TestRSquared, 1E-8, Environment.NewLine + "Best Training Solution Test R² differs.");
       } else {
-        Assert.AreEqual(0.9971536312165723, SamplesUtils.GetDoubleResult(osga, "BestQuality"), 1E-8, Environment.NewLine + "Best Qualitiy differs.");
-        Assert.AreEqual(0.98382832370544937, SamplesUtils.GetDoubleResult(osga, "CurrentAverageQuality"), 1E-8, Environment.NewLine + "Current Average Quality differs.");
-        Assert.AreEqual(0.960805603777699, SamplesUtils.GetDoubleResult(osga, "CurrentWorstQuality"), 1E-8, Environment.NewLine + "Current Worst Quality differs.");
-        Assert.AreEqual(10500, SamplesUtils.GetIntResult(osga, "EvaluatedSolutions"), Environment.NewLine + "Evaluated Solutions differ.");
-        Assert.AreEqual(0.9971536312165723, bestTrainingSolution.TrainingRSquared, 1E-8, Environment.NewLine + "Best Training Solution Training R² differs.");
-        Assert.AreEqual(0.010190137960908724, bestTrainingSolution.TestRSquared, 1E-8, Environment.NewLine + "Best Training Solution Test R² differs.");
+        Assert.AreEqual(0.9784573626949189, SamplesUtils.GetDoubleResult(osga, "BestQuality"), 1E-8, Environment.NewLine + "Best Quality differs.");
+        Assert.AreEqual(0.82804701987417961, SamplesUtils.GetDoubleResult(osga, "CurrentAverageQuality"), 1E-8, Environment.NewLine + "Current Average Quality differs.");
+        Assert.AreEqual(0.700208975867862, SamplesUtils.GetDoubleResult(osga, "CurrentWorstQuality"), 1E-8, Environment.NewLine + "Current Worst Quality differs.");
+        Assert.AreEqual(10300, SamplesUtils.GetIntResult(osga, "EvaluatedSolutions"), Environment.NewLine + "Evaluated Solutions differ.");
+        Assert.AreEqual(0.9784573626949189, bestTrainingSolution.TrainingRSquared, 1E-8, Environment.NewLine + "Best Training Solution Training R² differs.");
+        Assert.AreEqual(0.0014620645328474451, bestTrainingSolution.TestRSquared, 1E-8, Environment.NewLine + "Best Training Solution Test R² differs.");
       }
     }
Index: /trunk/HeuristicLab.Tests/HeuristicLab-3.3/Samples/GaussianProcessRegressionSampleTest.cs
===================================================================
--- /trunk/HeuristicLab.Tests/HeuristicLab-3.3/Samples/GaussianProcessRegressionSampleTest.cs	(revision 17947)
+++ /trunk/HeuristicLab.Tests/HeuristicLab-3.3/Samples/GaussianProcessRegressionSampleTest.cs	(revision 17948)
@@ -52,6 +52,6 @@
       gpr.Seed = 1618551877;
       SamplesUtils.RunAlgorithm(gpr);
-      Assert.AreEqual(-940.70700288855619, SamplesUtils.GetDoubleResult(gpr, "NegativeLogLikelihood"));
-      Assert.AreEqual(0.99563390794061979, SamplesUtils.GetDoubleResult(gpr, "Training R²"));
+      Assert.AreEqual(-992.445399028808, SamplesUtils.GetDoubleResult(gpr, "NegativeLogLikelihood"), 1e-8);
+      Assert.AreEqual(0.99559260785271853, SamplesUtils.GetDoubleResult(gpr, "Training R²"), 1e-8);
     }
 
Index: /trunk/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis-3.4/ClassificationVariableImpactCalculationTest.cs
===================================================================
--- /trunk/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis-3.4/ClassificationVariableImpactCalculationTest.cs	(revision 17947)
+++ /trunk/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis-3.4/ClassificationVariableImpactCalculationTest.cs	(revision 17948)
@@ -214,7 +214,7 @@
     private Dictionary<string, double> GetExpectedValuesForIrisKNNModel() {
       Dictionary<string, double> expectedImpacts = new Dictionary<string, double>();
-      expectedImpacts.Add("petal_length", 0.21);
-      expectedImpacts.Add("petal_width", 0.25);
-      expectedImpacts.Add("sepal_length", 0.05);
+      expectedImpacts.Add("petal_length", 0.22);
+      expectedImpacts.Add("petal_width", 0.35);
+      expectedImpacts.Add("sepal_length", 0.15);
       expectedImpacts.Add("sepal_width", 0.05);
 
Index: /trunk/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis-3.4/RegressionVariableImpactCalculationTest.cs
===================================================================
--- /trunk/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis-3.4/RegressionVariableImpactCalculationTest.cs	(revision 17947)
+++ /trunk/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis-3.4/RegressionVariableImpactCalculationTest.cs	(revision 17948)
@@ -271,29 +271,29 @@
     private Dictionary<string, double> GetExpectedValuesForRFTower() {
       Dictionary<string, double> expectedImpacts = new Dictionary<string, double>();
-      expectedImpacts.Add("x5", 0.00138095702433039);
-      expectedImpacts.Add("x19", 0.00220739387855795);
-      expectedImpacts.Add("x14", 0.00225120540266954);
-      expectedImpacts.Add("x18", 0.00311857736968479);
-      expectedImpacts.Add("x9", 0.00313474690023097);
-      expectedImpacts.Add("x20", 0.00321781251408282);
-      expectedImpacts.Add("x21", 0.00397483365571383);
-      expectedImpacts.Add("x16", 0.00433280262892111);
-      expectedImpacts.Add("x15", 0.00529918809786456);
-      expectedImpacts.Add("x3", 0.00658791244929757);
-      expectedImpacts.Add("x24", 0.0078645281886035);
-      expectedImpacts.Add("x4", 0.00907314110749047);
-      expectedImpacts.Add("x13", 0.0102943761648944);
-      expectedImpacts.Add("x22", 0.0107132858548163);
-      expectedImpacts.Add("x12", 0.0157078677788507);
-      expectedImpacts.Add("x23", 0.0235857534562318);
-      expectedImpacts.Add("x7", 0.0304143401617055);
-      expectedImpacts.Add("x11", 0.0310773441767309);
-      expectedImpacts.Add("x25", 0.0328308945873665);
-      expectedImpacts.Add("x17", 0.0428771226844575);
-      expectedImpacts.Add("x10", 0.0456335367972532);
-      expectedImpacts.Add("x8", 0.049849257881126);
-      expectedImpacts.Add("x1", 0.0663686086323108);
-      expectedImpacts.Add("x2", 0.0799083890750926);
-      expectedImpacts.Add("x6", 0.196557814244287);
+      expectedImpacts.Add("x1", 0.0460043373592669);
+      expectedImpacts.Add("x2", 0.0771677998074048);
+      expectedImpacts.Add("x3", 0.00619316631767142);
+      expectedImpacts.Add("x4", 0.0173307649229608);
+      expectedImpacts.Add("x5", 0.00165078943166208);
+      expectedImpacts.Add("x6", 0.393797136971534);
+      expectedImpacts.Add("x7", 0.0103041010136826);
+      expectedImpacts.Add("x8", 0.0218489557817256);
+      expectedImpacts.Add("x9", 0.0033320239547433);
+      expectedImpacts.Add("x10", 0.0386869026272391);
+      expectedImpacts.Add("x11", 0.0194313200667007);
+      expectedImpacts.Add("x12", 0.00685957264555537);
+      expectedImpacts.Add("x13", 0.00996030046057605);
+      expectedImpacts.Add("x14", 0.00290837005063926);
+      expectedImpacts.Add("x15", 0.00487537076065259);
+      expectedImpacts.Add("x16", 0.00469764322452204);
+      expectedImpacts.Add("x17", 0.0373542975924628);
+      expectedImpacts.Add("x18", 0.00208482408757715);
+      expectedImpacts.Add("x19", 0.00250463259329947);
+      expectedImpacts.Add("x20", 0.00211501042751294);
+      expectedImpacts.Add("x21", 0.0028823562854704);
+      expectedImpacts.Add("x22", 0.0113878041309722);
+      expectedImpacts.Add("x23", 0.0454532954039953);
+      expectedImpacts.Add("x24", 0.0115989415893684);
+      expectedImpacts.Add("x25", 0.0196479481586532);
 
       return expectedImpacts;
Index: /trunk/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis.Symbolic-3.4/SymbolicDataAnalysisExpressionTreeInterpreterTest.cs
===================================================================
--- /trunk/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis.Symbolic-3.4/SymbolicDataAnalysisExpressionTreeInterpreterTest.cs	(revision 17947)
+++ /trunk/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis.Symbolic-3.4/SymbolicDataAnalysisExpressionTreeInterpreterTest.cs	(revision 17948)
@@ -274,5 +274,5 @@
     [TestProperty("Time", "long")]
     public void TestCompiledInterpreterEstimatedValuesConsistency() {
-      const double delta = 1e-12;
+      const double delta = 1e-8;
 
       var twister = new MersenneTwister();
@@ -288,4 +288,14 @@
       grammar.ConfigureAsDefaultRegressionGrammar();
       grammar.Symbols.First(x => x.Name == "Power Functions").Enabled = true;
+      grammar.Symbols.First(x => x is Cube).Enabled = true;
+      grammar.Symbols.First(x => x is CubeRoot).Enabled = true;
+      grammar.Symbols.First(x => x is Square).Enabled = true;
+      grammar.Symbols.First(x => x is SquareRoot).Enabled = true;
+      grammar.Symbols.First(x => x is Absolute).Enabled = true;
+      grammar.Symbols.First(x => x is Sine).Enabled = true;
+      grammar.Symbols.First(x => x is Cosine).Enabled = true;
+      grammar.Symbols.First(x => x is Tangent).Enabled = true;
+      grammar.Symbols.First(x => x is Root).Enabled = false;
+      grammar.Symbols.First(x => x is Power).Enabled = false;
 
       var randomTrees = Util.CreateRandomTrees(twister, dataset, grammar, N, 1, 10, 0, 0);
@@ -339,5 +349,8 @@
               }
               string errorMessage = string.Format("Interpreters {0} and {1} do not agree on tree {2} and row {3} (seed = {4}).", interpreters[m].Name, interpreters[n].Name, i, row, seed);
-              Assert.AreEqual(v1, v2, delta, errorMessage);
+              Assert.IsTrue(double.IsPositiveInfinity(v1) && double.IsPositiveInfinity(v2) ||
+                            double.IsNaN(v1) && double.IsNaN(v2) ||
+                            double.IsNegativeInfinity(v1) && double.IsNegativeInfinity(v2) ||
+                            Math.Abs(1.0 - v1 / v2) < delta, errorMessage);
             }
           }
Index: /trunk/HeuristicLab.Tests/HeuristicLab.Scripting-3.3/GridSearchRFClassificationScriptTest.cs
===================================================================
--- /trunk/HeuristicLab.Tests/HeuristicLab.Scripting-3.3/GridSearchRFClassificationScriptTest.cs	(revision 17947)
+++ /trunk/HeuristicLab.Tests/HeuristicLab.Scripting-3.3/GridSearchRFClassificationScriptTest.cs	(revision 17948)
@@ -59,6 +59,6 @@
 
       var bestSolution = ScriptingUtils.GetVariable<IClassificationSolution>(script, BestSolutionVariableName);
-      Assert.AreEqual(0.85179407176287, bestSolution.TrainingAccuracy, 1E-8);
-      Assert.AreEqual(0.81875, bestSolution.TestAccuracy, 1E-8);
+      Assert.AreEqual(0.858034321372855, bestSolution.TrainingAccuracy, 1E-8);
+      Assert.AreEqual(0.821875, bestSolution.TestAccuracy, 1E-8);
     }
 
Index: /trunk/HeuristicLab.Tests/HeuristicLab.Scripting-3.3/GridSearchRFRegressionScriptTest.cs
===================================================================
--- /trunk/HeuristicLab.Tests/HeuristicLab.Scripting-3.3/GridSearchRFRegressionScriptTest.cs	(revision 17947)
+++ /trunk/HeuristicLab.Tests/HeuristicLab.Scripting-3.3/GridSearchRFRegressionScriptTest.cs	(revision 17948)
@@ -59,6 +59,6 @@
 
       var bestSolution = ScriptingUtils.GetVariable<IRegressionSolution>(script, BestSolutionVariableName);
-      Assert.AreEqual(0.968329534139836, bestSolution.TrainingRSquared, 1E-8);
-      Assert.AreEqual(0.982380790563445, bestSolution.TestRSquared, 1E-8);
+      Assert.AreEqual(0.964218622548574, bestSolution.TrainingRSquared, 1E-8);
+      Assert.AreEqual(0.985989017766796, bestSolution.TestRSquared, 1E-8);
     }
 
Index: /trunk/HeuristicLab.Tests/HeuristicLab.Tests.csproj
===================================================================
--- /trunk/HeuristicLab.Tests/HeuristicLab.Tests.csproj	(revision 17947)
+++ /trunk/HeuristicLab.Tests/HeuristicLab.Tests.csproj	(revision 17948)
@@ -109,6 +109,6 @@
   </PropertyGroup>
   <ItemGroup>
-    <Reference Include="ALGLIB-3.7.0">
-      <HintPath>..\bin\ALGLIB-3.7.0.dll</HintPath>
+    <Reference Include="ALGLIB-3.17.0">
+      <HintPath>..\bin\ALGLIB-3.17.0.dll</HintPath>
       <Private>False</Private>
     </Reference>
@@ -201,4 +201,5 @@
       <SpecificVersion>False</SpecificVersion>
       <HintPath>..\bin\HeuristicLab.Encodings.LinearLinkageEncoding-3.4.dll</HintPath>
+      <Private>False</Private>
     </Reference>
     <Reference Include="HeuristicLab.Encodings.PermutationEncoding-3.3">
@@ -277,9 +278,11 @@
       <Private>False</Private>
     </Reference>
-    <Reference Include="HeuristicLab.Problems.DataAnalysis-3.4">
+    <Reference Include="HeuristicLab.Problems.DataAnalysis-3.4, Version=3.4.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
       <HintPath>..\bin\HeuristicLab.Problems.DataAnalysis-3.4.dll</HintPath>
       <Private>False</Private>
     </Reference>
-    <Reference Include="HeuristicLab.Problems.DataAnalysis.Symbolic-3.4">
+    <Reference Include="HeuristicLab.Problems.DataAnalysis.Symbolic-3.4, Version=3.4.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
       <HintPath>..\bin\HeuristicLab.Problems.DataAnalysis.Symbolic-3.4.dll</HintPath>
       <Private>False</Private>
