Average Error: 0.2 → 0.2
Time: 5.5s
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 r122384 = a;
        double r122385 = r122384 * r122384;
        double r122386 = b;
        double r122387 = r122386 * r122386;
        double r122388 = r122385 + r122387;
        double r122389 = 2.0;
        double r122390 = pow(r122388, r122389);
        double r122391 = 4.0;
        double r122392 = 1.0;
        double r122393 = r122392 + r122384;
        double r122394 = r122385 * r122393;
        double r122395 = 3.0;
        double r122396 = r122395 * r122384;
        double r122397 = r122392 - r122396;
        double r122398 = r122387 * r122397;
        double r122399 = r122394 + r122398;
        double r122400 = r122391 * r122399;
        double r122401 = r122390 + r122400;
        double r122402 = r122401 - r122392;
        return r122402;
}

double f(double a, double b) {
        double r122403 = a;
        double r122404 = r122403 * r122403;
        double r122405 = b;
        double r122406 = r122405 * r122405;
        double r122407 = r122404 + r122406;
        double r122408 = 2.0;
        double r122409 = pow(r122407, r122408);
        double r122410 = 4.0;
        double r122411 = 1.0;
        double r122412 = r122411 + r122403;
        double r122413 = r122404 * r122412;
        double r122414 = 3.0;
        double r122415 = r122414 * r122403;
        double r122416 = r122411 - r122415;
        double r122417 = r122406 * r122416;
        double r122418 = r122413 + r122417;
        double r122419 = r122410 * r122418;
        double r122420 = r122409 + r122419;
        double r122421 = sqrt(r122420);
        double r122422 = r122421 * r122421;
        double r122423 = r122422 - r122411;
        return r122423;
}

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