Index: trunk/sources/HeuristicLab.IntVector/3.2/DiscreteCrossover.cs
===================================================================
--- trunk/sources/HeuristicLab.IntVector/3.2/DiscreteCrossover.cs	(revision 1530)
+++ trunk/sources/HeuristicLab.IntVector/3.2/DiscreteCrossover.cs	(revision 1530)
@@ -0,0 +1,70 @@
+#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.Core;
+
+namespace HeuristicLab.IntVector {
+  /// <summary>
+  /// Discrete crossover for integer vectors.
+  /// </summary>
+  public class DiscreteCrossover : IntVectorCrossoverBase {
+    /// <inheritdoc select="summary"/>
+    public override string Description {
+      get { return "Discrete crossover for integer vectors."; }
+    }
+
+    /// <summary>
+    /// Performs a discrete crossover operation of the two given parents.
+    /// </summary>
+    /// <param name="random">A random number generator.</param>
+    /// <param name="parent1">The first parent for the crossover operation.</param>
+    /// <param name="parent2">The second parent for the crossover operation.</param>
+    /// <returns>The newly created integer vector, resulting from the crossover operation.</returns>
+    public static int[] Apply(IRandom random, int[] parent1, int[] parent2) {
+      int length = parent1.Length;
+      int[] result = new int[length];
+
+      for (int i = 0; i < length; i++) {
+        if (random.NextDouble() < 0.5)
+          result[i] = parent1[i];
+        else
+          result[i] = parent2[i];
+      }
+      return result;
+    }
+
+    /// <summary>
+    /// Performs a discrete crossover operation for two given parent integer vectors.
+    /// </summary>
+    /// <exception cref="InvalidOperationException">Thrown if there are not exactly two parents.</exception>
+    /// <param name="scope">The current scope.</param>
+    /// <param name="random">A random number generator.</param>
+    /// <param name="parents">An array containing the two integer vectors that should be crossed.</param>
+    /// <returns>The newly created integer vector, resulting from the crossover operation.</returns>
+    protected override int[] Cross(IScope scope, IRandom random, int[][] parents) {
+      if (parents.Length != 2) throw new InvalidOperationException("ERROR in DiscreteCrossover: The number of parents is not equal to 2");
+      return Apply(random, parents[0], parents[1]);
+    }
+  }
+}
Index: trunk/sources/HeuristicLab.IntVector/3.2/HeuristicLab.IntVector.csproj
===================================================================
--- trunk/sources/HeuristicLab.IntVector/3.2/HeuristicLab.IntVector.csproj	(revision 1530)
+++ trunk/sources/HeuristicLab.IntVector/3.2/HeuristicLab.IntVector.csproj	(revision 1530)
@@ -0,0 +1,124 @@
+﻿<?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>{85FA46C6-761E-4098-9EF7-060ECC386396}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>HeuristicLab.IntVector</RootNamespace>
+    <AssemblyName>HeuristicLab.IntVector-3.2</AssemblyName>
+    <TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <SignAssembly>true</SignAssembly>
+    <AssemblyOriginatorKeyFile>HeuristicLab.snk</AssemblyOriginatorKeyFile>
+  </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>
+    <DocumentationFile>bin\Release\HeuristicLab.IntVector-3.2.XML</DocumentationFile>
+  </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>
+    <DocumentationFile>bin\Release\HeuristicLab.IntVector-3.2.XML</DocumentationFile>
+    <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>
+    <DocumentationFile>bin\Release\HeuristicLab.IntVector-3.2.XML</DocumentationFile>
+    <Optimize>true</Optimize>
+    <DebugType>pdbonly</DebugType>
+    <PlatformTarget>x64</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="DiscreteCrossover.cs" />
+    <Compile Include="UniformAllPositionsManipulator.cs" />
+    <Compile Include="IntVectorCrossoverBase.cs" />
+    <Compile Include="IntVectorManipulatorBase.cs" />
+    <Compile Include="UniformOnePositionManipulator.cs" />
+    <Compile Include="HeuristicLabIntVectorPlugin.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="UniformRandomIntVectorGenerator.cs" />
+    <Compile Include="SinglePointCrossover.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="HeuristicLab.snk" />
+    <None Include="Properties\AssemblyInfo.frame" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\HeuristicLab.Core\HeuristicLab.Core.csproj">
+      <Project>{F43B59AB-2B8C-4570-BC1E-15592086517C}</Project>
+      <Name>HeuristicLab.Core</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\HeuristicLab.Data\HeuristicLab.Data.csproj">
+      <Project>{F473D9AF-3F09-4296-9F28-3C65118DAFFA}</Project>
+      <Name>HeuristicLab.Data</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\HeuristicLab.Evolutionary\HeuristicLab.Evolutionary.csproj">
+      <Project>{F5614C53-153C-4A37-A608-121E1C087F07}</Project>
+      <Name>HeuristicLab.Evolutionary</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.IntVector/3.2/HeuristicLabIntVectorPlugin.cs
===================================================================
--- trunk/sources/HeuristicLab.IntVector/3.2/HeuristicLabIntVectorPlugin.cs	(revision 1530)
+++ trunk/sources/HeuristicLab.IntVector/3.2/HeuristicLabIntVectorPlugin.cs	(revision 1530)
@@ -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.IntVector {
+  /// <summary>
+  /// Plugin class for HeuristicLab.IntVector plugin.
+  /// </summary>
+  [ClassInfo(Name = "HeuristicLab.IntVector-3.2")]
+  [PluginFile(Filename = "HeuristicLab.IntVector-3.2.dll", Filetype = PluginFileType.Assembly)]
+  [Dependency(Dependency = "HeuristicLab.Core-3.2")]
+  [Dependency(Dependency = "HeuristicLab.Data-3.2")]
+  [Dependency(Dependency = "HeuristicLab.Evolutionary-3.2")]
+  public class HeuristicLabIntVectorPlugin : PluginBase {
+  }
+}
Index: trunk/sources/HeuristicLab.IntVector/3.2/IntVectorCrossoverBase.cs
===================================================================
--- trunk/sources/HeuristicLab.IntVector/3.2/IntVectorCrossoverBase.cs	(revision 1530)
+++ trunk/sources/HeuristicLab.IntVector/3.2/IntVectorCrossoverBase.cs	(revision 1530)
@@ -0,0 +1,72 @@
+#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.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Evolutionary;
+
+namespace HeuristicLab.IntVector {
+  /// <summary>
+  /// Base class for all integer vector crossover operators.
+  /// </summary>
+  public abstract class IntVectorCrossoverBase : CrossoverBase {
+    /// <summary>
+    /// Initializes a new instance of <see cref="IntVectorCrossoverBase"/> with one variable info
+    /// (<c>IntVector</c>).
+    /// </summary>
+    public IntVectorCrossoverBase()
+      : base() {
+      AddVariableInfo(new VariableInfo("IntVector", "Parent and child integer vector", typeof(IntArrayData), VariableKind.In | VariableKind.New));
+    }
+
+    /// <summary>
+    /// Performs a crossover by calling <see cref="Cross(HeuristicLab.Core.IScope, HeuristicLab.Core.IRandom, int[][]"/>
+    /// and adds the created integer vector to the current scope.
+    /// </summary>
+    /// <exception cref="InvalidOperationException">Thrown if the parents have different lengths.</exception>
+    /// <param name="scope">The current scope which represents a new child.</param>
+    /// <param name="random">A random number generator.</param>
+    protected sealed override void Cross(IScope scope, IRandom random) {
+      int[][] parents = new int[scope.SubScopes.Count][];
+      int length = -1;
+      for (int i = 0; i < scope.SubScopes.Count; i++) {
+        parents[i] = scope.SubScopes[i].GetVariableValue<IntArrayData>("IntVector", false).Data;
+        if (i == 0) length = parents[i].Length;
+        else if (parents[i].Length != length) throw new InvalidOperationException("ERROR in IntVectorCrossoverBase: Cannot apply crossover to integer vectors of different length");
+      }
+
+      int[] result = Cross(scope, random, parents);
+      scope.AddVariable(new Variable(scope.TranslateName("IntVector"), new IntArrayData(result)));
+    }
+
+    /// <summary>
+    /// Performs a crossover of multiple integer vectors.
+    /// </summary>
+    /// <param name="scope">The current scope.</param>
+    /// <param name="random">A random number generator.</param>
+    /// <param name="parents">An array containing all parent integer vectors.</param>
+    /// <returns>The newly created integer vector, resulting from the crossover operation.</returns>
+    protected abstract int[] Cross(IScope scope, IRandom random, int[][] parents);
+  }
+}
Index: trunk/sources/HeuristicLab.IntVector/3.2/IntVectorManipulatorBase.cs
===================================================================
--- trunk/sources/HeuristicLab.IntVector/3.2/IntVectorManipulatorBase.cs	(revision 1530)
+++ trunk/sources/HeuristicLab.IntVector/3.2/IntVectorManipulatorBase.cs	(revision 1530)
@@ -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.Text;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+
+namespace HeuristicLab.IntVector {
+  /// <summary>
+  /// Base class for all integer vector manipulators.
+  /// </summary>
+  public abstract class IntVectorManipulatorBase : OperatorBase {
+    /// <summary>
+    /// Initializes a new instance of <see cref="IntVectorManipulatorBase"/> with two variable infos
+    /// (<c>Random</c> and <c>IntVector</c>).
+    /// </summary>
+    public IntVectorManipulatorBase() {
+      AddVariableInfo(new VariableInfo("Random", "Pseudo random number generator", typeof(IRandom), VariableKind.In));
+      AddVariableInfo(new VariableInfo("IntVector", "Integer vector to manipulate", typeof(IntArrayData), VariableKind.In | VariableKind.Out));
+    }
+
+    /// <summary>
+    /// Manipulates the integer vector.
+    /// </summary>
+    /// <param name="scope">The current scope whose integer vector to manipulate.</param>
+    /// <returns><c>null</c>.</returns>
+    public override IOperation Apply(IScope scope) {
+      IRandom random = GetVariableValue<IRandom>("Random", scope, true);
+      IntArrayData vector = GetVariableValue<IntArrayData>("IntVector", scope, false);
+      vector.Data = Manipulate(scope, random, vector.Data);
+      return null;
+    }
+
+    /// <summary>
+    /// Manipulates the given integer <paramref name="vector"/> with the given random number generator.
+    /// </summary>
+    /// <param name="scope">The current scope.</param>
+    /// <param name="random">A random number generator.</param>
+    /// <param name="vector">The integer vector to manipulate.</param>
+    /// <returns>The manipulated integer vector.</returns>
+    protected abstract int[] Manipulate(IScope scope, IRandom random, int[] vector);
+  }
+}
Index: trunk/sources/HeuristicLab.IntVector/3.2/Properties/AssemblyInfo.frame
===================================================================
--- trunk/sources/HeuristicLab.IntVector/3.2/Properties/AssemblyInfo.frame	(revision 1530)
+++ trunk/sources/HeuristicLab.IntVector/3.2/Properties/AssemblyInfo.frame	(revision 1530)
@@ -0,0 +1,59 @@
+#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.IntVector")]
+[assembly: AssemblyDescription("HeuristicLab int vector operators")]
+[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("32617ac7-c3bc-404a-828c-c86637f38d43")]
+
+// 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("3.2.0.$WCREV$")]
+[assembly: AssemblyFileVersion("3.2.0.$WCREV$")]
+[assembly: AssemblyBuildDate("$WCNOW$")]
Index: trunk/sources/HeuristicLab.IntVector/3.2/SinglePointCrossover.cs
===================================================================
--- trunk/sources/HeuristicLab.IntVector/3.2/SinglePointCrossover.cs	(revision 1530)
+++ trunk/sources/HeuristicLab.IntVector/3.2/SinglePointCrossover.cs	(revision 1530)
@@ -0,0 +1,72 @@
+#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.Core;
+
+namespace HeuristicLab.IntVector {
+  /// <summary>
+  /// Single point crossover for integer vectors.
+  /// </summary>
+  public class SinglePointCrossover : IntVectorCrossoverBase {
+    /// <inheritdoc select="summary"/>
+    public override string Description {
+      get { return "Single point crossover for integer vectors."; }
+    }
+
+    /// <summary>
+    /// Performs a single point crossover at a randomly chosen position of the two 
+    /// given parent integer vectors.
+    /// </summary>
+    /// <param name="random">A random number generator.</param>
+    /// <param name="parent1">The first parent for crossover.</param>
+    /// <param name="parent2">The second parent for crossover.</param>
+    /// <returns>The newly created integer vector, resulting from the single point crossover.</returns>
+    public static int[] Apply(IRandom random, int[] parent1, int[] parent2) {
+      int length = parent1.Length;
+      int[] result = new int[length];
+      int breakPoint = random.Next(1, length);
+
+      for (int i = 0; i < breakPoint; i++)
+        result[i] = parent1[i];
+      for (int i = breakPoint; i < length; i++)
+        result[i] = parent2[i];
+
+      return result;
+    }
+
+    /// <summary>
+    /// Performs a single point crossover at a randomly chosen position of two 
+    /// given parent integer vectors.
+    /// </summary>
+    /// <exception cref="InvalidOperationException">Thrown if there are not exactly two parents.</exception>
+    /// <param name="scope">The current scope.</param>
+    /// <param name="random">A random number generator.</param>
+    /// <param name="parents">An array containing the two integer vectors that should be crossed.</param>
+    /// <returns>The newly created integer vector, resulting from the single point crossover.</returns>
+    protected override int[] Cross(IScope scope, IRandom random, int[][] parents) {
+      if (parents.Length != 2) throw new InvalidOperationException("ERROR in SinglePointCrossover: The number of parents is not equal to 2");
+      return Apply(random, parents[0], parents[1]);
+    }
+  }
+}
Index: trunk/sources/HeuristicLab.IntVector/3.2/UniformAllPositionsManipulator.cs
===================================================================
--- trunk/sources/HeuristicLab.IntVector/3.2/UniformAllPositionsManipulator.cs	(revision 1530)
+++ trunk/sources/HeuristicLab.IntVector/3.2/UniformAllPositionsManipulator.cs	(revision 1530)
@@ -0,0 +1,76 @@
+#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.Core;
+using HeuristicLab.Data;
+
+namespace HeuristicLab.IntVector {
+  /// <summary>
+  /// Uniformly distributed change of all positions of an integer vector.
+  /// </summary>
+  public class UniformAllPositionsManipulator : IntVectorManipulatorBase {
+    /// <inheritdoc select="summary"/>
+    public override string Description {
+      get { return "Uniformly distributed change of all positions of an integer vector."; }
+    }
+
+    /// <summary>
+    /// Initializes a new instance of <see cref="UniformAllPositionsManipulator"/> with two variable infos
+    /// (<c>Minimum</c> and <c>Maximum</c>).
+    /// </summary>
+    public UniformAllPositionsManipulator() {
+      AddVariableInfo(new VariableInfo("Minimum", "Minimum of the sampling range for the vector element (included)", typeof(IntData), VariableKind.In));
+      AddVariableInfo(new VariableInfo("Maximum", "Maximum of the sampling range for the vector element (excluded)", typeof(IntData), VariableKind.In));
+    }
+
+    /// <summary>
+    /// Changes all positions in the given integer <paramref name="vector"/>.
+    /// </summary>
+    /// <param name="random">A random number generator.</param>
+    /// <param name="vector">The integer vector to manipulate.</param>
+    /// <param name="min">The minimum value of the sampling range for each vector element (inclusive).</param>
+    /// <param name="max">The maximum value of the sampling range for each vector element (exclusive).</param>
+    /// <returns>The new integer vector which has been manipulated.</returns>
+    public static int[] Apply(IRandom random, int[] vector, int min, int max) {
+      int[] result = new int[vector.Length];
+      for (int i = 0; i < result.Length; i++)
+        result[i] = random.Next(min, max);
+      return result;
+    }
+
+    /// <summary>
+    /// Changes all positions in the given integer <paramref name="vector"/>.
+    /// </summary>
+    /// <remarks>Calls <see cref="Apply"/>.</remarks>
+    /// <param name="scope">The current scope.</param>
+    /// <param name="random">A random number generator.</param>
+    /// <param name="vector">The integer vector to manipulate.</param>
+    /// <returns>The new integer vector which has been manipulated.</returns>
+    protected override int[] Manipulate(IScope scope, IRandom random, int[] vector) {
+      int min = GetVariableValue<IntData>("Minimum", scope, true).Data;
+      int max = GetVariableValue<IntData>("Maximum", scope, true).Data;
+      return Apply(random, vector, min, max);
+    }
+  }
+}
Index: trunk/sources/HeuristicLab.IntVector/3.2/UniformOnePositionManipulator.cs
===================================================================
--- trunk/sources/HeuristicLab.IntVector/3.2/UniformOnePositionManipulator.cs	(revision 1530)
+++ trunk/sources/HeuristicLab.IntVector/3.2/UniformOnePositionManipulator.cs	(revision 1530)
@@ -0,0 +1,78 @@
+#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.Core;
+using HeuristicLab.Data;
+
+namespace HeuristicLab.IntVector {
+  /// <summary>
+  /// Uniformly distributed change of a single position of an integer vector.
+  /// </summary>
+  public class UniformOnePositionManipulator : IntVectorManipulatorBase {
+    /// <inheritdoc select="summary"/>
+    public override string Description {
+      get { return "Uniformly distributed change of a single position of an integer vector."; }
+    }
+
+    /// <summary>
+    /// Initializes a new instance of <see cref="UniformOnePositionManipulator"/> with two variable infos
+    /// (<c>Minimum</c> and <c>Maximum</c>).
+    /// </summary>
+    public UniformOnePositionManipulator() {
+      AddVariableInfo(new VariableInfo("Minimum", "Minimum of the sampling range for the vector element (included)", typeof(IntData), VariableKind.In));
+      AddVariableInfo(new VariableInfo("Maximum", "Maximum of the sampling range for the vector element (excluded)", typeof(IntData), VariableKind.In));
+    }
+
+    /// <summary>
+    /// Changes randomly a single position in the given integer <paramref name="vector"/>.
+    /// </summary>
+    /// <param name="random">A random number generator.</param>
+    /// <param name="vector">The integer vector to manipulate.</param>
+    /// <param name="min">The minimum value of the sampling range for 
+    /// the vector element to change (inclusive).</param>
+    /// <param name="max">The maximum value of the sampling range for
+    /// the vector element to change (exclusive).</param>
+    /// <returns>The new integer vector that has been manipulated.</returns>
+    public static int[] Apply(IRandom random, int[] vector, int min, int max) {
+      int[] result = (int[])vector.Clone();
+      int index = random.Next(result.Length);
+      result[index] = random.Next(min, max);
+      return result;
+    }
+
+    /// <summary>
+    /// Changes randomly a single position in the given integer <paramref name="vector"/>.
+    /// </summary>
+    /// <remarks>Calls <see cref="Apply"/>.</remarks>
+    /// <param name="scope">The current scope.</param>
+    /// <param name="random">A random number generator.</param>
+    /// <param name="vector">The integer vector to manipulate.</param>
+    /// <returns>The new integer vector that has been manipulated.</returns>
+    protected override int[] Manipulate(IScope scope, IRandom random, int[] vector) {
+      int min = GetVariableValue<IntData>("Minimum", scope, true).Data;
+      int max = GetVariableValue<IntData>("Maximum", scope, true).Data;
+      return Apply(random, vector, min, max);
+    }
+  }
+}
Index: trunk/sources/HeuristicLab.IntVector/3.2/UniformRandomIntVectorGenerator.cs
===================================================================
--- trunk/sources/HeuristicLab.IntVector/3.2/UniformRandomIntVectorGenerator.cs	(revision 1530)
+++ trunk/sources/HeuristicLab.IntVector/3.2/UniformRandomIntVectorGenerator.cs	(revision 1530)
@@ -0,0 +1,83 @@
+#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.Core;
+using HeuristicLab.Data;
+
+namespace HeuristicLab.IntVector {
+  /// <summary>
+  /// Generates a new random integer vector with each element uniformly distributed in a specified range.
+  /// </summary>
+  public class UniformRandomIntVectorGenerator : OperatorBase {
+    /// <inheritdoc select="summary"/>
+    public override string Description {
+      get { return "Operator generating a new random integer vector with each element uniformly distributed in a specified range."; }
+    }
+
+    /// <summary>
+    /// Initializes a new instance of <see cref="UniformRandomIntVectorGenerator"/> with five variable infos
+    /// (<c>Random</c>, <c>Length</c>, <c>Minimum</c>, <c>Maximum</c> and <c>IntVector</c>).
+    /// </summary>
+    public UniformRandomIntVectorGenerator() {
+      AddVariableInfo(new VariableInfo("Random", "Pseudo random number generator", typeof(IRandom), VariableKind.In));
+      AddVariableInfo(new VariableInfo("Length", "Vector length", typeof(IntData), VariableKind.In));
+      AddVariableInfo(new VariableInfo("Minimum", "Minimum of the sampling range for each vector element (included)", typeof(IntData), VariableKind.In));
+      AddVariableInfo(new VariableInfo("Maximum", "Maximum of the sampling range for each vector element (excluded)", typeof(IntData), VariableKind.In));
+      AddVariableInfo(new VariableInfo("IntVector", "Created random integer vector", typeof(IntArrayData), VariableKind.New));
+    }
+
+    /// <summary>
+    /// Generates a new random integer vector with the given <paramref name="length"/>.
+    /// </summary>
+    /// <param name="random">The random number generator.</param>
+    /// <param name="length">The length of the int vector.</param>
+    /// <param name="min">The minimum value of the sampling range for each vector element (inclusive).</param>
+    /// <param name="max">The maximum value of the sampling range for each vector element (exclusive).</param>
+    /// <returns>The newly created integer vector.</returns>
+    public static int[] Apply(IRandom random, int length, int min, int max) {
+      int[] result = new int[length];
+      for (int i = 0; i < length; i++)
+        result[i] = random.Next(min, max);
+      return result;
+    }
+
+    /// <summary>
+    /// Generates a new random integer vector and injects it in the given <paramref name="scope"/>.
+    /// </summary>
+    /// <param name="scope">The scope where to get the values from and where to inject the newly 
+    /// created integer vector.</param>
+    /// <returns><c>null</c>.</returns>
+    public override IOperation Apply(IScope scope) {
+      IRandom random = GetVariableValue<IRandom>("Random", scope, true);
+      int length = GetVariableValue<IntData>("Length", scope, true).Data;
+      int min = GetVariableValue<IntData>("Minimum", scope, true).Data;
+      int max = GetVariableValue<IntData>("Maximum", scope, true).Data;
+
+      int[] vector = Apply(random, length, min, max);
+      scope.AddVariable(new Variable(scope.TranslateName("IntVector"), new IntArrayData(vector)));
+
+      return null;
+    }
+  }
+}
Index: trunk/sources/HeuristicLab.IntVector/DiscreteCrossover.cs
===================================================================
--- trunk/sources/HeuristicLab.IntVector/DiscreteCrossover.cs	(revision 1528)
+++ 	(revision )
@@ -1,70 +1,0 @@
-#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.Core;
-
-namespace HeuristicLab.IntVector {
-  /// <summary>
-  /// Discrete crossover for integer vectors.
-  /// </summary>
-  public class DiscreteCrossover : IntVectorCrossoverBase {
-    /// <inheritdoc select="summary"/>
-    public override string Description {
-      get { return "Discrete crossover for integer vectors."; }
-    }
-
-    /// <summary>
-    /// Performs a discrete crossover operation of the two given parents.
-    /// </summary>
-    /// <param name="random">A random number generator.</param>
-    /// <param name="parent1">The first parent for the crossover operation.</param>
-    /// <param name="parent2">The second parent for the crossover operation.</param>
-    /// <returns>The newly created integer vector, resulting from the crossover operation.</returns>
-    public static int[] Apply(IRandom random, int[] parent1, int[] parent2) {
-      int length = parent1.Length;
-      int[] result = new int[length];
-
-      for (int i = 0; i < length; i++) {
-        if (random.NextDouble() < 0.5)
-          result[i] = parent1[i];
-        else
-          result[i] = parent2[i];
-      }
-      return result;
-    }
-
-    /// <summary>
-    /// Performs a discrete crossover operation for two given parent integer vectors.
-    /// </summary>
-    /// <exception cref="InvalidOperationException">Thrown if there are not exactly two parents.</exception>
-    /// <param name="scope">The current scope.</param>
-    /// <param name="random">A random number generator.</param>
-    /// <param name="parents">An array containing the two integer vectors that should be crossed.</param>
-    /// <returns>The newly created integer vector, resulting from the crossover operation.</returns>
-    protected override int[] Cross(IScope scope, IRandom random, int[][] parents) {
-      if (parents.Length != 2) throw new InvalidOperationException("ERROR in DiscreteCrossover: The number of parents is not equal to 2");
-      return Apply(random, parents[0], parents[1]);
-    }
-  }
-}
Index: trunk/sources/HeuristicLab.IntVector/HeuristicLab.IntVector.csproj
===================================================================
--- trunk/sources/HeuristicLab.IntVector/HeuristicLab.IntVector.csproj	(revision 1528)
+++ 	(revision )
@@ -1,124 +1,0 @@
-﻿<?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>{85FA46C6-761E-4098-9EF7-060ECC386396}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>HeuristicLab.IntVector</RootNamespace>
-    <AssemblyName>HeuristicLab.IntVector-3.2</AssemblyName>
-    <TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <SignAssembly>true</SignAssembly>
-    <AssemblyOriginatorKeyFile>HeuristicLab.snk</AssemblyOriginatorKeyFile>
-  </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>
-    <DocumentationFile>bin\Release\HeuristicLab.IntVector-3.2.XML</DocumentationFile>
-  </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>
-    <DocumentationFile>bin\Release\HeuristicLab.IntVector-3.2.XML</DocumentationFile>
-    <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>
-    <DocumentationFile>bin\Release\HeuristicLab.IntVector-3.2.XML</DocumentationFile>
-    <Optimize>true</Optimize>
-    <DebugType>pdbonly</DebugType>
-    <PlatformTarget>x64</PlatformTarget>
-    <ErrorReport>prompt</ErrorReport>
-  </PropertyGroup>
-  <ItemGroup>
-    <Reference Include="System" />
-    <Reference Include="System.Data" />
-    <Reference Include="System.Xml" />
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="DiscreteCrossover.cs" />
-    <Compile Include="UniformAllPositionsManipulator.cs" />
-    <Compile Include="IntVectorCrossoverBase.cs" />
-    <Compile Include="IntVectorManipulatorBase.cs" />
-    <Compile Include="UniformOnePositionManipulator.cs" />
-    <Compile Include="HeuristicLabIntVectorPlugin.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="UniformRandomIntVectorGenerator.cs" />
-    <Compile Include="SinglePointCrossover.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="HeuristicLab.snk" />
-    <None Include="Properties\AssemblyInfo.frame" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\HeuristicLab.Core\HeuristicLab.Core.csproj">
-      <Project>{F43B59AB-2B8C-4570-BC1E-15592086517C}</Project>
-      <Name>HeuristicLab.Core</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\HeuristicLab.Data\HeuristicLab.Data.csproj">
-      <Project>{F473D9AF-3F09-4296-9F28-3C65118DAFFA}</Project>
-      <Name>HeuristicLab.Data</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\HeuristicLab.Evolutionary\HeuristicLab.Evolutionary.csproj">
-      <Project>{F5614C53-153C-4A37-A608-121E1C087F07}</Project>
-      <Name>HeuristicLab.Evolutionary</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.IntVector/HeuristicLabIntVectorPlugin.cs
===================================================================
--- trunk/sources/HeuristicLab.IntVector/HeuristicLabIntVectorPlugin.cs	(revision 1528)
+++ 	(revision )
@@ -1,38 +1,0 @@
-#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.IntVector {
-  /// <summary>
-  /// Plugin class for HeuristicLab.IntVector plugin.
-  /// </summary>
-  [ClassInfo(Name = "HeuristicLab.IntVector-3.2")]
-  [PluginFile(Filename = "HeuristicLab.IntVector-3.2.dll", Filetype = PluginFileType.Assembly)]
-  [Dependency(Dependency = "HeuristicLab.Core-3.2")]
-  [Dependency(Dependency = "HeuristicLab.Data-3.2")]
-  [Dependency(Dependency = "HeuristicLab.Evolutionary-3.2")]
-  public class HeuristicLabIntVectorPlugin : PluginBase {
-  }
-}
Index: trunk/sources/HeuristicLab.IntVector/IntVectorCrossoverBase.cs
===================================================================
--- trunk/sources/HeuristicLab.IntVector/IntVectorCrossoverBase.cs	(revision 1528)
+++ 	(revision )
@@ -1,72 +1,0 @@
-#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.Core;
-using HeuristicLab.Data;
-using HeuristicLab.Evolutionary;
-
-namespace HeuristicLab.IntVector {
-  /// <summary>
-  /// Base class for all integer vector crossover operators.
-  /// </summary>
-  public abstract class IntVectorCrossoverBase : CrossoverBase {
-    /// <summary>
-    /// Initializes a new instance of <see cref="IntVectorCrossoverBase"/> with one variable info
-    /// (<c>IntVector</c>).
-    /// </summary>
-    public IntVectorCrossoverBase()
-      : base() {
-      AddVariableInfo(new VariableInfo("IntVector", "Parent and child integer vector", typeof(IntArrayData), VariableKind.In | VariableKind.New));
-    }
-
-    /// <summary>
-    /// Performs a crossover by calling <see cref="Cross(HeuristicLab.Core.IScope, HeuristicLab.Core.IRandom, int[][]"/>
-    /// and adds the created integer vector to the current scope.
-    /// </summary>
-    /// <exception cref="InvalidOperationException">Thrown if the parents have different lengths.</exception>
-    /// <param name="scope">The current scope which represents a new child.</param>
-    /// <param name="random">A random number generator.</param>
-    protected sealed override void Cross(IScope scope, IRandom random) {
-      int[][] parents = new int[scope.SubScopes.Count][];
-      int length = -1;
-      for (int i = 0; i < scope.SubScopes.Count; i++) {
-        parents[i] = scope.SubScopes[i].GetVariableValue<IntArrayData>("IntVector", false).Data;
-        if (i == 0) length = parents[i].Length;
-        else if (parents[i].Length != length) throw new InvalidOperationException("ERROR in IntVectorCrossoverBase: Cannot apply crossover to integer vectors of different length");
-      }
-
-      int[] result = Cross(scope, random, parents);
-      scope.AddVariable(new Variable(scope.TranslateName("IntVector"), new IntArrayData(result)));
-    }
-
-    /// <summary>
-    /// Performs a crossover of multiple integer vectors.
-    /// </summary>
-    /// <param name="scope">The current scope.</param>
-    /// <param name="random">A random number generator.</param>
-    /// <param name="parents">An array containing all parent integer vectors.</param>
-    /// <returns>The newly created integer vector, resulting from the crossover operation.</returns>
-    protected abstract int[] Cross(IScope scope, IRandom random, int[][] parents);
-  }
-}
Index: trunk/sources/HeuristicLab.IntVector/IntVectorManipulatorBase.cs
===================================================================
--- trunk/sources/HeuristicLab.IntVector/IntVectorManipulatorBase.cs	(revision 1528)
+++ 	(revision )
@@ -1,63 +1,0 @@
-#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.Core;
-using HeuristicLab.Data;
-
-namespace HeuristicLab.IntVector {
-  /// <summary>
-  /// Base class for all integer vector manipulators.
-  /// </summary>
-  public abstract class IntVectorManipulatorBase : OperatorBase {
-    /// <summary>
-    /// Initializes a new instance of <see cref="IntVectorManipulatorBase"/> with two variable infos
-    /// (<c>Random</c> and <c>IntVector</c>).
-    /// </summary>
-    public IntVectorManipulatorBase() {
-      AddVariableInfo(new VariableInfo("Random", "Pseudo random number generator", typeof(IRandom), VariableKind.In));
-      AddVariableInfo(new VariableInfo("IntVector", "Integer vector to manipulate", typeof(IntArrayData), VariableKind.In | VariableKind.Out));
-    }
-
-    /// <summary>
-    /// Manipulates the integer vector.
-    /// </summary>
-    /// <param name="scope">The current scope whose integer vector to manipulate.</param>
-    /// <returns><c>null</c>.</returns>
-    public override IOperation Apply(IScope scope) {
-      IRandom random = GetVariableValue<IRandom>("Random", scope, true);
-      IntArrayData vector = GetVariableValue<IntArrayData>("IntVector", scope, false);
-      vector.Data = Manipulate(scope, random, vector.Data);
-      return null;
-    }
-
-    /// <summary>
-    /// Manipulates the given integer <paramref name="vector"/> with the given random number generator.
-    /// </summary>
-    /// <param name="scope">The current scope.</param>
-    /// <param name="random">A random number generator.</param>
-    /// <param name="vector">The integer vector to manipulate.</param>
-    /// <returns>The manipulated integer vector.</returns>
-    protected abstract int[] Manipulate(IScope scope, IRandom random, int[] vector);
-  }
-}
Index: trunk/sources/HeuristicLab.IntVector/SinglePointCrossover.cs
===================================================================
--- trunk/sources/HeuristicLab.IntVector/SinglePointCrossover.cs	(revision 1528)
+++ 	(revision )
@@ -1,72 +1,0 @@
-#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.Core;
-
-namespace HeuristicLab.IntVector {
-  /// <summary>
-  /// Single point crossover for integer vectors.
-  /// </summary>
-  public class SinglePointCrossover : IntVectorCrossoverBase {
-    /// <inheritdoc select="summary"/>
-    public override string Description {
-      get { return "Single point crossover for integer vectors."; }
-    }
-
-    /// <summary>
-    /// Performs a single point crossover at a randomly chosen position of the two 
-    /// given parent integer vectors.
-    /// </summary>
-    /// <param name="random">A random number generator.</param>
-    /// <param name="parent1">The first parent for crossover.</param>
-    /// <param name="parent2">The second parent for crossover.</param>
-    /// <returns>The newly created integer vector, resulting from the single point crossover.</returns>
-    public static int[] Apply(IRandom random, int[] parent1, int[] parent2) {
-      int length = parent1.Length;
-      int[] result = new int[length];
-      int breakPoint = random.Next(1, length);
-
-      for (int i = 0; i < breakPoint; i++)
-        result[i] = parent1[i];
-      for (int i = breakPoint; i < length; i++)
-        result[i] = parent2[i];
-
-      return result;
-    }
-
-    /// <summary>
-    /// Performs a single point crossover at a randomly chosen position of two 
-    /// given parent integer vectors.
-    /// </summary>
-    /// <exception cref="InvalidOperationException">Thrown if there are not exactly two parents.</exception>
-    /// <param name="scope">The current scope.</param>
-    /// <param name="random">A random number generator.</param>
-    /// <param name="parents">An array containing the two integer vectors that should be crossed.</param>
-    /// <returns>The newly created integer vector, resulting from the single point crossover.</returns>
-    protected override int[] Cross(IScope scope, IRandom random, int[][] parents) {
-      if (parents.Length != 2) throw new InvalidOperationException("ERROR in SinglePointCrossover: The number of parents is not equal to 2");
-      return Apply(random, parents[0], parents[1]);
-    }
-  }
-}
Index: trunk/sources/HeuristicLab.IntVector/UniformAllPositionsManipulator.cs
===================================================================
--- trunk/sources/HeuristicLab.IntVector/UniformAllPositionsManipulator.cs	(revision 1528)
+++ 	(revision )
@@ -1,76 +1,0 @@
-#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.Core;
-using HeuristicLab.Data;
-
-namespace HeuristicLab.IntVector {
-  /// <summary>
-  /// Uniformly distributed change of all positions of an integer vector.
-  /// </summary>
-  public class UniformAllPositionsManipulator : IntVectorManipulatorBase {
-    /// <inheritdoc select="summary"/>
-    public override string Description {
-      get { return "Uniformly distributed change of all positions of an integer vector."; }
-    }
-
-    /// <summary>
-    /// Initializes a new instance of <see cref="UniformAllPositionsManipulator"/> with two variable infos
-    /// (<c>Minimum</c> and <c>Maximum</c>).
-    /// </summary>
-    public UniformAllPositionsManipulator() {
-      AddVariableInfo(new VariableInfo("Minimum", "Minimum of the sampling range for the vector element (included)", typeof(IntData), VariableKind.In));
-      AddVariableInfo(new VariableInfo("Maximum", "Maximum of the sampling range for the vector element (excluded)", typeof(IntData), VariableKind.In));
-    }
-
-    /// <summary>
-    /// Changes all positions in the given integer <paramref name="vector"/>.
-    /// </summary>
-    /// <param name="random">A random number generator.</param>
-    /// <param name="vector">The integer vector to manipulate.</param>
-    /// <param name="min">The minimum value of the sampling range for each vector element (inclusive).</param>
-    /// <param name="max">The maximum value of the sampling range for each vector element (exclusive).</param>
-    /// <returns>The new integer vector which has been manipulated.</returns>
-    public static int[] Apply(IRandom random, int[] vector, int min, int max) {
-      int[] result = new int[vector.Length];
-      for (int i = 0; i < result.Length; i++)
-        result[i] = random.Next(min, max);
-      return result;
-    }
-
-    /// <summary>
-    /// Changes all positions in the given integer <paramref name="vector"/>.
-    /// </summary>
-    /// <remarks>Calls <see cref="Apply"/>.</remarks>
-    /// <param name="scope">The current scope.</param>
-    /// <param name="random">A random number generator.</param>
-    /// <param name="vector">The integer vector to manipulate.</param>
-    /// <returns>The new integer vector which has been manipulated.</returns>
-    protected override int[] Manipulate(IScope scope, IRandom random, int[] vector) {
-      int min = GetVariableValue<IntData>("Minimum", scope, true).Data;
-      int max = GetVariableValue<IntData>("Maximum", scope, true).Data;
-      return Apply(random, vector, min, max);
-    }
-  }
-}
Index: trunk/sources/HeuristicLab.IntVector/UniformOnePositionManipulator.cs
===================================================================
--- trunk/sources/HeuristicLab.IntVector/UniformOnePositionManipulator.cs	(revision 1528)
+++ 	(revision )
@@ -1,78 +1,0 @@
-#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.Core;
-using HeuristicLab.Data;
-
-namespace HeuristicLab.IntVector {
-  /// <summary>
-  /// Uniformly distributed change of a single position of an integer vector.
-  /// </summary>
-  public class UniformOnePositionManipulator : IntVectorManipulatorBase {
-    /// <inheritdoc select="summary"/>
-    public override string Description {
-      get { return "Uniformly distributed change of a single position of an integer vector."; }
-    }
-
-    /// <summary>
-    /// Initializes a new instance of <see cref="UniformOnePositionManipulator"/> with two variable infos
-    /// (<c>Minimum</c> and <c>Maximum</c>).
-    /// </summary>
-    public UniformOnePositionManipulator() {
-      AddVariableInfo(new VariableInfo("Minimum", "Minimum of the sampling range for the vector element (included)", typeof(IntData), VariableKind.In));
-      AddVariableInfo(new VariableInfo("Maximum", "Maximum of the sampling range for the vector element (excluded)", typeof(IntData), VariableKind.In));
-    }
-
-    /// <summary>
-    /// Changes randomly a single position in the given integer <paramref name="vector"/>.
-    /// </summary>
-    /// <param name="random">A random number generator.</param>
-    /// <param name="vector">The integer vector to manipulate.</param>
-    /// <param name="min">The minimum value of the sampling range for 
-    /// the vector element to change (inclusive).</param>
-    /// <param name="max">The maximum value of the sampling range for
-    /// the vector element to change (exclusive).</param>
-    /// <returns>The new integer vector that has been manipulated.</returns>
-    public static int[] Apply(IRandom random, int[] vector, int min, int max) {
-      int[] result = (int[])vector.Clone();
-      int index = random.Next(result.Length);
-      result[index] = random.Next(min, max);
-      return result;
-    }
-
-    /// <summary>
-    /// Changes randomly a single position in the given integer <paramref name="vector"/>.
-    /// </summary>
-    /// <remarks>Calls <see cref="Apply"/>.</remarks>
-    /// <param name="scope">The current scope.</param>
-    /// <param name="random">A random number generator.</param>
-    /// <param name="vector">The integer vector to manipulate.</param>
-    /// <returns>The new integer vector that has been manipulated.</returns>
-    protected override int[] Manipulate(IScope scope, IRandom random, int[] vector) {
-      int min = GetVariableValue<IntData>("Minimum", scope, true).Data;
-      int max = GetVariableValue<IntData>("Maximum", scope, true).Data;
-      return Apply(random, vector, min, max);
-    }
-  }
-}
Index: trunk/sources/HeuristicLab.IntVector/UniformRandomIntVectorGenerator.cs
===================================================================
--- trunk/sources/HeuristicLab.IntVector/UniformRandomIntVectorGenerator.cs	(revision 1528)
+++ 	(revision )
@@ -1,83 +1,0 @@
-#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.Core;
-using HeuristicLab.Data;
-
-namespace HeuristicLab.IntVector {
-  /// <summary>
-  /// Generates a new random integer vector with each element uniformly distributed in a specified range.
-  /// </summary>
-  public class UniformRandomIntVectorGenerator : OperatorBase {
-    /// <inheritdoc select="summary"/>
-    public override string Description {
-      get { return "Operator generating a new random integer vector with each element uniformly distributed in a specified range."; }
-    }
-
-    /// <summary>
-    /// Initializes a new instance of <see cref="UniformRandomIntVectorGenerator"/> with five variable infos
-    /// (<c>Random</c>, <c>Length</c>, <c>Minimum</c>, <c>Maximum</c> and <c>IntVector</c>).
-    /// </summary>
-    public UniformRandomIntVectorGenerator() {
-      AddVariableInfo(new VariableInfo("Random", "Pseudo random number generator", typeof(IRandom), VariableKind.In));
-      AddVariableInfo(new VariableInfo("Length", "Vector length", typeof(IntData), VariableKind.In));
-      AddVariableInfo(new VariableInfo("Minimum", "Minimum of the sampling range for each vector element (included)", typeof(IntData), VariableKind.In));
-      AddVariableInfo(new VariableInfo("Maximum", "Maximum of the sampling range for each vector element (excluded)", typeof(IntData), VariableKind.In));
-      AddVariableInfo(new VariableInfo("IntVector", "Created random integer vector", typeof(IntArrayData), VariableKind.New));
-    }
-
-    /// <summary>
-    /// Generates a new random integer vector with the given <paramref name="length"/>.
-    /// </summary>
-    /// <param name="random">The random number generator.</param>
-    /// <param name="length">The length of the int vector.</param>
-    /// <param name="min">The minimum value of the sampling range for each vector element (inclusive).</param>
-    /// <param name="max">The maximum value of the sampling range for each vector element (exclusive).</param>
-    /// <returns>The newly created integer vector.</returns>
-    public static int[] Apply(IRandom random, int length, int min, int max) {
-      int[] result = new int[length];
-      for (int i = 0; i < length; i++)
-        result[i] = random.Next(min, max);
-      return result;
-    }
-
-    /// <summary>
-    /// Generates a new random integer vector and injects it in the given <paramref name="scope"/>.
-    /// </summary>
-    /// <param name="scope">The scope where to get the values from and where to inject the newly 
-    /// created integer vector.</param>
-    /// <returns><c>null</c>.</returns>
-    public override IOperation Apply(IScope scope) {
-      IRandom random = GetVariableValue<IRandom>("Random", scope, true);
-      int length = GetVariableValue<IntData>("Length", scope, true).Data;
-      int min = GetVariableValue<IntData>("Minimum", scope, true).Data;
-      int max = GetVariableValue<IntData>("Maximum", scope, true).Data;
-
-      int[] vector = Apply(random, length, min, max);
-      scope.AddVariable(new Variable(scope.TranslateName("IntVector"), new IntArrayData(vector)));
-
-      return null;
-    }
-  }
-}
