- Timestamp:
- 10/29/10 19:26:56 (14 years ago)
- Location:
- branches/CloningRefactoring/HeuristicLab.Problems.DataAnalysis/3.3
- Files:
-
- 26 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/CloningRefactoring/HeuristicLab.Problems.DataAnalysis/3.3/DataAnalysisProblem.cs
r4419 r4678 55 55 [StorableConstructor] 56 56 protected DataAnalysisProblem(bool deserializing) : base(deserializing) { } 57 protected DataAnalysisProblem(DataAnalysisProblem original, Cloner cloner) 58 : base(original, cloner) { 59 RegisterParameterEvents(); 60 RegisterParameterValueEvents(); 61 } 62 57 63 public DataAnalysisProblem() 58 64 : base() { … … 63 69 64 70 [StorableHook(HookType.AfterDeserialization)] 65 private void AfterDeserialization Hook() {71 private void AfterDeserialization() { 66 72 RegisterParameterEvents(); 67 73 RegisterParameterValueEvents(); … … 91 97 92 98 public override IDeepCloneable Clone(Cloner cloner) { 93 DataAnalysisProblem clone = (DataAnalysisProblem)base.Clone(cloner); 94 clone.RegisterParameterEvents(); 95 clone.RegisterParameterValueEvents(); 96 return clone; 99 return new DataAnalysisProblem(this, cloner); 97 100 } 98 101 -
branches/CloningRefactoring/HeuristicLab.Problems.DataAnalysis/3.3/DataAnalysisProblemData.cs
r4543 r4678 191 191 #endregion 192 192 193 193 [StorableConstructor] 194 protected DataAnalysisProblemData(bool deserializing) : base(deserializing) { } 195 protected DataAnalysisProblemData(DataAnalysisProblemData original, Cloner cloner) 196 : base(original, cloner) { 197 RegisterParameterEventHandlers(); 198 RegisterParameterValueEventHandlers(); 199 } 194 200 public DataAnalysisProblemData() 195 201 : base() { … … 233 239 } 234 240 235 [StorableConstructor] 236 protected DataAnalysisProblemData(bool deserializing) : base(deserializing) { } 241 public override IDeepCloneable Clone(Cloner cloner) { 242 return new DataAnalysisProblemData(this, cloner); 243 } 237 244 238 245 [StorableHook(HookType.AfterDeserialization)] 239 private void AfterDeserialization Hook() {246 private void AfterDeserialization() { 240 247 if (!Parameters.ContainsKey("ValidationPercentage")) 241 248 Parameters.Add(new ValueParameter<PercentValue>("ValidationPercentage", "The relative amount of the training samples that should be used as validation set.", new PercentValue(0.5))); … … 405 412 OnProblemDataChanged(EventArgs.Empty); 406 413 } 407 408 public override IDeepCloneable Clone(Cloner cloner) {409 DataAnalysisProblemData clone = (DataAnalysisProblemData)base.Clone(cloner);410 clone.RegisterParameterEventHandlers();411 clone.RegisterParameterValueEventHandlers();412 return clone;413 }414 414 } 415 415 } -
branches/CloningRefactoring/HeuristicLab.Problems.DataAnalysis/3.3/DataAnalysisSolution.cs
r4451 r4678 37 37 public string Filename { get; set; } 38 38 #endregion 39 39 40 [StorableConstructor] 41 protected DataAnalysisSolution(bool deserializing) : base(deserializing) { } 42 protected DataAnalysisSolution(DataAnalysisSolution original, Cloner cloner) 43 : base(original, cloner) { 44 problemData = (DataAnalysisProblemData)cloner.Clone(original.problemData); 45 model = (IDataAnalysisModel)cloner.Clone(original.model); 46 lowerEstimationLimit = original.lowerEstimationLimit; 47 upperEstimationLimit = original.upperEstimationLimit; 48 AfterDeserialization(); 49 } 40 50 protected DataAnalysisSolution() 41 51 : base() { } … … 46 56 this.lowerEstimationLimit = lowerEstimationLimit; 47 57 this.upperEstimationLimit = upperEstimationLimit; 48 Initialize();58 AfterDeserialization(); 49 59 } 50 60 51 [StorableConstructor]52 private DataAnalysisSolution(bool deserializing) : base(deserializing) { }53 61 [StorableHook(HookType.AfterDeserialization)] 54 private void Initialize() {62 private void AfterDeserialization() { 55 63 if (problemData != null) 56 64 RegisterProblemDataEvents(); … … 140 148 public event EventHandler ModelChanged; 141 149 protected virtual void OnModelChanged() { 142 EventHandler handler= ModelChanged;143 if ( handler!= null)144 handler(this, EventArgs.Empty);150 EventHandler listeners = ModelChanged; 151 if (listeners != null) 152 listeners(this, EventArgs.Empty); 145 153 } 146 154 … … 153 161 #endregion 154 162 155 public override IDeepCloneable Clone(Cloner cloner) {156 DataAnalysisSolution clone = (DataAnalysisSolution)base.Clone(cloner);157 clone.problemData = (DataAnalysisProblemData)cloner.Clone(problemData);158 clone.model = (IDataAnalysisModel)cloner.Clone(model);159 clone.lowerEstimationLimit = lowerEstimationLimit;160 clone.upperEstimationLimit = upperEstimationLimit;161 clone.Initialize();162 163 return clone;164 }165 163 } 166 164 } -
branches/CloningRefactoring/HeuristicLab.Problems.DataAnalysis/3.3/DataFormatException.cs
r4239 r4678 21 21 22 22 using System; 23 using System.Runtime.Serialization; 23 24 24 25 namespace HeuristicLab.Problems.DataAnalysis { 26 [Serializable] 25 27 public class DataFormatException : Exception { 26 28 private int line; … … 37 39 this.line = line; 38 40 } 41 42 public DataFormatException(SerializationInfo info, StreamingContext context) : base(info, context) { } 39 43 } 40 44 } -
branches/CloningRefactoring/HeuristicLab.Problems.DataAnalysis/3.3/Dataset.cs
r4239 r4678 32 32 [StorableClass] 33 33 public sealed class Dataset : NamedItem, IStringConvertibleMatrix { 34 // empty constructor for cloning35 private Dataset()36 : base() {37 }38 39 34 [StorableConstructor] 40 private Dataset(bool deserializing) 41 : base(deserializing) { 42 } 43 35 private Dataset(bool deserializing) : base(deserializing) { } 36 private Dataset(Dataset original, Cloner cloner) 37 : base(original, cloner) { 38 variableNames = original.variableNames; 39 data = original.data; 40 } 44 41 public Dataset(IEnumerable<string> variableNames, double[,] data) 45 42 : base() { … … 122 119 } 123 120 124 125 126 121 public string GetVariableName(int variableIndex) { 127 122 return variableNames[variableIndex]; … … 140 135 141 136 public override IDeepCloneable Clone(Cloner cloner) { 142 Dataset clone = (Dataset)base.Clone(cloner); 143 clone.variableNames = variableNames; 144 clone.data = data; 145 return clone; 137 return new Dataset(this, cloner); 146 138 } 147 139 … … 197 189 public event EventHandler ColumnNamesChanged; 198 190 private void OnColumnNamesChanged() { 199 EventHandler handler= ColumnNamesChanged;200 if ( handler!= null)201 handler(this, EventArgs.Empty);191 EventHandler listeners = ColumnNamesChanged; 192 if (listeners != null) 193 listeners(this, EventArgs.Empty); 202 194 } 203 195 public event EventHandler RowNamesChanged; 204 196 private void OnRowNamesChanged() { 205 EventHandler handler= RowNamesChanged;206 if ( handler!= null)207 handler(this, EventArgs.Empty);197 EventHandler listeners = RowNamesChanged; 198 if (listeners != null) 199 listeners(this, EventArgs.Empty); 208 200 } 209 201 public event EventHandler SortableViewChanged; 210 202 private void OnSortableViewChanged() { 211 EventHandler handler= SortableViewChanged;212 if ( handler!= null)213 handler(this, EventArgs.Empty);203 EventHandler listeners = SortableViewChanged; 204 if (listeners != null) 205 listeners(this, EventArgs.Empty); 214 206 } 215 207 public event EventHandler<EventArgs<int, int>> ItemChanged; 216 208 private void OnItemChanged(int rowIndex, int columnIndex) { 217 if (ItemChanged != null) 218 ItemChanged(this, new EventArgs<int, int>(rowIndex, columnIndex)); 209 var listeners = ItemChanged; 210 if (listeners != null) 211 listeners(this, new EventArgs<int, int>(rowIndex, columnIndex)); 219 212 OnToStringChanged(); 220 213 } -
branches/CloningRefactoring/HeuristicLab.Problems.DataAnalysis/3.3/Evaluators/SimpleEvaluator.cs
r4068 r4678 24 24 using HeuristicLab.Operators; 25 25 using HeuristicLab.Parameters; 26 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 27 using HeuristicLab.Common; 26 28 27 29 namespace HeuristicLab.Problems.DataAnalysis.Evaluators { … … 32 34 public ILookupParameter<DoubleMatrix> ValuesParameter { 33 35 get { return (ILookupParameter<DoubleMatrix>)Parameters["Values"]; } 36 } 37 [StorableConstructor] 38 protected SimpleEvaluator(bool deserializing) : base(deserializing) { } 39 protected SimpleEvaluator(SimpleEvaluator original, Cloner cloner) 40 : base(original, cloner) { 34 41 } 35 42 public SimpleEvaluator() -
branches/CloningRefactoring/HeuristicLab.Problems.DataAnalysis/3.3/Evaluators/SimpleMSEEvaluator.cs
r4239 r4678 26 26 using HeuristicLab.Data; 27 27 using HeuristicLab.Parameters; 28 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 29 using HeuristicLab.Common; 28 30 29 31 namespace HeuristicLab.Problems.DataAnalysis.Evaluators { … … 34 36 } 35 37 38 [StorableConstructor] 39 protected SimpleMSEEvaluator(bool deserializing) : base(deserializing) { } 40 protected SimpleMSEEvaluator(SimpleMSEEvaluator original, Cloner cloner) 41 : base(original, cloner) { 42 } 36 43 public SimpleMSEEvaluator() { 37 44 Parameters.Add(new LookupParameter<DoubleValue>("MeanSquaredError", "The mean squared error of estimated values.")); -
branches/CloningRefactoring/HeuristicLab.Problems.DataAnalysis/3.3/Evaluators/SimpleMeanAbsolutePercentageErrorEvaluator.cs
r4068 r4678 26 26 using HeuristicLab.Data; 27 27 using HeuristicLab.Parameters; 28 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 29 using HeuristicLab.Common; 28 30 29 31 namespace HeuristicLab.Problems.DataAnalysis.Evaluators { … … 33 35 } 34 36 37 [StorableConstructor] 38 protected SimpleMeanAbsolutePercentageErrorEvaluator(bool deserializing) : base(deserializing) { } 39 protected SimpleMeanAbsolutePercentageErrorEvaluator(SimpleMeanAbsolutePercentageErrorEvaluator original, Cloner cloner) 40 : base(original, cloner) { 41 } 35 42 public SimpleMeanAbsolutePercentageErrorEvaluator() { 36 43 Parameters.Add(new LookupParameter<PercentValue>("AverageRelativeError", "The average relative error of estimated values.")); … … 43 50 select values[i, ESTIMATION_INDEX]; 44 51 AverageRelativeErrorParameter.ActualValue = new PercentValue(Calculate(original, estimated)); 52 } 53 54 public override IDeepCloneable Clone(Cloner clone) { 55 return new SimpleMeanAbsolutePercentageErrorEvaluator(this, cloner); 45 56 } 46 57 -
branches/CloningRefactoring/HeuristicLab.Problems.DataAnalysis/3.3/Evaluators/SimpleMeanAbsolutePercentageOfRangeErrorEvaluator.cs
r4068 r4678 27 27 using HeuristicLab.Data; 28 28 using HeuristicLab.Parameters; 29 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 29 30 30 31 namespace HeuristicLab.Problems.DataAnalysis.Evaluators { … … 35 36 } 36 37 38 [StorableConstructor] 39 protected SimpleMeanAbsolutePercentageOfRangeErrorEvaluator(bool deserializing) : base(deserializing) { } 40 protected SimpleMeanAbsolutePercentageOfRangeErrorEvaluator(SimpleMeanAbsolutePercentageOfRangeErrorEvaluator original, Cloner cloner) 41 : base(original, cloner) { 42 } 37 43 public SimpleMeanAbsolutePercentageOfRangeErrorEvaluator() { 38 44 Parameters.Add(new LookupParameter<PercentValue>("AveragePercentageOfRangeError", "The average relative (percentage of range) error of estimated values.")); … … 45 51 select values[i, ESTIMATION_INDEX]; 46 52 AveragePercentageOfRangeErrorParameter.ActualValue = new PercentValue(Calculate(original, estimated)); 53 } 54 55 public override IDeepCloneable Clone(Cloner clone) { 56 return new SimpleMeanAbsolutePercentageOfRangeErrorEvaluator(this, cloner); 47 57 } 48 58 -
branches/CloningRefactoring/HeuristicLab.Problems.DataAnalysis/3.3/Evaluators/SimpleNMSEEvaluator.cs
r4068 r4678 26 26 using HeuristicLab.Data; 27 27 using HeuristicLab.Parameters; 28 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 29 using HeuristicLab.Common; 28 30 29 31 namespace HeuristicLab.Problems.DataAnalysis.Evaluators { … … 34 36 } 35 37 38 [StorableConstructor] 39 protected SimpleNMSEEvaluator(bool deserializing) : base(deserializing) { } 40 protected SimpleNMSEEvaluator(SimpleNMSEEvaluator original, Cloner cloner) 41 : base(original, cloner) { 42 } 36 43 public SimpleNMSEEvaluator() { 37 44 Parameters.Add(new LookupParameter<DoubleValue>("NormalizedMeanSquaredError", "The normalized mean squared error (divided by variance) of estimated values.")); -
branches/CloningRefactoring/HeuristicLab.Problems.DataAnalysis/3.3/Evaluators/SimpleRSquaredEvaluator.cs
r4068 r4678 26 26 using HeuristicLab.Data; 27 27 using HeuristicLab.Parameters; 28 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 29 using HeuristicLab.Common; 28 30 29 31 namespace HeuristicLab.Problems.DataAnalysis.Evaluators { … … 32 34 get { return (ILookupParameter<DoubleValue>)Parameters["RSquared"]; } 33 35 } 34 36 [StorableConstructor] 37 protected SimpleRSquaredEvaluator(bool deserializing) : base(deserializing) { } 38 protected SimpleRSquaredEvaluator(SimpleRSquaredEvaluator original, Cloner cloner) 39 : base(original, cloner) { 40 } 35 41 public SimpleRSquaredEvaluator() { 36 42 Parameters.Add(new LookupParameter<DoubleValue>("RSquared", "The squared Pearson's Product Moment Correlation (R²) of estimated values and original values.")); -
branches/CloningRefactoring/HeuristicLab.Problems.DataAnalysis/3.3/Evaluators/SimpleVarianceAccountedForEvaluator.cs
r4068 r4678 27 27 using HeuristicLab.Data; 28 28 using HeuristicLab.Parameters; 29 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 29 30 30 31 namespace HeuristicLab.Problems.DataAnalysis.Evaluators { … … 40 41 } 41 42 43 [StorableConstructor] 44 protected SimpleVarianceAccountedForEvaluator(bool deserializing) : base(deserializing) { } 45 protected SimpleVarianceAccountedForEvaluator(SimpleVarianceAccountedForEvaluator original, Cloner cloner) 46 : base(original, cloner) { 47 } 42 48 public SimpleVarianceAccountedForEvaluator() { 43 49 Parameters.Add(new LookupParameter<DoubleValue>("VarianceAccountedFor", "The variance of the original values accounted for by the estimated values (VAF(y,y') = 1 - var(y-y') / var(y) ).")); -
branches/CloningRefactoring/HeuristicLab.Problems.DataAnalysis/3.3/SupportVectorMachine/SupportVectorMachineCrossValidationEvaluator.cs
r4543 r4678 30 30 using SVM; 31 31 using System.Collections.Generic; 32 using HeuristicLab.Common; 32 33 33 34 namespace HeuristicLab.Problems.DataAnalysis.SupportVectorMachine { … … 126 127 #endregion 127 128 129 [StorableConstructor] 130 protected SupportVectorMachineCrossValidationEvaluator(bool deserializing) : base(deserializing) { } 131 132 protected SupportVectorMachineCrossValidationEvaluator(SupportVectorMachineCrossValidationEvaluator original, 133 Cloner cloner) 134 : base(original, cloner) { } 128 135 public SupportVectorMachineCrossValidationEvaluator() 129 136 : base() { … … 143 150 } 144 151 152 public override IDeepCloneable Clone(Cloner clone) { 153 return new SupportVectorMachineCrossValidationEvaluator(this, cloner); 154 } 155 145 156 public override IOperation Apply() { 146 157 double reductionRatio = 1.0; // TODO: make parameter 147 158 if (ActualSamplesParameter.ActualValue != null) 148 159 reductionRatio = ActualSamplesParameter.ActualValue.Value; 149 IEnumerable<int> rows = 160 IEnumerable<int> rows = 150 161 Enumerable.Range(SamplesStart.Value, SamplesEnd.Value - SamplesStart.Value) 151 162 .Where(i => i < DataAnalysisProblemData.TestSamplesStart.Value || DataAnalysisProblemData.TestSamplesEnd.Value <= i); … … 153 164 // create a new DataAnalysisProblemData instance 154 165 DataAnalysisProblemData reducedProblemData = (DataAnalysisProblemData)DataAnalysisProblemData.Clone(); 155 reducedProblemData.Dataset = 166 reducedProblemData.Dataset = 156 167 CreateReducedDataset(RandomParameter.ActualValue, reducedProblemData.Dataset, rows, reductionRatio); 157 168 reducedProblemData.TrainingSamplesStart.Value = 0; … … 170 181 171 182 private Dataset CreateReducedDataset(IRandom random, Dataset dataset, IEnumerable<int> rowIndices, double reductionRatio) { 172 183 173 184 // must not make a fink: 174 185 // => select n rows randomly from start..end … … 191 202 // take the first n indexes (selected n rowIndexes from start..end) 192 203 // now order by index 193 int[] orderedRandomIndexes = 204 int[] orderedRandomIndexes = 194 205 rowIndexArr.Take(n) 195 206 .OrderBy(x => x) -
branches/CloningRefactoring/HeuristicLab.Problems.DataAnalysis/3.3/SupportVectorMachine/SupportVectorMachineModel.cs
r4543 r4678 36 36 [StorableClass] 37 37 [Item("SupportVectorMachineModel", "Represents a support vector machine model.")] 38 public class SupportVectorMachineModel : NamedItem, IDataAnalysisModel { 39 public SupportVectorMachineModel() 40 : base() { 38 public sealed class SupportVectorMachineModel : NamedItem, IDataAnalysisModel { 39 [StorableConstructor] 40 private SupportVectorMachineModel(bool deserializing) : base(deserializing) { } 41 private SupportVectorMachineModel(SupportVectorMachineModel original, Cloner cloner) 42 : base(original, cloner) { 43 // only using a shallow copy here! (gkronber) 44 this.model = original.model; 45 this.rangeTransform = original.rangeTransform; 41 46 } 47 public SupportVectorMachineModel() : base() { } 42 48 43 49 private SVM.Model model; … … 130 136 #endregion 131 137 132 public override IDeepCloneable Clone(Cloner cloner) { 133 SupportVectorMachineModel clone = (SupportVectorMachineModel)base.Clone(cloner); 134 // beware we are only using a shallow copy here! (gkronber) 135 clone.model = model; 136 clone.rangeTransform = rangeTransform; 137 return clone; 138 public override IDeepCloneable Clone(Cloner clone) { 139 return new SupportVectorMachineModel(this, cloner); 138 140 } 139 141 -
branches/CloningRefactoring/HeuristicLab.Problems.DataAnalysis/3.3/SupportVectorMachine/SupportVectorMachineModelCreator.cs
r4543 r4678 29 29 using System.Collections.Generic; 30 30 using System.Linq; 31 using HeuristicLab.Common; 31 32 32 33 namespace HeuristicLab.Problems.DataAnalysis.SupportVectorMachine { … … 36 37 [StorableClass] 37 38 [Item("SupportVectorMachineModelCreator", "Represents an operator that creates a support vector machine model.")] 38 public class SupportVectorMachineModelCreator : SingleSuccessorOperator {39 public sealed class SupportVectorMachineModelCreator : SingleSuccessorOperator { 39 40 private const string DataAnalysisProblemDataParameterName = "DataAnalysisProblemData"; 40 41 private const string SvmTypeParameterName = "SvmType"; … … 110 111 #endregion 111 112 113 [StorableConstructor] 114 private SupportVectorMachineModelCreator(bool deserializing) : base(deserializing) { } 115 private SupportVectorMachineModelCreator(SupportVectorMachineModelCreator original, Cloner cloner) : base(original, cloner) { } 112 116 public SupportVectorMachineModelCreator() 113 117 : base() { … … 129 133 int start = SamplesStart.Value; 130 134 int end = SamplesEnd.Value; 131 IEnumerable<int> rows = 132 Enumerable.Range(start, end -start)135 IEnumerable<int> rows = 136 Enumerable.Range(start, end - start) 133 137 .Where(i => i < DataAnalysisProblemData.TestSamplesStart.Value || DataAnalysisProblemData.TestSamplesEnd.Value <= i); 134 138 -
branches/CloningRefactoring/HeuristicLab.Problems.DataAnalysis/3.3/SupportVectorMachine/SupportVectorMachineModelEvaluator.cs
r4543 r4678 28 28 using System.Collections.Generic; 29 29 using System.Linq; 30 using HeuristicLab.Common; 30 31 31 32 namespace HeuristicLab.Problems.DataAnalysis.SupportVectorMachine { … … 70 71 } 71 72 #endregion 73 74 [StorableConstructor] 75 protected SupportVectorMachineModelEvaluator(bool deserializing) : base(deserializing) { } 76 protected SupportVectorMachineModelEvaluator(SupportVectorMachineModelEvaluator original, Cloner cloner) : base(original, cloner) { } 72 77 public SupportVectorMachineModelEvaluator() 73 78 : base() { -
branches/CloningRefactoring/HeuristicLab.Problems.DataAnalysis/3.3/Symbolic/ArithmeticExpressionGrammar.cs
r4249 r4678 21 21 22 22 using System.Collections.Generic; 23 using HeuristicLab.Common; 23 24 using HeuristicLab.Core; 24 25 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding; … … 30 31 [Item("ArithmeticExpressionGrammar", "Represents a grammar for functional expressions using only arithmetic operations.")] 31 32 public class ArithmeticExpressionGrammar : DefaultSymbolicExpressionGrammar { 33 34 [StorableConstructor] 35 protected ArithmeticExpressionGrammar(bool deserializing) : base(deserializing) { } 36 protected ArithmeticExpressionGrammar(ArithmeticExpressionGrammar original, Cloner cloner) : base(original, cloner) { } 32 37 public ArithmeticExpressionGrammar() 33 38 : base() { 34 39 Initialize(); 35 40 } 36 37 [StorableConstructor]38 protected ArithmeticExpressionGrammar(bool deserializing) : base(deserializing) {}41 public override IDeepCloneable Clone(Cloner cloner) { 42 return new ArithmeticExpressionGrammar(this, cloner); 43 } 39 44 40 45 private void Initialize() { -
branches/CloningRefactoring/HeuristicLab.Problems.DataAnalysis/3.3/Symbolic/FullFunctionalExpressionGrammar.cs
r4249 r4678 21 21 22 22 using System.Collections.Generic; 23 using HeuristicLab.Common; 23 24 using HeuristicLab.Core; 24 25 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding; … … 30 31 [Item("FullFunctionalExpressionGrammar", "Represents a grammar for functional expressions using all available functions.")] 31 32 public class FullFunctionalExpressionGrammar : DefaultSymbolicExpressionGrammar { 33 [StorableConstructor] 34 protected FullFunctionalExpressionGrammar(bool deserializing) : base(deserializing) { } 35 protected FullFunctionalExpressionGrammar(FullFunctionalExpressionGrammar original, Cloner cloner) : base(original, cloner) { } 32 36 public FullFunctionalExpressionGrammar() 33 37 : base() { 34 38 Initialize(); 35 39 } 36 [StorableConstructor] 37 protected FullFunctionalExpressionGrammar(bool deserializing) : base(deserializing) { } 40 41 public override IDeepCloneable Clone(Cloner cloner) { 42 return new FullFunctionalExpressionGrammar(this, cloner); 43 } 38 44 39 45 private void Initialize() { -
branches/CloningRefactoring/HeuristicLab.Problems.DataAnalysis/3.3/Symbolic/SimpleArithmeticExpressionInterpreter.cs
r4068 r4678 22 22 using System; 23 23 using System.Collections.Generic; 24 using HeuristicLab.Common; 24 25 using HeuristicLab.Core; 25 26 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding; … … 33 34 [Item("SimpleArithmeticExpressionInterpreter", "Interpreter for arithmetic symbolic expression trees including function calls.")] 34 35 // not thread safe! 35 public class SimpleArithmeticExpressionInterpreter : NamedItem, ISymbolicExpressionTreeInterpreter {36 public sealed class SimpleArithmeticExpressionInterpreter : NamedItem, ISymbolicExpressionTreeInterpreter { 36 37 private class OpCodes { 37 38 public const byte Add = 1; … … 106 107 } 107 108 109 [StorableConstructor] 110 private SimpleArithmeticExpressionInterpreter(bool deserializing) : base(deserializing) { } 111 private SimpleArithmeticExpressionInterpreter(SimpleArithmeticExpressionInterpreter original, Cloner cloner) : base(original, cloner) { } 112 113 public override IDeepCloneable Clone(Cloner cloner) { 114 return new SimpleArithmeticExpressionInterpreter(this, cloner); 115 } 116 108 117 public SimpleArithmeticExpressionInterpreter() 109 118 : base() { -
branches/CloningRefactoring/HeuristicLab.Problems.DataAnalysis/3.3/Symbolic/Symbols/Constant.cs
r4068 r4678 77 77 } 78 78 #endregion 79 [StorableConstructor] 80 protected Constant(bool deserializing) : base(deserializing) { } 81 protected Constant(Constant original, Cloner cloner) 82 : base(original, cloner) { 83 minValue = original.minValue; 84 maxValue = original.maxValue; 85 manipulatorNu = original.manipulatorNu; 86 manipulatorSigma = original.manipulatorSigma; 87 } 79 88 public Constant() 80 89 : base("Constant", "Represents a constant value.") { … … 89 98 } 90 99 91 public override IDeepCloneable Clone(Cloner cloner) { 92 Constant clone = (Constant)base.Clone(cloner); 93 clone.minValue = minValue; 94 clone.maxValue = maxValue; 95 clone.manipulatorNu = manipulatorNu; 96 clone.manipulatorSigma = manipulatorSigma; 97 return clone; 100 public override IDeepCloneable Clone(Cloner clone) { 101 return new Constant(this, cloner); 98 102 } 99 103 } -
branches/CloningRefactoring/HeuristicLab.Problems.DataAnalysis/3.3/Symbolic/Symbols/ConstantTreeNode.cs
r4068 r4678 20 20 #endregion 21 21 22 using HeuristicLab.Common; 22 23 using HeuristicLab.Core; 23 24 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding; … … 38 39 } 39 40 40 private ConstantTreeNode() : base() { } 41 [StorableConstructor] 42 private ConstantTreeNode(bool deserializing) : base(deserializing) { } 41 43 42 // copy constructor 43 private ConstantTreeNode(ConstantTreeNode original) 44 : base(original) { 44 protected ConstantTreeNode(ConstantTreeNode original, Cloner cloner) 45 : base(original, cloner) { 45 46 constantValue = original.constantValue; 46 47 } 47 48 49 private ConstantTreeNode() : base() { } 48 50 public ConstantTreeNode(Constant constantSymbol) : base(constantSymbol) { } 49 51 … … 65 67 } 66 68 67 public override object Clone() {68 return new ConstantTreeNode(this );69 public override IDeepCloneable Clone(Cloner cloner) { 70 return new ConstantTreeNode(this, cloner); 69 71 } 70 72 -
branches/CloningRefactoring/HeuristicLab.Problems.DataAnalysis/3.3/Symbolic/Symbols/LaggedVariable.cs
r4068 r4678 40 40 set { maxLag = value; } 41 41 } 42 [StorableConstructor] 43 private LaggedVariable(bool deserializing) : base(deserializing) { } 44 private LaggedVariable(LaggedVariable original, Cloner cloner) 45 : base(original, cloner) { 46 minLag = original.minLag; 47 maxLag = original.maxLag; 48 } 42 49 public LaggedVariable() 43 50 : base("LaggedVariable", "Represents a variable value with a time offset.") { … … 49 56 } 50 57 51 public override IDeepCloneable Clone(Cloner cloner) { 52 LaggedVariable clone = (LaggedVariable)base.Clone(cloner); 53 clone.minLag = minLag; 54 clone.maxLag = maxLag; 55 return clone; 58 public override IDeepCloneable Clone(Cloner clone) { 59 return new LaggedVariable(this, cloner); 56 60 } 57 61 } -
branches/CloningRefactoring/HeuristicLab.Problems.DataAnalysis/3.3/Symbolic/Symbols/LaggedVariableTreeNode.cs
r4068 r4678 23 23 using HeuristicLab.Core; 24 24 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 25 using HeuristicLab.Common; 25 26 namespace HeuristicLab.Problems.DataAnalysis.Symbolic.Symbols { 26 27 [StorableClass] … … 36 37 } 37 38 38 private LaggedVariableTreeNode() { } 39 40 // copy constructor 41 private LaggedVariableTreeNode(LaggedVariableTreeNode original) 42 : base(original) { 39 [StorableConstructor] 40 private LaggedVariableTreeNode(bool deserializing) : base(deserializing) { } 41 protected LaggedVariableTreeNode(LaggedVariableTreeNode original, Cloner cloner) 42 : base(original, cloner) { 43 43 lag = original.lag; 44 44 } 45 private LaggedVariableTreeNode() { } 45 46 46 47 public LaggedVariableTreeNode(LaggedVariable variableSymbol) : base(variableSymbol) { } … … 62 63 } 63 64 64 65 public override object Clone() { 66 return new LaggedVariableTreeNode(this); 65 public override IDeepCloneable Clone(Cloner cloner) { 66 return new LaggedVariableTreeNode(this, cloner); 67 67 } 68 68 -
branches/CloningRefactoring/HeuristicLab.Problems.DataAnalysis/3.3/Symbolic/Symbols/Variable.cs
r4068 r4678 90 90 } 91 91 #endregion 92 [StorableConstructor] 93 protected Variable(bool deserializing) : base(deserializing) { } 94 protected Variable(Variable original, Cloner cloner) 95 : base(original, cloner) { 96 weightNu = original.weightNu; 97 weightSigma = original.weightSigma; 98 variableNames = new List<string>(original.variableNames); 99 weightManipulatorNu = original.weightManipulatorNu; 100 weightManipulatorSigma = original.weightManipulatorSigma; 101 } 92 102 public Variable() : this("Variable", "Represents a variable value.") { } 93 103 public Variable(string name, string description) … … 104 114 } 105 115 106 public override IDeepCloneable Clone(Cloner cloner) { 107 Variable clone = (Variable)base.Clone(cloner); 108 clone.weightNu = weightNu; 109 clone.weightSigma = weightSigma; 110 clone.variableNames = new List<string>(variableNames); 111 clone.weightManipulatorNu = weightManipulatorNu; 112 clone.weightManipulatorSigma = weightManipulatorSigma; 113 return clone; 116 public override IDeepClonable Clone(Cloner clone) { 117 return new Variable(this, cloner); 114 118 } 115 119 } -
branches/CloningRefactoring/HeuristicLab.Problems.DataAnalysis/3.3/Symbolic/Symbols/VariableTreeNode.cs
r4239 r4678 20 20 #endregion 21 21 22 using HeuristicLab.Common; 22 23 using HeuristicLab.Core; 23 using HeuristicLab.Common;24 24 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding; 25 25 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; … … 44 44 } 45 45 46 47 protected VariableTreeNode() { } 48 49 // copy constructor 50 protected VariableTreeNode(VariableTreeNode original) 51 : base(original) { 46 [StorableConstructor] 47 protected VariableTreeNode(bool deserializing) : base(deserializing) { } 48 protected VariableTreeNode(VariableTreeNode original, Cloner cloner) 49 : base(original, cloner) { 52 50 weight = original.weight; 53 51 variableName = original.variableName; 54 52 } 55 53 protected VariableTreeNode() { } 56 54 public VariableTreeNode(Variable variableSymbol) : base(variableSymbol) { } 57 55 … … 75 73 } 76 74 77 78 public override object Clone() { 79 return new VariableTreeNode(this); 75 public override IDeepCloneable Clone(Cloner cloner) { 76 return new VariableTreeNode(this, cloner); 80 77 } 81 78 -
branches/CloningRefactoring/HeuristicLab.Problems.DataAnalysis/3.3/Symbolic/VariableFrequencyAnalyser.cs
r4125 r4678 22 22 using System.Collections.Generic; 23 23 using System.Linq; 24 using HeuristicLab.Common; 24 25 using HeuristicLab.Core; 25 26 using HeuristicLab.Data; … … 61 62 } 62 63 #endregion 64 [StorableConstructor] 65 protected VariableFrequencyAnalyser(bool deserializing) : base(deserializing) { } 66 protected VariableFrequencyAnalyser(VariableFrequencyAnalyser original, Cloner cloner) 67 : base(original, cloner) { 68 } 63 69 public VariableFrequencyAnalyser() 64 70 : base() { … … 80 86 VariableFrequencies[lastRowIndex, columnIndex] = pair.Value; 81 87 } 82 return null;88 return base.Apply(); 83 89 } 84 90
Note: See TracChangeset
for help on using the changeset viewer.