source: branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problems.ProgramSynthesis/Push/Erc/ErcOptions.cs @ 14834

Last change on this file since 14834 was 14834, checked in by pkimmesw, 3 years ago

#2665 LexicaseSelector, Performance improvements, UI Fixes, Debugger only shows used stacks, fixed Debugger stepping, Added vector expressions, ERCOptions,

File size: 4.9 KB
Line 
1namespace HeuristicLab.Problems.ProgramSynthesis.Push.Erc {
2  using HeuristicLab.Common;
3  using HeuristicLab.Core;
4  using HeuristicLab.Data;
5  using HeuristicLab.Parameters;
6  using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
7  using HeuristicLab.Problems.ProgramSynthesis.Push.Erc.Interfaces;
8
9  [StorableClass]
10  public class ErcOptions : ParameterizedNamedItem, IReadOnlyErcOptions {
11    public const string ProbabilityParameterName = "Probability";
12    public const string IntegerParameterName = "Integer";
13    public const string FloatParameterName = "Float";
14    public const string CharParameterName = "Char";
15    public const string BooleanParameterName = "Boolean";
16    public const string StringParameterName = "String";
17    public const string NameParameterName = "Name";
18
19    public ErcOptions() {
20      Name = "ERC Options";
21
22      Parameters.Add(new FixedValueParameter<PercentValue>(ProbabilityParameterName));
23      Parameters.Add(new FixedValueParameter<IntegerErcOptions>(IntegerParameterName));
24      Parameters.Add(new FixedValueParameter<FloatErcOptions>(FloatParameterName));
25      Parameters.Add(new FixedValueParameter<CharErcOptions>(CharParameterName));
26      Parameters.Add(new FixedValueParameter<BooleanErcOptions>(BooleanParameterName));
27      Parameters.Add(new FixedValueParameter<StringErcOptions>(StringParameterName));
28      Parameters.Add(new FixedValueParameter<NameErcOptions>(NameParameterName));
29    }
30
31    [StorableConstructor]
32    public ErcOptions(bool deserializing) : base(deserializing) { }
33
34    public ErcOptions(ErcOptions origin, Cloner cloner) : base(origin, cloner) { }
35
36    public IValueParameter<PercentValue> ErcProbabilityParameter
37    {
38      get { return (IValueParameter<PercentValue>)Parameters[ProbabilityParameterName]; }
39    }
40
41    public double ErcProbability
42    {
43      get { return ErcProbabilityParameter.Value.Value; }
44      set { ErcProbabilityParameter.Value.Value = value; }
45    }
46
47    public IValueParameter<IntegerErcOptions> IntegerErcOptionsParameter
48    {
49      get { return (IValueParameter<IntegerErcOptions>)Parameters[IntegerParameterName]; }
50    }
51
52    public IntegerErcOptions IntegerErcOptions
53    {
54      get { return this.IntegerErcOptionsParameter.Value; }
55      set { this.IntegerErcOptionsParameter.Value = value; }
56    }
57
58    IReadOnlyIntegerErcOptions IReadOnlyErcOptions.IntegerErcOptions
59    {
60      get { return IntegerErcOptions; }
61    }
62
63    public IValueParameter<FloatErcOptions> FloatErcOptionsParameter
64    {
65      get { return (IValueParameter<FloatErcOptions>)Parameters[FloatParameterName]; }
66    }
67
68    public FloatErcOptions FloatErcOptions
69    {
70      get { return this.FloatErcOptionsParameter.Value; }
71      set { this.FloatErcOptionsParameter.Value = value; }
72    }
73
74    IReadOnlyFloatErcOptions IReadOnlyErcOptions.FloatErcOptions
75    {
76      get { return FloatErcOptions; }
77    }
78
79    /// <summary>
80    /// Integer represents ASCII value
81    /// </summary>
82    public IValueParameter<CharErcOptions> CharErcOptionsParameter
83    {
84      get { return (IValueParameter<CharErcOptions>)Parameters[CharParameterName]; }
85    }
86
87    public CharErcOptions CharErcOptions
88    {
89      get { return CharErcOptionsParameter.Value; }
90      set { CharErcOptionsParameter.Value = value; }
91    }
92
93    IReadOnlyCharErcOptions IReadOnlyErcOptions.CharErcOptions
94    {
95      get { return CharErcOptions; }
96    }
97
98    public IValueParameter<BooleanErcOptions> BooleanErcOptionsParameter
99    {
100      get { return (IValueParameter<BooleanErcOptions>)Parameters[BooleanParameterName]; }
101    }
102
103    public BooleanErcOptions BooleanErcOptions
104    {
105      get { return BooleanErcOptionsParameter.Value; }
106      set { BooleanErcOptionsParameter.Value = value; }
107    }
108
109    IReadOnlyBooleanErcOptions IReadOnlyErcOptions.BooleanErcOptions
110    {
111      get { return BooleanErcOptions; }
112    }
113
114    public IValueParameter<StringErcOptions> StringErcOptionsParameter
115    {
116      get { return (IValueParameter<StringErcOptions>)Parameters[StringParameterName]; }
117    }
118
119    public StringErcOptions StringErcOptions
120    {
121      get { return StringErcOptionsParameter.Value; }
122      set { StringErcOptionsParameter.Value = value; }
123    }
124
125    IReadOnlyStringErcOptions IReadOnlyErcOptions.StringErcOptions
126    {
127      get { return StringErcOptions; }
128    }
129
130    public IValueParameter<NameErcOptions> NameParameter
131    {
132      get { return (IValueParameter<NameErcOptions>)Parameters[NameParameterName]; }
133    }
134
135    public NameErcOptions NameErcOptions
136    {
137      get { return NameParameter.Value; }
138      set { NameParameter.Value = value; }
139    }
140
141    IReadOnlyNameErcOptions IReadOnlyErcOptions.NameErcOptions
142    {
143      get { return NameErcOptions; }
144    }
145
146    public override IDeepCloneable Clone(Cloner cloner) {
147      return new ErcOptions(this, cloner);
148    }
149  }
150}
Note: See TracBrowser for help on using the repository browser.