Average Error: 0.2 → 0.2
Time: 27.6s
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(3 + a\right)\right)\right) - 1\]
\[\sqrt{{\left(a \cdot a + b \cdot b\right)}^{2} + \left(\left(a + 3\right) \cdot \left(b \cdot b\right) + \left(a \cdot a\right) \cdot \left(1 - a\right)\right) \cdot 4} \cdot \sqrt{{\left(a \cdot a + b \cdot b\right)}^{2} + \left(\left(a + 3\right) \cdot \left(b \cdot b\right) + \left(a \cdot a\right) \cdot \left(1 - a\right)\right) \cdot 4} - 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(3 + a\right)\right)\right) - 1
\sqrt{{\left(a \cdot a + b \cdot b\right)}^{2} + \left(\left(a + 3\right) \cdot \left(b \cdot b\right) + \left(a \cdot a\right) \cdot \left(1 - a\right)\right) \cdot 4} \cdot \sqrt{{\left(a \cdot a + b \cdot b\right)}^{2} + \left(\left(a + 3\right) \cdot \left(b \cdot b\right) + \left(a \cdot a\right) \cdot \left(1 - a\right)\right) \cdot 4} - 1
double f(double a, double b) {
        double r80036961 = a;
        double r80036962 = r80036961 * r80036961;
        double r80036963 = b;
        double r80036964 = r80036963 * r80036963;
        double r80036965 = r80036962 + r80036964;
        double r80036966 = 2.0;
        double r80036967 = pow(r80036965, r80036966);
        double r80036968 = 4.0;
        double r80036969 = 1.0;
        double r80036970 = r80036969 - r80036961;
        double r80036971 = r80036962 * r80036970;
        double r80036972 = 3.0;
        double r80036973 = r80036972 + r80036961;
        double r80036974 = r80036964 * r80036973;
        double r80036975 = r80036971 + r80036974;
        double r80036976 = r80036968 * r80036975;
        double r80036977 = r80036967 + r80036976;
        double r80036978 = r80036977 - r80036969;
        return r80036978;
}

double f(double a, double b) {
        double r80036979 = a;
        double r80036980 = r80036979 * r80036979;
        double r80036981 = b;
        double r80036982 = r80036981 * r80036981;
        double r80036983 = r80036980 + r80036982;
        double r80036984 = 2.0;
        double r80036985 = pow(r80036983, r80036984);
        double r80036986 = 3.0;
        double r80036987 = r80036979 + r80036986;
        double r80036988 = r80036987 * r80036982;
        double r80036989 = 1.0;
        double r80036990 = r80036989 - r80036979;
        double r80036991 = r80036980 * r80036990;
        double r80036992 = r80036988 + r80036991;
        double r80036993 = 4.0;
        double r80036994 = r80036992 * r80036993;
        double r80036995 = r80036985 + r80036994;
        double r80036996 = sqrt(r80036995);
        double r80036997 = r80036996 * r80036996;
        double r80036998 = r80036997 - r80036989;
        return r80036998;
}

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(3 + a\right)\right)\right) - 1\]
  2. Using strategy rm
  3. Applied add-sqr-sqrt0.2

    \[\leadsto \color{blue}{\sqrt{{\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(3 + a\right)\right)} \cdot \sqrt{{\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(3 + a\right)\right)}} - 1\]
  4. Final simplification0.2

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

Reproduce

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