Average Error: 0.2 → 0.2
Time: 14.3s
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\]
\[\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(1 - 3 \cdot 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(1 - 3 \cdot a\right)\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
\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(1 - 3 \cdot 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(1 - 3 \cdot a\right)\right)} - 1
double f(double a, double b) {
        double r231975 = a;
        double r231976 = r231975 * r231975;
        double r231977 = b;
        double r231978 = r231977 * r231977;
        double r231979 = r231976 + r231978;
        double r231980 = 2.0;
        double r231981 = pow(r231979, r231980);
        double r231982 = 4.0;
        double r231983 = 1.0;
        double r231984 = r231983 + r231975;
        double r231985 = r231976 * r231984;
        double r231986 = 3.0;
        double r231987 = r231986 * r231975;
        double r231988 = r231983 - r231987;
        double r231989 = r231978 * r231988;
        double r231990 = r231985 + r231989;
        double r231991 = r231982 * r231990;
        double r231992 = r231981 + r231991;
        double r231993 = r231992 - r231983;
        return r231993;
}

double f(double a, double b) {
        double r231994 = a;
        double r231995 = r231994 * r231994;
        double r231996 = b;
        double r231997 = r231996 * r231996;
        double r231998 = r231995 + r231997;
        double r231999 = 2.0;
        double r232000 = pow(r231998, r231999);
        double r232001 = 4.0;
        double r232002 = 1.0;
        double r232003 = r232002 + r231994;
        double r232004 = r231995 * r232003;
        double r232005 = 3.0;
        double r232006 = r232005 * r231994;
        double r232007 = r232002 - r232006;
        double r232008 = r231997 * r232007;
        double r232009 = r232004 + r232008;
        double r232010 = r232001 * r232009;
        double r232011 = r232000 + r232010;
        double r232012 = sqrt(r232011);
        double r232013 = r232012 * r232012;
        double r232014 = r232013 - r232002;
        return r232014;
}

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. 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(1 - 3 \cdot 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(1 - 3 \cdot a\right)\right)}} - 1\]
  4. Final simplification0.2

    \[\leadsto \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(1 - 3 \cdot 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(1 - 3 \cdot a\right)\right)} - 1\]

Reproduce

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