Average Error: 0.2 → 0.0
Time: 16.0s
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\]
\[{\left(\sqrt{a \cdot a + b \cdot b}\right)}^{4} - \left(1 - \left(\left(\left(a + 3\right) \cdot \left(b \cdot b\right) + a \cdot a\right) - a \cdot \left(a \cdot a\right)\right) \cdot 4\right)\]
\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
{\left(\sqrt{a \cdot a + b \cdot b}\right)}^{4} - \left(1 - \left(\left(\left(a + 3\right) \cdot \left(b \cdot b\right) + a \cdot a\right) - a \cdot \left(a \cdot a\right)\right) \cdot 4\right)
double f(double a, double b) {
        double r9343263 = a;
        double r9343264 = r9343263 * r9343263;
        double r9343265 = b;
        double r9343266 = r9343265 * r9343265;
        double r9343267 = r9343264 + r9343266;
        double r9343268 = 2.0;
        double r9343269 = pow(r9343267, r9343268);
        double r9343270 = 4.0;
        double r9343271 = 1.0;
        double r9343272 = r9343271 - r9343263;
        double r9343273 = r9343264 * r9343272;
        double r9343274 = 3.0;
        double r9343275 = r9343274 + r9343263;
        double r9343276 = r9343266 * r9343275;
        double r9343277 = r9343273 + r9343276;
        double r9343278 = r9343270 * r9343277;
        double r9343279 = r9343269 + r9343278;
        double r9343280 = r9343279 - r9343271;
        return r9343280;
}

double f(double a, double b) {
        double r9343281 = a;
        double r9343282 = r9343281 * r9343281;
        double r9343283 = b;
        double r9343284 = r9343283 * r9343283;
        double r9343285 = r9343282 + r9343284;
        double r9343286 = sqrt(r9343285);
        double r9343287 = 4.0;
        double r9343288 = pow(r9343286, r9343287);
        double r9343289 = 1.0;
        double r9343290 = 3.0;
        double r9343291 = r9343281 + r9343290;
        double r9343292 = r9343291 * r9343284;
        double r9343293 = r9343292 + r9343282;
        double r9343294 = r9343281 * r9343282;
        double r9343295 = r9343293 - r9343294;
        double r9343296 = r9343295 * r9343287;
        double r9343297 = r9343289 - r9343296;
        double r9343298 = r9343288 - r9343297;
        return r9343298;
}

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. Simplified0.2

    \[\leadsto \color{blue}{\left(a \cdot a + b \cdot b\right) \cdot \left(a \cdot a + b \cdot b\right) - \left(1 - 4 \cdot \left(\left(\left(b \cdot b\right) \cdot \left(3 + a\right) + a \cdot a\right) - a \cdot \left(a \cdot a\right)\right)\right)}\]
  3. Using strategy rm
  4. Applied add-sqr-sqrt0.2

    \[\leadsto \left(a \cdot a + b \cdot b\right) \cdot \color{blue}{\left(\sqrt{a \cdot a + b \cdot b} \cdot \sqrt{a \cdot a + b \cdot b}\right)} - \left(1 - 4 \cdot \left(\left(\left(b \cdot b\right) \cdot \left(3 + a\right) + a \cdot a\right) - a \cdot \left(a \cdot a\right)\right)\right)\]
  5. Applied associate-*r*0.1

    \[\leadsto \color{blue}{\left(\left(a \cdot a + b \cdot b\right) \cdot \sqrt{a \cdot a + b \cdot b}\right) \cdot \sqrt{a \cdot a + b \cdot b}} - \left(1 - 4 \cdot \left(\left(\left(b \cdot b\right) \cdot \left(3 + a\right) + a \cdot a\right) - a \cdot \left(a \cdot a\right)\right)\right)\]
  6. Using strategy rm
  7. Applied add-sqr-sqrt0.1

    \[\leadsto \left(\color{blue}{\left(\sqrt{a \cdot a + b \cdot b} \cdot \sqrt{a \cdot a + b \cdot b}\right)} \cdot \sqrt{a \cdot a + b \cdot b}\right) \cdot \sqrt{a \cdot a + b \cdot b} - \left(1 - 4 \cdot \left(\left(\left(b \cdot b\right) \cdot \left(3 + a\right) + a \cdot a\right) - a \cdot \left(a \cdot a\right)\right)\right)\]
  8. Applied pow30.1

    \[\leadsto \color{blue}{{\left(\sqrt{a \cdot a + b \cdot b}\right)}^{3}} \cdot \sqrt{a \cdot a + b \cdot b} - \left(1 - 4 \cdot \left(\left(\left(b \cdot b\right) \cdot \left(3 + a\right) + a \cdot a\right) - a \cdot \left(a \cdot a\right)\right)\right)\]
  9. Using strategy rm
  10. Applied pow10.1

    \[\leadsto {\left(\sqrt{a \cdot a + b \cdot b}\right)}^{3} \cdot \color{blue}{{\left(\sqrt{a \cdot a + b \cdot b}\right)}^{1}} - \left(1 - 4 \cdot \left(\left(\left(b \cdot b\right) \cdot \left(3 + a\right) + a \cdot a\right) - a \cdot \left(a \cdot a\right)\right)\right)\]
  11. Applied pow-prod-up0.0

    \[\leadsto \color{blue}{{\left(\sqrt{a \cdot a + b \cdot b}\right)}^{\left(3 + 1\right)}} - \left(1 - 4 \cdot \left(\left(\left(b \cdot b\right) \cdot \left(3 + a\right) + a \cdot a\right) - a \cdot \left(a \cdot a\right)\right)\right)\]
  12. Simplified0.0

    \[\leadsto {\left(\sqrt{a \cdot a + b \cdot b}\right)}^{\color{blue}{4}} - \left(1 - 4 \cdot \left(\left(\left(b \cdot b\right) \cdot \left(3 + a\right) + a \cdot a\right) - a \cdot \left(a \cdot a\right)\right)\right)\]
  13. Final simplification0.0

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

Reproduce

herbie shell --seed 2019158 
(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))