Index: branches/ExcelIntegration/HeuristicLabExcel.sln
===================================================================
--- branches/ExcelIntegration/HeuristicLabExcel.sln	(revision 11217)
+++ branches/ExcelIntegration/HeuristicLabExcel.sln	(revision 11217)
@@ -0,0 +1,20 @@
+﻿
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2012
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLabExcel", "HeuristicLabExcel\HeuristicLabExcel.csproj", "{05AA19D5-22F6-459F-B72A-2F674405CC0D}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Release|Any CPU = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{05AA19D5-22F6-459F-B72A-2F674405CC0D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{05AA19D5-22F6-459F-B72A-2F674405CC0D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{05AA19D5-22F6-459F-B72A-2F674405CC0D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{05AA19D5-22F6-459F-B72A-2F674405CC0D}.Release|Any CPU.Build.0 = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
Index: branches/ExcelIntegration/HeuristicLabExcel/App.config
===================================================================
--- branches/ExcelIntegration/HeuristicLabExcel/App.config	(revision 11217)
+++ branches/ExcelIntegration/HeuristicLabExcel/App.config	(revision 11217)
@@ -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/ExcelIntegration/HeuristicLabExcel/ExcelFunctions.cs
===================================================================
--- branches/ExcelIntegration/HeuristicLabExcel/ExcelFunctions.cs	(revision 11217)
+++ branches/ExcelIntegration/HeuristicLabExcel/ExcelFunctions.cs	(revision 11217)
@@ -0,0 +1,58 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Linq;
+using ExcelDna.Integration;
+using HeuristicLab.Problems.DataAnalysis;
+
+namespace HeuristicLabExcel {
+
+  public class ExcelFunctions {
+    /* Standard example from ExcelDNA */
+    [ExcelFunction(Description = "Multiplies two numbers", Category = "Useful functions")]
+    public static double MultiplyThem(double x, double y) {
+      return x * y;
+    }
+    [ExcelFunction(Description = "Random forest", Category = "Useful functions")]
+    public static double[,] PredictRandomForest(double[,] x, double[] y) {
+      int nRows = x.GetLength(0);
+      int nCols = x.GetLength(1);
+      if (nRows > 5000) throw new ArgumentException("y");
+      if (nCols >= nRows) throw new ArgumentException("x");
+      var inputs = Enumerable.Range(0, nCols).Select(i => "x" + i);
+      var target = "y";
+      var variables = inputs.Concat(new string[] { target });
+      // copy data
+      var xy = new double[nRows, nCols + 1];
+      for (int r = 0; r < nRows; r++) {
+        for (int c = 0; c < nCols; c++) {
+          xy[r, c] = x[r, c];
+        }
+        if (r < y.Length)
+          xy[r, nCols] = y[r];
+      }
+      var ds = new Dataset(variables, xy);
+
+      var problemData = new RegressionProblemData(ds, inputs, target);
+      problemData.TrainingPartition.Start = 0;
+      problemData.TrainingPartition.End = y.Length;
+      problemData.TestPartition.Start = y.Length;
+      problemData.TestPartition.End = nRows;
+
+      double rmsError;
+      double oobAvgRelError;
+      double oobRmsError;
+      double avgRelError;
+      var rf = HeuristicLab.Algorithms.DataAnalysis.RandomForestRegression.CreateRandomForestRegressionSolution(problemData, 100, 0.5, 0.5, 31415, out rmsError, out avgRelError, out oobRmsError, out oobAvgRelError);
+
+      // copy for output
+      var res = new double[nRows, 1];
+      var estValuesEnum = rf.EstimatedValues.GetEnumerator();
+      estValuesEnum.MoveNext();
+      for (int r = 0; r < nRows; r++) {
+        res[r, 0] = estValuesEnum.Current;
+        estValuesEnum.MoveNext();
+      }
+      return res;
+    }
+  }
+}
Index: branches/ExcelIntegration/HeuristicLabExcel/HeuristicLabExcel.csproj
===================================================================
--- branches/ExcelIntegration/HeuristicLabExcel/HeuristicLabExcel.csproj	(revision 11217)
+++ branches/ExcelIntegration/HeuristicLabExcel/HeuristicLabExcel.csproj	(revision 11217)
@@ -0,0 +1,92 @@
+﻿<?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>{05AA19D5-22F6-459F-B72A-2F674405CC0D}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>HeuristicLabExcel</RootNamespace>
+    <AssemblyName>HeuristicLabExcel</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>
+  <PropertyGroup>
+    <StartupObject />
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="ExcelDna.Integration">
+      <HintPath>.\ExcelDna.Integration.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.Algorithms.DataAnalysis-3.4">
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Algorithms.DataAnalysis-3.4.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">
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Data-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.Optimization-3.3">
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Optimization-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.Problems.DataAnalysis-3.4">
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Problems.DataAnalysis-3.4.dll</HintPath>
+    </Reference>
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="ExcelFunctions.cs" />
+    <Compile Include="Program.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="App.config" />
+    <None Include="HeuristicLabExcel.dna">
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </None>
+    <None Include="HeuristicLabExcel.xll">
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </None>
+  </ItemGroup>
+  <ItemGroup>
+    <Content Include="ExcelDna.Integration.dll" />
+  </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/ExcelIntegration/HeuristicLabExcel/HeuristicLabExcel.dna
===================================================================
--- branches/ExcelIntegration/HeuristicLabExcel/HeuristicLabExcel.dna	(revision 11217)
+++ branches/ExcelIntegration/HeuristicLabExcel/HeuristicLabExcel.dna	(revision 11217)
@@ -0,0 +1,3 @@
+<DnaLibrary RuntimeVersion="v4.0">
+  <ExternalLibrary Path="HeuristicLabExcel.dll" />
+</DnaLibrary>
Index: branches/ExcelIntegration/HeuristicLabExcel/Program.cs
===================================================================
--- branches/ExcelIntegration/HeuristicLabExcel/Program.cs	(revision 11217)
+++ branches/ExcelIntegration/HeuristicLabExcel/Program.cs	(revision 11217)
@@ -0,0 +1,12 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace HeuristicLabExcel {
+  class Program {
+    static void Main(string[] args) {
+    }
+  }
+}
Index: branches/ExcelIntegration/HeuristicLabExcel/Properties/AssemblyInfo.cs
===================================================================
--- branches/ExcelIntegration/HeuristicLabExcel/Properties/AssemblyInfo.cs	(revision 11217)
+++ branches/ExcelIntegration/HeuristicLabExcel/Properties/AssemblyInfo.cs	(revision 11217)
@@ -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("HeuristicLabExcel")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("FH-Hagenberg")]
+[assembly: AssemblyProduct("HeuristicLabExcel")]
+[assembly: AssemblyCopyright("Copyright © FH-Hagenberg 2014")]
+[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("8ea28b5b-7a55-4195-b23e-1817cacb1831")]
+
+// 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")]
