/**
   * wumm
   *
   * @param wt
   * @param op
   */
  public QuaternaryOperator(WUMMType wt, String op) {
    wtype5 = wt;

    if (op.equals("^2")) fn = Power2.getPower2FnObject();
    else if (op.equals("*2")) fn = Multiply2.getMultiply2FnObject();
    else fn = Builtin.getBuiltinFnObject(op);
  }
  public CumulativeOffsetInstruction(byte in1, byte in2, byte out, String opcode, String istr) {
    super(null, in1, in2, out, istr);

    if ("bcumoffk+".equals(opcode)) {
      _bop = new BinaryOperator(Plus.getPlusFnObject());
      _uop = new UnaryOperator(Builtin.getBuiltinFnObject("ucumk+"));
    } else if ("bcumoff*".equals(opcode)) {
      _bop = new BinaryOperator(Multiply.getMultiplyFnObject());
      _uop = new UnaryOperator(Builtin.getBuiltinFnObject("ucum*"));
    } else if ("bcumoffmin".equals(opcode)) {
      _bop = new BinaryOperator(Builtin.getBuiltinFnObject("min"));
      _uop = new UnaryOperator(Builtin.getBuiltinFnObject("ucummin"));
    } else if ("bcumoffmax".equals(opcode)) {
      _bop = new BinaryOperator(Builtin.getBuiltinFnObject("max"));
      _uop = new UnaryOperator(Builtin.getBuiltinFnObject("ucummax"));
    }
  }
 /**
  * wsigmoid
  *
  * @param wt
  */
 public QuaternaryOperator(WSigmoidType wt) {
   wtype2 = wt;
   fn = Builtin.getBuiltinFnObject("sigmoid");
 }