Average Error: 0.2 → 0.7
Time: 6.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(1 - 3 \cdot 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(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(\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(1 - 3 \cdot a\right)\right)\right) - 1
double f(double a, double b) {
        double r151871 = a;
        double r151872 = r151871 * r151871;
        double r151873 = b;
        double r151874 = r151873 * r151873;
        double r151875 = r151872 + r151874;
        double r151876 = 2.0;
        double r151877 = pow(r151875, r151876);
        double r151878 = 4.0;
        double r151879 = 1.0;
        double r151880 = r151879 + r151871;
        double r151881 = r151872 * r151880;
        double r151882 = 3.0;
        double r151883 = r151882 * r151871;
        double r151884 = r151879 - r151883;
        double r151885 = r151874 * r151884;
        double r151886 = r151881 + r151885;
        double r151887 = r151878 * r151886;
        double r151888 = r151877 + r151887;
        double r151889 = r151888 - r151879;
        return r151889;
}

double f(double a, double b) {
        double r151890 = a;
        double r151891 = r151890 * r151890;
        double r151892 = b;
        double r151893 = r151892 * r151892;
        double r151894 = r151891 + r151893;
        double r151895 = cbrt(r151894);
        double r151896 = r151895 * r151895;
        double r151897 = 2.0;
        double r151898 = pow(r151896, r151897);
        double r151899 = pow(r151895, r151897);
        double r151900 = r151898 * r151899;
        double r151901 = 4.0;
        double r151902 = 1.0;
        double r151903 = r151902 + r151890;
        double r151904 = r151891 * r151903;
        double r151905 = 3.0;
        double r151906 = r151905 * r151890;
        double r151907 = r151902 - r151906;
        double r151908 = r151893 * r151907;
        double r151909 = r151904 + r151908;
        double r151910 = r151901 * r151909;
        double r151911 = r151900 + r151910;
        double r151912 = r151911 - r151902;
        return r151912;
}

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.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(1 - 3 \cdot 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(1 - 3 \cdot 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(1 - 3 \cdot a\right)\right)\right) - 1\]

Reproduce

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