Index: /trunk/sources/HeuristicLab.GP.StructureIdentification.ConditionalEvaluation/3.3/ConditionalCoefficientOfDeterminationEvaluator.cs
===================================================================
--- /trunk/sources/HeuristicLab.GP.StructureIdentification.ConditionalEvaluation/3.3/ConditionalCoefficientOfDeterminationEvaluator.cs	(revision 1902)
+++ /trunk/sources/HeuristicLab.GP.StructureIdentification.ConditionalEvaluation/3.3/ConditionalCoefficientOfDeterminationEvaluator.cs	(revision 1902)
@@ -0,0 +1,54 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2008 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Modeling;
+
+namespace HeuristicLab.GP.StructureIdentification.ConditionalEvaluation {
+  public class ConditionalCoefficientOfDeterminationEvaluator : ConditionalEvaluatorBase {
+
+    public override string OutputVariableName {
+      get {
+        return "R2";
+      }
+    }
+    
+    public override string Description {
+      get {
+        return @"Evaluates 'FunctionTree' for all samples of 'Dataset' and calculates
+the 'coefficient of determination' of estimated values vs. real values of 'TargetVariable'.";
+      }
+    }
+
+    public override double Evaluate(double[,] values) {
+      double quality = SimpleR2Evaluator.Calculate(values);
+      if (double.IsNaN(quality) || double.IsInfinity(quality))
+        quality = double.MaxValue;
+
+      return quality;
+    }
+  }
+}
Index: /trunk/sources/HeuristicLab.GP.StructureIdentification.ConditionalEvaluation/3.3/ConditionalEvaluatorBase.cs
===================================================================
--- /trunk/sources/HeuristicLab.GP.StructureIdentification.ConditionalEvaluation/3.3/ConditionalEvaluatorBase.cs	(revision 1902)
+++ /trunk/sources/HeuristicLab.GP.StructureIdentification.ConditionalEvaluation/3.3/ConditionalEvaluatorBase.cs	(revision 1902)
@@ -0,0 +1,80 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2008 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.DataAnalysis;
+
+namespace HeuristicLab.GP.StructureIdentification.ConditionalEvaluation {
+  public abstract class ConditionalEvaluatorBase : GPEvaluatorBase {
+    public virtual string OutputVariableName { get { return "Quality"; } }
+
+    public ConditionalEvaluatorBase()
+      : base() {
+      AddVariableInfo(new VariableInfo("MaxTimeOffset", "Maximal time offset for all feature", typeof(IntData), VariableKind.In));
+      AddVariableInfo(new VariableInfo("MinTimeOffset", "Minimal time offset for all feature", typeof(IntData), VariableKind.In));
+      AddVariableInfo(new VariableInfo("ConditionVariable", "Variable index which indicates if the row should be evaluated (0 means do not evaluate, != 0 evaluate)", typeof(IntData), VariableKind.In));
+      AddVariableInfo(new VariableInfo(OutputVariableName, OutputVariableName, typeof(DoubleData), VariableKind.New | VariableKind.Out));
+    }
+
+    public override void Evaluate(IScope scope, ITreeEvaluator evaluator, Dataset dataset, int targetVariable, int start, int end, bool updateTargetValues) {
+      int maxTimeOffset = GetVariableValue<IntData>("MaxTimeOffset", scope, true).Data;
+      int minTimeOffset = GetVariableValue<IntData>("MinTimeOffset", scope, true).Data;
+      int conditionVariable = GetVariableValue<IntData>("ConditionVariable", scope, true).Data;
+
+      // store original and estimated values in a double array
+      double[,] values = new double[end - start, 2];
+      for (int sample = start; sample < end; sample++) {
+        // check if condition variable is true between sample - minTimeOffset and sample - maxTimeOffset
+        bool skip = false;
+        for (int checkIndex = sample - minTimeOffset; checkIndex <= sample - maxTimeOffset && !skip ; checkIndex++) {
+          if (dataset.GetValue(checkIndex, conditionVariable) == 0)
+            skip = true;
+        }
+        if (!skip) {
+          double original = dataset.GetValue(sample, targetVariable);
+          double estimated = evaluator.Evaluate(sample);
+          if (updateTargetValues) {
+            dataset.SetValue(sample, targetVariable, estimated);
+          }
+          values[sample - start, 0] = estimated;
+          values[sample - start, 1] = original;
+        }
+      }
+
+      // calculate quality value
+      double quality = Evaluate(values);
+
+      DoubleData qualityData = GetVariableValue<DoubleData>(OutputVariableName, scope, false, false);
+      if (qualityData == null) {
+        qualityData = new DoubleData();
+        scope.AddVariable(new HeuristicLab.Core.Variable(scope.TranslateName(OutputVariableName), qualityData));
+      }
+      qualityData.Data = quality;
+    }
+
+    public abstract double Evaluate(double[,] values);
+  }
+}
Index: /trunk/sources/HeuristicLab.GP.StructureIdentification.ConditionalEvaluation/3.3/ConditionalMeanAbsolutePercentageErrorEvaluator.cs
===================================================================
--- /trunk/sources/HeuristicLab.GP.StructureIdentification.ConditionalEvaluation/3.3/ConditionalMeanAbsolutePercentageErrorEvaluator.cs	(revision 1902)
+++ /trunk/sources/HeuristicLab.GP.StructureIdentification.ConditionalEvaluation/3.3/ConditionalMeanAbsolutePercentageErrorEvaluator.cs	(revision 1902)
@@ -0,0 +1,54 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2008 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Modeling;
+using HeuristicLab.DataAnalysis;
+
+namespace HeuristicLab.GP.StructureIdentification.ConditionalEvaluation {
+  public class ConditionalMeanAbsolutePercentageErrorEvaluator : ConditionalEvaluatorBase {
+    public override string OutputVariableName {
+      get {
+        return "MAPE";
+      }
+    }
+
+    public override string Description {
+      get {
+        return @"Evaluates 'FunctionTree' for all samples of 'Dataset' and calculates
+the 'mean absolute percentage error (scale invariant)' of estimated values vs. real values of 'TargetVariable'.";
+      }
+    }
+
+    public override double Evaluate(double[,] values) {
+      double quality = SimpleMeanAbsolutePercentageErrorEvaluator.Calculate(values);
+      if (double.IsNaN(quality) || double.IsInfinity(quality))
+        quality = double.MaxValue;
+
+      return quality;
+    }
+  }
+}
Index: /trunk/sources/HeuristicLab.GP.StructureIdentification.ConditionalEvaluation/3.3/ConditionalMeanAbsolutePercentageOfRangeErrorEvaluator.cs
===================================================================
--- /trunk/sources/HeuristicLab.GP.StructureIdentification.ConditionalEvaluation/3.3/ConditionalMeanAbsolutePercentageOfRangeErrorEvaluator.cs	(revision 1902)
+++ /trunk/sources/HeuristicLab.GP.StructureIdentification.ConditionalEvaluation/3.3/ConditionalMeanAbsolutePercentageOfRangeErrorEvaluator.cs	(revision 1902)
@@ -0,0 +1,53 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2008 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Modeling;
+using HeuristicLab.DataAnalysis;
+
+namespace HeuristicLab.GP.StructureIdentification.ConditionalEvaluation {
+  public class ConditionalMeanAbsolutePercentageOfRangeErrorEvaluator : ConditionalEvaluatorBase {
+    public override string OutputVariableName {
+      get {
+        return "MAPRE";
+      }
+    }
+    public override string Description {
+      get {
+        return @"Evaluates 'FunctionTree' for all samples of 'Dataset' and calculates
+the mean of the absolute percentage error (scale invariant) relative to the range of the target varibale of estimated values vs. real values of 'TargetVariable'.";
+      }
+    }
+
+    public override double Evaluate(double[,] values) {
+      double quality = SimpleMeanAbsolutePercentageOfRangeErrorEvaluator.Calculate(values);
+      if (double.IsNaN(quality) || double.IsInfinity(quality))
+        quality = double.MaxValue;
+
+      return quality;
+    }
+  }
+}
Index: /trunk/sources/HeuristicLab.GP.StructureIdentification.ConditionalEvaluation/3.3/ConditionalMeanSquaredErrorEvaluator.cs
===================================================================
--- /trunk/sources/HeuristicLab.GP.StructureIdentification.ConditionalEvaluation/3.3/ConditionalMeanSquaredErrorEvaluator.cs	(revision 1902)
+++ /trunk/sources/HeuristicLab.GP.StructureIdentification.ConditionalEvaluation/3.3/ConditionalMeanSquaredErrorEvaluator.cs	(revision 1902)
@@ -0,0 +1,55 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2008 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.DataAnalysis;
+using HeuristicLab.Modeling;
+
+namespace HeuristicLab.GP.StructureIdentification.ConditionalEvaluation {
+  public class ConditionalMeanSquaredErrorEvaluator : ConditionalEvaluatorBase {
+    public override string OutputVariableName {
+      get {
+        return "MSE";
+      }
+    }
+    public override string Description {
+      get {
+        return @"Evaluates 'FunctionTree' for all samples of 'DataSet' and calculates the mean-squared-error
+for the estimated values vs. the real values of 'TargetVariable'.";
+      }
+    }
+
+    public override double Evaluate(double[,] values) {
+      double quality = SimpleMSEEvaluator.Calculate(values);
+
+      if (double.IsNaN(quality) || double.IsInfinity(quality)) {
+        quality = double.MaxValue;
+      }
+
+      return quality;
+    }
+  }
+}
Index: /trunk/sources/HeuristicLab.GP.StructureIdentification.ConditionalEvaluation/3.3/ConditionalSimpleEvaluator.cs
===================================================================
--- /trunk/sources/HeuristicLab.GP.StructureIdentification.ConditionalEvaluation/3.3/ConditionalSimpleEvaluator.cs	(revision 1902)
+++ /trunk/sources/HeuristicLab.GP.StructureIdentification.ConditionalEvaluation/3.3/ConditionalSimpleEvaluator.cs	(revision 1902)
@@ -0,0 +1,77 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2008 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.DataAnalysis;
+
+namespace HeuristicLab.GP.StructureIdentification.ConditionalEvaluation {
+  public class ConditionalSimpleEvaluator : GPEvaluatorBase {
+    public ConditionalSimpleEvaluator()
+      : base() {
+      AddVariableInfo(new VariableInfo("MaxTimeOffset", "Maximal time offset for all feature", typeof(IntData), VariableKind.In));
+      AddVariableInfo(new VariableInfo("MinTimeOffset", "Minimal time offset for all feature", typeof(IntData), VariableKind.In));
+      AddVariableInfo(new VariableInfo("ConditionVariable", "Variable index which indicates if the row should be evaluated (0 means do not evaluate, != 0 evaluate)", typeof(IntData), VariableKind.In));
+      AddVariableInfo(new VariableInfo("Values", "The values of the target variable as predicted by the model and the original value of the target variable", typeof(ItemList), VariableKind.New | VariableKind.Out));
+    }
+
+    public override void Evaluate(IScope scope, ITreeEvaluator evaluator, Dataset dataset, int targetVariable, int start, int end, bool updateTargetValues) {
+      ItemList values = GetVariableValue<ItemList>("Values", scope, false, false);
+      if (values == null) {
+        values = new ItemList();
+        IVariableInfo info = GetVariableInfo("Values");
+        if (info.Local)
+          AddVariable(new HeuristicLab.Core.Variable(info.ActualName, values));
+        else
+          scope.AddVariable(new HeuristicLab.Core.Variable(scope.TranslateName(info.FormalName), values));
+      }
+      values.Clear();
+
+      int maxTimeOffset = GetVariableValue<IntData>("MaxTimeOffset", scope, true).Data;
+      int minTimeOffset = GetVariableValue<IntData>("MinTimeOffset", scope, true).Data;
+      int conditionVariable = GetVariableValue<IntData>("ConditionVariable", scope, true).Data;
+
+      for (int sample = start; sample < end; sample++) {
+        // check if condition variable is true between sample - minTimeOffset and sample - maxTimeOffset
+        bool skip = false;
+        for (int checkIndex = sample - minTimeOffset; checkIndex <= sample - maxTimeOffset && !skip ; checkIndex++) {
+          if (dataset.GetValue(checkIndex, conditionVariable) == 0)
+            skip = true;
+        }
+        if (!skip) {
+          ItemList row = new ItemList();
+          double estimated = evaluator.Evaluate(sample);
+          double original = dataset.GetValue(sample, targetVariable);
+          if (updateTargetValues) {
+            dataset.SetValue(sample, targetVariable, estimated);
+          }
+          row.Add(new DoubleData(estimated));
+          row.Add(new DoubleData(original));
+          values.Add(row);
+        }
+      }
+    }
+  }
+}
Index: /trunk/sources/HeuristicLab.GP.StructureIdentification.ConditionalEvaluation/3.3/ConditionalVarianceAccountedForEvaluator.cs
===================================================================
--- /trunk/sources/HeuristicLab.GP.StructureIdentification.ConditionalEvaluation/3.3/ConditionalVarianceAccountedForEvaluator.cs	(revision 1902)
+++ /trunk/sources/HeuristicLab.GP.StructureIdentification.ConditionalEvaluation/3.3/ConditionalVarianceAccountedForEvaluator.cs	(revision 1902)
@@ -0,0 +1,63 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2008 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.DataAnalysis;
+using HeuristicLab.Modeling;
+
+namespace HeuristicLab.GP.StructureIdentification.ConditionalEvaluation {
+  /// <summary>
+  /// The Variance Accounted For (VAF) function calculates is computed as
+  /// VAF(y,y') = ( 1 - var(y-y')/var(y) )
+  /// where y' denotes the predicted / modelled values for y and var(x) the variance of a signal x.
+  /// </summary>
+  public class ConditionalVarianceAccountedForEvaluator : ConditionalEvaluatorBase {
+    public override string OutputVariableName {
+      get {
+        return "VAF";
+      }
+    }
+    public override string Description {
+      get {
+        return @"Evaluates 'FunctionTree' for all samples of 'DataSet' and calculates 
+the variance-accounted-for quality measure for the estimated values vs. the real values of 'TargetVariable'.
+
+The Variance Accounted For (VAF) function is computed as
+VAF(y,y') = ( 1 - var(y-y')/var(y) )
+where y' denotes the predicted / modelled values for y and var(x) the variance of a signal x.";
+      }
+    }
+
+    public override double Evaluate(double[,] values) {
+      double quality = SimpleVarianceAccountedForEvaluator.Calculate(values);
+
+      if (double.IsNaN(quality) || double.IsInfinity(quality)) {
+        quality = double.MaxValue;
+      }
+      return quality;
+    }
+  }
+}
Index: /trunk/sources/HeuristicLab.GP.StructureIdentification.ConditionalEvaluation/3.3/HeuristicLab.GP.StructureIdentification.ConditionalEvaluation-3.3.csproj
===================================================================
--- /trunk/sources/HeuristicLab.GP.StructureIdentification.ConditionalEvaluation/3.3/HeuristicLab.GP.StructureIdentification.ConditionalEvaluation-3.3.csproj	(revision 1902)
+++ /trunk/sources/HeuristicLab.GP.StructureIdentification.ConditionalEvaluation/3.3/HeuristicLab.GP.StructureIdentification.ConditionalEvaluation-3.3.csproj	(revision 1902)
@@ -0,0 +1,139 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>9.0.30729</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{ABAE70E0-14E3-4588-B6BB-15DF022985C3}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>HeuristicLab.GP.StructureIdentification.ConditionalEvaluation</RootNamespace>
+    <AssemblyName>HeuristicLab.GP.StructureIdentification.ConditionalEvaluation-3.3</AssemblyName>
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
+    <DebugSymbols>true</DebugSymbols>
+    <OutputPath>bin\x86\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <DebugType>full</DebugType>
+    <PlatformTarget>x86</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
+    <OutputPath>bin\x86\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <Optimize>true</Optimize>
+    <DebugType>pdbonly</DebugType>
+    <PlatformTarget>x86</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
+    <DebugSymbols>true</DebugSymbols>
+    <OutputPath>bin\x64\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <DebugType>full</DebugType>
+    <PlatformTarget>x64</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
+    <OutputPath>bin\x64\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <Optimize>true</Optimize>
+    <DebugType>pdbonly</DebugType>
+    <PlatformTarget>x64</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Core">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Xml.Linq">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Data.DataSetExtensions">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Data" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Properties\AssemblyInfo.frame" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="ConditionalCoefficientOfDeterminationEvaluator.cs" />
+    <Compile Include="HeuristicLabGPConditionalEvaluationPlugin.cs" />
+    <Compile Include="ConditionalMeanAbsolutePercentageErrorEvaluator.cs" />
+    <Compile Include="ConditionalMeanAbsolutePercentageOfRangeErrorEvaluator.cs" />
+    <Compile Include="ConditionalMeanSquaredErrorEvaluator.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="ConditionalEvaluatorBase.cs" />
+    <Compile Include="ConditionalSimpleEvaluator.cs" />
+    <Compile Include="ConditionalVarianceAccountedForEvaluator.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\..\HeuristicLab.Core\3.2\HeuristicLab.Core-3.2.csproj">
+      <Project>{F43B59AB-2B8C-4570-BC1E-15592086517C}</Project>
+      <Name>HeuristicLab.Core-3.2</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.DataAnalysis\3.2\HeuristicLab.DataAnalysis-3.2.csproj">
+      <Project>{7DD3A97A-56E9-462F-90E2-A351FE7AF5C2}</Project>
+      <Name>HeuristicLab.DataAnalysis-3.2</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Data\3.2\HeuristicLab.Data-3.2.csproj">
+      <Project>{F473D9AF-3F09-4296-9F28-3C65118DAFFA}</Project>
+      <Name>HeuristicLab.Data-3.2</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.GP.StructureIdentification\3.3\HeuristicLab.GP.StructureIdentification-3.3.csproj">
+      <Project>{74223A32-C726-4978-BE78-37113A18373C}</Project>
+      <Name>HeuristicLab.GP.StructureIdentification-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.GP\3.3\HeuristicLab.GP-3.3.csproj">
+      <Project>{1F1CF3ED-374C-4288-995B-93F6B872F571}</Project>
+      <Name>HeuristicLab.GP-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Modeling\3.2\HeuristicLab.Modeling-3.2.csproj">
+      <Project>{80F7FADA-549D-4151-8856-79B620A50DBA}</Project>
+      <Name>HeuristicLab.Modeling-3.2</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.PluginInfrastructure\HeuristicLab.PluginInfrastructure.csproj">
+      <Project>{94186A6A-5176-4402-AE83-886557B53CCA}</Project>
+      <Name>HeuristicLab.PluginInfrastructure</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+  <PropertyGroup>
+    <PreBuildEvent>set Path=%25Path%25;$(ProjectDir);$(SolutionDir)
+set ProjectDir=$(ProjectDir)
+set SolutionDir=$(SolutionDir)
+set Outdir=$(Outdir)
+
+call PreBuildEvent.cmd</PreBuildEvent>
+  </PropertyGroup>
+</Project>
Index: /trunk/sources/HeuristicLab.GP.StructureIdentification.ConditionalEvaluation/3.3/HeuristicLabGPConditionalEvaluationPlugin.cs
===================================================================
--- /trunk/sources/HeuristicLab.GP.StructureIdentification.ConditionalEvaluation/3.3/HeuristicLabGPConditionalEvaluationPlugin.cs	(revision 1902)
+++ /trunk/sources/HeuristicLab.GP.StructureIdentification.ConditionalEvaluation/3.3/HeuristicLabGPConditionalEvaluationPlugin.cs	(revision 1902)
@@ -0,0 +1,38 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2008 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Text;
+using HeuristicLab.PluginInfrastructure;
+
+namespace HeuristicLab.GP.StructureIdentification.ConditionalEvaluation {
+  [ClassInfo(Name = "HeuristicLab.GP.StructureIdentification.ConditionalEvaluation-3.3")]
+  [PluginFile(Filename = "HeuristicLab.GP.StructureIdentification.ConditionalEvaluation-3.3.dll", Filetype = PluginFileType.Assembly)]
+  [Dependency(Dependency = "HeuristicLab.Core-3.2")]
+  [Dependency(Dependency = "HeuristicLab.Data-3.2")]
+  [Dependency(Dependency = "HeuristicLab.DataAnalysis-3.2")]
+  [Dependency(Dependency = "HeuristicLab.GP-3.3")]
+  [Dependency(Dependency = "HeuristicLab.GP.StructureIdentification-3.3")]
+  [Dependency(Dependency = "HeuristicLab.Modeling-3.2")]
+  public class HeuristicLabGPConditionalEvaluationPlugin : PluginBase {
+  }
+}
Index: /trunk/sources/HeuristicLab.GP.StructureIdentification.ConditionalEvaluation/3.3/Properties/AssemblyInfo.frame
===================================================================
--- /trunk/sources/HeuristicLab.GP.StructureIdentification.ConditionalEvaluation/3.3/Properties/AssemblyInfo.frame	(revision 1902)
+++ /trunk/sources/HeuristicLab.GP.StructureIdentification.ConditionalEvaluation/3.3/Properties/AssemblyInfo.frame	(revision 1902)
@@ -0,0 +1,58 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2008 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using HeuristicLab.PluginInfrastructure;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("HeuristicLab.GP.StructureIdentification.ConditionalEvaluation")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("HeuristicLab")]
+[assembly: AssemblyCopyright("(c) 2002-2008 HEAL")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("863021a4-3cde-48be-8af6-dac1077f5fb5")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Revision and Build Numbers 
+// by using the '*' as shown below:
+[assembly: AssemblyVersion("3.3.0.$WCREV$")]
+[assembly: AssemblyFileVersion("3.3.0.$WCREV$")]
+[assembly: AssemblyBuildDate("$WCNOW$")]
Index: /trunk/sources/HeuristicLab.sln
===================================================================
--- /trunk/sources/HeuristicLab.sln	(revision 1901)
+++ /trunk/sources/HeuristicLab.sln	(revision 1902)
@@ -220,4 +220,6 @@
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.OptimizationFrontend-3.3", "HeuristicLab.OptimizationFrontend\3.3\HeuristicLab.OptimizationFrontend-3.3.csproj", "{BEE2B944-7F12-42CC-95A0-6EFB837FDA00}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.GP.StructureIdentification.ConditionalEvaluation-3.3", "HeuristicLab.GP.StructureIdentification.ConditionalEvaluation\3.3\HeuristicLab.GP.StructureIdentification.ConditionalEvaluation-3.3.csproj", "{ABAE70E0-14E3-4588-B6BB-15DF022985C3}"
 EndProject
 Global
@@ -3794,4 +3796,29 @@
 		{BEE2B944-7F12-42CC-95A0-6EFB837FDA00}.Visualization Debug|x86.ActiveCfg = Debug|x86
 		{BEE2B944-7F12-42CC-95A0-6EFB837FDA00}.Visualization Debug|x86.Build.0 = Debug|x86
+		{ABAE70E0-14E3-4588-B6BB-15DF022985C3}.CEDMA Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{ABAE70E0-14E3-4588-B6BB-15DF022985C3}.CEDMA Debug|Any CPU.Build.0 = Debug|Any CPU
+		{ABAE70E0-14E3-4588-B6BB-15DF022985C3}.CEDMA Debug|x64.ActiveCfg = Debug|Any CPU
+		{ABAE70E0-14E3-4588-B6BB-15DF022985C3}.CEDMA Debug|x86.ActiveCfg = Debug|Any CPU
+		{ABAE70E0-14E3-4588-B6BB-15DF022985C3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{ABAE70E0-14E3-4588-B6BB-15DF022985C3}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{ABAE70E0-14E3-4588-B6BB-15DF022985C3}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{ABAE70E0-14E3-4588-B6BB-15DF022985C3}.Debug|x86.ActiveCfg = Debug|x86
+		{ABAE70E0-14E3-4588-B6BB-15DF022985C3}.Debug|x86.Build.0 = Debug|x86
+		{ABAE70E0-14E3-4588-B6BB-15DF022985C3}.GP Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{ABAE70E0-14E3-4588-B6BB-15DF022985C3}.GP Debug|Any CPU.Build.0 = Debug|Any CPU
+		{ABAE70E0-14E3-4588-B6BB-15DF022985C3}.GP Debug|x64.ActiveCfg = Debug|Any CPU
+		{ABAE70E0-14E3-4588-B6BB-15DF022985C3}.GP Debug|x86.ActiveCfg = Debug|Any CPU
+		{ABAE70E0-14E3-4588-B6BB-15DF022985C3}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{ABAE70E0-14E3-4588-B6BB-15DF022985C3}.Release|Any CPU.Build.0 = Release|Any CPU
+		{ABAE70E0-14E3-4588-B6BB-15DF022985C3}.Release|x64.ActiveCfg = Release|Any CPU
+		{ABAE70E0-14E3-4588-B6BB-15DF022985C3}.Release|x86.ActiveCfg = Release|Any CPU
+		{ABAE70E0-14E3-4588-B6BB-15DF022985C3}.v3.2 Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{ABAE70E0-14E3-4588-B6BB-15DF022985C3}.v3.2 Debug|Any CPU.Build.0 = Debug|Any CPU
+		{ABAE70E0-14E3-4588-B6BB-15DF022985C3}.v3.2 Debug|x64.ActiveCfg = Debug|Any CPU
+		{ABAE70E0-14E3-4588-B6BB-15DF022985C3}.v3.2 Debug|x86.ActiveCfg = Debug|Any CPU
+		{ABAE70E0-14E3-4588-B6BB-15DF022985C3}.Visualization Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{ABAE70E0-14E3-4588-B6BB-15DF022985C3}.Visualization Debug|Any CPU.Build.0 = Debug|Any CPU
+		{ABAE70E0-14E3-4588-B6BB-15DF022985C3}.Visualization Debug|x64.ActiveCfg = Debug|Any CPU
+		{ABAE70E0-14E3-4588-B6BB-15DF022985C3}.Visualization Debug|x86.ActiveCfg = Debug|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
@@ -3876,4 +3903,5 @@
 		{A16F23B5-FB62-499E-A831-26953AA56FE2} = {410732DB-725A-4824-896B-C298978343C0}
 		{80F7FADA-549D-4151-8856-79B620A50DBA} = {410732DB-725A-4824-896B-C298978343C0}
+		{ABAE70E0-14E3-4588-B6BB-15DF022985C3} = {410732DB-725A-4824-896B-C298978343C0}
 		{A9E282EA-180F-4233-B809-AEDF0787545C} = {78982D7C-D63D-4A3D-AE1F-F58AC007603B}
 		{C36BD924-A541-4A00-AFA8-41701378DDC5} = {78982D7C-D63D-4A3D-AE1F-F58AC007603B}
Index: /trunk/sources/HeuristicLab/CopyAssemblies.cmd
===================================================================
--- /trunk/sources/HeuristicLab/CopyAssemblies.cmd	(revision 1901)
+++ /trunk/sources/HeuristicLab/CopyAssemblies.cmd	(revision 1902)
@@ -44,4 +44,5 @@
 copy "%SolutionDir%\HeuristicLab.GP.StructureIdentification\3.3\%Outdir%\HeuristicLab.GP.StructureIdentification-3.3.dll" .\plugins
 copy "%SolutionDir%\HeuristicLab.GP.StructureIdentification.Classification\3.3\%Outdir%\HeuristicLab.GP.StructureIdentification.Classification-3.3.dll" .\plugins
+copy "%SolutionDir%\HeuristicLab.GP.StructureIdentification.ConditionalEvaluation\3.3\%Outdir%\HeuristicLab.GP.StructureIdentification.ConditionalEvaluation-3.3.dll" .\plugins
 copy "%SolutionDir%\HeuristicLab.GP.StructureIdentification.TimeSeries\3.3\%Outdir%\HeuristicLab.GP.StructureIdentification.TimeSeries-3.3.dll" .\plugins
 copy "%SolutionDir%\HeuristicLab.Grid\3.2\%Outdir%\HeuristicLab.Grid-3.2.dll" .\plugins
