Average Error: 0.2 → 0.2
Time: 13.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} + 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 r242720 = a;
        double r242721 = r242720 * r242720;
        double r242722 = b;
        double r242723 = r242722 * r242722;
        double r242724 = r242721 + r242723;
        double r242725 = 2.0;
        double r242726 = pow(r242724, r242725);
        double r242727 = 4.0;
        double r242728 = 1.0;
        double r242729 = r242728 + r242720;
        double r242730 = r242721 * r242729;
        double r242731 = 3.0;
        double r242732 = r242731 * r242720;
        double r242733 = r242728 - r242732;
        double r242734 = r242723 * r242733;
        double r242735 = r242730 + r242734;
        double r242736 = r242727 * r242735;
        double r242737 = r242726 + r242736;
        double r242738 = r242737 - r242728;
        return r242738;
}

double f(double a, double b) {
        double r242739 = a;
        double r242740 = r242739 * r242739;
        double r242741 = b;
        double r242742 = r242741 * r242741;
        double r242743 = r242740 + r242742;
        double r242744 = 2.0;
        double r242745 = pow(r242743, r242744);
        double r242746 = 4.0;
        double r242747 = 1.0;
        double r242748 = r242747 + r242739;
        double r242749 = r242740 * r242748;
        double r242750 = 3.0;
        double r242751 = r242750 * r242739;
        double r242752 = r242747 - r242751;
        double r242753 = r242742 * r242752;
        double r242754 = r242749 + r242753;
        double r242755 = r242746 * r242754;
        double r242756 = r242745 + r242755;
        double r242757 = sqrt(r242756);
        double r242758 = r242757 * r242757;
        double r242759 = r242758 - r242747;
        return r242759;
}

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