Average Error: 0.2 → 0.2
Time: 13.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 r131308 = a;
        double r131309 = r131308 * r131308;
        double r131310 = b;
        double r131311 = r131310 * r131310;
        double r131312 = r131309 + r131311;
        double r131313 = 2.0;
        double r131314 = pow(r131312, r131313);
        double r131315 = 4.0;
        double r131316 = 1.0;
        double r131317 = r131316 + r131308;
        double r131318 = r131309 * r131317;
        double r131319 = 3.0;
        double r131320 = r131319 * r131308;
        double r131321 = r131316 - r131320;
        double r131322 = r131311 * r131321;
        double r131323 = r131318 + r131322;
        double r131324 = r131315 * r131323;
        double r131325 = r131314 + r131324;
        double r131326 = r131325 - r131316;
        return r131326;
}

double f(double a, double b) {
        double r131327 = a;
        double r131328 = r131327 * r131327;
        double r131329 = b;
        double r131330 = r131329 * r131329;
        double r131331 = r131328 + r131330;
        double r131332 = 2.0;
        double r131333 = pow(r131331, r131332);
        double r131334 = 4.0;
        double r131335 = 1.0;
        double r131336 = r131335 + r131327;
        double r131337 = r131328 * r131336;
        double r131338 = 3.0;
        double r131339 = r131338 * r131327;
        double r131340 = r131335 - r131339;
        double r131341 = r131330 * r131340;
        double r131342 = r131337 + r131341;
        double r131343 = r131334 * r131342;
        double r131344 = r131333 + r131343;
        double r131345 = sqrt(r131344);
        double r131346 = r131345 * r131345;
        double r131347 = r131346 - r131335;
        return r131347;
}

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