Exemplo n.º 1
0
 @Override
 public IntVar intVar() {
   if (me == null) {
     IntVar v = e.intVar();
     switch (op) {
       case NEG:
         me = model.intMinusView(v);
         break;
       case ABS:
         me = model.intAbsView(v);
         break;
       case SQR:
         int[] bounds = VariableUtils.boundsForMultiplication(v, v);
         me = model.intVar(model.generateName("sqr_exp_"), bounds[0], bounds[1]);
         model.times(v, v, me).post();
         break;
       default:
         throw new UnsupportedOperationException(
             "Unary arithmetic expressions does not support " + op.name());
     }
   }
   return me;
 }
Exemplo n.º 2
0
 @Override
 public String toString() {
   return op.name() + "(" + e.toString() + ")";
 }
Exemplo n.º 3
0
 @Override
 public int eval(int[] values, Map<IntVar, Integer> map) {
   return op.eval(e.eval(values, map));
 }
Exemplo n.º 4
0
 /**
  * Builds a unary expression
  *
  * @param op operator
  * @param exp an arithmetic expression
  */
 public UnArExpression(Operator op, ArExpression exp) {
   this.op = op;
   this.e = exp;
   this.model = e.getModel();
 }