Average Error: 0.2 → 0.7
Time: 5.0s
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(3 + a\right)\right)\right) - 1\]
\[\left({\left(\sqrt[3]{a \cdot a + b \cdot b} \cdot \sqrt[3]{a \cdot a + b \cdot b}\right)}^{2} \cdot {\left(\sqrt[3]{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(3 + a\right)\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(3 + a\right)\right)\right) - 1
\left({\left(\sqrt[3]{a \cdot a + b \cdot b} \cdot \sqrt[3]{a \cdot a + b \cdot b}\right)}^{2} \cdot {\left(\sqrt[3]{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(3 + a\right)\right)\right) - 1
double f(double a, double b) {
        double r204930 = a;
        double r204931 = r204930 * r204930;
        double r204932 = b;
        double r204933 = r204932 * r204932;
        double r204934 = r204931 + r204933;
        double r204935 = 2.0;
        double r204936 = pow(r204934, r204935);
        double r204937 = 4.0;
        double r204938 = 1.0;
        double r204939 = r204938 - r204930;
        double r204940 = r204931 * r204939;
        double r204941 = 3.0;
        double r204942 = r204941 + r204930;
        double r204943 = r204933 * r204942;
        double r204944 = r204940 + r204943;
        double r204945 = r204937 * r204944;
        double r204946 = r204936 + r204945;
        double r204947 = r204946 - r204938;
        return r204947;
}

double f(double a, double b) {
        double r204948 = a;
        double r204949 = r204948 * r204948;
        double r204950 = b;
        double r204951 = r204950 * r204950;
        double r204952 = r204949 + r204951;
        double r204953 = cbrt(r204952);
        double r204954 = r204953 * r204953;
        double r204955 = 2.0;
        double r204956 = pow(r204954, r204955);
        double r204957 = pow(r204953, r204955);
        double r204958 = r204956 * r204957;
        double r204959 = 4.0;
        double r204960 = 1.0;
        double r204961 = r204960 - r204948;
        double r204962 = r204949 * r204961;
        double r204963 = 3.0;
        double r204964 = r204963 + r204948;
        double r204965 = r204951 * r204964;
        double r204966 = r204962 + r204965;
        double r204967 = r204959 * r204966;
        double r204968 = r204958 + r204967;
        double r204969 = r204968 - r204960;
        return r204969;
}

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(3 + a\right)\right)\right) - 1\]
  2. Using strategy rm
  3. Applied add-cube-cbrt0.7

    \[\leadsto \left({\color{blue}{\left(\left(\sqrt[3]{a \cdot a + b \cdot b} \cdot \sqrt[3]{a \cdot a + b \cdot b}\right) \cdot \sqrt[3]{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(3 + a\right)\right)\right) - 1\]
  4. Applied unpow-prod-down0.7

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

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

Reproduce

herbie shell --seed 2020027 
(FPCore (a b)
  :name "Bouland and Aaronson, Equation (24)"
  :precision binary64
  (- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (+ (* (* a a) (- 1 a)) (* (* b b) (+ 3 a))))) 1))