Changeset 15017 for branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problems.ProgramSynthesis/Push/Expressions/VectorIndexOfExpressions.cs
- Timestamp:
- 06/01/17 09:28:34 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problems.ProgramSynthesis/Push/Expressions/VectorIndexOfExpressions.cs
r14952 r15017 17 17 protected VectorIndexOfExpression(bool deserializing) : base(deserializing) { } 18 18 19 protected bool IsNoop(IPushStack< List<T>> vectorStack, IPushStack<T> literalStack) {19 protected bool IsNoop(IPushStack<IReadOnlyList<T>> vectorStack, IPushStack<T> literalStack) { 20 20 return vectorStack.IsEmpty || literalStack.IsEmpty; 21 21 } … … 23 23 protected void Eval( 24 24 IInternalPushInterpreter interpreter, 25 IPushStack< List<T>> vectorStack,25 IPushStack<IReadOnlyList<T>> vectorStack, 26 26 IPushStack<T> literalStack, 27 27 bool canOverride = false) { 28 28 var vector = vectorStack.Pop(); 29 29 var literal = canOverride ? literalStack.Top : literalStack.Pop(); 30 var result = vector.IndexOf(literal);31 30 32 if (canOverride) interpreter.IntegerStack.SetTop(result); 33 else interpreter.IntegerStack.Push(result); 31 var index = -1; 32 for (var i = 0; i < vector.Count && index < 0; i++) { 33 if (vector[i].Equals(literal)) { 34 index = i; 35 break; 36 } 37 } 38 39 if (canOverride) interpreter.IntegerStack.Top = index; 40 else interpreter.IntegerStack.Push(index); 34 41 } 35 42 }
Note: See TracChangeset
for help on using the changeset viewer.