Average Error: 3.8 → 2.8
Time: 22.4s
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}\;\beta \le 2.795069092854939666192787143111574910834 \cdot 10^{91}:\\ \;\;\;\;\mathsf{log1p}\left(\mathsf{expm1}\left(\frac{\frac{1 + \mathsf{fma}\left(\beta, \alpha, \beta + \alpha\right)}{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}}{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}\right)\right) \cdot \frac{1}{1 + \mathsf{fma}\left(2, 1, \beta + \alpha\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\left(1 - \frac{1}{\beta}\right) + \frac{\frac{2}{\beta}}{\beta}}{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}}{1 + \mathsf{fma}\left(2, 1, \beta + \alpha\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}\;\beta \le 2.795069092854939666192787143111574910834 \cdot 10^{91}:\\
\;\;\;\;\mathsf{log1p}\left(\mathsf{expm1}\left(\frac{\frac{1 + \mathsf{fma}\left(\beta, \alpha, \beta + \alpha\right)}{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}}{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}\right)\right) \cdot \frac{1}{1 + \mathsf{fma}\left(2, 1, \beta + \alpha\right)}\\

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

\end{array}
double f(double alpha, double beta) {
        double r3856256 = alpha;
        double r3856257 = beta;
        double r3856258 = r3856256 + r3856257;
        double r3856259 = r3856257 * r3856256;
        double r3856260 = r3856258 + r3856259;
        double r3856261 = 1.0;
        double r3856262 = r3856260 + r3856261;
        double r3856263 = 2.0;
        double r3856264 = r3856263 * r3856261;
        double r3856265 = r3856258 + r3856264;
        double r3856266 = r3856262 / r3856265;
        double r3856267 = r3856266 / r3856265;
        double r3856268 = r3856265 + r3856261;
        double r3856269 = r3856267 / r3856268;
        return r3856269;
}

double f(double alpha, double beta) {
        double r3856270 = beta;
        double r3856271 = 2.7950690928549397e+91;
        bool r3856272 = r3856270 <= r3856271;
        double r3856273 = 1.0;
        double r3856274 = alpha;
        double r3856275 = r3856270 + r3856274;
        double r3856276 = fma(r3856270, r3856274, r3856275);
        double r3856277 = r3856273 + r3856276;
        double r3856278 = 2.0;
        double r3856279 = fma(r3856278, r3856273, r3856275);
        double r3856280 = r3856277 / r3856279;
        double r3856281 = r3856280 / r3856279;
        double r3856282 = expm1(r3856281);
        double r3856283 = log1p(r3856282);
        double r3856284 = 1.0;
        double r3856285 = r3856273 + r3856279;
        double r3856286 = r3856284 / r3856285;
        double r3856287 = r3856283 * r3856286;
        double r3856288 = r3856273 / r3856270;
        double r3856289 = r3856284 - r3856288;
        double r3856290 = r3856278 / r3856270;
        double r3856291 = r3856290 / r3856270;
        double r3856292 = r3856289 + r3856291;
        double r3856293 = r3856292 / r3856279;
        double r3856294 = r3856293 / r3856285;
        double r3856295 = r3856272 ? r3856287 : r3856294;
        return r3856295;
}

Error

Bits error versus alpha

Bits error versus beta

Derivation

  1. Split input into 2 regimes
  2. if beta < 2.7950690928549397e+91

    1. Initial program 0.4

      \[\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. Simplified0.4

      \[\leadsto \color{blue}{\frac{\frac{\frac{1 + \mathsf{fma}\left(\beta, \alpha, \beta + \alpha\right)}{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}}{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}}{1 + \mathsf{fma}\left(2, 1, \beta + \alpha\right)}}\]
    3. Using strategy rm
    4. Applied log1p-expm1-u0.4

      \[\leadsto \frac{\color{blue}{\mathsf{log1p}\left(\mathsf{expm1}\left(\frac{\frac{1 + \mathsf{fma}\left(\beta, \alpha, \beta + \alpha\right)}{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}}{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}\right)\right)}}{1 + \mathsf{fma}\left(2, 1, \beta + \alpha\right)}\]
    5. Using strategy rm
    6. Applied div-inv0.5

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

    if 2.7950690928549397e+91 < beta

    1. Initial program 14.4

      \[\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. Simplified14.4

      \[\leadsto \color{blue}{\frac{\frac{\frac{1 + \mathsf{fma}\left(\beta, \alpha, \beta + \alpha\right)}{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}}{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}}{1 + \mathsf{fma}\left(2, 1, \beta + \alpha\right)}}\]
    3. Taylor expanded around inf 10.1

      \[\leadsto \frac{\frac{\color{blue}{\left(2 \cdot \frac{1}{{\beta}^{2}} + 1\right) - 1 \cdot \frac{1}{\beta}}}{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}}{1 + \mathsf{fma}\left(2, 1, \beta + \alpha\right)}\]
    4. Simplified10.1

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\beta \le 2.795069092854939666192787143111574910834 \cdot 10^{91}:\\ \;\;\;\;\mathsf{log1p}\left(\mathsf{expm1}\left(\frac{\frac{1 + \mathsf{fma}\left(\beta, \alpha, \beta + \alpha\right)}{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}}{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}\right)\right) \cdot \frac{1}{1 + \mathsf{fma}\left(2, 1, \beta + \alpha\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\left(1 - \frac{1}{\beta}\right) + \frac{\frac{2}{\beta}}{\beta}}{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}}{1 + \mathsf{fma}\left(2, 1, \beta + \alpha\right)}\\ \end{array}\]

Reproduce

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