Average Error: 0.2 → 0.2
Time: 7.7s
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 r169888 = a;
        double r169889 = r169888 * r169888;
        double r169890 = b;
        double r169891 = r169890 * r169890;
        double r169892 = r169889 + r169891;
        double r169893 = 2.0;
        double r169894 = pow(r169892, r169893);
        double r169895 = 4.0;
        double r169896 = 1.0;
        double r169897 = r169896 + r169888;
        double r169898 = r169889 * r169897;
        double r169899 = 3.0;
        double r169900 = r169899 * r169888;
        double r169901 = r169896 - r169900;
        double r169902 = r169891 * r169901;
        double r169903 = r169898 + r169902;
        double r169904 = r169895 * r169903;
        double r169905 = r169894 + r169904;
        double r169906 = r169905 - r169896;
        return r169906;
}

double f(double a, double b) {
        double r169907 = a;
        double r169908 = r169907 * r169907;
        double r169909 = b;
        double r169910 = r169909 * r169909;
        double r169911 = r169908 + r169910;
        double r169912 = 2.0;
        double r169913 = pow(r169911, r169912);
        double r169914 = 4.0;
        double r169915 = 1.0;
        double r169916 = r169915 + r169907;
        double r169917 = r169908 * r169916;
        double r169918 = 3.0;
        double r169919 = r169918 * r169907;
        double r169920 = r169915 - r169919;
        double r169921 = r169910 * r169920;
        double r169922 = r169917 + r169921;
        double r169923 = r169914 * r169922;
        double r169924 = r169913 + r169923;
        double r169925 = sqrt(r169924);
        double r169926 = r169925 * r169925;
        double r169927 = r169926 - r169915;
        return r169927;
}

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