Average Error: 0.2 → 0.2
Time: 7.2s
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\]
\[\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(\left(a \cdot a\right) \cdot \left(\sqrt[3]{1 + a} \cdot \sqrt[3]{1 + a}\right)\right) \cdot \sqrt[3]{1 + a} + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot 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(1 - 3 \cdot a\right)\right)\right) - 1
\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(\left(a \cdot a\right) \cdot \left(\sqrt[3]{1 + a} \cdot \sqrt[3]{1 + a}\right)\right) \cdot \sqrt[3]{1 + a} + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)\right) - 1
double f(double a, double b) {
        double r233914 = a;
        double r233915 = r233914 * r233914;
        double r233916 = b;
        double r233917 = r233916 * r233916;
        double r233918 = r233915 + r233917;
        double r233919 = 2.0;
        double r233920 = pow(r233918, r233919);
        double r233921 = 4.0;
        double r233922 = 1.0;
        double r233923 = r233922 + r233914;
        double r233924 = r233915 * r233923;
        double r233925 = 3.0;
        double r233926 = r233925 * r233914;
        double r233927 = r233922 - r233926;
        double r233928 = r233917 * r233927;
        double r233929 = r233924 + r233928;
        double r233930 = r233921 * r233929;
        double r233931 = r233920 + r233930;
        double r233932 = r233931 - r233922;
        return r233932;
}

double f(double a, double b) {
        double r233933 = a;
        double r233934 = r233933 * r233933;
        double r233935 = b;
        double r233936 = r233935 * r233935;
        double r233937 = r233934 + r233936;
        double r233938 = 2.0;
        double r233939 = pow(r233937, r233938);
        double r233940 = 4.0;
        double r233941 = 1.0;
        double r233942 = r233941 + r233933;
        double r233943 = cbrt(r233942);
        double r233944 = r233943 * r233943;
        double r233945 = r233934 * r233944;
        double r233946 = r233945 * r233943;
        double r233947 = 3.0;
        double r233948 = r233947 * r233933;
        double r233949 = r233941 - r233948;
        double r233950 = r233936 * r233949;
        double r233951 = r233946 + r233950;
        double r233952 = r233940 * r233951;
        double r233953 = r233939 + r233952;
        double r233954 = r233953 - r233941;
        return r233954;
}

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-cube-cbrt0.2

    \[\leadsto \left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(a \cdot a\right) \cdot \color{blue}{\left(\left(\sqrt[3]{1 + a} \cdot \sqrt[3]{1 + a}\right) \cdot \sqrt[3]{1 + a}\right)} + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)\right) - 1\]
  4. Applied associate-*r*0.2

    \[\leadsto \left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\color{blue}{\left(\left(a \cdot a\right) \cdot \left(\sqrt[3]{1 + a} \cdot \sqrt[3]{1 + a}\right)\right) \cdot \sqrt[3]{1 + a}} + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)\right) - 1\]
  5. Final simplification0.2

    \[\leadsto \left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(\left(a \cdot a\right) \cdot \left(\sqrt[3]{1 + a} \cdot \sqrt[3]{1 + a}\right)\right) \cdot \sqrt[3]{1 + a} + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)\right) - 1\]

Reproduce

herbie shell --seed 2020036 
(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))