Changeset 2728 for trunk/sources/HeuristicLab.GP.StructureIdentification
- Timestamp:
- 02/01/10 08:52:32 (15 years ago)
- Location:
- trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/FunctionLibraryInjectors
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/FunctionLibraryInjectors/ArithmeticFunctionLibraryInjector.cs
r2566 r2728 32 32 public const string MAXTIMEOFFSET = "MaxTimeOffset"; 33 33 34 public const string DIFFERENTIALS_ALLOWED = "Differentials";35 36 34 private int minTimeOffset; 37 35 private int maxTimeOffset; … … 45 43 AddVariableInfo(new VariableInfo(MINTIMEOFFSET, "Minimal time offset for all features", typeof(IntData), VariableKind.In)); 46 44 AddVariableInfo(new VariableInfo(MAXTIMEOFFSET, "Maximal time offset for all feature", typeof(IntData), VariableKind.In)); 47 48 AddVariable(DIFFERENTIALS_ALLOWED, false);49 }50 51 private void AddVariable(string name, bool allowed) {52 AddVariableInfo(new VariableInfo(name, name + " allowed", typeof(BoolData), Core.VariableKind.New));53 GetVariableInfo(name).Local = true;54 AddVariable(new Core.Variable(name, new BoolData(allowed)));55 45 } 56 46 … … 77 67 Subtraction subtraction = new Subtraction(); 78 68 79 List<IFunction> doubleFunctions = new List<IFunction>(); 80 if (GetVariableValue<BoolData>(DIFFERENTIALS_ALLOWED, null, false).Data) 81 doubleFunctions.Add(differential); 82 doubleFunctions.Add(variable); 83 doubleFunctions.Add(constant); 84 doubleFunctions.Add(addition); 85 doubleFunctions.Add(division); 86 doubleFunctions.Add(multiplication); 87 doubleFunctions.Add(subtraction); 69 List<IFunction> doubleFunctions = new List<IFunction>() { 70 differential, variable, constant, addition, division, multiplication, subtraction 71 }; 88 72 89 73 SetAllowedSubOperators(addition, doubleFunctions); … … 92 76 SetAllowedSubOperators(subtraction, doubleFunctions); 93 77 94 if (GetVariableValue<BoolData>(DIFFERENTIALS_ALLOWED, null, false).Data) 95 functionLibrary.AddFunction(differential); 96 functionLibrary.AddFunction(variable); 97 functionLibrary.AddFunction(constant); 98 functionLibrary.AddFunction(addition); 99 functionLibrary.AddFunction(division); 100 functionLibrary.AddFunction(multiplication); 101 functionLibrary.AddFunction(subtraction); 78 doubleFunctions.ForEach(fun => functionLibrary.AddFunction(fun)); 102 79 103 80 variable.SetConstraints(minTimeOffset, maxTimeOffset); -
trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/FunctionLibraryInjectors/DefaultFunctionLibraryInjector.cs
r2566 r2728 32 32 public const string MAXTIMEOFFSET = "MaxTimeOffset"; 33 33 34 public const string DIFFERENTIALS_ALLOWED = "Differentials";35 public const string VARIABLES_ALLOWED = "Variables";36 public const string CONSTANTS_ALLOWED = "Constants";37 public const string ADDITION_ALLOWED = "Addition";38 public const string AVERAGE_ALLOWED = "Average";39 public const string AND_ALLOWED = "And";40 public const string COSINUS_ALLOWED = "Cosinus";41 public const string DIVISION_ALLOWED = "Division";42 public const string EQUAL_ALLOWED = "Equal";43 public const string EXPONENTIAL_ALLOWED = "Exponential";44 public const string GREATERTHAN_ALLOWED = "GreaterThan";45 public const string IFTHENELSE_ALLOWED = "IfThenElse";46 public const string LESSTHAN_ALLOWED = "LessThan";47 public const string LOGARTIHM_ALLOWED = "Logarithm";48 public const string MULTIPLICATION_ALLOWED = "Multiplication";49 public const string NOT_ALLOWED = "Not";50 public const string POWER_ALLOWED = "Power";51 public const string OR_ALLOWED = "Or";52 public const string SIGNUM_ALLOWED = "Signum";53 public const string SINUS_ALLOWED = "Sinus";54 public const string SQRT_ALLOWED = "SquareRoot";55 public const string SUBTRACTION_ALLOWED = "Subtraction";56 public const string TANGENS_ALLOWED = "Tangens";57 public const string XOR_ALLOWED = "Xor";58 59 34 private int minTimeOffset; 60 35 private int maxTimeOffset; 61 36 62 37 public override string Description { 63 get { return @"Injects a configurablefunction library for regression and classification problems."; }38 get { return @"Injects a default function library for regression and classification problems."; } 64 39 } 65 40 … … 68 43 AddVariableInfo(new VariableInfo(MINTIMEOFFSET, "Minimal time offset for all features", typeof(IntData), VariableKind.In)); 69 44 AddVariableInfo(new VariableInfo(MAXTIMEOFFSET, "Maximal time offset for all feature", typeof(IntData), VariableKind.In)); 70 71 AddVariable(DIFFERENTIALS_ALLOWED, false);72 AddVariable(VARIABLES_ALLOWED, true);73 AddVariable(CONSTANTS_ALLOWED, true);74 AddVariable(ADDITION_ALLOWED, true);75 AddVariable(AVERAGE_ALLOWED, false);76 AddVariable(AND_ALLOWED, true);77 AddVariable(COSINUS_ALLOWED, true);78 AddVariable(DIVISION_ALLOWED, true);79 AddVariable(EQUAL_ALLOWED, true);80 AddVariable(EXPONENTIAL_ALLOWED, true);81 AddVariable(GREATERTHAN_ALLOWED, true);82 AddVariable(IFTHENELSE_ALLOWED, true);83 AddVariable(LESSTHAN_ALLOWED, true);84 AddVariable(LOGARTIHM_ALLOWED, true);85 AddVariable(MULTIPLICATION_ALLOWED, true);86 AddVariable(NOT_ALLOWED, true);87 AddVariable(POWER_ALLOWED, true);88 AddVariable(OR_ALLOWED, true);89 AddVariable(SIGNUM_ALLOWED, true);90 AddVariable(SINUS_ALLOWED, true);91 AddVariable(SQRT_ALLOWED, true);92 AddVariable(SUBTRACTION_ALLOWED, true);93 AddVariable(TANGENS_ALLOWED, true);94 AddVariable(XOR_ALLOWED, false);95 }96 97 private void AddVariable(string name, bool allowed) {98 AddVariableInfo(new VariableInfo(name, name + " allowed", typeof(BoolData), Core.VariableKind.New));99 GetVariableInfo(name).Local = true;100 AddVariable(new Core.Variable(name, new BoolData(allowed)));101 45 } 102 46 … … 141 85 142 86 143 List<IFunction> booleanFunctions = new List<IFunction>(); 144 ConditionalAddFunction(AND_ALLOWED, and, booleanFunctions); 145 ConditionalAddFunction(EQUAL_ALLOWED, equal, booleanFunctions); 146 ConditionalAddFunction(GREATERTHAN_ALLOWED, greaterThan, booleanFunctions); 147 ConditionalAddFunction(LESSTHAN_ALLOWED, lessThan, booleanFunctions); 148 ConditionalAddFunction(NOT_ALLOWED, not, booleanFunctions); 149 ConditionalAddFunction(OR_ALLOWED, or, booleanFunctions); 150 ConditionalAddFunction(XOR_ALLOWED, xor, booleanFunctions); 87 List<IFunction> booleanFunctions = new List<IFunction>() { 88 and, equal, greaterThan, lessThan, not, or, xor 89 }; 151 90 152 List<IFunction> doubleFunctions = new List<IFunction>(); 153 ConditionalAddFunction(DIFFERENTIALS_ALLOWED, differential, doubleFunctions); 154 ConditionalAddFunction(VARIABLES_ALLOWED, variable, doubleFunctions); 155 ConditionalAddFunction(CONSTANTS_ALLOWED, constant, doubleFunctions); 156 ConditionalAddFunction(ADDITION_ALLOWED, addition, doubleFunctions); 157 ConditionalAddFunction(AVERAGE_ALLOWED, average, doubleFunctions); 158 ConditionalAddFunction(COSINUS_ALLOWED, cosinus, doubleFunctions); 159 ConditionalAddFunction(DIVISION_ALLOWED, division, doubleFunctions); 160 ConditionalAddFunction(EXPONENTIAL_ALLOWED, exponential, doubleFunctions); 161 ConditionalAddFunction(IFTHENELSE_ALLOWED, ifThenElse, doubleFunctions); 162 ConditionalAddFunction(LOGARTIHM_ALLOWED, logarithm, doubleFunctions); 163 ConditionalAddFunction(MULTIPLICATION_ALLOWED, multiplication, doubleFunctions); 164 ConditionalAddFunction(POWER_ALLOWED, power, doubleFunctions); 165 ConditionalAddFunction(SIGNUM_ALLOWED, signum, doubleFunctions); 166 ConditionalAddFunction(SINUS_ALLOWED, sinus, doubleFunctions); 167 ConditionalAddFunction(SQRT_ALLOWED, sqrt, doubleFunctions); 168 ConditionalAddFunction(SUBTRACTION_ALLOWED, subtraction, doubleFunctions); 169 ConditionalAddFunction(TANGENS_ALLOWED, tangens, doubleFunctions); 91 92 List<IFunction> doubleFunctions = new List<IFunction>() { 93 differential, variable, constant, addition, average, cosinus, division, exponential, 94 ifThenElse, logarithm, multiplication, power, signum, sinus, sqrt, subtraction, tangens}; 170 95 171 96 SetAllowedSubOperators(and, booleanFunctions); … … 193 118 SetAllowedSubOperators(tangens, doubleFunctions); 194 119 195 ConditionalAddOperator(DIFFERENTIALS_ALLOWED, functionLibrary, differential); 196 ConditionalAddOperator(VARIABLES_ALLOWED, functionLibrary, variable); 197 ConditionalAddOperator(CONSTANTS_ALLOWED, functionLibrary, constant); 198 ConditionalAddOperator(ADDITION_ALLOWED, functionLibrary, addition); 199 ConditionalAddOperator(AVERAGE_ALLOWED, functionLibrary, average); 200 ConditionalAddOperator(AND_ALLOWED, functionLibrary, and); 201 ConditionalAddOperator(COSINUS_ALLOWED, functionLibrary, cosinus); 202 ConditionalAddOperator(DIVISION_ALLOWED, functionLibrary, division); 203 ConditionalAddOperator(EQUAL_ALLOWED, functionLibrary, equal); 204 ConditionalAddOperator(EXPONENTIAL_ALLOWED, functionLibrary, exponential); 205 ConditionalAddOperator(GREATERTHAN_ALLOWED, functionLibrary, greaterThan); 206 ConditionalAddOperator(IFTHENELSE_ALLOWED, functionLibrary, ifThenElse); 207 ConditionalAddOperator(LESSTHAN_ALLOWED, functionLibrary, lessThan); 208 ConditionalAddOperator(LOGARTIHM_ALLOWED, functionLibrary, logarithm); 209 ConditionalAddOperator(MULTIPLICATION_ALLOWED, functionLibrary, multiplication); 210 ConditionalAddOperator(NOT_ALLOWED, functionLibrary, not); 211 ConditionalAddOperator(POWER_ALLOWED, functionLibrary, power); 212 ConditionalAddOperator(OR_ALLOWED, functionLibrary, or); 213 ConditionalAddOperator(SIGNUM_ALLOWED, functionLibrary, signum); 214 ConditionalAddOperator(SINUS_ALLOWED, functionLibrary, sinus); 215 ConditionalAddOperator(SQRT_ALLOWED, functionLibrary, sqrt); 216 ConditionalAddOperator(SUBTRACTION_ALLOWED, functionLibrary, subtraction); 217 ConditionalAddOperator(TANGENS_ALLOWED, functionLibrary, tangens); 218 ConditionalAddOperator(XOR_ALLOWED, functionLibrary, xor); 120 doubleFunctions.ForEach(fun => functionLibrary.AddFunction(fun)); 121 booleanFunctions.ForEach(fun => functionLibrary.AddFunction(fun)); 219 122 220 123 variable.SetConstraints(minTimeOffset, maxTimeOffset); -
trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/FunctionLibraryInjectors/SimpleFunctionLibraryInjector.cs
r2675 r2728 32 32 public const string MAXTIMEOFFSET = "MaxTimeOffset"; 33 33 34 public const string DIFFERENTIALS_ALLOWED = "Differentials";35 36 34 private int minTimeOffset; 37 35 private int maxTimeOffset; … … 45 43 AddVariableInfo(new VariableInfo(MINTIMEOFFSET, "Minimal time offset for all features", typeof(IntData), VariableKind.In)); 46 44 AddVariableInfo(new VariableInfo(MAXTIMEOFFSET, "Maximal time offset for all feature", typeof(IntData), VariableKind.In)); 47 48 AddVariable(DIFFERENTIALS_ALLOWED, false);49 }50 51 private void AddVariable(string name, bool allowed) {52 AddVariableInfo(new VariableInfo(name, name + " allowed", typeof(BoolData), Core.VariableKind.New));53 GetVariableInfo(name).Local = true;54 AddVariable(new Core.Variable(name, new BoolData(allowed)));55 45 } 56 46 … … 68 58 protected override FunctionLibrary CreateFunctionLibrary() { 69 59 return Create( 70 GetVariableValue<BoolData>(DIFFERENTIALS_ALLOWED, null, false).Data,71 60 minTimeOffset, 72 61 maxTimeOffset); 73 62 } 74 63 75 public static FunctionLibrary Create( bool differentialAllowed,int minTimeOffset, int maxTimeOffset) {64 public static FunctionLibrary Create(int minTimeOffset, int maxTimeOffset) { 76 65 FunctionLibrary functionLibrary = new FunctionLibrary(); 77 66 … … 91 80 Tangens tangens = new Tangens(); 92 81 93 List<IFunction> valueNodes = new List<IFunction>(); 94 if (differentialAllowed) valueNodes.Add(differential); 95 valueNodes.Add(variable); 96 valueNodes.Add(constant); 82 List<IFunction> valueNodes = new List<IFunction>() { 83 differential, variable, constant 84 }; 85 List<IFunction> arithmeticFunctions = new List<IFunction>() { 86 addition, division, multiplication, subtraction, 87 }; 97 88 98 List<IFunction> arithmeticFunctions = new List<IFunction>(); 99 arithmeticFunctions.Add(addition); 100 arithmeticFunctions.Add(division); 101 arithmeticFunctions.Add(multiplication); 102 arithmeticFunctions.Add(subtraction); 103 104 List<IFunction> complexFunctions = new List<IFunction>(); 105 complexFunctions.Add(cosinus); 106 complexFunctions.Add(exponential); 107 complexFunctions.Add(logarithm); 108 complexFunctions.Add(power); 109 complexFunctions.Add(sinus); 110 complexFunctions.Add(sqrt); 111 complexFunctions.Add(tangens); 89 List<IFunction> complexFunctions = new List<IFunction>() { 90 cosinus, exponential, logarithm, power, sinus, sqrt, tangens 91 }; 112 92 113 93 List<IFunction> allFunctions = new List<IFunction>(); … … 129 109 SetAllowedSubOperators(tangens, valueNodes); 130 110 131 if (differentialAllowed) functionLibrary.AddFunction(differential);132 133 111 allFunctions.ForEach(x => functionLibrary.AddFunction(x)); 134 112 -
trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/FunctionLibraryInjectors/UnconstrainedFunctionLibraryInjector.cs
r2566 r2728 32 32 public const string MAXTIMEOFFSET = "MaxTimeOffset"; 33 33 34 public const string DIFFERENTIALS_ALLOWED = "Differentials"; 35 public const string VARIABLES_ALLOWED = "Variables"; 36 public const string CONSTANTS_ALLOWED = "Constants"; 37 public const string ADDITION_ALLOWED = "Addition"; 38 public const string AVERAGE_ALLOWED = "Average"; 39 public const string AND_ALLOWED = "And"; 40 public const string COSINUS_ALLOWED = "Cosinus"; 41 public const string DIVISION_ALLOWED = "Division"; 42 public const string EQUAL_ALLOWED = "Equal"; 43 public const string EXPONENTIAL_ALLOWED = "Exponential"; 44 public const string GREATERTHAN_ALLOWED = "GreaterThan"; 45 public const string IFTHENELSE_ALLOWED = "IfThenElse"; 46 public const string LESSTHAN_ALLOWED = "LessThan"; 47 public const string LOGARTIHM_ALLOWED = "Logarithm"; 48 public const string MULTIPLICATION_ALLOWED = "Multiplication"; 49 public const string NOT_ALLOWED = "Not"; 50 public const string POWER_ALLOWED = "Power"; 51 public const string OR_ALLOWED = "Or"; 52 public const string SIGNUM_ALLOWED = "Signum"; 53 public const string SINUS_ALLOWED = "Sinus"; 54 public const string SQRT_ALLOWED = "SquareRoot"; 55 public const string SUBTRACTION_ALLOWED = "Subtraction"; 56 public const string TANGENS_ALLOWED = "Tangens"; 57 public const string XOR_ALLOWED = "Xor"; private int minTimeOffset; 34 private int minTimeOffset; 58 35 private int maxTimeOffset; 59 36 … … 66 43 AddVariableInfo(new VariableInfo(MINTIMEOFFSET, "Minimal time offset for all features", typeof(IntData), VariableKind.In)); 67 44 AddVariableInfo(new VariableInfo(MAXTIMEOFFSET, "Maximal time offset for all feature", typeof(IntData), VariableKind.In)); 68 69 AddVariable(DIFFERENTIALS_ALLOWED, false);70 AddVariable(VARIABLES_ALLOWED, true);71 AddVariable(CONSTANTS_ALLOWED, true);72 AddVariable(ADDITION_ALLOWED, true);73 AddVariable(AVERAGE_ALLOWED, false);74 AddVariable(AND_ALLOWED, true);75 AddVariable(COSINUS_ALLOWED, true);76 AddVariable(DIVISION_ALLOWED, true);77 AddVariable(EQUAL_ALLOWED, true);78 AddVariable(EXPONENTIAL_ALLOWED, true);79 AddVariable(GREATERTHAN_ALLOWED, true);80 AddVariable(IFTHENELSE_ALLOWED, true);81 AddVariable(LESSTHAN_ALLOWED, true);82 AddVariable(LOGARTIHM_ALLOWED, true);83 AddVariable(MULTIPLICATION_ALLOWED, true);84 AddVariable(NOT_ALLOWED, true);85 AddVariable(POWER_ALLOWED, true);86 AddVariable(OR_ALLOWED, true);87 AddVariable(SIGNUM_ALLOWED, true);88 AddVariable(SINUS_ALLOWED, true);89 AddVariable(SQRT_ALLOWED, true);90 AddVariable(SUBTRACTION_ALLOWED, true);91 AddVariable(TANGENS_ALLOWED, true);92 AddVariable(XOR_ALLOWED, false);93 }94 95 private void AddVariable(string name, bool allowed) {96 AddVariableInfo(new VariableInfo(name, name + " allowed", typeof(BoolData), Core.VariableKind.New));97 GetVariableInfo(name).Local = true;98 AddVariable(new Core.Variable(name, new BoolData(allowed)));99 45 } 100 46 … … 138 84 Xor xor = new Xor(); 139 85 140 List<IFunction> doubleFunctions = new List<IFunction>(); 141 ConditionalAddFunction(DIFFERENTIALS_ALLOWED, differential, doubleFunctions); 142 ConditionalAddFunction(VARIABLES_ALLOWED, variable, doubleFunctions); 143 ConditionalAddFunction(CONSTANTS_ALLOWED, constant, doubleFunctions); 144 ConditionalAddFunction(ADDITION_ALLOWED, addition, doubleFunctions); 145 ConditionalAddFunction(AVERAGE_ALLOWED, average, doubleFunctions); 146 ConditionalAddFunction(COSINUS_ALLOWED, cosinus, doubleFunctions); 147 ConditionalAddFunction(DIVISION_ALLOWED, division, doubleFunctions); 148 ConditionalAddFunction(EXPONENTIAL_ALLOWED, exponential, doubleFunctions); 149 ConditionalAddFunction(IFTHENELSE_ALLOWED, ifThenElse, doubleFunctions); 150 ConditionalAddFunction(LOGARTIHM_ALLOWED, logarithm, doubleFunctions); 151 ConditionalAddFunction(MULTIPLICATION_ALLOWED, multiplication, doubleFunctions); 152 ConditionalAddFunction(POWER_ALLOWED, power, doubleFunctions); 153 ConditionalAddFunction(SIGNUM_ALLOWED, signum, doubleFunctions); 154 ConditionalAddFunction(SINUS_ALLOWED, sinus, doubleFunctions); 155 ConditionalAddFunction(SQRT_ALLOWED, sqrt, doubleFunctions); 156 ConditionalAddFunction(SUBTRACTION_ALLOWED, subtraction, doubleFunctions); 157 ConditionalAddFunction(TANGENS_ALLOWED, tangens, doubleFunctions); 158 ConditionalAddFunction(AND_ALLOWED, and, doubleFunctions); 159 ConditionalAddFunction(EQUAL_ALLOWED, equal, doubleFunctions); 160 ConditionalAddFunction(GREATERTHAN_ALLOWED, greaterThan, doubleFunctions); 161 ConditionalAddFunction(LESSTHAN_ALLOWED, lessThan, doubleFunctions); 162 ConditionalAddFunction(NOT_ALLOWED, not, doubleFunctions); 163 ConditionalAddFunction(OR_ALLOWED, or, doubleFunctions); 164 ConditionalAddFunction(XOR_ALLOWED, xor, doubleFunctions); 165 86 List<IFunction> doubleFunctions = new List<IFunction>() { 87 differential, variable, constant, addition, average, cosinus, division, exponential, ifThenElse,logarithm, multiplication, 88 power, signum, sinus, sqrt, subtraction, tangens, and, equal, greaterThan, lessThan, not, or, xor 89 }; 166 90 167 91 SetAllowedSubOperators(and, doubleFunctions); … … 187 111 SetAllowedSubOperators(tangens, doubleFunctions); 188 112 189 ConditionalAddOperator(DIFFERENTIALS_ALLOWED, functionLibrary, differential); 190 ConditionalAddOperator(VARIABLES_ALLOWED, functionLibrary, variable); 191 ConditionalAddOperator(CONSTANTS_ALLOWED, functionLibrary, constant); 192 ConditionalAddOperator(ADDITION_ALLOWED, functionLibrary, addition); 193 ConditionalAddOperator(AVERAGE_ALLOWED, functionLibrary, average); 194 ConditionalAddOperator(AND_ALLOWED, functionLibrary, and); 195 ConditionalAddOperator(COSINUS_ALLOWED, functionLibrary, cosinus); 196 ConditionalAddOperator(DIVISION_ALLOWED, functionLibrary, division); 197 ConditionalAddOperator(EQUAL_ALLOWED, functionLibrary, equal); 198 ConditionalAddOperator(EXPONENTIAL_ALLOWED, functionLibrary, exponential); 199 ConditionalAddOperator(GREATERTHAN_ALLOWED, functionLibrary, greaterThan); 200 ConditionalAddOperator(IFTHENELSE_ALLOWED, functionLibrary, ifThenElse); 201 ConditionalAddOperator(LESSTHAN_ALLOWED, functionLibrary, lessThan); 202 ConditionalAddOperator(LOGARTIHM_ALLOWED, functionLibrary, logarithm); 203 ConditionalAddOperator(MULTIPLICATION_ALLOWED, functionLibrary, multiplication); 204 ConditionalAddOperator(NOT_ALLOWED, functionLibrary, not); 205 ConditionalAddOperator(POWER_ALLOWED, functionLibrary, power); 206 ConditionalAddOperator(OR_ALLOWED, functionLibrary, or); 207 ConditionalAddOperator(SIGNUM_ALLOWED, functionLibrary, signum); 208 ConditionalAddOperator(SINUS_ALLOWED, functionLibrary, sinus); 209 ConditionalAddOperator(SQRT_ALLOWED, functionLibrary, sqrt); 210 ConditionalAddOperator(SUBTRACTION_ALLOWED, functionLibrary, subtraction); 211 ConditionalAddOperator(TANGENS_ALLOWED, functionLibrary, tangens); 212 ConditionalAddOperator(XOR_ALLOWED, functionLibrary, xor); 113 doubleFunctions.ForEach(fun => functionLibrary.AddFunction(fun)); 213 114 214 115 variable.SetConstraints(minTimeOffset, maxTimeOffset);
Note: See TracChangeset
for help on using the changeset viewer.