Index: /branches/HeuristicLab.Problems.GaussianProcessTuning/GaussianProcessDemo/App.config
===================================================================
--- /branches/HeuristicLab.Problems.GaussianProcessTuning/GaussianProcessDemo/App.config	(revision 9124)
+++ /branches/HeuristicLab.Problems.GaussianProcessTuning/GaussianProcessDemo/App.config	(revision 9124)
@@ -0,0 +1,6 @@
+﻿<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+    <startup> 
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
+    </startup>
+</configuration>
Index: /branches/HeuristicLab.Problems.GaussianProcessTuning/GaussianProcessDemo/Form1.Designer.cs
===================================================================
--- /branches/HeuristicLab.Problems.GaussianProcessTuning/GaussianProcessDemo/Form1.Designer.cs	(revision 9124)
+++ /branches/HeuristicLab.Problems.GaussianProcessTuning/GaussianProcessDemo/Form1.Designer.cs	(revision 9124)
@@ -0,0 +1,119 @@
+﻿namespace GaussianProcessDemo {
+  partial class Form1 {
+    /// <summary>
+    /// Required designer variable.
+    /// </summary>
+    private System.ComponentModel.IContainer components = null;
+
+    /// <summary>
+    /// Clean up any resources being used.
+    /// </summary>
+    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+    protected override void Dispose(bool disposing) {
+      if (disposing && (components != null)) {
+        components.Dispose();
+      }
+      base.Dispose(disposing);
+    }
+
+    #region Windows Form Designer generated code
+
+    /// <summary>
+    /// Required method for Designer support - do not modify
+    /// the contents of this method with the code editor.
+    /// </summary>
+    private void InitializeComponent() {
+      System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea1 = new System.Windows.Forms.DataVisualization.Charting.ChartArea();
+      System.Windows.Forms.DataVisualization.Charting.Legend legend1 = new System.Windows.Forms.DataVisualization.Charting.Legend();
+      System.Windows.Forms.DataVisualization.Charting.Series series1 = new System.Windows.Forms.DataVisualization.Charting.Series();
+      System.Windows.Forms.DataVisualization.Charting.Series series2 = new System.Windows.Forms.DataVisualization.Charting.Series();
+      System.Windows.Forms.DataVisualization.Charting.Series series3 = new System.Windows.Forms.DataVisualization.Charting.Series();
+      this.chart1 = new System.Windows.Forms.DataVisualization.Charting.Chart();
+      this.splitContainer1 = new System.Windows.Forms.SplitContainer();
+      this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel();
+      ((System.ComponentModel.ISupportInitialize)(this.chart1)).BeginInit();
+      ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
+      this.splitContainer1.Panel1.SuspendLayout();
+      this.splitContainer1.Panel2.SuspendLayout();
+      this.splitContainer1.SuspendLayout();
+      this.SuspendLayout();
+      // 
+      // chart1
+      // 
+      chartArea1.Name = "ChartArea1";
+      this.chart1.ChartAreas.Add(chartArea1);
+      this.chart1.Dock = System.Windows.Forms.DockStyle.Fill;
+      legend1.Name = "Legend1";
+      this.chart1.Legends.Add(legend1);
+      this.chart1.Location = new System.Drawing.Point(0, 0);
+      this.chart1.Name = "chart1";
+      series1.ChartArea = "ChartArea1";
+      series1.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.FastPoint;
+      series1.Legend = "Legend1";
+      series1.Name = "GP samples";
+      series2.ChartArea = "ChartArea1";
+      series2.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.FastLine;
+      series2.Legend = "Legend1";
+      series2.Name = "GP (mean)";
+      series3.ChartArea = "ChartArea1";
+      series3.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.FastLine;
+      series3.Legend = "Legend1";
+      series3.Name = "GP SEiso (mean)";
+      this.chart1.Series.Add(series1);
+      this.chart1.Series.Add(series2);
+      this.chart1.Series.Add(series3);
+      this.chart1.Size = new System.Drawing.Size(735, 383);
+      this.chart1.TabIndex = 0;
+      this.chart1.Text = "chart1";
+      // 
+      // splitContainer1
+      // 
+      this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.splitContainer1.Location = new System.Drawing.Point(0, 0);
+      this.splitContainer1.Name = "splitContainer1";
+      this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal;
+      // 
+      // splitContainer1.Panel1
+      // 
+      this.splitContainer1.Panel1.Controls.Add(this.chart1);
+      // 
+      // splitContainer1.Panel2
+      // 
+      this.splitContainer1.Panel2.Controls.Add(this.flowLayoutPanel1);
+      this.splitContainer1.Size = new System.Drawing.Size(735, 513);
+      this.splitContainer1.SplitterDistance = 383;
+      this.splitContainer1.TabIndex = 1;
+      // 
+      // flowLayoutPanel1
+      // 
+      this.flowLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.flowLayoutPanel1.Location = new System.Drawing.Point(0, 0);
+      this.flowLayoutPanel1.Name = "flowLayoutPanel1";
+      this.flowLayoutPanel1.Size = new System.Drawing.Size(735, 126);
+      this.flowLayoutPanel1.TabIndex = 0;
+      // 
+      // Form1
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.ClientSize = new System.Drawing.Size(735, 513);
+      this.Controls.Add(this.splitContainer1);
+      this.Name = "Form1";
+      this.Text = "Form1";
+      ((System.ComponentModel.ISupportInitialize)(this.chart1)).EndInit();
+      this.splitContainer1.Panel1.ResumeLayout(false);
+      this.splitContainer1.Panel2.ResumeLayout(false);
+      ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
+      this.splitContainer1.ResumeLayout(false);
+      this.ResumeLayout(false);
+
+    }
+
+    #endregion
+
+    private System.Windows.Forms.DataVisualization.Charting.Chart chart1;
+    private System.Windows.Forms.SplitContainer splitContainer1;
+    private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1;
+  }
+}
+
Index: /branches/HeuristicLab.Problems.GaussianProcessTuning/GaussianProcessDemo/Form1.cs
===================================================================
--- /branches/HeuristicLab.Problems.GaussianProcessTuning/GaussianProcessDemo/Form1.cs	(revision 9124)
+++ /branches/HeuristicLab.Problems.GaussianProcessTuning/GaussianProcessDemo/Form1.cs	(revision 9124)
@@ -0,0 +1,98 @@
+﻿using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+using HeuristicLab.Algorithms.DataAnalysis;
+using HeuristicLab.Core;
+using HeuristicLab.Problems.DataAnalysis;
+using HeuristicLab.Problems.Instances.DataAnalysis;
+using HeuristicLab.Random;
+
+namespace GaussianProcessDemo {
+  public partial class Form1 : Form {
+    private IRandom random;
+    private ICovarianceFunction covFunction;
+    private List<List<double>> data;
+    private double[] alpha;
+
+
+    public Form1() {
+      InitializeComponent();
+      this.random = new MersenneTwister();
+
+      var sum = new CovarianceSum();
+      sum.Terms.Add(new CovarianceSquaredExponentialIso());
+      sum.Terms.Add(new CovariancePeriodic());
+      sum.Terms.Add(new CovarianceNoise());
+      this.covFunction = sum;
+      UpdateSliders();
+
+      InitData();
+      UpdateChart();
+    }
+
+    private void UpdateSliders() {
+      flowLayoutPanel1.Controls.Clear();
+      for (int i = 0; i < covFunction.GetNumberOfParameters(1); i++) {
+        var sliderControl = new TrackBar();
+        sliderControl.Minimum = -50;
+        sliderControl.Maximum = 50;
+        sliderControl.Value = 0;
+        sliderControl.ValueChanged += (sender, args) => UpdateChart();
+        flowLayoutPanel1.Controls.Add(sliderControl);
+      }
+    }
+
+    private void InitData() {
+      int n = 100;
+      data = new List<List<double>>();
+      data.Add(ValueGenerator.GenerateSteps(0, 1, 1.0 / n).ToList());
+
+      // sample from GP
+      var normalRand = new NormalDistributedRandom(random, 0, 1);
+      alpha = (from i in Enumerable.Range(0, n + 1)
+               select normalRand.NextDouble()).ToArray();
+    }
+
+    private void UpdateChart() {
+      var hyp = GetSliderValues();
+      var cov = covFunction.GetParameterizedCovarianceFunction(hyp, null);
+      var y = Util.SampleGaussianProcess(random, cov, data, alpha);
+
+      chart1.Series[0].Points.Clear();
+      foreach (var p in y.Zip(data[0], (t, x) => new { t, x })) {
+        chart1.Series[0].Points.AddXY(p.x, p.t);
+      }
+
+      var allData = new List<List<double>>();
+      allData.Add(y);
+      allData.Add(data[0]);
+      var variableNames = new string[] { "y", "x" };
+      var ds = new Dataset(variableNames, allData);
+      var rows = Enumerable.Range(0, data[0].Count);
+      var correctModel = new GaussianProcessModel(ds, variableNames.First(), variableNames.Skip(1), rows, hyp, new MeanZero(),
+                                                (ICovarianceFunction)covFunction.Clone());
+      var yPred = correctModel.GetEstimatedValues(ds, rows);
+      chart1.Series[1].Points.Clear();
+      foreach (var p in yPred.Zip(data[0], (t, x) => new { t, x })) {
+        chart1.Series[1].Points.AddXY(p.x, p.t);
+      }
+    }
+
+    private double[] GetSliderValues() {
+      var hyp = new List<double>();
+      foreach (var slider in flowLayoutPanel1.Controls.Cast<TrackBar>()) {
+        Console.Write(slider.Value / 10.0 + " ");
+        hyp.Add(slider.Value / 10.0);
+      }
+      Console.WriteLine();
+
+      return hyp.ToArray();
+    }
+  }
+}
Index: /branches/HeuristicLab.Problems.GaussianProcessTuning/GaussianProcessDemo/Form1.resx
===================================================================
--- /branches/HeuristicLab.Problems.GaussianProcessTuning/GaussianProcessDemo/Form1.resx	(revision 9124)
+++ /branches/HeuristicLab.Problems.GaussianProcessTuning/GaussianProcessDemo/Form1.resx	(revision 9124)
@@ -0,0 +1,120 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>
Index: /branches/HeuristicLab.Problems.GaussianProcessTuning/GaussianProcessDemo/GaussianProcessDemo.csproj
===================================================================
--- /branches/HeuristicLab.Problems.GaussianProcessTuning/GaussianProcessDemo/GaussianProcessDemo.csproj	(revision 9124)
+++ /branches/HeuristicLab.Problems.GaussianProcessTuning/GaussianProcessDemo/GaussianProcessDemo.csproj	(revision 9124)
@@ -0,0 +1,126 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{D18AE898-F600-4754-B3B4-C0C7A364F973}</ProjectGuid>
+    <OutputType>WinExe</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>GaussianProcessDemo</RootNamespace>
+    <AssemblyName>GaussianProcessDemo</AssemblyName>
+    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <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' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="HeuristicLab.Algorithms.DataAnalysis-3.4">
+      <HintPath>..\..\..\trunk\sources\bin\HeuristicLab.Algorithms.DataAnalysis-3.4.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.Collections-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=x86">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\..\..\trunk\sources\bin\HeuristicLab.Collections-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.Common-3.3">
+      <HintPath>..\..\..\trunk\sources\bin\HeuristicLab.Common-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.Core-3.3">
+      <HintPath>..\..\..\trunk\sources\bin\HeuristicLab.Core-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.Data-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=x86">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\..\..\trunk\sources\bin\HeuristicLab.Data-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.Problems.DataAnalysis-3.4, Version=3.4.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=x86">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\..\..\trunk\sources\bin\HeuristicLab.Problems.DataAnalysis-3.4.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.Problems.Instances.DataAnalysis-3.3">
+      <HintPath>..\..\..\trunk\sources\bin\HeuristicLab.Problems.Instances.DataAnalysis-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.Random-3.3">
+      <HintPath>..\..\..\trunk\sources\bin\HeuristicLab.Random-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Windows.Forms.DataVisualization" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Deployment" />
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Windows.Forms" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Form1.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="Form1.Designer.cs">
+      <DependentUpon>Form1.cs</DependentUpon>
+    </Compile>
+    <Compile Include="Program.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <EmbeddedResource Include="Form1.resx">
+      <DependentUpon>Form1.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="Properties\Resources.resx">
+      <Generator>ResXFileCodeGenerator</Generator>
+      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+      <SubType>Designer</SubType>
+    </EmbeddedResource>
+    <Compile Include="Properties\Resources.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DependentUpon>Resources.resx</DependentUpon>
+    </Compile>
+    <None Include="Properties\Settings.settings">
+      <Generator>SettingsSingleFileGenerator</Generator>
+      <LastGenOutput>Settings.Designer.cs</LastGenOutput>
+    </None>
+    <Compile Include="Properties\Settings.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DependentUpon>Settings.settings</DependentUpon>
+      <DesignTimeSharedInput>True</DesignTimeSharedInput>
+    </Compile>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="App.config" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\HeuristicLab.Algorithms.DataAnalysis.Experimental\HeuristicLab.Algorithms.DataAnalysis.Experimental.csproj">
+      <Project>{6142B24E-9C86-410B-A65A-1DE65C8C2349}</Project>
+      <Name>HeuristicLab.Algorithms.DataAnalysis.Experimental</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\HeuristicLab.Problems.Instances.DataAnalysis.GaussianProcessRegression\Instances.DataAnalysis.GaussianProcessRegression-3.3.csproj">
+      <Project>{94c7714e-29d4-4d6d-b213-2c18d627ab75}</Project>
+      <Name>Instances.DataAnalysis.GaussianProcessRegression-3.3</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>
+  -->
+</Project>
Index: /branches/HeuristicLab.Problems.GaussianProcessTuning/GaussianProcessDemo/Program.cs
===================================================================
--- /branches/HeuristicLab.Problems.GaussianProcessTuning/GaussianProcessDemo/Program.cs	(revision 9124)
+++ /branches/HeuristicLab.Problems.GaussianProcessTuning/GaussianProcessDemo/Program.cs	(revision 9124)
@@ -0,0 +1,19 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace GaussianProcessDemo {
+  static class Program {
+    /// <summary>
+    /// The main entry point for the application.
+    /// </summary>
+    [STAThread]
+    static void Main() {
+      Application.EnableVisualStyles();
+      Application.SetCompatibleTextRenderingDefault(false);
+      Application.Run(new Form1());
+    }
+  }
+}
Index: /branches/HeuristicLab.Problems.GaussianProcessTuning/GaussianProcessDemo/Properties/AssemblyInfo.cs
===================================================================
--- /branches/HeuristicLab.Problems.GaussianProcessTuning/GaussianProcessDemo/Properties/AssemblyInfo.cs	(revision 9124)
+++ /branches/HeuristicLab.Problems.GaussianProcessTuning/GaussianProcessDemo/Properties/AssemblyInfo.cs	(revision 9124)
@@ -0,0 +1,36 @@
+﻿using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// 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("GaussianProcessDemo")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("FH-Hagenberg")]
+[assembly: AssemblyProduct("GaussianProcessDemo")]
+[assembly: AssemblyCopyright("Copyright © FH-Hagenberg 2013")]
+[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("2578d785-3609-48cc-a246-679d6054d517")]
+
+// 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 Build and Revision Numbers 
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
Index: /branches/HeuristicLab.Problems.GaussianProcessTuning/GaussianProcessDemo/Properties/Resources.Designer.cs
===================================================================
--- /branches/HeuristicLab.Problems.GaussianProcessTuning/GaussianProcessDemo/Properties/Resources.Designer.cs	(revision 9124)
+++ /branches/HeuristicLab.Problems.GaussianProcessTuning/GaussianProcessDemo/Properties/Resources.Designer.cs	(revision 9124)
@@ -0,0 +1,62 @@
+﻿//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.17929
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace GaussianProcessDemo.Properties {
+
+
+  /// <summary>
+  ///   A strongly-typed resource class, for looking up localized strings, etc.
+  /// </summary>
+  // This class was auto-generated by the StronglyTypedResourceBuilder
+  // class via a tool like ResGen or Visual Studio.
+  // To add or remove a member, edit your .ResX file then rerun ResGen
+  // with the /str option, or rebuild your VS project.
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+  [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+  internal class Resources {
+
+    private static global::System.Resources.ResourceManager resourceMan;
+
+    private static global::System.Globalization.CultureInfo resourceCulture;
+
+    [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+    internal Resources() {
+    }
+
+    /// <summary>
+    ///   Returns the cached ResourceManager instance used by this class.
+    /// </summary>
+    [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+    internal static global::System.Resources.ResourceManager ResourceManager {
+      get {
+        if ((resourceMan == null)) {
+          global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("GaussianProcessDemo.Properties.Resources", typeof(Resources).Assembly);
+          resourceMan = temp;
+        }
+        return resourceMan;
+      }
+    }
+
+    /// <summary>
+    ///   Overrides the current thread's CurrentUICulture property for all
+    ///   resource lookups using this strongly typed resource class.
+    /// </summary>
+    [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+    internal static global::System.Globalization.CultureInfo Culture {
+      get {
+        return resourceCulture;
+      }
+      set {
+        resourceCulture = value;
+      }
+    }
+  }
+}
Index: /branches/HeuristicLab.Problems.GaussianProcessTuning/GaussianProcessDemo/Properties/Resources.resx
===================================================================
--- /branches/HeuristicLab.Problems.GaussianProcessTuning/GaussianProcessDemo/Properties/Resources.resx	(revision 9124)
+++ /branches/HeuristicLab.Problems.GaussianProcessTuning/GaussianProcessDemo/Properties/Resources.resx	(revision 9124)
@@ -0,0 +1,117 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>
Index: /branches/HeuristicLab.Problems.GaussianProcessTuning/GaussianProcessDemo/Properties/Settings.Designer.cs
===================================================================
--- /branches/HeuristicLab.Problems.GaussianProcessTuning/GaussianProcessDemo/Properties/Settings.Designer.cs	(revision 9124)
+++ /branches/HeuristicLab.Problems.GaussianProcessTuning/GaussianProcessDemo/Properties/Settings.Designer.cs	(revision 9124)
@@ -0,0 +1,26 @@
+﻿//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.17929
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace GaussianProcessDemo.Properties {
+
+
+  [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
+  internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
+
+    private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+    public static Settings Default {
+      get {
+        return defaultInstance;
+      }
+    }
+  }
+}
Index: /branches/HeuristicLab.Problems.GaussianProcessTuning/GaussianProcessDemo/Properties/Settings.settings
===================================================================
--- /branches/HeuristicLab.Problems.GaussianProcessTuning/GaussianProcessDemo/Properties/Settings.settings	(revision 9124)
+++ /branches/HeuristicLab.Problems.GaussianProcessTuning/GaussianProcessDemo/Properties/Settings.settings	(revision 9124)
@@ -0,0 +1,7 @@
+﻿<?xml version='1.0' encoding='utf-8'?>
+<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
+  <Profiles>
+    <Profile Name="(Default)" />
+  </Profiles>
+  <Settings />
+</SettingsFile>
Index: /branches/HeuristicLab.Problems.GaussianProcessTuning/HeuristicLab.Algorithms.DataAnalysis.Experimental/TunedGaussianProcessModel.cs
===================================================================
--- /branches/HeuristicLab.Problems.GaussianProcessTuning/HeuristicLab.Algorithms.DataAnalysis.Experimental/TunedGaussianProcessModel.cs	(revision 9123)
+++ /branches/HeuristicLab.Problems.GaussianProcessTuning/HeuristicLab.Algorithms.DataAnalysis.Experimental/TunedGaussianProcessModel.cs	(revision 9124)
@@ -182,8 +182,13 @@
 
         // cholesky decomposition
-        ILArray<double> chol = ILNumerics.ILMath.chol(myL, false);
+        ILArray<double> chol;
+        try {
+          chol = ILNumerics.ILMath.chol(myL, false);
+        }
+        catch (Exception e) {
+          throw new ArgumentException("covariance matrix not positive definite", e);
+        }
         if (chol == null || chol.IsEmpty || !chol.Size.Equals(myL.Size))
           throw new ArgumentException("covariance matrix not positive definite");
-
         this.l = new double[n * n];
         chol.ExportValues(ref l);
Index: /branches/HeuristicLab.Problems.GaussianProcessTuning/HeuristicLab.Problems.GaussianProcessTuning.sln
===================================================================
--- /branches/HeuristicLab.Problems.GaussianProcessTuning/HeuristicLab.Problems.GaussianProcessTuning.sln	(revision 9123)
+++ /branches/HeuristicLab.Problems.GaussianProcessTuning/HeuristicLab.Problems.GaussianProcessTuning.sln	(revision 9124)
@@ -27,4 +27,6 @@
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.DataAnalysis.Experimental", "HeuristicLab.Algorithms.DataAnalysis.Experimental\HeuristicLab.Algorithms.DataAnalysis.Experimental.csproj", "{6142B24E-9C86-410B-A65A-1DE65C8C2349}"
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GaussianProcessDemo", "GaussianProcessDemo\GaussianProcessDemo.csproj", "{D18AE898-F600-4754-B3B4-C0C7A364F973}"
+EndProject
 Global
 	GlobalSection(TestCaseManagementSettings) = postSolution
@@ -33,10 +35,13 @@
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
+		Debug|Mixed Platforms = Debug|Mixed Platforms
 		Debug|x64 = Debug|x64
 		Debug|x86 = Debug|x86
 		Release|Any CPU = Release|Any CPU
+		Release|Mixed Platforms = Release|Mixed Platforms
 		Release|x64 = Release|x64
 		Release|x86 = Release|x86
 		ReleaseBuild|Any CPU = ReleaseBuild|Any CPU
+		ReleaseBuild|Mixed Platforms = ReleaseBuild|Mixed Platforms
 		ReleaseBuild|x64 = ReleaseBuild|x64
 		ReleaseBuild|x86 = ReleaseBuild|x86
@@ -45,4 +50,6 @@
 		{9A04599C-D608-4240-8DA6-D41F51C515A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{9A04599C-D608-4240-8DA6-D41F51C515A3}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{9A04599C-D608-4240-8DA6-D41F51C515A3}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
+		{9A04599C-D608-4240-8DA6-D41F51C515A3}.Debug|Mixed Platforms.Build.0 = Debug|x86
 		{9A04599C-D608-4240-8DA6-D41F51C515A3}.Debug|x64.ActiveCfg = Debug|x64
 		{9A04599C-D608-4240-8DA6-D41F51C515A3}.Debug|x64.Build.0 = Debug|x64
@@ -51,4 +58,6 @@
 		{9A04599C-D608-4240-8DA6-D41F51C515A3}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{9A04599C-D608-4240-8DA6-D41F51C515A3}.Release|Any CPU.Build.0 = Release|Any CPU
+		{9A04599C-D608-4240-8DA6-D41F51C515A3}.Release|Mixed Platforms.ActiveCfg = Release|x86
+		{9A04599C-D608-4240-8DA6-D41F51C515A3}.Release|Mixed Platforms.Build.0 = Release|x86
 		{9A04599C-D608-4240-8DA6-D41F51C515A3}.Release|x64.ActiveCfg = Release|x64
 		{9A04599C-D608-4240-8DA6-D41F51C515A3}.Release|x64.Build.0 = Release|x64
@@ -57,8 +66,12 @@
 		{9A04599C-D608-4240-8DA6-D41F51C515A3}.ReleaseBuild|Any CPU.ActiveCfg = Release|Any CPU
 		{9A04599C-D608-4240-8DA6-D41F51C515A3}.ReleaseBuild|Any CPU.Build.0 = Release|Any CPU
+		{9A04599C-D608-4240-8DA6-D41F51C515A3}.ReleaseBuild|Mixed Platforms.ActiveCfg = Release|x86
+		{9A04599C-D608-4240-8DA6-D41F51C515A3}.ReleaseBuild|Mixed Platforms.Build.0 = Release|x86
 		{9A04599C-D608-4240-8DA6-D41F51C515A3}.ReleaseBuild|x64.ActiveCfg = Release|Any CPU
 		{9A04599C-D608-4240-8DA6-D41F51C515A3}.ReleaseBuild|x86.ActiveCfg = Release|Any CPU
 		{98C8AD2B-B035-4863-A01E-B659465FF6B2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{98C8AD2B-B035-4863-A01E-B659465FF6B2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{98C8AD2B-B035-4863-A01E-B659465FF6B2}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
+		{98C8AD2B-B035-4863-A01E-B659465FF6B2}.Debug|Mixed Platforms.Build.0 = Debug|x86
 		{98C8AD2B-B035-4863-A01E-B659465FF6B2}.Debug|x64.ActiveCfg = Debug|x64
 		{98C8AD2B-B035-4863-A01E-B659465FF6B2}.Debug|x64.Build.0 = Debug|x64
@@ -67,4 +80,6 @@
 		{98C8AD2B-B035-4863-A01E-B659465FF6B2}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{98C8AD2B-B035-4863-A01E-B659465FF6B2}.Release|Any CPU.Build.0 = Release|Any CPU
+		{98C8AD2B-B035-4863-A01E-B659465FF6B2}.Release|Mixed Platforms.ActiveCfg = Release|x86
+		{98C8AD2B-B035-4863-A01E-B659465FF6B2}.Release|Mixed Platforms.Build.0 = Release|x86
 		{98C8AD2B-B035-4863-A01E-B659465FF6B2}.Release|x64.ActiveCfg = Release|x64
 		{98C8AD2B-B035-4863-A01E-B659465FF6B2}.Release|x64.Build.0 = Release|x64
@@ -73,8 +88,12 @@
 		{98C8AD2B-B035-4863-A01E-B659465FF6B2}.ReleaseBuild|Any CPU.ActiveCfg = Release|Any CPU
 		{98C8AD2B-B035-4863-A01E-B659465FF6B2}.ReleaseBuild|Any CPU.Build.0 = Release|Any CPU
+		{98C8AD2B-B035-4863-A01E-B659465FF6B2}.ReleaseBuild|Mixed Platforms.ActiveCfg = Release|x86
+		{98C8AD2B-B035-4863-A01E-B659465FF6B2}.ReleaseBuild|Mixed Platforms.Build.0 = Release|x86
 		{98C8AD2B-B035-4863-A01E-B659465FF6B2}.ReleaseBuild|x64.ActiveCfg = Release|Any CPU
 		{98C8AD2B-B035-4863-A01E-B659465FF6B2}.ReleaseBuild|x86.ActiveCfg = Release|Any CPU
 		{94C7714E-29D4-4D6D-B213-2C18D627AB75}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{94C7714E-29D4-4D6D-B213-2C18D627AB75}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{94C7714E-29D4-4D6D-B213-2C18D627AB75}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
+		{94C7714E-29D4-4D6D-B213-2C18D627AB75}.Debug|Mixed Platforms.Build.0 = Debug|x86
 		{94C7714E-29D4-4D6D-B213-2C18D627AB75}.Debug|x64.ActiveCfg = Debug|x64
 		{94C7714E-29D4-4D6D-B213-2C18D627AB75}.Debug|x64.Build.0 = Debug|x64
@@ -83,4 +102,6 @@
 		{94C7714E-29D4-4D6D-B213-2C18D627AB75}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{94C7714E-29D4-4D6D-B213-2C18D627AB75}.Release|Any CPU.Build.0 = Release|Any CPU
+		{94C7714E-29D4-4D6D-B213-2C18D627AB75}.Release|Mixed Platforms.ActiveCfg = Release|x86
+		{94C7714E-29D4-4D6D-B213-2C18D627AB75}.Release|Mixed Platforms.Build.0 = Release|x86
 		{94C7714E-29D4-4D6D-B213-2C18D627AB75}.Release|x64.ActiveCfg = Release|x64
 		{94C7714E-29D4-4D6D-B213-2C18D627AB75}.Release|x64.Build.0 = Release|x64
@@ -89,4 +110,6 @@
 		{94C7714E-29D4-4D6D-B213-2C18D627AB75}.ReleaseBuild|Any CPU.ActiveCfg = Release|Any CPU
 		{94C7714E-29D4-4D6D-B213-2C18D627AB75}.ReleaseBuild|Any CPU.Build.0 = Release|Any CPU
+		{94C7714E-29D4-4D6D-B213-2C18D627AB75}.ReleaseBuild|Mixed Platforms.ActiveCfg = Release|x86
+		{94C7714E-29D4-4D6D-B213-2C18D627AB75}.ReleaseBuild|Mixed Platforms.Build.0 = Release|x86
 		{94C7714E-29D4-4D6D-B213-2C18D627AB75}.ReleaseBuild|x64.ActiveCfg = Release|x64
 		{94C7714E-29D4-4D6D-B213-2C18D627AB75}.ReleaseBuild|x64.Build.0 = Release|x64
@@ -95,4 +118,6 @@
 		{93B4A10E-8979-4028-8CCF-49D88D6FAC0C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{93B4A10E-8979-4028-8CCF-49D88D6FAC0C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{93B4A10E-8979-4028-8CCF-49D88D6FAC0C}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
+		{93B4A10E-8979-4028-8CCF-49D88D6FAC0C}.Debug|Mixed Platforms.Build.0 = Debug|x86
 		{93B4A10E-8979-4028-8CCF-49D88D6FAC0C}.Debug|x64.ActiveCfg = Debug|x64
 		{93B4A10E-8979-4028-8CCF-49D88D6FAC0C}.Debug|x64.Build.0 = Debug|x64
@@ -101,4 +126,6 @@
 		{93B4A10E-8979-4028-8CCF-49D88D6FAC0C}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{93B4A10E-8979-4028-8CCF-49D88D6FAC0C}.Release|Any CPU.Build.0 = Release|Any CPU
+		{93B4A10E-8979-4028-8CCF-49D88D6FAC0C}.Release|Mixed Platforms.ActiveCfg = Release|x86
+		{93B4A10E-8979-4028-8CCF-49D88D6FAC0C}.Release|Mixed Platforms.Build.0 = Release|x86
 		{93B4A10E-8979-4028-8CCF-49D88D6FAC0C}.Release|x64.ActiveCfg = Release|x64
 		{93B4A10E-8979-4028-8CCF-49D88D6FAC0C}.Release|x64.Build.0 = Release|x64
@@ -107,4 +134,6 @@
 		{93B4A10E-8979-4028-8CCF-49D88D6FAC0C}.ReleaseBuild|Any CPU.ActiveCfg = ReleaseBuild|Any CPU
 		{93B4A10E-8979-4028-8CCF-49D88D6FAC0C}.ReleaseBuild|Any CPU.Build.0 = ReleaseBuild|Any CPU
+		{93B4A10E-8979-4028-8CCF-49D88D6FAC0C}.ReleaseBuild|Mixed Platforms.ActiveCfg = ReleaseBuild|x86
+		{93B4A10E-8979-4028-8CCF-49D88D6FAC0C}.ReleaseBuild|Mixed Platforms.Build.0 = ReleaseBuild|x86
 		{93B4A10E-8979-4028-8CCF-49D88D6FAC0C}.ReleaseBuild|x64.ActiveCfg = ReleaseBuild|x64
 		{93B4A10E-8979-4028-8CCF-49D88D6FAC0C}.ReleaseBuild|x64.Build.0 = ReleaseBuild|x64
@@ -113,4 +142,6 @@
 		{6142B24E-9C86-410B-A65A-1DE65C8C2349}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{6142B24E-9C86-410B-A65A-1DE65C8C2349}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{6142B24E-9C86-410B-A65A-1DE65C8C2349}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
+		{6142B24E-9C86-410B-A65A-1DE65C8C2349}.Debug|Mixed Platforms.Build.0 = Debug|x86
 		{6142B24E-9C86-410B-A65A-1DE65C8C2349}.Debug|x64.ActiveCfg = Debug|x64
 		{6142B24E-9C86-410B-A65A-1DE65C8C2349}.Debug|x64.Build.0 = Debug|x64
@@ -119,4 +150,6 @@
 		{6142B24E-9C86-410B-A65A-1DE65C8C2349}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{6142B24E-9C86-410B-A65A-1DE65C8C2349}.Release|Any CPU.Build.0 = Release|Any CPU
+		{6142B24E-9C86-410B-A65A-1DE65C8C2349}.Release|Mixed Platforms.ActiveCfg = Release|x86
+		{6142B24E-9C86-410B-A65A-1DE65C8C2349}.Release|Mixed Platforms.Build.0 = Release|x86
 		{6142B24E-9C86-410B-A65A-1DE65C8C2349}.Release|x64.ActiveCfg = Release|x64
 		{6142B24E-9C86-410B-A65A-1DE65C8C2349}.Release|x64.Build.0 = Release|x64
@@ -125,6 +158,26 @@
 		{6142B24E-9C86-410B-A65A-1DE65C8C2349}.ReleaseBuild|Any CPU.ActiveCfg = Release|Any CPU
 		{6142B24E-9C86-410B-A65A-1DE65C8C2349}.ReleaseBuild|Any CPU.Build.0 = Release|Any CPU
+		{6142B24E-9C86-410B-A65A-1DE65C8C2349}.ReleaseBuild|Mixed Platforms.ActiveCfg = Release|x86
+		{6142B24E-9C86-410B-A65A-1DE65C8C2349}.ReleaseBuild|Mixed Platforms.Build.0 = Release|x86
 		{6142B24E-9C86-410B-A65A-1DE65C8C2349}.ReleaseBuild|x64.ActiveCfg = Release|Any CPU
 		{6142B24E-9C86-410B-A65A-1DE65C8C2349}.ReleaseBuild|x86.ActiveCfg = Release|Any CPU
+		{D18AE898-F600-4754-B3B4-C0C7A364F973}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{D18AE898-F600-4754-B3B4-C0C7A364F973}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{D18AE898-F600-4754-B3B4-C0C7A364F973}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{D18AE898-F600-4754-B3B4-C0C7A364F973}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+		{D18AE898-F600-4754-B3B4-C0C7A364F973}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{D18AE898-F600-4754-B3B4-C0C7A364F973}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{D18AE898-F600-4754-B3B4-C0C7A364F973}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{D18AE898-F600-4754-B3B4-C0C7A364F973}.Release|Any CPU.Build.0 = Release|Any CPU
+		{D18AE898-F600-4754-B3B4-C0C7A364F973}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{D18AE898-F600-4754-B3B4-C0C7A364F973}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+		{D18AE898-F600-4754-B3B4-C0C7A364F973}.Release|x64.ActiveCfg = Release|Any CPU
+		{D18AE898-F600-4754-B3B4-C0C7A364F973}.Release|x86.ActiveCfg = Release|Any CPU
+		{D18AE898-F600-4754-B3B4-C0C7A364F973}.ReleaseBuild|Any CPU.ActiveCfg = Release|Any CPU
+		{D18AE898-F600-4754-B3B4-C0C7A364F973}.ReleaseBuild|Any CPU.Build.0 = Release|Any CPU
+		{D18AE898-F600-4754-B3B4-C0C7A364F973}.ReleaseBuild|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{D18AE898-F600-4754-B3B4-C0C7A364F973}.ReleaseBuild|Mixed Platforms.Build.0 = Release|Any CPU
+		{D18AE898-F600-4754-B3B4-C0C7A364F973}.ReleaseBuild|x64.ActiveCfg = Release|Any CPU
+		{D18AE898-F600-4754-B3B4-C0C7A364F973}.ReleaseBuild|x86.ActiveCfg = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
Index: /branches/HeuristicLab.Problems.GaussianProcessTuning/HeuristicLab.Problems.Instances.DataAnalysis.GaussianProcessRegression/GaussianProcessRegressionInstance.cs
===================================================================
--- /branches/HeuristicLab.Problems.GaussianProcessTuning/HeuristicLab.Problems.Instances.DataAnalysis.GaussianProcessRegression/GaussianProcessRegressionInstance.cs	(revision 9123)
+++ /branches/HeuristicLab.Problems.GaussianProcessTuning/HeuristicLab.Problems.Instances.DataAnalysis.GaussianProcessRegression/GaussianProcessRegressionInstance.cs	(revision 9124)
@@ -30,5 +30,5 @@
 
     public override string Name {
-      get { return "Gaussian Process " + covarianceFunction.ItemName; }
+      get { return "Gaussian Process " + name; }
     }
     public override string Description {
@@ -36,15 +36,17 @@
     }
     protected override string TargetVariable { get { return "Y"; } }
-    protected override string[] VariableNames { get { return new string[] { "X1", "X2", "Y" }; } }
-    protected override string[] AllowedInputVariables { get { return new string[] { "X1", "X2" }; } }
+    protected override string[] VariableNames { get { return new string[] { "X1", "Y" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X1" }; } }
     protected override int TrainingPartitionStart { get { return 0; } }
-    protected override int TrainingPartitionEnd { get { return 100; } }
-    protected override int TestPartitionStart { get { return 100; } }
-    protected override int TestPartitionEnd { get { return 200; } }
+    protected override int TrainingPartitionEnd { get { return 200; } }
+    protected override int TestPartitionStart { get { return 200; } }
+    protected override int TestPartitionEnd { get { return 400; } }
 
-    private ICovarianceFunction covarianceFunction;
+    private ParameterizedCovarianceFunction cov;
+    private string name;
 
-    public GaussianProcessRegressionInstance(ICovarianceFunction covarianceFunction) {
-      this.covarianceFunction = covarianceFunction;
+    public GaussianProcessRegressionInstance(string name, ICovarianceFunction covarianceFunction, double[] hyp) {
+      this.name = name;
+      cov = covarianceFunction.GetParameterizedCovarianceFunction(hyp, null);
     }
 
@@ -53,18 +55,9 @@
       List<List<double>> data = new List<List<double>>();
       for (int i = 0; i < AllowedInputVariables.Count(); i++) {
-        data.Add(ValueGenerator.GenerateSteps(0, 0.99, 0.01).ToList());
-        data[i].AddRange(ValueGenerator.GenerateSteps(0.005, 1, 0.01).ToList());
+        data.Add(ValueGenerator.GenerateSteps(0, 0.99, 1.0 / TrainingPartitionEnd).ToList());
+        data[i].AddRange(ValueGenerator.GenerateSteps(-0.5, 1.5, 2.0 / (TestPartitionEnd - TestPartitionStart)).ToList());
       }
       var mt = new MersenneTwister();
 
-      var noise = new CovarianceNoise();
-      noise.SetParameter(new double[] { Math.Log(Math.Sqrt(0.01)) });
-      var t = new CovarianceSum();
-      t.Terms.Add(covarianceFunction);
-      t.Terms.Add(noise);
-
-      var p = Enumerable.Range(0, t.GetNumberOfParameters(data.Count)).Select(i => mt.NextDouble() - 1).ToArray();
-
-      var cov = t.GetParameterizedCovarianceFunction(p, null);
 
       var target = Util.SampleGaussianProcess(mt, cov, data);
Index: /branches/HeuristicLab.Problems.GaussianProcessTuning/HeuristicLab.Problems.Instances.DataAnalysis.GaussianProcessRegression/GaussianProcessSumOfRQIso.cs
===================================================================
--- /branches/HeuristicLab.Problems.GaussianProcessTuning/HeuristicLab.Problems.Instances.DataAnalysis.GaussianProcessRegression/GaussianProcessSumOfRQIso.cs	(revision 9124)
+++ /branches/HeuristicLab.Problems.GaussianProcessTuning/HeuristicLab.Problems.Instances.DataAnalysis.GaussianProcessRegression/GaussianProcessSumOfRQIso.cs	(revision 9124)
@@ -0,0 +1,81 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Collections.Generic;
+using System.Linq;
+using HeuristicLab.Algorithms.DataAnalysis;
+using HeuristicLab.Data;
+using HeuristicLab.Random;
+
+namespace HeuristicLab.Problems.Instances.DataAnalysis {
+  public class GaussianProcessSumOfRQIso : ArtificialRegressionDataDescriptor {
+
+    public override string Name {
+      get {
+        return "Gaussian Process Sum Of RQ iso " + invLength;
+      }
+    }
+    public override string Description {
+      get { return ""; }
+    }
+    protected override string TargetVariable { get { return "Y"; } }
+    protected override string[] VariableNames { get { return new string[] { "X1", "Y" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X1" }; } }
+    protected override int TrainingPartitionStart { get { return 0; } }
+    protected override int TrainingPartitionEnd { get { return 50; } }
+    protected override int TestPartitionStart { get { return 50; } }
+    protected override int TestPartitionEnd { get { return 100; } }
+
+    private double invLength;
+
+    public GaussianProcessSumOfRQIso(double invLength) {
+      this.invLength = invLength;
+    }
+
+    protected override List<List<double>> GenerateValues() {
+      List<List<double>> data = new List<List<double>>();
+      for (int i = 0; i < AllowedInputVariables.Count(); i++) {
+        data.Add(ValueGenerator.GenerateSteps(0, 1, 1.0 / TrainingPartitionEnd).ToList());
+        data[i].AddRange(ValueGenerator.GenerateSteps(-0.5, 1.5, 2.0 / (TestPartitionEnd - TrainingPartitionEnd)).ToList());
+      }
+
+      var hyp = new double[]
+        {
+          0.0, 0.0, 0.0,  // RQiso (inv length, scale, shape)
+          invLength, 2.0, 0.0, // RQiso
+          -3.0      // noise
+        };
+
+
+      var covFun = new CovarianceSum();
+      covFun.Terms.Add(new CovarianceRationalQuadraticIso());
+      covFun.Terms.Add(new CovarianceRationalQuadraticIso());
+      covFun.Terms.Add(new CovarianceNoise());
+
+      var cov = covFun.GetParameterizedCovarianceFunction(hyp, null);
+      var mt = new MersenneTwister();
+      var target = Util.SampleGaussianProcess(mt, cov, data);
+      data.Add(target);
+
+      return data;
+    }
+  }
+}
Index: /branches/HeuristicLab.Problems.GaussianProcessTuning/HeuristicLab.Problems.Instances.DataAnalysis.GaussianProcessRegression/GaussianProcessSumOfSEIso.cs
===================================================================
--- /branches/HeuristicLab.Problems.GaussianProcessTuning/HeuristicLab.Problems.Instances.DataAnalysis.GaussianProcessRegression/GaussianProcessSumOfSEIso.cs	(revision 9124)
+++ /branches/HeuristicLab.Problems.GaussianProcessTuning/HeuristicLab.Problems.Instances.DataAnalysis.GaussianProcessRegression/GaussianProcessSumOfSEIso.cs	(revision 9124)
@@ -0,0 +1,80 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Collections.Generic;
+using System.Linq;
+using HeuristicLab.Algorithms.DataAnalysis;
+using HeuristicLab.Data;
+using HeuristicLab.Random;
+
+namespace HeuristicLab.Problems.Instances.DataAnalysis {
+  public class GaussianProcessSumOfSEIso : ArtificialRegressionDataDescriptor {
+
+    public override string Name {
+      get {
+        return "Gaussian Process Sum Of SE iso " + invLength;
+      }
+    }
+    public override string Description {
+      get { return ""; }
+    }
+    protected override string TargetVariable { get { return "Y"; } }
+    protected override string[] VariableNames { get { return new string[] { "X1", "Y" }; } }
+    protected override string[] AllowedInputVariables { get { return new string[] { "X1" }; } }
+    protected override int TrainingPartitionStart { get { return 0; } }
+    protected override int TrainingPartitionEnd { get { return 50; } }
+    protected override int TestPartitionStart { get { return 50; } }
+    protected override int TestPartitionEnd { get { return 100; } }
+
+    private double invLength;
+    public GaussianProcessSumOfSEIso(double invLength) {
+      this.invLength = invLength;
+    }
+
+    protected override List<List<double>> GenerateValues() {
+      List<List<double>> data = new List<List<double>>();
+      for (int i = 0; i < AllowedInputVariables.Count(); i++) {
+        data.Add(ValueGenerator.GenerateSteps(0, 1, 1.0 / TrainingPartitionEnd).ToList());
+        data[i].AddRange(ValueGenerator.GenerateSteps(-0.5, 1.5, 2.0 / (TestPartitionEnd - TrainingPartitionEnd)).ToList());
+      }
+
+      var hyp = new double[]
+        {
+          0.0, 0.0, // SEiso
+          invLength, 2.0, // SEiso
+          -3.0      // noise
+        };
+
+
+      var covFun = new CovarianceSum();
+      covFun.Terms.Add(new CovarianceSquaredExponentialIso());
+      covFun.Terms.Add(new CovarianceSquaredExponentialIso());
+      covFun.Terms.Add(new CovarianceNoise());
+
+      var cov = covFun.GetParameterizedCovarianceFunction(hyp, null);
+      var mt = new MersenneTwister();
+      var target = Util.SampleGaussianProcess(mt, cov, data);
+      data.Add(target);
+
+      return data;
+    }
+  }
+}
Index: /branches/HeuristicLab.Problems.GaussianProcessTuning/HeuristicLab.Problems.Instances.DataAnalysis.GaussianProcessRegression/Instances.DataAnalysis.GaussianProcessRegression-3.3.csproj
===================================================================
--- /branches/HeuristicLab.Problems.GaussianProcessTuning/HeuristicLab.Problems.Instances.DataAnalysis.GaussianProcessRegression/Instances.DataAnalysis.GaussianProcessRegression-3.3.csproj	(revision 9123)
+++ /branches/HeuristicLab.Problems.GaussianProcessTuning/HeuristicLab.Problems.Instances.DataAnalysis.GaussianProcessRegression/Instances.DataAnalysis.GaussianProcessRegression-3.3.csproj	(revision 9124)
@@ -178,4 +178,6 @@
   </ItemGroup>
   <ItemGroup>
+    <Compile Include="GaussianProcessSumOfRQIso.cs" />
+    <Compile Include="GaussianProcessSumOfSEIso.cs" />
     <Compile Include="GaussianProcessRegressionInstance.cs" />
     <Compile Include="GaussianProcessSEIso6.cs" />
Index: /branches/HeuristicLab.Problems.GaussianProcessTuning/HeuristicLab.Problems.Instances.DataAnalysis.GaussianProcessRegression/Util.cs
===================================================================
--- /branches/HeuristicLab.Problems.GaussianProcessTuning/HeuristicLab.Problems.Instances.DataAnalysis.GaussianProcessRegression/Util.cs	(revision 9123)
+++ /branches/HeuristicLab.Problems.GaussianProcessTuning/HeuristicLab.Problems.Instances.DataAnalysis.GaussianProcessRegression/Util.cs	(revision 9124)
@@ -31,6 +31,15 @@
 
 
+    public static List<double> SampleGaussianProcess(IRandom random, ParameterizedCovarianceFunction covFunction, List<List<double>> data) {
+      int n = data[0].Count;
 
-    public static List<double> SampleGaussianProcess(IRandom random, ParameterizedCovarianceFunction covFunction, List<List<double>> data) {
+      var normalRand = new NormalDistributedRandom(random, 0, 1);
+      var alpha = (from i in Enumerable.Range(0, n)
+                   select normalRand.NextDouble()).ToArray();
+      return SampleGaussianProcess(random, covFunction, data, alpha);
+    }
+
+    public static List<double> SampleGaussianProcess(IRandom random, ParameterizedCovarianceFunction covFunction, List<List<double>> data, double[] alpha) {
+      if (alpha.Length != data[0].Count) throw new ArgumentException();
 
       double[,] x = new double[data[0].Count, data.Count];
@@ -43,9 +52,5 @@
           K[i, j] = covFunction.Covariance(x, i, j);
 
-      var normalRand = new NormalDistributedRandom(random, 0, 1);
-
       if (!alglib.spdmatrixcholesky(ref K, K.GetLength(0), true)) throw new ArgumentException();
-      var r = (from i in Enumerable.Range(0, K.GetLength(0))
-               select normalRand.NextDouble()).ToArray();
 
       List<double> target = new List<double>(K.GetLength(0));
@@ -54,5 +59,5 @@
         for (int j = K.GetLength(0) - 1; j >= 0; j--) {
 
-          s += K[j, i] * r[j];
+          s += K[j, i] * alpha[j];
         }
 
Index: /branches/HeuristicLab.Problems.GaussianProcessTuning/HeuristicLab.Problems.Instances.DataAnalysis.GaussianProcessRegression/VariousInstanceProvider.cs
===================================================================
--- /branches/HeuristicLab.Problems.GaussianProcessTuning/HeuristicLab.Problems.Instances.DataAnalysis.GaussianProcessRegression/VariousInstanceProvider.cs	(revision 9123)
+++ /branches/HeuristicLab.Problems.GaussianProcessTuning/HeuristicLab.Problems.Instances.DataAnalysis.GaussianProcessRegression/VariousInstanceProvider.cs	(revision 9124)
@@ -22,4 +22,5 @@
 using System;
 using System.Collections.Generic;
+using System.Linq;
 using HeuristicLab.Algorithms.DataAnalysis;
 
@@ -51,17 +52,76 @@
       descriptorList.Add(new GaussianProcessSEIsoDependentNoise());
 
-      var covs = new ICovarianceFunction[] {
-        new CovarianceSquaredExponentialIso(), 
-        new CovarianceSquaredExponentialArd(), 
-        new CovarianceLinear(), 
-        new CovarianceLinearArd(), 
-        new CovarianceMaternIso(), 
-        new CovariancePeriodic(), 
-        new CovarianceRationalQuadraticArd(), 
-        new CovarianceRationalQuadraticIso()
-      };
-      foreach (var cov in covs) {
-        descriptorList.Add(new GaussianProcessRegressionInstance(cov));
+      {
+        var cov = new CovarianceSum();
+        cov.Terms.Add(new CovarianceSquaredExponentialIso());
+        cov.Terms.Add(new CovarianceSquaredExponentialIso());
+        cov.Terms.Add(new CovarianceNoise());
+        var hyp = new double[] { -2.8, -0.1, 0.5, 0.3, -1.5 };
+        descriptorList.Add(new GaussianProcessRegressionInstance("SE+SE", cov, hyp));
       }
+      {
+        var cov = new CovarianceSum();
+        cov.Terms.Add(new CovarianceRationalQuadraticIso());
+        cov.Terms.Add(new CovarianceRationalQuadraticIso());
+        cov.Terms.Add(new CovarianceNoise());
+        var hyp = new double[] { -3, 0, 0, -1.5, 0, 2.5, -1.5 };
+        descriptorList.Add(new GaussianProcessRegressionInstance("RQ+RQ", cov, hyp));
+      }
+      {
+        var cov = new CovarianceSum();
+        cov.Terms.Add(new CovariancePeriodic());
+        cov.Terms.Add(new CovariancePeriodic());
+        cov.Terms.Add(new CovarianceNoise());
+        var hyp = new double[] { 0, -1.8, -1.5, 0, -0.5, -1, -2.1 };
+        descriptorList.Add(new GaussianProcessRegressionInstance("Periodic+Periodic", cov, hyp));
+      }
+      {
+        var cov = new CovarianceSum();
+        cov.Terms.Add(new CovarianceMaternIso());
+        cov.Terms.Add(new CovarianceMaternIso());
+        cov.Terms.Add(new CovarianceNoise());
+        var hyp = new double[] { 0, 0, -1, 1, -4 };
+        descriptorList.Add(new GaussianProcessRegressionInstance("Matern1+Matern1", cov, hyp));
+      }
+      {
+        var cov = new CovarianceSum();
+        var m1 = new CovarianceMaternIso();
+        m1.DParameter.Value = m1.DParameter.ValidValues.First(v => v.Value == 3);
+        var m2 = new CovarianceMaternIso();
+        m2.DParameter.Value = m2.DParameter.ValidValues.First(v => v.Value == 3);
+        cov.Terms.Add(m1);
+        cov.Terms.Add(m2);
+        cov.Terms.Add(new CovarianceNoise());
+        var hyp = new double[] { -2.7, 0, -1, 1, -1.5 };
+        descriptorList.Add(new GaussianProcessRegressionInstance("Matern3+Matern3", cov, hyp));
+      }
+      {
+        var cov = new CovarianceSum();
+        cov.Terms.Add(new CovarianceRationalQuadraticIso());
+        cov.Terms.Add(new CovarianceSquaredExponentialIso());
+        cov.Terms.Add(new CovarianceNoise());
+        var hyp = new double[] { -1.5, -0.5, -3, -1, -1, -3 };
+        descriptorList.Add(new GaussianProcessRegressionInstance("RQ+SE", cov, hyp));
+      }
+      {
+        var cov = new CovarianceSum();
+        cov.Terms.Add(new CovarianceSquaredExponentialIso());
+        var prod = new CovarianceProduct();
+        prod.Factors.Add(new CovarianceLinear());
+        prod.Factors.Add(new CovarianceNoise());
+        cov.Terms.Add(prod);
+        cov.Terms.Add(new CovarianceNoise());
+        var hyp = new double[] { -3, 0, 0, -1.5 };
+        descriptorList.Add(new GaussianProcessRegressionInstance("SE+Linear*Noise", cov, hyp));
+      }
+      {
+        var cov = new CovarianceSum();
+        cov.Terms.Add(new CovarianceSquaredExponentialIso());
+        cov.Terms.Add(new CovariancePeriodic());
+        cov.Terms.Add(new CovarianceNoise());
+        var hyp = new double[] { -1, 0, 0, -1.5, 0, -2 };
+        descriptorList.Add(new GaussianProcessRegressionInstance("SE+Periodic", cov, hyp));
+      }
+
 
       return descriptorList;
