Average Error: 16.9 → 3.5
Time: 6.7s
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}\;\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2} \le -1:\\ \;\;\;\;\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}\\ \mathbf{else}:\\ \;\;\;\;\frac{\mathsf{fma}\left(\sqrt[3]{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2}} \cdot \sqrt[3]{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2}}, \sqrt[3]{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2}}, 1\right)}{2}\\ \end{array}\]
\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2} + 1}{2}
\begin{array}{l}
\mathbf{if}\;\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2} \le -1:\\
\;\;\;\;\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}\\

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

\end{array}
double f(double alpha, double beta) {
        double r151431 = beta;
        double r151432 = alpha;
        double r151433 = r151431 - r151432;
        double r151434 = r151432 + r151431;
        double r151435 = 2.0;
        double r151436 = r151434 + r151435;
        double r151437 = r151433 / r151436;
        double r151438 = 1.0;
        double r151439 = r151437 + r151438;
        double r151440 = r151439 / r151435;
        return r151440;
}

double f(double alpha, double beta) {
        double r151441 = beta;
        double r151442 = alpha;
        double r151443 = r151441 - r151442;
        double r151444 = r151442 + r151441;
        double r151445 = 2.0;
        double r151446 = r151444 + r151445;
        double r151447 = r151443 / r151446;
        double r151448 = -1.0;
        bool r151449 = r151447 <= r151448;
        double r151450 = r151441 / r151446;
        double r151451 = 4.0;
        double r151452 = 1.0;
        double r151453 = 2.0;
        double r151454 = pow(r151442, r151453);
        double r151455 = r151452 / r151454;
        double r151456 = r151452 / r151442;
        double r151457 = 8.0;
        double r151458 = 3.0;
        double r151459 = pow(r151442, r151458);
        double r151460 = r151452 / r151459;
        double r151461 = r151457 * r151460;
        double r151462 = fma(r151445, r151456, r151461);
        double r151463 = -r151462;
        double r151464 = fma(r151451, r151455, r151463);
        double r151465 = r151450 - r151464;
        double r151466 = r151465 / r151445;
        double r151467 = cbrt(r151447);
        double r151468 = r151467 * r151467;
        double r151469 = 1.0;
        double r151470 = fma(r151468, r151467, r151469);
        double r151471 = r151470 / r151445;
        double r151472 = r151449 ? r151466 : r151471;
        return r151472;
}

Error

Bits error versus alpha

Bits error versus beta

Derivation

  1. Split input into 2 regimes
  2. if (/ (- beta alpha) (+ (+ alpha beta) 2.0)) < -1.0

    1. Initial program 60.6

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

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

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

      \[\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. Simplified11.0

      \[\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}\]

    if -1.0 < (/ (- beta alpha) (+ (+ alpha beta) 2.0))

    1. Initial program 0.6

      \[\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2} + 1}{2}\]
    2. Using strategy rm
    3. Applied add-cube-cbrt0.7

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2} \le -1:\\ \;\;\;\;\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}\\ \mathbf{else}:\\ \;\;\;\;\frac{\mathsf{fma}\left(\sqrt[3]{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2}} \cdot \sqrt[3]{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2}}, \sqrt[3]{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2}}, 1\right)}{2}\\ \end{array}\]

Reproduce

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