Average Error: 0.2 → 0.2
Time: 5.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(a \cdot \left(a \cdot \left(1 + a\right)\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(a \cdot \left(a \cdot \left(1 + a\right)\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(a \cdot \left(a \cdot \left(1 + a\right)\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(a \cdot \left(a \cdot \left(1 + a\right)\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)} - 1
double f(double a, double b) {
        double r447885 = a;
        double r447886 = r447885 * r447885;
        double r447887 = b;
        double r447888 = r447887 * r447887;
        double r447889 = r447886 + r447888;
        double r447890 = 2.0;
        double r447891 = pow(r447889, r447890);
        double r447892 = 4.0;
        double r447893 = 1.0;
        double r447894 = r447893 + r447885;
        double r447895 = r447886 * r447894;
        double r447896 = 3.0;
        double r447897 = r447896 * r447885;
        double r447898 = r447893 - r447897;
        double r447899 = r447888 * r447898;
        double r447900 = r447895 + r447899;
        double r447901 = r447892 * r447900;
        double r447902 = r447891 + r447901;
        double r447903 = r447902 - r447893;
        return r447903;
}

double f(double a, double b) {
        double r447904 = a;
        double r447905 = r447904 * r447904;
        double r447906 = b;
        double r447907 = r447906 * r447906;
        double r447908 = r447905 + r447907;
        double r447909 = 2.0;
        double r447910 = pow(r447908, r447909);
        double r447911 = 4.0;
        double r447912 = 1.0;
        double r447913 = r447912 + r447904;
        double r447914 = r447904 * r447913;
        double r447915 = r447904 * r447914;
        double r447916 = 3.0;
        double r447917 = r447916 * r447904;
        double r447918 = r447912 - r447917;
        double r447919 = r447907 * r447918;
        double r447920 = r447915 + r447919;
        double r447921 = r447911 * r447920;
        double r447922 = r447910 + r447921;
        double r447923 = sqrt(r447922);
        double r447924 = r447923 * r447923;
        double r447925 = r447924 - r447912;
        return r447925;
}

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 associate-*l*0.2

    \[\leadsto \left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\color{blue}{a \cdot \left(a \cdot \left(1 + a\right)\right)} + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)\right) - 1\]
  4. Using strategy rm
  5. Applied add-sqr-sqrt0.2

    \[\leadsto \color{blue}{\sqrt{{\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(a \cdot \left(a \cdot \left(1 + a\right)\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(a \cdot \left(a \cdot \left(1 + a\right)\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)}} - 1\]
  6. Final simplification0.2

    \[\leadsto \sqrt{{\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(a \cdot \left(a \cdot \left(1 + a\right)\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(a \cdot \left(a \cdot \left(1 + a\right)\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)} - 1\]

Reproduce

herbie shell --seed 2020062 +o rules:numerics
(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))