Average Error: 3.8 → 2.7
Time: 2.6m
Precision: 64
\[\alpha \gt -1 \land \beta \gt -1\]
\[\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}\]
\[\begin{array}{l} \mathbf{if}\;\beta \le 8.004231800207308 \cdot 10^{+201}:\\ \;\;\;\;\frac{\frac{1}{\frac{\sqrt[3]{\left(\left(\alpha + \beta\right) + 2\right) + 1.0} \cdot \sqrt[3]{\left(\left(\alpha + \beta\right) + 2\right) + 1.0}}{\frac{1}{\sqrt{\left(\alpha + \beta\right) + 2}}}}}{\frac{\sqrt[3]{\left(\left(\alpha + \beta\right) + 2\right) + 1.0}}{\frac{\frac{\left(\mathsf{fma}\left(\beta, \alpha, \beta\right) + \alpha\right) + 1.0}{\left(\alpha + \beta\right) + 2}}{\sqrt{\left(\alpha + \beta\right) + 2}}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\frac{1}{\sqrt{2 + \left(\alpha + \beta\right)}}}{\left(\frac{\beta}{\sqrt{8}} \cdot 6.0 + \left(\left(\sqrt{\frac{1}{8}} \cdot \alpha\right) \cdot 6.0 + \sqrt{8} \cdot 1.0\right)\right) - \left(\left(\beta \cdot \sqrt{8}\right) \cdot 1.0 + 1.0 \cdot \left(\alpha \cdot \sqrt{8}\right)\right)}}{1.0 + \left(2 + \left(\alpha + \beta\right)\right)}\\ \end{array}\]
\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}
\begin{array}{l}
\mathbf{if}\;\beta \le 8.004231800207308 \cdot 10^{+201}:\\
\;\;\;\;\frac{\frac{1}{\frac{\sqrt[3]{\left(\left(\alpha + \beta\right) + 2\right) + 1.0} \cdot \sqrt[3]{\left(\left(\alpha + \beta\right) + 2\right) + 1.0}}{\frac{1}{\sqrt{\left(\alpha + \beta\right) + 2}}}}}{\frac{\sqrt[3]{\left(\left(\alpha + \beta\right) + 2\right) + 1.0}}{\frac{\frac{\left(\mathsf{fma}\left(\beta, \alpha, \beta\right) + \alpha\right) + 1.0}{\left(\alpha + \beta\right) + 2}}{\sqrt{\left(\alpha + \beta\right) + 2}}}}\\

\mathbf{else}:\\
\;\;\;\;\frac{\frac{\frac{1}{\sqrt{2 + \left(\alpha + \beta\right)}}}{\left(\frac{\beta}{\sqrt{8}} \cdot 6.0 + \left(\left(\sqrt{\frac{1}{8}} \cdot \alpha\right) \cdot 6.0 + \sqrt{8} \cdot 1.0\right)\right) - \left(\left(\beta \cdot \sqrt{8}\right) \cdot 1.0 + 1.0 \cdot \left(\alpha \cdot \sqrt{8}\right)\right)}}{1.0 + \left(2 + \left(\alpha + \beta\right)\right)}\\

\end{array}
double f(double alpha, double beta) {
        double r3622326 = alpha;
        double r3622327 = beta;
        double r3622328 = r3622326 + r3622327;
        double r3622329 = r3622327 * r3622326;
        double r3622330 = r3622328 + r3622329;
        double r3622331 = 1.0;
        double r3622332 = r3622330 + r3622331;
        double r3622333 = 2.0;
        double r3622334 = 1.0;
        double r3622335 = r3622333 * r3622334;
        double r3622336 = r3622328 + r3622335;
        double r3622337 = r3622332 / r3622336;
        double r3622338 = r3622337 / r3622336;
        double r3622339 = r3622336 + r3622331;
        double r3622340 = r3622338 / r3622339;
        return r3622340;
}

