Average Error: 16.5 → 6.0
Time: 3.3m
Precision: 64
\[\alpha \gt -1 \land \beta \gt -1\]
\[\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2.0} + 1.0}{2.0}\]
\[\begin{array}{l} \mathbf{if}\;\alpha \le 1028335.162937025:\\ \;\;\;\;\frac{\frac{\beta}{2.0 + \left(\beta + \alpha\right)} - \mathsf{fma}\left(\left(\sqrt[3]{\alpha} \cdot \sqrt[3]{\alpha}\right), \left(\frac{\sqrt[3]{\alpha}}{2.0 + \left(\beta + \alpha\right)}\right), \left(-1.0\right)\right)}{2.0}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\beta}{2.0 + \left(\beta + \alpha\right)} - \left(\frac{4.0}{\alpha \cdot \alpha} - \left(\frac{2.0}{\alpha} + \frac{\frac{8.0}{\alpha \cdot \alpha}}{\alpha}\right)\right)}{2.0}\\ \end{array}\]
\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2.0} + 1.0}{2.0}
\begin{array}{l}
\mathbf{if}\;\alpha \le 1028335.162937025:\\
\;\;\;\;\frac{\frac{\beta}{2.0 + \left(\beta + \alpha\right)} - \mathsf{fma}\left(\left(\sqrt[3]{\alpha} \cdot \sqrt[3]{\alpha}\right), \left(\frac{\sqrt[3]{\alpha}}{2.0 + \left(\beta + \alpha\right)}\right), \left(-1.0\right)\right)}{2.0}\\

\mathbf{else}:\\
\;\;\;\;\frac{\frac{\beta}{2.0 + \left(\beta + \alpha\right)} - \left(\frac{4.0}{\alpha \cdot \alpha} - \left(\frac{2.0}{\alpha} + \frac{\frac{8.0}{\alpha \cdot \alpha}}{\alpha}\right)\right)}{2.0}\\

\end{array}
double f(double alpha, double beta) {
        double r42316604 = beta;
        double r42316605 = alpha;
        double r42316606 = r42316604 - r42316605;
        double r42316607 = r42316605 + r42316604;
        double r42316608 = 2.0;
        double r42316609 = r42316607 + r42316608;
        double r42316610 = r42316606 / r42316609;
        double r42316611 = 1.0;
        double r42316612 = r42316610 + r42316611;
        double r42316613 = r42316612 / r42316608;
        return r42316613;
}

double f(double alpha, double beta) {
        double r42316614 = alpha;
        double r42316615 = 1028335.162937025;
        bool r42316616 = r42316614 <= r42316615;
        double r42316617 = beta;
        double r42316618 = 2.0;
        double r42316619 = r42316617 + r42316614;
        double r42316620 = r42316618 + r42316619;
        double r42316621 = r42316617 / r42316620;
        double r42316622 = cbrt(r42316614);
        double r42316623 = r42316622 * r42316622;
        double r42316624 = r42316622 / r42316620;
        double r42316625 = 1.0;
        double r42316626 = -r42316625;
        double r42316627 = fma(r42316623, r42316624, r42316626);
        double r42316628 = r42316621 - r42316627;
        double r42316629 = r42316628 / r42316618;
        double r42316630 = 4.0;
        double r42316631 = r42316614 * r42316614;
        double r42316632 = r42316630 / r42316631;
        double r42316633 = r42316618 / r42316614;
        double r42316634 = 8.0;
        double r42316635 = r42316634 / r42316631;
        double r42316636 = r42316635 / r42316614;
        double r42316637 = r42316633 + r42316636;
        double r42316638 = r42316632 - r42316637;
        double r42316639 = r42316621 - r42316638;
        double r42316640 = r42316639 / r42316618;
        double r42316641 = r42316616 ? r42316629 : r42316640;
        return r42316641;
}

Error

Bits error versus alpha

Bits error versus beta

