Average Error: 0.2 → 0.2
Time: 35.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({\left(a \cdot a + b \cdot b\right)}^{2} + \left(\left(a \cdot a\right) \cdot \left(a + 1\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right) \cdot 4\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} + \left(\left(a \cdot a\right) \cdot \left(a + 1\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right) \cdot 4\right) - 1
double f(double a, double b) {
        double r47198162 = a;
        double r47198163 = r47198162 * r47198162;
        double r47198164 = b;
        double r47198165 = r47198164 * r47198164;
        double r47198166 = r47198163 + r47198165;
        double r47198167 = 2.0;
        double r47198168 = pow(r47198166, r47198167);
        double r47198169 = 4.0;
        double r47198170 = 1.0;
        double r47198171 = r47198170 + r47198162;
        double r47198172 = r47198163 * r47198171;
        double r47198173 = 3.0;
        double r47198174 = r47198173 * r47198162;
        double r47198175 = r47198170 - r47198174;
        double r47198176 = r47198165 * r47198175;
        double r47198177 = r47198172 + r47198176;
        double r47198178 = r47198169 * r47198177;
        double r47198179 = r47198168 + r47198178;
        double r47198180 = r47198179 - r47198170;
        return r47198180;
}

double f(double a, double b) {
        double r47198181 = a;
        double r47198182 = r47198181 * r47198181;
        double r47198183 = b;
        double r47198184 = r47198183 * r47198183;
        double r47198185 = r47198182 + r47198184;
        double r47198186 = 2.0;
        double r47198187 = pow(r47198185, r47198186);
        double r47198188 = 1.0;
        double r47198189 = r47198181 + r47198188;
        double r47198190 = r47198182 * r47198189;
        double r47198191 = 3.0;
        double r47198192 = r47198191 * r47198181;
        double r47198193 = r47198188 - r47198192;
        double r47198194 = r47198184 * r47198193;
        double r47198195 = r47198190 + r47198194;
        double r47198196 = 4.0;
        double r47198197 = r47198195 * r47198196;
        double r47198198 = r47198187 + r47198197;
        double r47198199 = r47198198 - r47198188;
        return r47198199;
}

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

Reproduce

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