Average Error: 16.2 → 5.8
Time: 5.0s
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 522468654.934868395:\\ \;\;\;\;\frac{\frac{{\left(\frac{\beta}{\left(\alpha + \beta\right) + 2}\right)}^{3} - {\left(\frac{\alpha}{\left(\alpha + \beta\right) + 2} - 1\right)}^{3}}{\mathsf{fma}\left(\frac{\alpha}{\left(\alpha + \beta\right) + 2} - 1, \frac{\beta}{\left(\alpha + \beta\right) + 2} + \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2} - 1\right), \frac{\beta}{\left(\alpha + \beta\right) + 2} \cdot \frac{\beta}{\left(\alpha + \beta\right) + 2}\right)}}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\beta}{\left(\alpha + \beta\right) + 2} - \mathsf{fma}\left(4, \frac{1}{{\alpha}^{2}}, -\mathsf{fma}\left(2, \frac{1}{\alpha}, 8 \cdot \frac{1}{{\alpha}^{3}}\right)\right)}{2}\\ \end{array}\]
\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2} + 1}{2}
\begin{array}{l}
\mathbf{if}\;\alpha \le 522468654.934868395:\\
\;\;\;\;\frac{\frac{{\left(\frac{\beta}{\left(\alpha + \beta\right) + 2}\right)}^{3} - {\left(\frac{\alpha}{\left(\alpha + \beta\right) + 2} - 1\right)}^{3}}{\mathsf{fma}\left(\frac{\alpha}{\left(\alpha + \beta\right) + 2} - 1, \frac{\beta}{\left(\alpha + \beta\right) + 2} + \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2} - 1\right), \frac{\beta}{\left(\alpha + \beta\right) + 2} \cdot \frac{\beta}{\left(\alpha + \beta\right) + 2}\right)}}{2}\\

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

\end{array}
double f(double alpha, double beta) {
        double r108263 = beta;
        double r108264 = alpha;
        double r108265 = r108263 - r108264;
        double r108266 = r108264 + r108263;
        double r108267 = 2.0;
        double r108268 = r108266 + r108267;
        double r108269 = r108265 / r108268;
        double r108270 = 1.0;
        double r108271 = r108269 + r108270;
        double r108272 = r108271 / r108267;
        return r108272;
}

double f(double alpha, double beta) {
        double r108273 = alpha;
        double r108274 = 522468654.9348684;
        bool r108275 = r108273 <= r108274;
        double r108276 = beta;
        double r108277 = r108273 + r108276;
        double r108278 = 2.0;
        double r108279 = r108277 + r108278;
        double r108280 = r108276 / r108279;
        double r108281 = 3.0;
        double r108282 = pow(r108280, r108281);
        double r108283 = r108273 / r108279;
        double r108284 = 1.0;
        double r108285 = r108283 - r108284;
        double r108286 = pow(r108285, r108281);
        double r108287 = r108282 - r108286;
        double r108288 = r108280 + r108285;
        double r108289 = r108280 * r108280;
        double r108290 = fma(r108285, r108288, r108289);
        double r108291 = r108287 / r108290;
        double r108292 = r108291 / r108278;
        double r108293 = 4.0;
        double r108294 = 1.0;
        double r108295 = 2.0;
        double r108296 = pow(r108273, r108295);
        double r108297 = r108294 / r108296;
        double r108298 = r108294 / r108273;
        double r108299 = 8.0;
        double r108300 = pow(r108273, r108281);
        double r108301 = r108294 / r108300;
        double r108302 = r108299 * r108301;
        double r108303 = fma(r108278, r108298, r108302);
        double r108304 = -r108303;
        double r108305 = fma(r108293, r108297, r108304);
        double r108306 = r108280 - r108305;
        double r108307 = r108306 / r108278;
        double r108308 = r108275 ? r108292 : r108307;
        return r108308;
}

Error

Bits error versus alpha

Bits error versus beta

Derivation

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

    1. Initial program 0.1

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

      \[\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-0.1

      \[\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 flip3--0.1

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

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

    if 522468654.9348684 < alpha

    1. Initial program 50.0

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

      \[\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.5

      \[\leadsto \frac{\color{blue}{\frac{\beta}{\left(\alpha + \beta\right) + 2} - \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2} - 1\right)}}{2}\]
    5. Taylor expanded around inf 17.9

      \[\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}\]
    6. Simplified17.9

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

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

Reproduce

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