Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
12/07/16 17:44:04 (7 years ago)
Author:
mkommend
Message:

#2672: Corrected cloning of online calculators (added missing base ctor calls, moved clone method, renamed other to original, and used the cloner for cloning).

File:
1 edited

Legend:

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

    r14376 r14465  
    5555    }
    5656
    57     private OnlineMeanAndVarianceCalculator targetMeanCalculator;
    58     private OnlineMeanAndVarianceCalculator originalMeanAndVarianceCalculator;
    59     private OnlineCovarianceCalculator originalTargetCovarianceCalculator;
     57    private readonly OnlineMeanAndVarianceCalculator targetMeanCalculator;
     58    private readonly OnlineMeanAndVarianceCalculator originalMeanAndVarianceCalculator;
     59    private readonly OnlineCovarianceCalculator originalTargetCovarianceCalculator;
    6060
    6161    public OnlineLinearScalingParameterCalculator() {
     
    6666    }
    6767
    68     protected OnlineLinearScalingParameterCalculator(OnlineLinearScalingParameterCalculator other, Cloner cloner) {
    69       targetMeanCalculator = (OnlineMeanAndVarianceCalculator)other.targetMeanCalculator.Clone(cloner);
    70       originalMeanAndVarianceCalculator = (OnlineMeanAndVarianceCalculator)other.originalMeanAndVarianceCalculator.Clone(cloner);
    71       originalTargetCovarianceCalculator = (OnlineCovarianceCalculator)other.originalTargetCovarianceCalculator.Clone(cloner);
     68    protected OnlineLinearScalingParameterCalculator(OnlineLinearScalingParameterCalculator original, Cloner cloner)
     69      : base(original, cloner) {
     70      targetMeanCalculator = cloner.Clone(original.targetMeanCalculator);
     71      originalMeanAndVarianceCalculator = cloner.Clone(original.originalMeanAndVarianceCalculator);
     72      originalTargetCovarianceCalculator = cloner.Clone(original.originalTargetCovarianceCalculator);
    7273      // do not reset the calculators here
     74    }
     75    public override IDeepCloneable Clone(Cloner cloner) {
     76      return new OnlineLinearScalingParameterCalculator(this, cloner);
    7377    }
    7478
     
    125129      }
    126130    }
    127 
    128     public override IDeepCloneable Clone(Cloner cloner) {
    129       return new OnlineLinearScalingParameterCalculator(this, cloner);
    130     }
    131131  }
    132132}
Note: See TracChangeset for help on using the changeset viewer.