Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
04/10/17 00:27:31 (7 years ago)
Author:
pkimmesw
Message:

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problems.ProgramSynthesis/Push/Expressions/SwapExpressions.cs

    r14777 r14834  
    11namespace HeuristicLab.Problems.ProgramSynthesis.Push.Expressions {
     2  using System.Collections.Generic;
     3
    24  using HeuristicLab.Problems.ProgramSynthesis.Push.Attributes;
    35
     
    1012  /// <typeparam name="T">Stacktype</typeparam>
    1113  public abstract class SwapExpression<T> : StatelessExpression {
    12     public bool Eval(IStack<T> stack) {
     14    public bool Eval(IPushStack<T> stack) {
    1315      if (stack.Count < 2)
    1416        return false;
     
    2123  [PushExpression(StackTypes.Integer, "INTEGER.SWAP")]
    2224  public class IntegerSwapExpression : SwapExpression<long> {
    23     public override bool Eval(IPushInterpreter interpreter) {
     25    public override bool Eval(IInternalPushInterpreter interpreter) {
    2426      return Eval(interpreter.IntegerStack);
    2527    }
     
    2830  [PushExpression(StackTypes.Float, "FLOAT.SWAP")]
    2931  public class FloatSwapExpression : SwapExpression<double> {
    30     public override bool Eval(IPushInterpreter interpreter) {
     32    public override bool Eval(IInternalPushInterpreter interpreter) {
    3133      return Eval(interpreter.FloatStack);
    3234    }
     
    3537  [PushExpression(StackTypes.Boolean, "BOOLEAN.SWAP")]
    3638  public class BooleanSwapExpression : SwapExpression<bool> {
    37     public override bool Eval(IPushInterpreter interpreter) {
     39    public override bool Eval(IInternalPushInterpreter interpreter) {
    3840      return Eval(interpreter.BooleanStack);
    3941    }
     
    4244  [PushExpression(StackTypes.Name, "NAME.SWAP")]
    4345  public class NameSwapExpression : SwapExpression<string> {
    44     public override bool Eval(IPushInterpreter interpreter) {
     46    public override bool Eval(IInternalPushInterpreter interpreter) {
    4547      return Eval(interpreter.NameStack);
    4648    }
     
    4951  [PushExpression(StackTypes.Exec, "EXEC.SWAP")]
    5052  public class ExecSwapExpression : SwapExpression<Expression> {
    51     public override bool Eval(IPushInterpreter interpreter) {
     53    public override bool Eval(IInternalPushInterpreter interpreter) {
    5254      return Eval(interpreter.ExecStack);
    5355    }
     
    5658  [PushExpression(StackTypes.Code, "CODE.SWAP")]
    5759  public class CodeSwapExpression : SwapExpression<Expression> {
    58     public override bool Eval(IPushInterpreter interpreter) {
     60    public override bool Eval(IInternalPushInterpreter interpreter) {
    5961      return Eval(interpreter.CodeStack);
    6062    }
     
    6365  [PushExpression(StackTypes.Char, "CHAR.SWAP")]
    6466  public class CharSwapExpression : SwapExpression<char> {
    65     public override bool Eval(IPushInterpreter interpreter) {
     67    public override bool Eval(IInternalPushInterpreter interpreter) {
    6668      return Eval(interpreter.CharStack);
    6769    }
     
    7072  [PushExpression(StackTypes.String, "STRING.SWAP")]
    7173  public class StringSwapExpression : SwapExpression<string> {
    72     public override bool Eval(IPushInterpreter interpreter) {
     74    public override bool Eval(IInternalPushInterpreter interpreter) {
    7375      return Eval(interpreter.StringStack);
    7476    }
    7577  }
     78
     79  [PushExpression(StackTypes.IntegerVector, "INTEGER[].SWAP")]
     80  public class IntegerVectorSwapExpression : SwapExpression<List<long>> {
     81    public override bool Eval(IInternalPushInterpreter interpreter) {
     82      return Eval(interpreter.IntegerVectorStack);
     83    }
     84  }
    7685}
Note: See TracChangeset for help on using the changeset viewer.