Changeset 15017 for branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problems.ProgramSynthesis/Push/Expressions/VectorReplaceFirstExpressions.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/VectorReplaceFirstExpressions.cs
r14952 r15017 17 17 protected VectorReplaceFirstExpression(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.Count < 2; 21 21 } 22 22 23 protected void Eval(IPushStack< List<T>> vectorStack, IPushStack<T> literalStack) {23 protected void Eval(IPushStack<IReadOnlyList<T>> vectorStack, IPushStack<T> literalStack) { 24 24 var vector = vectorStack.Top; 25 25 var first = literalStack.Top; 26 26 var second = literalStack[1]; 27 var index = vector.IndexOf(second);28 27 literalStack.Remove(2); 29 28 30 if (index >= 0) 31 vector[index] = first; 29 var index = -1; 30 for (var i = 0; i < vector.Count && index < 0; i++) { 31 if (vector[i].Equals(second)) { 32 index = i; 33 break; 34 } 35 } 36 37 if (index >= 0) { 38 var result = new List<T>(vector); 39 result[index] = first; 40 vectorStack.Top = result; 41 } 32 42 } 33 43 }
Note: See TracChangeset
for help on using the changeset viewer.