Average Error: 0.2 → 0.2
Time: 6.1s
Precision: 64
\[\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 + a\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)\right) - 1\]
\[\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 + a\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)\right) - 1\]
\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 + a\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)\right) - 1
\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 + a\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)\right) - 1
double f(double a, double b) {
        double r269632 = a;
        double r269633 = r269632 * r269632;
        double r269634 = b;
        double r269635 = r269634 * r269634;
        double r269636 = r269633 + r269635;
        double r269637 = 2.0;
        double r269638 = pow(r269636, r269637);
        double r269639 = 4.0;
        double r269640 = 1.0;
        double r269641 = r269640 + r269632;
        double r269642 = r269633 * r269641;
        double r269643 = 3.0;
        double r269644 = r269643 * r269632;
        double r269645 = r269640 - r269644;
        double r269646 = r269635 * r269645;
        double r269647 = r269642 + r269646;
        double r269648 = r269639 * r269647;
        double r269649 = r269638 + r269648;
        double r269650 = r269649 - r269640;
        return r269650;
}

double f(double a, double b) {
        double r269651 = a;
        double r269652 = r269651 * r269651;
        double r269653 = b;
        double r269654 = r269653 * r269653;
        double r269655 = r269652 + r269654;
        double r269656 = 2.0;
        double r269657 = pow(r269655, r269656);
        double r269658 = 4.0;
        double r269659 = 1.0;
        double r269660 = r269659 + r269651;
        double r269661 = r269652 * r269660;
        double r269662 = 3.0;
        double r269663 = r269662 * r269651;
        double r269664 = r269659 - r269663;
        double r269665 = r269654 * r269664;
        double r269666 = r269661 + r269665;
        double r269667 = r269658 * r269666;
        double r269668 = r269657 + r269667;
        double r269669 = r269668 - r269659;
        return r269669;
}

Error

Bits error versus a

Bits error versus b

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.2

    \[\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 + a\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)\right) - 1\]
  2. Final simplification0.2

    \[\leadsto \left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 + a\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)\right) - 1\]

Reproduce

herbie shell --seed 2020083 
(FPCore (a b)
  :name "Bouland and Aaronson, Equation (25)"
  :precision binary64
  (- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (+ (* (* a a) (+ 1 a)) (* (* b b) (- 1 (* 3 a)))))) 1))