Average Error: 0.2 → 0.2
Time: 45.2s
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(4 \cdot \left(\left(1 - 3 \cdot a\right) \cdot \left(b \cdot b\right) + \left(a + 1\right) \cdot \left(a \cdot a\right)\right) + {\left(b \cdot b + a \cdot a\right)}^{2}\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(4 \cdot \left(\left(1 - 3 \cdot a\right) \cdot \left(b \cdot b\right) + \left(a + 1\right) \cdot \left(a \cdot a\right)\right) + {\left(b \cdot b + a \cdot a\right)}^{2}\right) - 1
double f(double a, double b) {
        double r11316028 = a;
        double r11316029 = r11316028 * r11316028;
        double r11316030 = b;
        double r11316031 = r11316030 * r11316030;
        double r11316032 = r11316029 + r11316031;
        double r11316033 = 2.0;
        double r11316034 = pow(r11316032, r11316033);
        double r11316035 = 4.0;
        double r11316036 = 1.0;
        double r11316037 = r11316036 + r11316028;
        double r11316038 = r11316029 * r11316037;
        double r11316039 = 3.0;
        double r11316040 = r11316039 * r11316028;
        double r11316041 = r11316036 - r11316040;
        double r11316042 = r11316031 * r11316041;
        double r11316043 = r11316038 + r11316042;
        double r11316044 = r11316035 * r11316043;
        double r11316045 = r11316034 + r11316044;
        double r11316046 = r11316045 - r11316036;
        return r11316046;
}

double f(double a, double b) {
        double r11316047 = 4.0;
        double r11316048 = 1.0;
        double r11316049 = 3.0;
        double r11316050 = a;
        double r11316051 = r11316049 * r11316050;
        double r11316052 = r11316048 - r11316051;
        double r11316053 = b;
        double r11316054 = r11316053 * r11316053;
        double r11316055 = r11316052 * r11316054;
        double r11316056 = r11316050 + r11316048;
        double r11316057 = r11316050 * r11316050;
        double r11316058 = r11316056 * r11316057;
        double r11316059 = r11316055 + r11316058;
        double r11316060 = r11316047 * r11316059;
        double r11316061 = r11316054 + r11316057;
        double r11316062 = 2.0;
        double r11316063 = pow(r11316061, r11316062);
        double r11316064 = r11316060 + r11316063;
        double r11316065 = r11316064 - r11316048;
        return r11316065;
}

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(4 \cdot \left(\left(1 - 3 \cdot a\right) \cdot \left(b \cdot b\right) + \left(a + 1\right) \cdot \left(a \cdot a\right)\right) + {\left(b \cdot b + a \cdot a\right)}^{2}\right) - 1\]

Reproduce

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