Average Error: 16.5 → 6.1
Time: 16.1s
Precision: 64
\[\alpha \gt -1 \land \beta \gt -1\]
\[\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2} + 1}{2}\]
\[\begin{array}{l} \mathbf{if}\;\alpha \le 8092481.162986398674547672271728515625:\\ \;\;\;\;\frac{\mathsf{fma}\left(\beta - \alpha, \frac{1}{\left(\alpha + \beta\right) + 2}, 1\right)}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\beta}{\left(\alpha + \beta\right) + 2} - \left(\left(\frac{4}{{\alpha}^{2}} - \frac{8}{{\alpha}^{3}}\right) - \frac{2}{\alpha}\right)}{2}\\ \end{array}\]
\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2} + 1}{2}
\begin{array}{l}
\mathbf{if}\;\alpha \le 8092481.162986398674547672271728515625:\\
\;\;\;\;\frac{\mathsf{fma}\left(\beta - \alpha, \frac{1}{\left(\alpha + \beta\right) + 2}, 1\right)}{2}\\

\mathbf{else}:\\
\;\;\;\;\frac{\frac{\beta}{\left(\alpha + \beta\right) + 2} - \left(\left(\frac{4}{{\alpha}^{2}} - \frac{8}{{\alpha}^{3}}\right) - \frac{2}{\alpha}\right)}{2}\\

\end{array}
double f(double alpha, double beta) {
        double r58126 = beta;
        double r58127 = alpha;
        double r58128 = r58126 - r58127;
        double r58129 = r58127 + r58126;
        double r58130 = 2.0;
        double r58131 = r58129 + r58130;
        double r58132 = r58128 / r58131;
        double r58133 = 1.0;
        double r58134 = r58132 + r58133;
        double r58135 = r58134 / r58130;
        return r58135;
}

double f(double alpha, double beta) {
        double r58136 = alpha;
        double r58137 = 8092481.162986399;
        bool r58138 = r58136 <= r58137;
        double r58139 = beta;
        double r58140 = r58139 - r58136;
        double r58141 = 1.0;
        double r58142 = r58136 + r58139;
        double r58143 = 2.0;
        double r58144 = r58142 + r58143;
        double r58145 = r58141 / r58144;
        double r58146 = 1.0;
        double r58147 = fma(r58140, r58145, r58146);
        double r58148 = r58147 / r58143;
        double r58149 = r58139 / r58144;
        double r58150 = 4.0;
        double r58151 = 2.0;
        double r58152 = pow(r58136, r58151);
        double r58153 = r58150 / r58152;
        double r58154 = 8.0;
        double r58155 = 3.0;
        double r58156 = pow(r58136, r58155);
        double r58157 = r58154 / r58156;
        double r58158 = r58153 - r58157;
        double r58159 = r58143 / r58136;
        double r58160 = r58158 - r58159;
        double r58161 = r58149 - r58160;
        double r58162 = r58161 / r58143;
        double r58163 = r58138 ? r58148 : r58162;
        return r58163;
}

Error

Bits error versus alpha

Bits error versus beta

Derivation

  1. Split input into 2 regimes
  2. if alpha < 8092481.162986399

    1. Initial program 0.1

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

      \[\leadsto \frac{\color{blue}{\left(\beta - \alpha\right) \cdot \frac{1}{\left(\alpha + \beta\right) + 2}} + 1}{2}\]
    4. Applied fma-def0.1

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

    if 8092481.162986399 < alpha

    1. Initial program 50.0

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

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

      \[\leadsto \frac{\color{blue}{\frac{\beta}{\left(\alpha + \beta\right) + 2} - \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2} - 1\right)}}{2}\]
    5. Using strategy rm
    6. Applied add-cbrt-cube48.3

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

      \[\leadsto \frac{\frac{\beta}{\left(\alpha + \beta\right) + 2} - \sqrt[3]{\color{blue}{{\left(\frac{\alpha}{\left(\alpha + \beta\right) + 2} - 1\right)}^{3}}}}{2}\]
    8. Taylor expanded around inf 18.4

      \[\leadsto \frac{\frac{\beta}{\left(\alpha + \beta\right) + 2} - \color{blue}{\left(4 \cdot \frac{1}{{\alpha}^{2}} - \left(2 \cdot \frac{1}{\alpha} + 8 \cdot \frac{1}{{\alpha}^{3}}\right)\right)}}{2}\]
    9. Simplified18.4

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\alpha \le 8092481.162986398674547672271728515625:\\ \;\;\;\;\frac{\mathsf{fma}\left(\beta - \alpha, \frac{1}{\left(\alpha + \beta\right) + 2}, 1\right)}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\beta}{\left(\alpha + \beta\right) + 2} - \left(\left(\frac{4}{{\alpha}^{2}} - \frac{8}{{\alpha}^{3}}\right) - \frac{2}{\alpha}\right)}{2}\\ \end{array}\]

Reproduce

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