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 r351913 = a;
        double r351914 = r351913 * r351913;
        double r351915 = b;
        double r351916 = r351915 * r351915;
        double r351917 = r351914 + r351916;
        double r351918 = 2.0;
        double r351919 = pow(r351917, r351918);
        double r351920 = 4.0;
        double r351921 = 1.0;
        double r351922 = r351921 + r351913;
        double r351923 = r351914 * r351922;
        double r351924 = 3.0;
        double r351925 = r351924 * r351913;
        double r351926 = r351921 - r351925;
        double r351927 = r351916 * r351926;
        double r351928 = r351923 + r351927;
        double r351929 = r351920 * r351928;
        double r351930 = r351919 + r351929;
        double r351931 = r351930 - r351921;
        return r351931;
}

double f(double a, double b) {
        double r351932 = a;
        double r351933 = r351932 * r351932;
        double r351934 = b;
        double r351935 = r351934 * r351934;
        double r351936 = r351933 + r351935;
        double r351937 = 2.0;
        double r351938 = pow(r351936, r351937);
        double r351939 = 4.0;
        double r351940 = 1.0;
        double r351941 = r351940 + r351932;
        double r351942 = r351933 * r351941;
        double r351943 = 3.0;
        double r351944 = r351943 * r351932;
        double r351945 = r351940 - r351944;
        double r351946 = r351935 * r351945;
        double r351947 = r351942 + r351946;
        double r351948 = r351939 * r351947;
        double r351949 = r351938 + r351948;
        double r351950 = sqrt(r351949);
        double r351951 = r351950 * r351950;
        double r351952 = r351951 - r351940;
        return r351952;
}

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