Average Error: 0.2 → 0.2
Time: 20.1s
Precision: 64
\[\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)\right) - 1\]
\[\left(b \cdot b\right) \cdot 4 + \left({\left(a \cdot a + b \cdot b\right)}^{2} - 1\right)\]
\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)\right) - 1
\left(b \cdot b\right) \cdot 4 + \left({\left(a \cdot a + b \cdot b\right)}^{2} - 1\right)
double f(double a, double b) {
        double r248069 = a;
        double r248070 = r248069 * r248069;
        double r248071 = b;
        double r248072 = r248071 * r248071;
        double r248073 = r248070 + r248072;
        double r248074 = 2.0;
        double r248075 = pow(r248073, r248074);
        double r248076 = 4.0;
        double r248077 = r248076 * r248072;
        double r248078 = r248075 + r248077;
        double r248079 = 1.0;
        double r248080 = r248078 - r248079;
        return r248080;
}

double f(double a, double b) {
        double r248081 = b;
        double r248082 = r248081 * r248081;
        double r248083 = 4.0;
        double r248084 = r248082 * r248083;
        double r248085 = a;
        double r248086 = r248085 * r248085;
        double r248087 = r248086 + r248082;
        double r248088 = 2.0;
        double r248089 = pow(r248087, r248088);
        double r248090 = 1.0;
        double r248091 = r248089 - r248090;
        double r248092 = r248084 + r248091;
        return r248092;
}

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. Simplified0.2

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

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

Reproduce

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