Average Error: 0.2 → 0.2
Time: 23.1s
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} + \left(\left(a \cdot a\right) \cdot \left(a + 1\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right) \cdot 4} \cdot \sqrt{{\left(a \cdot a + b \cdot b\right)}^{2} + \left(\left(a \cdot a\right) \cdot \left(a + 1\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right) \cdot 4} - 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} + \left(\left(a \cdot a\right) \cdot \left(a + 1\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right) \cdot 4} \cdot \sqrt{{\left(a \cdot a + b \cdot b\right)}^{2} + \left(\left(a \cdot a\right) \cdot \left(a + 1\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right) \cdot 4} - 1
double f(double a, double b) {
        double r9303707 = a;
        double r9303708 = r9303707 * r9303707;
        double r9303709 = b;
        double r9303710 = r9303709 * r9303709;
        double r9303711 = r9303708 + r9303710;
        double r9303712 = 2.0;
        double r9303713 = pow(r9303711, r9303712);
        double r9303714 = 4.0;
        double r9303715 = 1.0;
        double r9303716 = r9303715 + r9303707;
        double r9303717 = r9303708 * r9303716;
        double r9303718 = 3.0;
        double r9303719 = r9303718 * r9303707;
        double r9303720 = r9303715 - r9303719;
        double r9303721 = r9303710 * r9303720;
        double r9303722 = r9303717 + r9303721;
        double r9303723 = r9303714 * r9303722;
        double r9303724 = r9303713 + r9303723;
        double r9303725 = r9303724 - r9303715;
        return r9303725;
}

double f(double a, double b) {
        double r9303726 = a;
        double r9303727 = r9303726 * r9303726;
        double r9303728 = b;
        double r9303729 = r9303728 * r9303728;
        double r9303730 = r9303727 + r9303729;
        double r9303731 = 2.0;
        double r9303732 = pow(r9303730, r9303731);
        double r9303733 = 1.0;
        double r9303734 = r9303726 + r9303733;
        double r9303735 = r9303727 * r9303734;
        double r9303736 = 3.0;
        double r9303737 = r9303736 * r9303726;
        double r9303738 = r9303733 - r9303737;
        double r9303739 = r9303729 * r9303738;
        double r9303740 = r9303735 + r9303739;
        double r9303741 = 4.0;
        double r9303742 = r9303740 * r9303741;
        double r9303743 = r9303732 + r9303742;
        double r9303744 = sqrt(r9303743);
        double r9303745 = r9303744 * r9303744;
        double r9303746 = r9303745 - r9303733;
        return r9303746;
}

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} + \left(\left(a \cdot a\right) \cdot \left(a + 1\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right) \cdot 4} \cdot \sqrt{{\left(a \cdot a + b \cdot b\right)}^{2} + \left(\left(a \cdot a\right) \cdot \left(a + 1\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right) \cdot 4} - 1\]

Reproduce

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