Average Error: 0.2 → 0.2
Time: 13.9s
Precision: 64
\[\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)\right) - 1\]
\[\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)\right) - 1\]
\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)\right) - 1
\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)\right) - 1
double f(double a, double b) {
        double r111802 = a;
        double r111803 = r111802 * r111802;
        double r111804 = b;
        double r111805 = r111804 * r111804;
        double r111806 = r111803 + r111805;
        double r111807 = 2.0;
        double r111808 = pow(r111806, r111807);
        double r111809 = 4.0;
        double r111810 = r111809 * r111805;
        double r111811 = r111808 + r111810;
        double r111812 = 1.0;
        double r111813 = r111811 - r111812;
        return r111813;
}

double f(double a, double b) {
        double r111814 = a;
        double r111815 = r111814 * r111814;
        double r111816 = b;
        double r111817 = r111816 * r111816;
        double r111818 = r111815 + r111817;
        double r111819 = 2.0;
        double r111820 = pow(r111818, r111819);
        double r111821 = 4.0;
        double r111822 = r111821 * r111817;
        double r111823 = r111820 + r111822;
        double r111824 = 1.0;
        double r111825 = r111823 - r111824;
        return r111825;
}

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(b \cdot b\right)\right) - 1\]
  2. Final simplification0.2

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

Reproduce

herbie shell --seed 2019195 
(FPCore (a b)
  :name "Bouland and Aaronson, Equation (26)"
  (- (+ (pow (+ (* a a) (* b b)) 2.0) (* 4.0 (* b b))) 1.0))