Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
11/23/09 16:43:34 (15 years ago)
Author:
swagner
Message:

Refactored cloning (#806)

Location:
trunk/sources/HeuristicLab.Random/3.3
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Random/3.3/MersenneTwister.cs

    r1823 r2526  
    8484    /// <param name="clonedObjects">Dictionary of all already cloned objects. (Needed to avoid cycles.)</param>
    8585    /// <returns>The cloned object as <see cref="MersenneTwister"/>.</returns>
    86     public override object Clone(IDictionary<Guid, object> clonedObjects) {
     86    public override IItem Clone(ICloner cloner) {
    8787      MersenneTwister clone = new MersenneTwister();
    88       clonedObjects.Add(Guid, clone);
     88      cloner.RegisterClonedObject(this, clone);
    8989      clone.state = (uint[])state.Clone();
    9090      clone.p = p;
  • trunk/sources/HeuristicLab.Random/3.3/NormalDistributedRandom.cs

    r1823 r2526  
    557557    /// Clones the current instance (deep clone).
    558558    /// </summary>
    559     /// <remarks>Deep clone through <see cref="Auxiliary.Clone"/> method of helper class
     559    /// <remarks>Deep clone through <see cref="cloner.Clone"/> method of helper class
    560560    /// <see cref="Auxiliary"/>.</remarks>
    561561    /// <param name="clonedObjects">Dictionary of all already cloned objects. (Needed to avoid cycles.)</param>
    562562    /// <returns>The cloned object as <see cref="NormalDistributedRandom"/>.</returns>
    563     public override object Clone(IDictionary<Guid, object> clonedObjects) {
    564       NormalDistributedRandom clone = new NormalDistributedRandom((IRandom)Auxiliary.Clone(uniform, clonedObjects), mu, sigma);
    565       clonedObjects.Add(Guid, clone);
     563    public override IItem Clone(ICloner cloner) {
     564      NormalDistributedRandom clone = new NormalDistributedRandom((IRandom)cloner.Clone(uniform), mu, sigma);
     565      cloner.RegisterClonedObject(this, clone);
    566566      return clone;
    567567    }
Note: See TracChangeset for help on using the changeset viewer.