Average Error: 0.2 → 0.5
Time: 20.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 r236277 = a;
        double r236278 = r236277 * r236277;
        double r236279 = b;
        double r236280 = r236279 * r236279;
        double r236281 = r236278 + r236280;
        double r236282 = 2.0;
        double r236283 = pow(r236281, r236282);
        double r236284 = 4.0;
        double r236285 = r236284 * r236280;
        double r236286 = r236283 + r236285;
        double r236287 = 1.0;
        double r236288 = r236286 - r236287;
        return r236288;
}

double f(double a, double b) {
        double r236289 = b;
        double r236290 = r236289 * r236289;
        double r236291 = 1.0613830190264715e-13;
        bool r236292 = r236290 <= r236291;
        double r236293 = 911.531239174288;
        bool r236294 = r236290 <= r236293;
        double r236295 = !r236294;
        bool r236296 = r236292 || r236295;
        double r236297 = a;
        double r236298 = 4.0;
        double r236299 = pow(r236297, r236298);
        double r236300 = pow(r236289, r236298);
        double r236301 = 2.0;
        double r236302 = pow(r236297, r236301);
        double r236303 = pow(r236289, r236301);
        double r236304 = r236302 * r236303;
        double r236305 = r236301 * r236304;
        double r236306 = r236300 + r236305;
        double r236307 = r236299 + r236306;
        double r236308 = 1.0;
        double r236309 = r236307 - r236308;
        double r236310 = r236297 * r236297;
        double r236311 = r236310 + r236290;
        double r236312 = 2.0;
        double r236313 = pow(r236311, r236312);
        double r236314 = 3.0;
        double r236315 = pow(r236313, r236314);
        double r236316 = cbrt(r236315);
        double r236317 = 4.0;
        double r236318 = r236317 * r236290;
        double r236319 = r236316 + r236318;
        double r236320 = r236319 - r236308;
        double r236321 = r236296 ? r236309 : r236320;
        return r236321;
}

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