コード例 #1
0
  @Override
  public Operand executeOperation(Stack<Expression> operands) throws ExpressionException {
    if (operands.size() < this.getCurrentOperands())
      throw new ExpressionException("Wrong number of given parameters");

    Apfloat value1 = Operand.extractNumber(operands.pop());

    return new Operand(new Apfloat(value1.intValue()));
  }
コード例 #2
0
 public Apfloat find(Apfloat a, Apfloat b, Apfloat accuracy) {
   accuracy = accuracy.divide(new Apfloat(100));
   Apfloat l2 = new Apfloat(2, Apfloat.INFINITE);
   Apfloat c = new Apfloat(Apfloat.INFINITE);
   int x = 0;
   while (b.subtract(a).compareTo(accuracy) >= 0) {
     x++;
     c = a.add(b).divide(l2);
     // nie uwzględniamy zera!
     // System.out.print(Function1.f(a));
     // System.out.println(Function1.f(c));
     if (Function1.f(a).signum() != Function1.f(c).signum()) {
       b = c;
     } else {
       a = c;
     }
   }
   System.out.println("Ilość kroków w metodzie połowienia wyniosła " + x);
   return c;
 }
コード例 #3
0
 private Apfloat prescaleArg(Apfloat x) {
   return x.divide(new Apfloat("2", precision)).multiply(ApfloatMath.pi(precision));
 }