Index: /branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis/3.4/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis-3.4.csproj
===================================================================
--- /branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis/3.4/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis-3.4.csproj	(revision 7842)
+++ /branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis/3.4/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis-3.4.csproj	(revision 7843)
@@ -188,4 +188,8 @@
       <Name>HeuristicLab.Problems.DataAnalysis-3.4</Name>
     </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Problems.Instances\3.3\HeuristicLab.Problems.Instances-3.3.csproj">
+      <Project>{3540E29E-4793-49E7-8EE2-FEA7F61C3994}</Project>
+      <Name>HeuristicLab.Problems.Instances-3.3</Name>
+    </ProjectReference>
     <ProjectReference Include="..\..\HeuristicLab.Random\3.3\HeuristicLab.Random-3.3.csproj">
       <Project>{F4539FB6-4708-40C9-BE64-0A1390AEA197}</Project>
Index: /branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis/3.4/Interfaces/ISymbolicTimeSeriesPrognosisModel.cs
===================================================================
--- /branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis/3.4/Interfaces/ISymbolicTimeSeriesPrognosisModel.cs	(revision 7842)
+++ /branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis/3.4/Interfaces/ISymbolicTimeSeriesPrognosisModel.cs	(revision 7843)
@@ -22,5 +22,5 @@
 namespace HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis {
   public interface ISymbolicTimeSeriesPrognosisModel : ITimeSeriesPrognosisModel, ISymbolicDataAnalysisModel {
-    ISymbolicTimeSeriesPrognosisExpressionTreeInterpreter Interpreter { get; }
+    new ISymbolicTimeSeriesPrognosisExpressionTreeInterpreter Interpreter { get; }
   }
 }
Index: /branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis/3.4/Plugin.cs.frame
===================================================================
--- /branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis/3.4/Plugin.cs.frame	(revision 7842)
+++ /branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis/3.4/Plugin.cs.frame	(revision 7843)
@@ -39,4 +39,5 @@
   [PluginDependency("HeuristicLab.Parameters", "3.3")]
   [PluginDependency("HeuristicLab.Persistence", "3.3")]
+  [PluginDependency("HeuristicLab.Problems.Instances", "3.3")]
   [PluginDependency("HeuristicLab.Problems.DataAnalysis", "3.4")]
   [PluginDependency("HeuristicLab.Problems.DataAnalysis.Symbolic", "3.4")]
Index: /branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis/3.4/SingleObjective/SymbolicTimeSeriesPrognosisSingleObjectiveProblem.cs
===================================================================
--- /branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis/3.4/SingleObjective/SymbolicTimeSeriesPrognosisSingleObjectiveProblem.cs	(revision 7842)
+++ /branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis/3.4/SingleObjective/SymbolicTimeSeriesPrognosisSingleObjectiveProblem.cs	(revision 7843)
@@ -108,8 +108,4 @@
     }
 
-    public override void ImportProblemDataFromFile(string fileName) {
-      TimeSeriesPrognosisProblemData problemData = TimeSeriesPrognosisProblemData.ImportFromFile(fileName);
-      ProblemData = problemData;
-    }
   }
 }
Index: /branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/SymbolicDataAnalysisExpressionTreeILEmittingInterpreter.cs
===================================================================
--- /branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/SymbolicDataAnalysisExpressionTreeILEmittingInterpreter.cs	(revision 7842)
+++ /branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/SymbolicDataAnalysisExpressionTreeILEmittingInterpreter.cs	(revision 7843)
@@ -67,5 +67,5 @@
     private static MethodInfo bessel = thisType.GetMethod("Bessel", new Type[] { typeof(double) });
 
-    internal delegate double CompiledFunction(int sampleIndex, IList<double>[] columns);
+    
 
     private const string CheckExpressionsWithIntervalArithmeticParameterName = "CheckExpressionsWithIntervalArithmetic";
