Average Error: 3.9 → 2.5
Time: 12.0s
Precision: 64
\[\alpha \gt -1 \land \beta \gt -1\]
\[\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}\]
\[\begin{array}{l} \mathbf{if}\;\alpha \le 2.7674997282640276 \cdot 10^{163}:\\ \;\;\;\;\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1} \cdot \frac{1}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}\\ \mathbf{else}:\\ \;\;\;\;1 \cdot \frac{\mathsf{fma}\left(\alpha, 0.25, \mathsf{fma}\left(\beta, 0.25, 0.5\right)\right)}{\left(\beta + \left(\alpha + \mathsf{fma}\left(1, 2, 1\right)\right)\right) \cdot \mathsf{fma}\left(1, 2, \alpha + \beta\right)}\\ \end{array}\]
\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}
\begin{array}{l}
\mathbf{if}\;\alpha \le 2.7674997282640276 \cdot 10^{163}:\\
\;\;\;\;\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1} \cdot \frac{1}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}\\

\mathbf{else}:\\
\;\;\;\;1 \cdot \frac{\mathsf{fma}\left(\alpha, 0.25, \mathsf{fma}\left(\beta, 0.25, 0.5\right)\right)}{\left(\beta + \left(\alpha + \mathsf{fma}\left(1, 2, 1\right)\right)\right) \cdot \mathsf{fma}\left(1, 2, \alpha + \beta\right)}\\

\end{array}
double f(double alpha, double beta) {
        double r112438 = alpha;
        double r112439 = beta;
        double r112440 = r112438 + r112439;
        double r112441 = r112439 * r112438;
        double r112442 = r112440 + r112441;
        double r112443 = 1.0;
        double r112444 = r112442 + r112443;
        double r112445 = 2.0;
        double r112446 = r112445 * r112443;
        double r112447 = r112440 + r112446;
        double r112448 = r112444 / r112447;
        double r112449 = r112448 / r112447;
        double r112450 = r112447 + r112443;
        double r112451 = r112449 / r112450;
        return r112451;
}

double f(double alpha, double beta) {
        double r112452 = alpha;
        double r112453 = 2.7674997282640276e+163;
        bool r112454 = r112452 <= r112453;
        double r112455 = beta;
        double r112456 = r112452 + r112455;
        double r112457 = r112455 * r112452;
        double r112458 = r112456 + r112457;
        double r112459 = 1.0;
        double r112460 = r112458 + r112459;
        double r112461 = 2.0;
        double r112462 = r112461 * r112459;
        double r112463 = r112456 + r112462;
        double r112464 = r112460 / r112463;
        double r112465 = r112464 / r112463;
        double r112466 = 1.0;
        double r112467 = r112463 + r112459;
        double r112468 = r112466 / r112467;
        double r112469 = r112465 * r112468;
        double r112470 = 0.25;
        double r112471 = 0.5;
        double r112472 = fma(r112455, r112470, r112471);
        double r112473 = fma(r112452, r112470, r112472);
        double r112474 = fma(r112459, r112461, r112459);
        double r112475 = r112452 + r112474;
        double r112476 = r112455 + r112475;
        double r112477 = fma(r112459, r112461, r112456);
        double r112478 = r112476 * r112477;
        double r112479 = r112473 / r112478;
        double r112480 = r112466 * r112479;
        double r112481 = r112454 ? r112469 : r112480;
        return r112481;
}

Error

Bits error versus alpha

Bits error versus beta

Derivation

  1. Split input into 2 regimes
  2. if alpha < 2.7674997282640276e+163

    1. Initial program 1.3

      \[\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}\]
    2. Using strategy rm
    3. Applied div-inv1.3

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

    if 2.7674997282640276e+163 < alpha

    1. Initial program 17.5

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

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

      \[\leadsto \frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\color{blue}{1 \cdot \left(\left(\alpha + \beta\right) + 2 \cdot 1\right)}}}{1 \cdot \left(\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1\right)}\]
    5. Applied *-un-lft-identity17.5

      \[\leadsto \frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\color{blue}{1 \cdot \left(\left(\alpha + \beta\right) + 2 \cdot 1\right)}}}{1 \cdot \left(\left(\alpha + \beta\right) + 2 \cdot 1\right)}}{1 \cdot \left(\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1\right)}\]
    6. Applied *-un-lft-identity17.5

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

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

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

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

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

      \[\leadsto 1 \cdot \color{blue}{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\mathsf{fma}\left(1, 2, \alpha + \beta\right)}}{\left(\beta + \left(\alpha + \mathsf{fma}\left(1, 2, 1\right)\right)\right) \cdot \mathsf{fma}\left(1, 2, \alpha + \beta\right)}}\]
    12. Taylor expanded around 0 8.3

      \[\leadsto 1 \cdot \frac{\color{blue}{0.25 \cdot \alpha + \left(0.5 + 0.25 \cdot \beta\right)}}{\left(\beta + \left(\alpha + \mathsf{fma}\left(1, 2, 1\right)\right)\right) \cdot \mathsf{fma}\left(1, 2, \alpha + \beta\right)}\]
    13. Simplified8.3

      \[\leadsto 1 \cdot \frac{\color{blue}{\mathsf{fma}\left(\alpha, 0.25, \mathsf{fma}\left(\beta, 0.25, 0.5\right)\right)}}{\left(\beta + \left(\alpha + \mathsf{fma}\left(1, 2, 1\right)\right)\right) \cdot \mathsf{fma}\left(1, 2, \alpha + \beta\right)}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification2.5

    \[\leadsto \begin{array}{l} \mathbf{if}\;\alpha \le 2.7674997282640276 \cdot 10^{163}:\\ \;\;\;\;\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1} \cdot \frac{1}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}\\ \mathbf{else}:\\ \;\;\;\;1 \cdot \frac{\mathsf{fma}\left(\alpha, 0.25, \mathsf{fma}\left(\beta, 0.25, 0.5\right)\right)}{\left(\beta + \left(\alpha + \mathsf{fma}\left(1, 2, 1\right)\right)\right) \cdot \mathsf{fma}\left(1, 2, \alpha + \beta\right)}\\ \end{array}\]

Reproduce

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