Average Error: 16.9 → 3.5
Time: 7.3s
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 r103278 = beta;
        double r103279 = alpha;
        double r103280 = r103278 - r103279;
        double r103281 = r103279 + r103278;
        double r103282 = 2.0;
        double r103283 = r103281 + r103282;
        double r103284 = r103280 / r103283;
        double r103285 = 1.0;
        double r103286 = r103284 + r103285;
        double r103287 = r103286 / r103282;
        return r103287;
}

double f(double alpha, double beta) {
        double r103288 = beta;
        double r103289 = alpha;
        double r103290 = r103288 - r103289;
        double r103291 = r103289 + r103288;
        double r103292 = 2.0;
        double r103293 = r103291 + r103292;
        double r103294 = r103290 / r103293;
        double r103295 = -1.0;
        bool r103296 = r103294 <= r103295;
        double r103297 = r103288 / r103293;
        double r103298 = 4.0;
        double r103299 = 1.0;
        double r103300 = 2.0;
        double r103301 = pow(r103289, r103300);
        double r103302 = r103299 / r103301;
        double r103303 = r103299 / r103289;
        double r103304 = 8.0;
        double r103305 = 3.0;
        double r103306 = pow(r103289, r103305);
        double r103307 = r103299 / r103306;
        double r103308 = r103304 * r103307;
        double r103309 = fma(r103292, r103303, r103308);
        double r103310 = -r103309;
        double r103311 = fma(r103298, r103302, r103310);
        double r103312 = r103297 - r103311;
        double r103313 = r103312 / r103292;
        double r103314 = cbrt(r103294);
        double r103315 = r103314 * r103314;
        double r103316 = 1.0;
        double r103317 = fma(r103315, r103314, r103316);
        double r103318 = r103317 / r103292;
        double r103319 = r103296 ? r103313 : r103318;
        return r103319;
}

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))