Average Error: 0.2 → 0.2
Time: 18.3s
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 r130744 = a;
        double r130745 = r130744 * r130744;
        double r130746 = b;
        double r130747 = r130746 * r130746;
        double r130748 = r130745 + r130747;
        double r130749 = 2.0;
        double r130750 = pow(r130748, r130749);
        double r130751 = 4.0;
        double r130752 = 1.0;
        double r130753 = r130752 - r130744;
        double r130754 = r130745 * r130753;
        double r130755 = 3.0;
        double r130756 = r130755 + r130744;
        double r130757 = r130747 * r130756;
        double r130758 = r130754 + r130757;
        double r130759 = r130751 * r130758;
        double r130760 = r130750 + r130759;
        double r130761 = r130760 - r130752;
        return r130761;
}

double f(double a, double b) {
        double r130762 = a;
        double r130763 = r130762 * r130762;
        double r130764 = b;
        double r130765 = r130764 * r130764;
        double r130766 = r130763 + r130765;
        double r130767 = 2.0;
        double r130768 = pow(r130766, r130767);
        double r130769 = 4.0;
        double r130770 = 1.0;
        double r130771 = r130770 - r130762;
        double r130772 = r130763 * r130771;
        double r130773 = 3.0;
        double r130774 = r130773 + r130762;
        double r130775 = r130765 * r130774;
        double r130776 = r130772 + r130775;
        double r130777 = r130769 * r130776;
        double r130778 = r130768 + r130777;
        double r130779 = sqrt(r130778);
        double r130780 = r130779 * r130779;
        double r130781 = r130780 - r130770;
        return r130781;
}

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