Average Error: 0.2 → 0.2
Time: 19.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(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 r126523 = a;
        double r126524 = r126523 * r126523;
        double r126525 = b;
        double r126526 = r126525 * r126525;
        double r126527 = r126524 + r126526;
        double r126528 = 2.0;
        double r126529 = pow(r126527, r126528);
        double r126530 = 4.0;
        double r126531 = 1.0;
        double r126532 = r126531 + r126523;
        double r126533 = r126524 * r126532;
        double r126534 = 3.0;
        double r126535 = r126534 * r126523;
        double r126536 = r126531 - r126535;
        double r126537 = r126526 * r126536;
        double r126538 = r126533 + r126537;
        double r126539 = r126530 * r126538;
        double r126540 = r126529 + r126539;
        double r126541 = r126540 - r126531;
        return r126541;
}

double f(double a, double b) {
        double r126542 = a;
        double r126543 = r126542 * r126542;
        double r126544 = b;
        double r126545 = r126544 * r126544;
        double r126546 = r126543 + r126545;
        double r126547 = 2.0;
        double r126548 = pow(r126546, r126547);
        double r126549 = 4.0;
        double r126550 = 1.0;
        double r126551 = r126550 + r126542;
        double r126552 = r126543 * r126551;
        double r126553 = 3.0;
        double r126554 = r126553 * r126542;
        double r126555 = r126550 - r126554;
        double r126556 = r126545 * r126555;
        double r126557 = r126552 + r126556;
        double r126558 = r126549 * r126557;
        double r126559 = r126548 + r126558;
        double r126560 = sqrt(r126559);
        double r126561 = r126560 * r126560;
        double r126562 = r126561 - r126550;
        return r126562;
}

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