Average Error: 0.2 → 0.2
Time: 14.4s
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 r245515 = a;
        double r245516 = r245515 * r245515;
        double r245517 = b;
        double r245518 = r245517 * r245517;
        double r245519 = r245516 + r245518;
        double r245520 = 2.0;
        double r245521 = pow(r245519, r245520);
        double r245522 = 4.0;
        double r245523 = 1.0;
        double r245524 = r245523 + r245515;
        double r245525 = r245516 * r245524;
        double r245526 = 3.0;
        double r245527 = r245526 * r245515;
        double r245528 = r245523 - r245527;
        double r245529 = r245518 * r245528;
        double r245530 = r245525 + r245529;
        double r245531 = r245522 * r245530;
        double r245532 = r245521 + r245531;
        double r245533 = r245532 - r245523;
        return r245533;
}

double f(double a, double b) {
        double r245534 = a;
        double r245535 = r245534 * r245534;
        double r245536 = b;
        double r245537 = r245536 * r245536;
        double r245538 = r245535 + r245537;
        double r245539 = 2.0;
        double r245540 = pow(r245538, r245539);
        double r245541 = 4.0;
        double r245542 = 1.0;
        double r245543 = r245542 + r245534;
        double r245544 = r245535 * r245543;
        double r245545 = 3.0;
        double r245546 = r245545 * r245534;
        double r245547 = r245542 - r245546;
        double r245548 = r245537 * r245547;
        double r245549 = r245544 + r245548;
        double r245550 = r245541 * r245549;
        double r245551 = r245540 + r245550;
        double r245552 = sqrt(r245551);
        double r245553 = r245552 * r245552;
        double r245554 = r245553 - r245542;
        return r245554;
}

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