Average Error: 0.2 → 0.2
Time: 11.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\]
\[\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(3 + 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(3 + 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(3 + 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(3 + 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(3 + a\right)\right)} - 1
double f(double a, double b) {
        double r175556 = a;
        double r175557 = r175556 * r175556;
        double r175558 = b;
        double r175559 = r175558 * r175558;
        double r175560 = r175557 + r175559;
        double r175561 = 2.0;
        double r175562 = pow(r175560, r175561);
        double r175563 = 4.0;
        double r175564 = 1.0;
        double r175565 = r175564 - r175556;
        double r175566 = r175557 * r175565;
        double r175567 = 3.0;
        double r175568 = r175567 + r175556;
        double r175569 = r175559 * r175568;
        double r175570 = r175566 + r175569;
        double r175571 = r175563 * r175570;
        double r175572 = r175562 + r175571;
        double r175573 = r175572 - r175564;
        return r175573;
}

double f(double a, double b) {
        double r175574 = a;
        double r175575 = r175574 * r175574;
        double r175576 = b;
        double r175577 = r175576 * r175576;
        double r175578 = r175575 + r175577;
        double r175579 = 2.0;
        double r175580 = pow(r175578, r175579);
        double r175581 = 4.0;
        double r175582 = 1.0;
        double r175583 = r175582 - r175574;
        double r175584 = r175575 * r175583;
        double r175585 = 3.0;
        double r175586 = r175585 + r175574;
        double r175587 = r175577 * r175586;
        double r175588 = r175584 + r175587;
        double r175589 = r175581 * r175588;
        double r175590 = r175580 + r175589;
        double r175591 = sqrt(r175590);
        double r175592 = r175591 * r175591;
        double r175593 = r175592 - r175582;
        return r175593;
}

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. 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(3 + 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(3 + 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(3 + 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(3 + a\right)\right)} - 1\]

Reproduce

herbie shell --seed 2020047 
(FPCore (a b)
  :name "Bouland and Aaronson, Equation (24)"
  :precision binary64
  (- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (+ (* (* a a) (- 1 a)) (* (* b b) (+ 3 a))))) 1))