Average Error: 0.2 → 0.2
Time: 7.5s
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 r367742 = a;
        double r367743 = r367742 * r367742;
        double r367744 = b;
        double r367745 = r367744 * r367744;
        double r367746 = r367743 + r367745;
        double r367747 = 2.0;
        double r367748 = pow(r367746, r367747);
        double r367749 = 4.0;
        double r367750 = 1.0;
        double r367751 = r367750 + r367742;
        double r367752 = r367743 * r367751;
        double r367753 = 3.0;
        double r367754 = r367753 * r367742;
        double r367755 = r367750 - r367754;
        double r367756 = r367745 * r367755;
        double r367757 = r367752 + r367756;
        double r367758 = r367749 * r367757;
        double r367759 = r367748 + r367758;
        double r367760 = r367759 - r367750;
        return r367760;
}

double f(double a, double b) {
        double r367761 = a;
        double r367762 = r367761 * r367761;
        double r367763 = b;
        double r367764 = r367763 * r367763;
        double r367765 = r367762 + r367764;
        double r367766 = 2.0;
        double r367767 = pow(r367765, r367766);
        double r367768 = 4.0;
        double r367769 = 1.0;
        double r367770 = r367769 + r367761;
        double r367771 = r367762 * r367770;
        double r367772 = 3.0;
        double r367773 = r367772 * r367761;
        double r367774 = r367769 - r367773;
        double r367775 = r367764 * r367774;
        double r367776 = r367771 + r367775;
        double r367777 = r367768 * r367776;
        double r367778 = r367767 + r367777;
        double r367779 = sqrt(r367778);
        double r367780 = r367779 * r367779;
        double r367781 = r367780 - r367769;
        return r367781;
}

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