Average Error: 3.8 → 1.2
Time: 9.6s
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 9.62797683732928503 \cdot 10^{158}:\\ \;\;\;\;\frac{\frac{\sqrt{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1}}}{\sqrt{\left(\alpha + \beta\right) + 2 \cdot 1}}}{\frac{\left(\alpha + \beta\right) + \mathsf{fma}\left(2, 1, 1\right)}{\sqrt{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1}}} \cdot \sqrt{\left(\alpha + \beta\right) + 2 \cdot 1}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{\frac{1}{\left(\frac{1}{\alpha} + \frac{1}{\beta}\right) - \frac{1}{{\alpha}^{2}}}}{\left(\alpha + \beta\right) + 2 \cdot 1}\right)\right)}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}\\ \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 9.62797683732928503 \cdot 10^{158}:\\
\;\;\;\;\frac{\frac{\sqrt{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1}}}{\sqrt{\left(\alpha + \beta\right) + 2 \cdot 1}}}{\frac{\left(\alpha + \beta\right) + \mathsf{fma}\left(2, 1, 1\right)}{\sqrt{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1}}} \cdot \sqrt{\left(\alpha + \beta\right) + 2 \cdot 1}}\\

\mathbf{else}:\\
\;\;\;\;\frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{\frac{1}{\left(\frac{1}{\alpha} + \frac{1}{\beta}\right) - \frac{1}{{\alpha}^{2}}}}{\left(\alpha + \beta\right) + 2 \cdot 1}\right)\right)}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}\\

\end{array}
double f(double alpha, double beta) {
        double r102109 = alpha;
        double r102110 = beta;
        double r102111 = r102109 + r102110;
        double r102112 = r102110 * r102109;
        double r102113 = r102111 + r102112;
        double r102114 = 1.0;
        double r102115 = r102113 + r102114;
        double r102116 = 2.0;
        double r102117 = r102116 * r102114;
        double r102118 = r102111 + r102117;
        double r102119 = r102115 / r102118;
        double r102120 = r102119 / r102118;
        double r102121 = r102118 + r102114;
        double r102122 = r102120 / r102121;
        return r102122;
}

double f(double alpha, double beta) {
        double r102123 = beta;
        double r102124 = 9.627976837329285e+158;
        bool r102125 = r102123 <= r102124;
        double r102126 = alpha;
        double r102127 = r102126 + r102123;
        double r102128 = r102123 * r102126;
        double r102129 = r102127 + r102128;
        double r102130 = 1.0;
        double r102131 = r102129 + r102130;
        double r102132 = 2.0;
        double r102133 = r102132 * r102130;
        double r102134 = r102127 + r102133;
        double r102135 = r102131 / r102134;
        double r102136 = sqrt(r102135);
        double r102137 = sqrt(r102134);
        double r102138 = r102136 / r102137;
        double r102139 = fma(r102132, r102130, r102130);
        double r102140 = r102127 + r102139;
        double r102141 = r102140 / r102136;
        double r102142 = r102141 * r102137;
        double r102143 = r102138 / r102142;
        double r102144 = 1.0;
        double r102145 = r102144 / r102126;
        double r102146 = r102144 / r102123;
        double r102147 = r102145 + r102146;
        double r102148 = 2.0;
        double r102149 = pow(r102126, r102148);
        double r102150 = r102144 / r102149;
        double r102151 = r102147 - r102150;
        double r102152 = r102144 / r102151;
        double r102153 = r102152 / r102134;
        double r102154 = log1p(r102153);
        double r102155 = expm1(r102154);
        double r102156 = r102134 + r102130;
        double r102157 = r102155 / r102156;
        double r102158 = r102125 ? r102143 : r102157;
        return r102158;
}

Error

Bits error versus alpha

Bits error versus beta

Derivation

  1. Split input into 2 regimes
  2. if beta < 9.627976837329285e+158

    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 add-sqr-sqrt1.8

      \[\leadsto \frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\color{blue}{\sqrt{\left(\alpha + \beta\right) + 2 \cdot 1} \cdot \sqrt{\left(\alpha + \beta\right) + 2 \cdot 1}}}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}\]
    4. Applied add-sqr-sqrt1.4

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

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

      \[\leadsto \color{blue}{\frac{\frac{\sqrt{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1}}}{\sqrt{\left(\alpha + \beta\right) + 2 \cdot 1}}}{\frac{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}{\frac{\sqrt{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1}}}{\sqrt{\left(\alpha + \beta\right) + 2 \cdot 1}}}}}\]
    7. Simplified1.4

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

    if 9.627976837329285e+158 < beta

    1. Initial program 17.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}\]
    2. Using strategy rm
    3. Applied expm1-log1p-u17.1

      \[\leadsto \frac{\color{blue}{\mathsf{expm1}\left(\mathsf{log1p}\left(\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}\right)\right)}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}\]
    4. Using strategy rm
    5. Applied clear-num17.1

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

      \[\leadsto \frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{\frac{1}{\color{blue}{\frac{\mathsf{fma}\left(1, 2, \alpha + \beta\right)}{\beta + \left(\alpha + \mathsf{fma}\left(\alpha, \beta, 1\right)\right)}}}}{\left(\alpha + \beta\right) + 2 \cdot 1}\right)\right)}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}\]
    7. Taylor expanded around inf 0.1

      \[\leadsto \frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{\frac{1}{\color{blue}{\left(\frac{1}{\alpha} + \frac{1}{\beta}\right) - \frac{1}{{\alpha}^{2}}}}}{\left(\alpha + \beta\right) + 2 \cdot 1}\right)\right)}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification1.2

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

Reproduce

herbie shell --seed 2020027 +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)))