Average Error: 0.2 → 0.5
Time: 19.2s
Precision: 64
\[\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)\right) - 1\]
\[\begin{array}{l} \mathbf{if}\;b \cdot b \le 1.061383019026471481028624498784720164347 \cdot 10^{-13} \lor \neg \left(b \cdot b \le 911.531239174287975401966832578182220459\right):\\ \;\;\;\;\left({a}^{4} + \left({b}^{4} + 2 \cdot \left({a}^{2} \cdot {b}^{2}\right)\right)\right) - 1\\ \mathbf{else}:\\ \;\;\;\;\left(\sqrt[3]{{\left({\left(a \cdot a + b \cdot b\right)}^{2}\right)}^{3}} + 4 \cdot \left(b \cdot b\right)\right) - 1\\ \end{array}\]
\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)\right) - 1
\begin{array}{l}
\mathbf{if}\;b \cdot b \le 1.061383019026471481028624498784720164347 \cdot 10^{-13} \lor \neg \left(b \cdot b \le 911.531239174287975401966832578182220459\right):\\
\;\;\;\;\left({a}^{4} + \left({b}^{4} + 2 \cdot \left({a}^{2} \cdot {b}^{2}\right)\right)\right) - 1\\

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

\end{array}
double f(double a, double b) {
        double r239868 = a;
        double r239869 = r239868 * r239868;
        double r239870 = b;
        double r239871 = r239870 * r239870;
        double r239872 = r239869 + r239871;
        double r239873 = 2.0;
        double r239874 = pow(r239872, r239873);
        double r239875 = 4.0;
        double r239876 = r239875 * r239871;
        double r239877 = r239874 + r239876;
        double r239878 = 1.0;
        double r239879 = r239877 - r239878;
        return r239879;
}

double f(double a, double b) {
        double r239880 = b;
        double r239881 = r239880 * r239880;
        double r239882 = 1.0613830190264715e-13;
        bool r239883 = r239881 <= r239882;
        double r239884 = 911.531239174288;
        bool r239885 = r239881 <= r239884;
        double r239886 = !r239885;
        bool r239887 = r239883 || r239886;
        double r239888 = a;
        double r239889 = 4.0;
        double r239890 = pow(r239888, r239889);
        double r239891 = pow(r239880, r239889);
        double r239892 = 2.0;
        double r239893 = pow(r239888, r239892);
        double r239894 = pow(r239880, r239892);
        double r239895 = r239893 * r239894;
        double r239896 = r239892 * r239895;
        double r239897 = r239891 + r239896;
        double r239898 = r239890 + r239897;
        double r239899 = 1.0;
        double r239900 = r239898 - r239899;
        double r239901 = r239888 * r239888;
        double r239902 = r239901 + r239881;
        double r239903 = 2.0;
        double r239904 = pow(r239902, r239903);
        double r239905 = 3.0;
        double r239906 = pow(r239904, r239905);
        double r239907 = cbrt(r239906);
        double r239908 = 4.0;
        double r239909 = r239908 * r239881;
        double r239910 = r239907 + r239909;
        double r239911 = r239910 - r239899;
        double r239912 = r239887 ? r239900 : r239911;
        return r239912;
}

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. Split input into 2 regimes
  2. if (* b b) < 1.0613830190264715e-13 or 911.531239174288 < (* b b)

    1. Initial program 0.2

      \[\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)\right) - 1\]
    2. Taylor expanded around inf 0.3

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

    if 1.0613830190264715e-13 < (* b b) < 911.531239174288

    1. Initial program 0.2

      \[\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)\right) - 1\]
    2. Using strategy rm
    3. Applied add-cbrt-cube9.0

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;b \cdot b \le 1.061383019026471481028624498784720164347 \cdot 10^{-13} \lor \neg \left(b \cdot b \le 911.531239174287975401966832578182220459\right):\\ \;\;\;\;\left({a}^{4} + \left({b}^{4} + 2 \cdot \left({a}^{2} \cdot {b}^{2}\right)\right)\right) - 1\\ \mathbf{else}:\\ \;\;\;\;\left(\sqrt[3]{{\left({\left(a \cdot a + b \cdot b\right)}^{2}\right)}^{3}} + 4 \cdot \left(b \cdot b\right)\right) - 1\\ \end{array}\]

Reproduce

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