double f(double alpha, double beta) {
        double r3622341 = beta;
        double r3622342 = 8.004231800207308e+201;
        bool r3622343 = r3622341 <= r3622342;
        double r3622344 = 1.0;
        double r3622345 = alpha;
        double r3622346 = r3622345 + r3622341;
        double r3622347 = 2.0;
        double r3622348 = r3622346 + r3622347;
        double r3622349 = 1.0;
        double r3622350 = r3622348 + r3622349;
        double r3622351 = cbrt(r3622350);
        double r3622352 = r3622351 * r3622351;
        double r3622353 = sqrt(r3622348);
        double r3622354 = r3622344 / r3622353;
        double r3622355 = r3622352 / r3622354;
        double r3622356 = r3622344 / r3622355;
        double r3622357 = fma(r3622341, r3622345, r3622341);
        double r3622358 = r3622357 + r3622345;
        double r3622359 = r3622358 + r3622349;
        double r3622360 = r3622359 / r3622348;
        double r3622361 = r3622360 / r3622353;
        double r3622362 = r3622351 / r3622361;
        double r3622363 = r3622356 / r3622362;
        double r3622364 = r3622347 + r3622346;
        double r3622365 = sqrt(r3622364);
        double r3622366 = r3622344 / r3622365;
        double r3622367 = 8.0;
        double r3622368 = sqrt(r3622367);
        double r3622369 = r3622341 / r3622368;
        double r3622370 = 6.0;
        double r3622371 = r3622369 * r3622370;
        double r3622372 = 0.125;
        double r3622373 = sqrt(r3622372);
        double r3622374 = r3622373 * r3622345;
        double r3622375 = r3622374 * r3622370;
        double r3622376 = r3622368 * r3622349;
        double r3622377 = r3622375 + r3622376;
        double r3622378 = r3622371 + r3622377;
        double r3622379 = r3622341 * r3622368;
        double r3622380 = r3622379 * r3622349;
        double r3622381 = r3622345 * r3622368;
        double r3622382 = r3622349 * r3622381;
        double r3622383 = r3622380 + r3622382;
        double r3622384 = r3622378 - r3622383;
        double r3622385 = r3622366 / r3622384;
        double r3622386 = r3622349 + r3622364;
        double r3622387 = r3622385 / r3622386;
        double r3622388 = r3622343 ? r3622363 : r3622387;
        return r3622388;
}

Error

Bits error versus alpha

Bits error versus beta