Derivation

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

    1. Initial program 0.0

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

      \[\leadsto \frac{\color{blue}{\left(\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \frac{\alpha}{\left(\alpha + \beta\right) + 2.0}\right)} + 1.0}{2.0}\]
    4. Applied associate-+l-0.0

      \[\leadsto \frac{\color{blue}{\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2.0} - 1.0\right)}}{2.0}\]
    5. Using strategy rm
    6. Applied *-un-lft-identity0.0

      \[\leadsto \frac{\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \left(\frac{\alpha}{\left(\alpha + \beta\right) + \color{blue}{1 \cdot 2.0}} - 1.0\right)}{2.0}\]
    7. Applied *-un-lft-identity0.0

      \[\leadsto \frac{\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \left(\frac{\alpha}{\color{blue}{1 \cdot \left(\alpha + \beta\right)} + 1 \cdot 2.0} - 1.0\right)}{2.0}\]
    8. Applied distribute-lft-out0.0

      \[\leadsto \frac{\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \left(\frac{\alpha}{\color{blue}{1 \cdot \left(\left(\alpha + \beta\right) + 2.0\right)}} - 1.0\right)}{2.0}\]
    9. Applied add-cube-cbrt0.1

      \[\leadsto \frac{\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \left(\frac{\color{blue}{\left(\sqrt[3]{\alpha} \cdot \sqrt[3]{\alpha}\right) \cdot \sqrt[3]{\alpha}}}{1 \cdot \left(\left(\alpha + \beta\right) + 2.0\right)} - 1.0\right)}{2.0}\]
    10. Applied times-frac0.1

      \[\leadsto \frac{\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \left(\color{blue}{\frac{\sqrt[3]{\alpha} \cdot \sqrt[3]{\alpha}}{1} \cdot \frac{\sqrt[3]{\alpha}}{\left(\alpha + \beta\right) + 2.0}} - 1.0\right)}{2.0}\]
    11. Applied fma-neg0.1

      \[\leadsto \frac{\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \color{blue}{\mathsf{fma}\left(\left(\frac{\sqrt[3]{\alpha} \cdot \sqrt[3]{\alpha}}{1}\right), \left(\frac{\sqrt[3]{\alpha}}{\left(\alpha + \beta\right) + 2.0}\right), \left(-1.0\right)\right)}}{2.0}\]
    12. Simplified0.1

      \[\leadsto \frac{\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \mathsf{fma}\left(\color{blue}{\left(\sqrt[3]{\alpha} \cdot \sqrt[3]{\alpha}\right)}, \left(\frac{\sqrt[3]{\alpha}}{\left(\alpha + \beta\right) + 2.0}\right), \left(-1.0\right)\right)}{2.0}\]

    if 1028335.162937025 < alpha

    1. Initial program 49.7

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

      \[\leadsto \frac{\color{blue}{\left(\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \frac{\alpha}{\left(\alpha + \beta\right) + 2.0}\right)} + 1.0}{2.0}\]
    4. Applied associate-+l-48.2

      \[\leadsto \frac{\color{blue}{\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2.0} - 1.0\right)}}{2.0}\]
    5. Taylor expanded around -inf 18.0

      \[\leadsto \frac{\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \color{blue}{\left(4.0 \cdot \frac{1}{{\alpha}^{2}} - \left(2.0 \cdot \frac{1}{\alpha} + 8.0 \cdot \frac{1}{{\alpha}^{3}}\right)\right)}}{2.0}\]
    6. Simplified18.0

      \[\leadsto \frac{\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \color{blue}{\left(\frac{4.0}{\alpha \cdot \alpha} - \left(\frac{\frac{8.0}{\alpha \cdot \alpha}}{\alpha} + \frac{2.0}{\alpha}\right)\right)}}{2.0}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification6.0

    \[\leadsto \begin{array}{l} \mathbf{if}\;\alpha \le 1028335.162937025:\\ \;\;\;\;\frac{\frac{\beta}{2.0 + \left(\beta + \alpha\right)} - \mathsf{fma}\left(\left(\sqrt[3]{\alpha} \cdot \sqrt[3]{\alpha}\right), \left(\frac{\sqrt[3]{\alpha}}{2.0 + \left(\beta + \alpha\right)}\right), \left(-1.0\right)\right)}{2.0}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\beta}{2.0 + \left(\beta + \alpha\right)} - \left(\frac{4.0}{\alpha \cdot \alpha} - \left(\frac{2.0}{\alpha} + \frac{\frac{8.0}{\alpha \cdot \alpha}}{\alpha}\right)\right)}{2.0}\\ \end{array}\]

Reproduce

herbie shell --seed 2019107 +o rules:numerics
(FPCore (alpha beta)
  :name "Octave 3.8, jcobi/1"
  :pre (and (> alpha -1) (> beta -1))
  (/ (+ (/ (- beta alpha) (+ (+ alpha beta) 2.0)) 1.0) 2.0))