Esempio n. 1
0
 @Override
 public void visitBinaryOperation(BinaryOperation binaryOperation) {
   incr();
   space();
   System.out.println("Binary operator: " + binaryOperation.getType());
   binaryOperation.getLeftExpression().accept(this);
   binaryOperation.getRightExpression().accept(this);
   decr();
 }
Esempio n. 2
0
  public static <T> Matrix<T> product(Matrix<T> A, Matrix<T> B) {
    if (A.ring != B.ring || A.n != B.m) throw new IllegalArgumentException();
    BinaryOperation<T> addition = A.ring.addition();
    BinaryOperation<T> times = A.ring.multiplication();

    Matrix<T> product = new Matrix<T>(A.ring, A.m, B.n);
    for (int i = 0; i < A.m; i++)
      for (int k = 0; k < B.n; k++) {
        T t = A.zero;
        for (int j = 0; j < A.n; j++) t = addition.op(t, times.op(A.get(i, j), B.get(j, k)));
        product.set(i, k, t);
      }
    return product;
  }
  private Formula readInfixP1() throws ParseException {
    Formula left = readInfixP2();

    char c = peek(0);
    LinkedList<BinaryOperation> parts = new LinkedList<>();
    while (c == '+' || c == '-') {
      String op = Character.toString(c);
      readSymbol(op);
      Formula part = readInfixP2();
      parts.add(new BinaryOperation(BinaryOperation.fromSymbol(op), null, part));
      c = peek(0);
    }

    Formula result = left;
    while (!parts.isEmpty()) {
      BinaryOperation part = parts.removeFirst();
      result = new BinaryOperation(part.getOperation(), result, part.getRight());
    }
    return result;
  }
 public int operate(int op1, int op2) {
   return addition.operate(op1, op2);
 }
Esempio n. 5
0
 @Override
 public void setRight(ASTNode node) {
   super.setRight(node);
 }
 @Override
 public void visitBinaryOperation(BinaryOperation binaryOperation) {
   binaryOperation.getLeftExpression().accept(this);
   binaryOperation.getRightExpression().accept(this);
 }