Average Error: 0.2 → 0.2
Time: 7.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\]
\[\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 r159995 = a;
        double r159996 = r159995 * r159995;
        double r159997 = b;
        double r159998 = r159997 * r159997;
        double r159999 = r159996 + r159998;
        double r160000 = 2.0;
        double r160001 = pow(r159999, r160000);
        double r160002 = 4.0;
        double r160003 = 1.0;
        double r160004 = r160003 + r159995;
        double r160005 = r159996 * r160004;
        double r160006 = 3.0;
        double r160007 = r160006 * r159995;
        double r160008 = r160003 - r160007;
        double r160009 = r159998 * r160008;
        double r160010 = r160005 + r160009;
        double r160011 = r160002 * r160010;
        double r160012 = r160001 + r160011;
        double r160013 = r160012 - r160003;
        return r160013;
}

double f(double a, double b) {
        double r160014 = a;
        double r160015 = r160014 * r160014;
        double r160016 = b;
        double r160017 = r160016 * r160016;
        double r160018 = r160015 + r160017;
        double r160019 = 2.0;
        double r160020 = pow(r160018, r160019);
        double r160021 = 4.0;
        double r160022 = 1.0;
        double r160023 = r160022 + r160014;
        double r160024 = r160015 * r160023;
        double r160025 = 3.0;
        double r160026 = r160025 * r160014;
        double r160027 = r160022 - r160026;
        double r160028 = r160017 * r160027;
        double r160029 = r160024 + r160028;
        double r160030 = r160021 * r160029;
        double r160031 = r160020 + r160030;
        double r160032 = sqrt(r160031);
        double r160033 = r160032 * r160032;
        double r160034 = r160033 - r160022;
        return r160034;
}

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 2020035 
(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))