Changeset 14744 for branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problems.ProgramSynthesis/Push/Expressions/RandExpressions.cs
- Timestamp:
- 03/10/17 21:42:09 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problems.ProgramSynthesis/Push/Expressions/RandExpressions.cs
r14733 r14744 10 10 [PushExpression(StackType.Name, "NAME.RAND")] 11 11 public class NameRandExpression : StatelessExpression { 12 public override voidEval(IPushInterpreter interpreter) {12 public override bool Eval(IPushInterpreter interpreter) { 13 13 var name = NameGenerator.RandomName(interpreter.Random); 14 14 15 15 interpreter.NameStack.Push(name); 16 return true; 16 17 } 17 18 } … … 22 23 [PushExpression(StackType.Integer, "INTEGER.RAND")] 23 24 public class IntegerRandExpression : StatelessExpression { 24 public override voidEval(IPushInterpreter interpreter) {25 public override bool Eval(IPushInterpreter interpreter) { 25 26 var value = interpreter.Random.Next( 26 27 interpreter.Configuration.MinRandomInteger, … … 28 29 29 30 interpreter.IntegerStack.Push(value); 31 return true; 30 32 } 31 33 } … … 36 38 [PushExpression(StackType.Float, "FLOAT.RAND")] 37 39 public class FloatRandExpression : StatelessExpression { 38 public override voidEval(IPushInterpreter interpreter) {40 public override bool Eval(IPushInterpreter interpreter) { 39 41 var value = interpreter.Random.NextDouble() * (interpreter.Configuration.MaxRandomFloat - interpreter.Configuration.MinRandomFloat) + interpreter.Configuration.MinRandomFloat; 40 42 41 43 interpreter.FloatStack.Push(value); 44 return true; 42 45 } 43 46 } … … 48 51 [PushExpression(StackType.Boolean, "BOOLEAN.RAND")] 49 52 public class BooleanRandExpression : StatelessExpression { 50 public override voidEval(IPushInterpreter interpreter) {53 public override bool Eval(IPushInterpreter interpreter) { 51 54 var value = interpreter.Random.NextDouble() > 0.5; 52 55 53 56 interpreter.BooleanStack.Push(value); 57 return true; 54 58 } 55 59 } … … 60 64 [PushExpression(StackType.Code, "CODE.RAND")] 61 65 public class CodeRandExpression : StatelessExpression { 62 public override voidEval(IPushInterpreter interpreter) {66 public override bool Eval(IPushInterpreter interpreter) { 63 67 if (interpreter.IntegerStack.Count == 0 || 64 interpreter.IntegerStack.Top < 1) return ;68 interpreter.IntegerStack.Top < 1) return false; 65 69 66 70 var size = (int)(interpreter.IntegerStack.Pop() % interpreter.Configuration.MaxPointsInRandomExpression); 67 var program = CodeGenerator.RandomExpandExpression(size, interpreter.Random, interpreter.Configuration, interpreter.CustomExpressions); 71 var program = CodeGenerator.RandomExpandExpression( 72 size, 73 interpreter.Random, 74 interpreter.Configuration, 75 interpreter.CustomExpressions); 68 76 69 77 interpreter.CodeStack.Push(program); 78 return true; 70 79 } 71 80 }
Note: See TracChangeset
for help on using the changeset viewer.