@Override public void visit(Inequality node) { traverseBinary(node); MvExpressions l = expressions.get(node.getLeft()); MvExpressions r = expressions.get(node.getRight()); MvExpressions result = createNewMvExpressions(); result.bladeExpressions[0] = new Inequality(l.bladeExpressions[0], r.bladeExpressions[0]); expressions.put(node, result); System.err.println("Warning: Inequality is only implemented for scalars!"); }
@Override public void visit(Inequality node) { result = null; node.getLeft().accept(this); Expression leftResult = result; node.getRight().accept(this); Expression rightResult = result; if (leftResult != null || rightResult != null) result = new Inequality(leftResult, rightResult); }
@Override public Expression copy() { return new Inequality(getLeft().copy(), getRight().copy()); }
@Override public void visit(Inequality node) { node.getLeft().accept(this); Expression left = resultExpr; node.getRight().accept(this); Expression right = resultExpr; resultExpr = new Inequality(left, right); if (isConstant(left) && isConstant(right)) { FloatConstant leftc = (FloatConstant) left; FloatConstant rightc = (FloatConstant) right; if (doubleEquals(leftc.getValue(), rightc.getValue())) { resultExpr = new FloatConstant(0.0f); } else { resultExpr = new FloatConstant(1.0f); } setGraphModified(); } }
result = new Inequality(l, r);