Index: /branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/SymbolicDataAnalysisExpressionTreeInterpreter.cs
===================================================================
--- /branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/SymbolicDataAnalysisExpressionTreeInterpreter.cs	(revision 7842)
+++ /branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/SymbolicDataAnalysisExpressionTreeInterpreter.cs	(revision 7843)
@@ -366,5 +366,5 @@
           }
         case OpCodes.Square: {
-            return Math.Pow(Evaluate(dataset, ref row, state), 2);
+            return Math.Pow(Evaluate(dataset, ref row, lastObservedRow, state, cachedPrognosedValues), 2);
           }
         case OpCodes.Power: {
@@ -374,5 +374,5 @@
           }
         case OpCodes.SquareRoot: {
-            return Math.Sqrt(Evaluate(dataset, ref row, state));
+            return Math.Sqrt(Evaluate(dataset, ref row, lastObservedRow, state, cachedPrognosedValues));
           }
         case OpCodes.Root: {
@@ -388,10 +388,10 @@
           }
         case OpCodes.Gamma: {
-            var x = Evaluate(dataset, ref row, state);
+            var x = Evaluate(dataset, ref row, lastObservedRow, state, cachedPrognosedValues);
             if (double.IsNaN(x)) return double.NaN;
             else return alglib.gammafunction(x);
           }
         case OpCodes.Psi: {
-            var x = Evaluate(dataset, ref row, state);
+            var x = Evaluate(dataset, ref row, lastObservedRow, state, cachedPrognosedValues);
             if (double.IsNaN(x)) return double.NaN;
             else if (x.IsAlmost(0.0)) return double.NaN;
@@ -400,10 +400,10 @@
           }
         case OpCodes.Dawson: {
-            var x = Evaluate(dataset, ref row, state);
+            var x = Evaluate(dataset, ref row, lastObservedRow, state, cachedPrognosedValues);
             if (double.IsNaN(x)) return double.NaN;
             return alglib.dawsonintegral(x);
           }
         case OpCodes.ExponentialIntegralEi: {
-            var x = Evaluate(dataset, ref row, state);
+            var x = Evaluate(dataset, ref row, lastObservedRow, state, cachedPrognosedValues);
             if (double.IsNaN(x)) return double.NaN;
             return alglib.exponentialintegralei(x);
@@ -411,5 +411,5 @@
         case OpCodes.SineIntegral: {
             double si, ci;
-            var x = Evaluate(dataset, ref row, state);
+            var x = Evaluate(dataset, ref row, lastObservedRow, state, cachedPrognosedValues);
             if (double.IsNaN(x)) return double.NaN;
             else {
@@ -420,5 +420,5 @@
         case OpCodes.CosineIntegral: {
             double si, ci;
-            var x = Evaluate(dataset, ref row, state);
+            var x = Evaluate(dataset, ref row, lastObservedRow, state, cachedPrognosedValues);
             if (double.IsNaN(x)) return double.NaN;
             else {
@@ -429,5 +429,5 @@
         case OpCodes.HyperbolicSineIntegral: {
             double shi, chi;
-            var x = Evaluate(dataset, ref row, state);
+            var x = Evaluate(dataset, ref row, lastObservedRow, state, cachedPrognosedValues);
             if (double.IsNaN(x)) return double.NaN;
             else {
@@ -438,5 +438,5 @@
         case OpCodes.HyperbolicCosineIntegral: {
             double shi, chi;
-            var x = Evaluate(dataset, ref row, state);
+            var x = Evaluate(dataset, ref row, lastObservedRow, state, cachedPrognosedValues);
             if (double.IsNaN(x)) return double.NaN;
             else {
@@ -447,5 +447,5 @@
         case OpCodes.FresnelCosineIntegral: {
             double c = 0, s = 0;
-            var x = Evaluate(dataset, ref row, state);
+            var x = Evaluate(dataset, ref row, lastObservedRow, state, cachedPrognosedValues);
             if (double.IsNaN(x)) return double.NaN;
             else {
@@ -456,5 +456,5 @@
         case OpCodes.FresnelSineIntegral: {
             double c = 0, s = 0;
-            var x = Evaluate(dataset, ref row, state);
+            var x = Evaluate(dataset, ref row, lastObservedRow, state, cachedPrognosedValues);
             if (double.IsNaN(x)) return double.NaN;
             else {
@@ -465,5 +465,5 @@
         case OpCodes.AiryA: {
             double ai, aip, bi, bip;
-            var x = Evaluate(dataset, ref row, state);
+            var x = Evaluate(dataset, ref row, lastObservedRow, state, cachedPrognosedValues);
             if (double.IsNaN(x)) return double.NaN;
             else {
@@ -474,5 +474,5 @@
         case OpCodes.AiryB: {
             double ai, aip, bi, bip;
-            var x = Evaluate(dataset, ref row, state);
+            var x = Evaluate(dataset, ref row, lastObservedRow, state, cachedPrognosedValues);
             if (double.IsNaN(x)) return double.NaN;
             else {
@@ -482,15 +482,15 @@
           }
         case OpCodes.Norm: {
-            var x = Evaluate(dataset, ref row, state);
+            var x = Evaluate(dataset, ref row, lastObservedRow, state, cachedPrognosedValues);
             if (double.IsNaN(x)) return double.NaN;
             else return alglib.normaldistribution(x);
           }
         case OpCodes.Erf: {
-            var x = Evaluate(dataset, ref row, state);
+            var x = Evaluate(dataset, ref row, lastObservedRow, state, cachedPrognosedValues);
             if (double.IsNaN(x)) return double.NaN;
             else return alglib.errorfunction(x);
           }
         case OpCodes.Bessel: {
-            var x = Evaluate(dataset, ref row, state);
+            var x = Evaluate(dataset, ref row, lastObservedRow, state, cachedPrognosedValues);
             if (double.IsNaN(x)) return double.NaN;
             else return alglib.besseli0(x);
Index: /branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis/3.4/HeuristicLab.Problems.DataAnalysis-3.4.csproj
===================================================================
--- /branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis/3.4/HeuristicLab.Problems.DataAnalysis-3.4.csproj	(revision 7842)
+++ /branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis/3.4/HeuristicLab.Problems.DataAnalysis-3.4.csproj	(revision 7843)
@@ -193,5 +193,4 @@
     <Compile Include="OnlineCalculators\OnlineTheilsUStatisticCalculator.cs" />
     <Compile Include="OnlineCalculators\OnlineWeightedDirectionalSymmetryCalculator.cs" />
-    <Compile Include="TableFileParser.cs" />
     <Compile Include="Implementation\Classification\ThresholdCalculators\AccuracyMaximizationThresholdCalculator.cs" />
     <Compile Include="Implementation\Classification\ThresholdCalculators\NormalDistributionCutPointsThresholdCalculator.cs" />
Index: /branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/TimeSeriesPrognosis/TimeSeriesPrognosisProblem.cs
===================================================================
--- /branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/TimeSeriesPrognosis/TimeSeriesPrognosisProblem.cs	(revision 7842)
+++ /branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/TimeSeriesPrognosis/TimeSeriesPrognosisProblem.cs	(revision 7843)
@@ -39,8 +39,4 @@
     }
 
-    public override void ImportProblemDataFromFile(string fileName) {
-      TimeSeriesPrognosisProblemData problemData = TimeSeriesPrognosisProblemData.ImportFromFile(fileName);
-      ProblemData = problemData;
-    }
   }
 }
Index: /branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/TimeSeriesPrognosis/TimeSeriesPrognosisProblemData.cs
===================================================================
--- /branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/TimeSeriesPrognosis/TimeSeriesPrognosisProblemData.cs	(revision 7842)
+++ /branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/TimeSeriesPrognosis/TimeSeriesPrognosisProblemData.cs	(revision 7843)
@@ -22,4 +22,5 @@
 using System;
 using System.Collections.Generic;
+using System.Globalization;
 using System.IO;
 using System.Linq;
@@ -29,4 +30,5 @@
 using HeuristicLab.Parameters;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Problems.Instances;
 
 namespace HeuristicLab.Problems.DataAnalysis {
@@ -1618,5 +1620,5 @@
     public static TimeSeriesPrognosisProblemData ImportFromFile(string fileName) {
       TableFileParser csvFileParser = new TableFileParser();
-      csvFileParser.Parse(fileName);
+      csvFileParser.Parse(fileName, NumberFormatInfo.InvariantInfo, DateTimeFormatInfo.InvariantInfo, ',');
 
       Dataset dataset = new Dataset(csvFileParser.VariableNames, csvFileParser.Values);
