Average Error: 0.2 → 0.2
Time: 7.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(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 r224800 = a;
        double r224801 = r224800 * r224800;
        double r224802 = b;
        double r224803 = r224802 * r224802;
        double r224804 = r224801 + r224803;
        double r224805 = 2.0;
        double r224806 = pow(r224804, r224805);
        double r224807 = 4.0;
        double r224808 = 1.0;
        double r224809 = r224808 + r224800;
        double r224810 = r224801 * r224809;
        double r224811 = 3.0;
        double r224812 = r224811 * r224800;
        double r224813 = r224808 - r224812;
        double r224814 = r224803 * r224813;
        double r224815 = r224810 + r224814;
        double r224816 = r224807 * r224815;
        double r224817 = r224806 + r224816;
        double r224818 = r224817 - r224808;
        return r224818;
}

double f(double a, double b) {
        double r224819 = a;
        double r224820 = r224819 * r224819;
        double r224821 = b;
        double r224822 = r224821 * r224821;
        double r224823 = r224820 + r224822;
        double r224824 = 2.0;
        double r224825 = pow(r224823, r224824);
        double r224826 = 4.0;
        double r224827 = 1.0;
        double r224828 = r224827 + r224819;
        double r224829 = r224820 * r224828;
        double r224830 = 3.0;
        double r224831 = r224830 * r224819;
        double r224832 = r224827 - r224831;
        double r224833 = r224822 * r224832;
        double r224834 = r224829 + r224833;
        double r224835 = r224826 * r224834;
        double r224836 = r224825 + r224835;
        double r224837 = sqrt(r224836);
        double r224838 = r224837 * r224837;
        double r224839 = r224838 - r224827;
        return r224839;
}

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