Free cookie consent management tool by TermsFeed Policy Generator

source: branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problems.ProgramSynthesis.Base/Erc/Float/FloatRangeErcValue.cs @ 14908

Last change on this file since 14908 was 14908, checked in by pkimmesw, 7 years ago

#2665 Removed "this" qualifier

File size: 1.7 KB
RevLine 
[14897]1namespace HeuristicLab.Problems.ProgramSynthesis.Base.Erc.Float {
2  using HeuristicLab.Common;
3  using HeuristicLab.Core;
4  using HeuristicLab.Data;
5  using HeuristicLab.Parameters;
6  using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
7
8  [StorableClass]
9  public class FloatRangeErcValue : WeightedErcValueItem<double> {
10    private const string RangeParameterName = "Range";
11
[14905]12    public FloatRangeErcValue() : this(false, 0d, 0d) { }
13
14    public FloatRangeErcValue(double start, double end) : this(true, start, end) { }
15
16    public FloatRangeErcValue(bool isEnabled, double start, double end, double weight = 1d) : base(isEnabled, weight) {
[14898]17      Name = "Float range";
[14905]18      Parameters.Add(new FixedValueParameter<DoubleRange>(RangeParameterName, new DoubleRange(start, end)));
[14897]19    }
20
21    [StorableConstructor]
22    public FloatRangeErcValue(bool deseralizing) : base(deseralizing) { }
23
24    public FloatRangeErcValue(FloatRangeErcValue origin, Cloner cloner) : base(origin, cloner) { }
25
26    public IValueParameter<DoubleRange> RangeParameter
27    {
[14908]28      get { return (IValueParameter<DoubleRange>)Parameters[RangeParameterName]; }
[14897]29    }
30
31    public double Start
32    {
[14908]33      get { return RangeParameter.Value.Start; }
34      set { RangeParameter.Value.Start = value; }
[14897]35    }
36
37    public double End
38    {
[14908]39      get { return RangeParameter.Value.End; }
40      set { RangeParameter.Value.End = value; }
[14897]41    }
42
43    public override double GetErcValue(IRandom random) {
44      return Start < End && IsEnabled ? random.NextDouble() * (End - Start) + Start : 0d;
45    }
46
47    public override IDeepCloneable Clone(Cloner cloner) {
48      return new FloatRangeErcValue(this, cloner);
49    }
50  }
51}
Note: See TracBrowser for help on using the repository browser.