Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
09/20/16 15:51:04 (8 years ago)
Author:
bburlacu
Message:

#2672: Implement online calculator cloning.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/OnlineCalculators/OnlineMaxAbsoluteErrorCalculator.cs

    r14185 r14293  
    2222using System;
    2323using System.Collections.Generic;
     24using HeuristicLab.Common;
    2425
    2526namespace HeuristicLab.Problems.DataAnalysis {
    26   public class OnlineMaxAbsoluteErrorCalculator : IOnlineCalculator {
     27  public class OnlineMaxAbsoluteErrorCalculator : IOnlineCalculator, IDeepCloneable {
    2728
    2829    private double mae;
     
    3637    public OnlineMaxAbsoluteErrorCalculator() {
    3738      Reset();
     39    }
     40
     41    // private constructor used internally by the Clone() method
     42    private OnlineMaxAbsoluteErrorCalculator(OnlineMaxAbsoluteErrorCalculator other) {
     43      mae = other.mae;
     44      n = other.n;
     45      errorState = other.errorState;
    3846    }
    3947
     
    8896      }
    8997    }
     98
     99    // IDeepCloneable interface members
     100    public object Clone() {
     101      return new OnlineMaxAbsoluteErrorCalculator(this);
     102    }
     103
     104    public IDeepCloneable Clone(Cloner cloner) {
     105      var clone = cloner.GetClone(this);
     106      if (clone == null) {
     107        clone = (IDeepCloneable)this.Clone();
     108        cloner.RegisterClonedObject(this, clone);
     109      }
     110      return clone;
     111    }
    90112  }
    91113}
Note: See TracChangeset for help on using the changeset viewer.