Derivation

  1. Split input into 2 regimes
  2. if beta < 8.004231800207308e+201

    1. Initial program 1.9

      \[\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}\]
    2. Using strategy rm
    3. Applied *-un-lft-identity1.9

      \[\leadsto \frac{\color{blue}{1 \cdot \frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}\]
    4. Applied associate-/l*2.2

      \[\leadsto \color{blue}{\frac{1}{\frac{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}}}\]
    5. Simplified2.2

      \[\leadsto \frac{1}{\color{blue}{\frac{\left(2 + \left(\beta + \alpha\right)\right) + 1.0}{\frac{\frac{\left(\alpha + \mathsf{fma}\left(\beta, \alpha, \beta\right)\right) + 1.0}{2 + \left(\beta + \alpha\right)}}{2 + \left(\beta + \alpha\right)}}}}\]
    6. Using strategy rm
    7. Applied add-sqr-sqrt2.7

      \[\leadsto \frac{1}{\frac{\left(2 + \left(\beta + \alpha\right)\right) + 1.0}{\frac{\frac{\left(\alpha + \mathsf{fma}\left(\beta, \alpha, \beta\right)\right) + 1.0}{2 + \left(\beta + \alpha\right)}}{\color{blue}{\sqrt{2 + \left(\beta + \alpha\right)} \cdot \sqrt{2 + \left(\beta + \alpha\right)}}}}}\]
    8. Applied *-un-lft-identity2.7

      \[\leadsto \frac{1}{\frac{\left(2 + \left(\beta + \alpha\right)\right) + 1.0}{\frac{\color{blue}{1 \cdot \frac{\left(\alpha + \mathsf{fma}\left(\beta, \alpha, \beta\right)\right) + 1.0}{2 + \left(\beta + \alpha\right)}}}{\sqrt{2 + \left(\beta + \alpha\right)} \cdot \sqrt{2 + \left(\beta + \alpha\right)}}}}\]
    9. Applied times-frac2.8

      \[\leadsto \frac{1}{\frac{\left(2 + \left(\beta + \alpha\right)\right) + 1.0}{\color{blue}{\frac{1}{\sqrt{2 + \left(\beta + \alpha\right)}} \cdot \frac{\frac{\left(\alpha + \mathsf{fma}\left(\beta, \alpha, \beta\right)\right) + 1.0}{2 + \left(\beta + \alpha\right)}}{\sqrt{2 + \left(\beta + \alpha\right)}}}}}\]
    10. Applied add-cube-cbrt3.0

      \[\leadsto \frac{1}{\frac{\color{blue}{\left(\sqrt[3]{\left(2 + \left(\beta + \alpha\right)\right) + 1.0} \cdot \sqrt[3]{\left(2 + \left(\beta + \alpha\right)\right) + 1.0}\right) \cdot \sqrt[3]{\left(2 + \left(\beta + \alpha\right)\right) + 1.0}}}{\frac{1}{\sqrt{2 + \left(\beta + \alpha\right)}} \cdot \frac{\frac{\left(\alpha + \mathsf{fma}\left(\beta, \alpha, \beta\right)\right) + 1.0}{2 + \left(\beta + \alpha\right)}}{\sqrt{2 + \left(\beta + \alpha\right)}}}}\]
    11. Applied times-frac2.5

      \[\leadsto \frac{1}{\color{blue}{\frac{\sqrt[3]{\left(2 + \left(\beta + \alpha\right)\right) + 1.0} \cdot \sqrt[3]{\left(2 + \left(\beta + \alpha\right)\right) + 1.0}}{\frac{1}{\sqrt{2 + \left(\beta + \alpha\right)}}} \cdot \frac{\sqrt[3]{\left(2 + \left(\beta + \alpha\right)\right) + 1.0}}{\frac{\frac{\left(\alpha + \mathsf{fma}\left(\beta, \alpha, \beta\right)\right) + 1.0}{2 + \left(\beta + \alpha\right)}}{\sqrt{2 + \left(\beta + \alpha\right)}}}}}\]
    12. Applied associate-/r*2.2

      \[\leadsto \color{blue}{\frac{\frac{1}{\frac{\sqrt[3]{\left(2 + \left(\beta + \alpha\right)\right) + 1.0} \cdot \sqrt[3]{\left(2 + \left(\beta + \alpha\right)\right) + 1.0}}{\frac{1}{\sqrt{2 + \left(\beta + \alpha\right)}}}}}{\frac{\sqrt[3]{\left(2 + \left(\beta + \alpha\right)\right) + 1.0}}{\frac{\frac{\left(\alpha + \mathsf{fma}\left(\beta, \alpha, \beta\right)\right) + 1.0}{2 + \left(\beta + \alpha\right)}}{\sqrt{2 + \left(\beta + \alpha\right)}}}}}\]

    if 8.004231800207308e+201 < beta

    1. Initial program 19.0

      \[\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}\]
    2. Using strategy rm
    3. Applied add-sqr-sqrt19.0

      \[\leadsto \frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}{\color{blue}{\sqrt{\left(\alpha + \beta\right) + 2 \cdot 1} \cdot \sqrt{\left(\alpha + \beta\right) + 2 \cdot 1}}}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}\]
    4. Applied *-un-lft-identity19.0

      \[\leadsto \frac{\frac{\frac{\color{blue}{1 \cdot \left(\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0\right)}}{\sqrt{\left(\alpha + \beta\right) + 2 \cdot 1} \cdot \sqrt{\left(\alpha + \beta\right) + 2 \cdot 1}}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}\]
    5. Applied times-frac19.0

      \[\leadsto \frac{\frac{\color{blue}{\frac{1}{\sqrt{\left(\alpha + \beta\right) + 2 \cdot 1}} \cdot \frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}{\sqrt{\left(\alpha + \beta\right) + 2 \cdot 1}}}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}\]
    6. Applied associate-/l*19.0

      \[\leadsto \frac{\color{blue}{\frac{\frac{1}{\sqrt{\left(\alpha + \beta\right) + 2 \cdot 1}}}{\frac{\left(\alpha + \beta\right) + 2 \cdot 1}{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}{\sqrt{\left(\alpha + \beta\right) + 2 \cdot 1}}}}}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}\]
    7. Taylor expanded around 0 6.5

      \[\leadsto \frac{\frac{\frac{1}{\sqrt{\left(\alpha + \beta\right) + 2 \cdot 1}}}{\color{blue}{\left(6.0 \cdot \frac{\beta}{\sqrt{8}} + \left(6.0 \cdot \left(\sqrt{\frac{1}{8}} \cdot \alpha\right) + 1.0 \cdot \sqrt{8}\right)\right) - \left(1.0 \cdot \left(\sqrt{8} \cdot \alpha\right) + 1.0 \cdot \left(\sqrt{8} \cdot \beta\right)\right)}}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification2.7

    \[\leadsto \begin{array}{l} \mathbf{if}\;\beta \le 8.004231800207308 \cdot 10^{+201}:\\ \;\;\;\;\frac{\frac{1}{\frac{\sqrt[3]{\left(\left(\alpha + \beta\right) + 2\right) + 1.0} \cdot \sqrt[3]{\left(\left(\alpha + \beta\right) + 2\right) + 1.0}}{\frac{1}{\sqrt{\left(\alpha + \beta\right) + 2}}}}}{\frac{\sqrt[3]{\left(\left(\alpha + \beta\right) + 2\right) + 1.0}}{\frac{\frac{\left(\mathsf{fma}\left(\beta, \alpha, \beta\right) + \alpha\right) + 1.0}{\left(\alpha + \beta\right) + 2}}{\sqrt{\left(\alpha + \beta\right) + 2}}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\frac{1}{\sqrt{2 + \left(\alpha + \beta\right)}}}{\left(\frac{\beta}{\sqrt{8}} \cdot 6.0 + \left(\left(\sqrt{\frac{1}{8}} \cdot \alpha\right) \cdot 6.0 + \sqrt{8} \cdot 1.0\right)\right) - \left(\left(\beta \cdot \sqrt{8}\right) \cdot 1.0 + 1.0 \cdot \left(\alpha \cdot \sqrt{8}\right)\right)}}{1.0 + \left(2 + \left(\alpha + \beta\right)\right)}\\ \end{array}\]

Reproduce

herbie shell --seed 2019152 +o rules:numerics
(FPCore (alpha beta)
  :name "Octave 3.8, jcobi/3"
  :pre (and (> alpha -1) (> beta -1))
  (/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0)))