Average Error: 23.9 → 11.3
Time: 1.6m
Precision: 64
\[\alpha \gt -1 \land \beta \gt -1 \land i \gt 0\]
\[\frac{\frac{\frac{\left(\alpha + \beta\right) \cdot \left(\beta - \alpha\right)}{\left(\alpha + \beta\right) + 2 \cdot i}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2.0} + 1.0}{2.0}\]
\[\begin{array}{l} \mathbf{if}\;\alpha \le 9.569473321706742 \cdot 10^{+195}:\\ \;\;\;\;\frac{e^{\sqrt[3]{\log \left(\mathsf{fma}\left(\beta + \alpha, \frac{\frac{\beta - \alpha}{\mathsf{fma}\left(i, 2, \beta + \alpha\right)}}{2.0 + \mathsf{fma}\left(i, 2, \beta + \alpha\right)}, 1.0\right)\right) \cdot \left(\log \left(\mathsf{fma}\left(\beta + \alpha, \frac{\frac{\beta - \alpha}{\mathsf{fma}\left(i, 2, \beta + \alpha\right)}}{2.0 + \mathsf{fma}\left(i, 2, \beta + \alpha\right)}, 1.0\right)\right) \cdot \log \left(\mathsf{fma}\left(\beta + \alpha, \frac{\frac{\beta - \alpha}{\mathsf{fma}\left(i, 2, \beta + \alpha\right)}}{2.0 + \mathsf{fma}\left(i, 2, \beta + \alpha\right)}, 1.0\right)\right)\right)}}}{2.0}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\frac{8.0}{\alpha \cdot \alpha}}{\alpha} + \left(\frac{2.0}{\alpha} - \frac{4.0}{\alpha \cdot \alpha}\right)}{2.0}\\ \end{array}\]
\frac{\frac{\frac{\left(\alpha + \beta\right) \cdot \left(\beta - \alpha\right)}{\left(\alpha + \beta\right) + 2 \cdot i}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2.0} + 1.0}{2.0}
\begin{array}{l}
\mathbf{if}\;\alpha \le 9.569473321706742 \cdot 10^{+195}:\\
\;\;\;\;\frac{e^{\sqrt[3]{\log \left(\mathsf{fma}\left(\beta + \alpha, \frac{\frac{\beta - \alpha}{\mathsf{fma}\left(i, 2, \beta + \alpha\right)}}{2.0 + \mathsf{fma}\left(i, 2, \beta + \alpha\right)}, 1.0\right)\right) \cdot \left(\log \left(\mathsf{fma}\left(\beta + \alpha, \frac{\frac{\beta - \alpha}{\mathsf{fma}\left(i, 2, \beta + \alpha\right)}}{2.0 + \mathsf{fma}\left(i, 2, \beta + \alpha\right)}, 1.0\right)\right) \cdot \log \left(\mathsf{fma}\left(\beta + \alpha, \frac{\frac{\beta - \alpha}{\mathsf{fma}\left(i, 2, \beta + \alpha\right)}}{2.0 + \mathsf{fma}\left(i, 2, \beta + \alpha\right)}, 1.0\right)\right)\right)}}}{2.0}\\

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

\end{array}
double f(double alpha, double beta, double i) {
        double r2954732 = alpha;
        double r2954733 = beta;
        double r2954734 = r2954732 + r2954733;
        double r2954735 = r2954733 - r2954732;
        double r2954736 = r2954734 * r2954735;
        double r2954737 = 2.0;
        double r2954738 = i;
        double r2954739 = r2954737 * r2954738;
        double r2954740 = r2954734 + r2954739;
        double r2954741 = r2954736 / r2954740;
        double r2954742 = 2.0;
        double r2954743 = r2954740 + r2954742;
        double r2954744 = r2954741 / r2954743;
        double r2954745 = 1.0;
        double r2954746 = r2954744 + r2954745;
        double r2954747 = r2954746 / r2954742;
        return r2954747;
}

double f(double alpha, double beta, double i) {
        double r2954748 = alpha;
        double r2954749 = 9.569473321706742e+195;
        bool r2954750 = r2954748 <= r2954749;
        double r2954751 = beta;
        double r2954752 = r2954751 + r2954748;
        double r2954753 = r2954751 - r2954748;
        double r2954754 = i;
        double r2954755 = 2.0;
        double r2954756 = fma(r2954754, r2954755, r2954752);
        double r2954757 = r2954753 / r2954756;
        double r2954758 = 2.0;
        double r2954759 = r2954758 + r2954756;
        double r2954760 = r2954757 / r2954759;
        double r2954761 = 1.0;
        double r2954762 = fma(r2954752, r2954760, r2954761);
        double r2954763 = log(r2954762);
        double r2954764 = r2954763 * r2954763;
        double r2954765 = r2954763 * r2954764;
        double r2954766 = cbrt(r2954765);
        double r2954767 = exp(r2954766);
        double r2954768 = r2954767 / r2954758;
        double r2954769 = 8.0;
        double r2954770 = r2954748 * r2954748;
        double r2954771 = r2954769 / r2954770;
        double r2954772 = r2954771 / r2954748;
        double r2954773 = r2954758 / r2954748;
        double r2954774 = 4.0;
        double r2954775 = r2954774 / r2954770;
        double r2954776 = r2954773 - r2954775;
        double r2954777 = r2954772 + r2954776;
        double r2954778 = r2954777 / r2954758;
        double r2954779 = r2954750 ? r2954768 : r2954778;
        return r2954779;
}

Error

Bits error versus alpha

Bits error versus beta

Bits error versus i

Derivation

  1. Split input into 2 regimes
  2. if alpha < 9.569473321706742e+195

    1. Initial program 18.6

      \[\frac{\frac{\frac{\left(\alpha + \beta\right) \cdot \left(\beta - \alpha\right)}{\left(\alpha + \beta\right) + 2 \cdot i}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2.0} + 1.0}{2.0}\]
    2. Simplified18.6

      \[\leadsto \color{blue}{\frac{\frac{\left(\beta + \alpha\right) \cdot \left(\beta - \alpha\right)}{\mathsf{fma}\left(2.0, \mathsf{fma}\left(2, i, \beta + \alpha\right), \mathsf{fma}\left(2, i, \beta + \alpha\right) \cdot \mathsf{fma}\left(2, i, \beta + \alpha\right)\right)} + 1.0}{2.0}}\]
    3. Using strategy rm
    4. Applied *-un-lft-identity18.6

      \[\leadsto \frac{\frac{\left(\beta + \alpha\right) \cdot \left(\beta - \alpha\right)}{\color{blue}{1 \cdot \mathsf{fma}\left(2.0, \mathsf{fma}\left(2, i, \beta + \alpha\right), \mathsf{fma}\left(2, i, \beta + \alpha\right) \cdot \mathsf{fma}\left(2, i, \beta + \alpha\right)\right)}} + 1.0}{2.0}\]
    5. Applied times-frac15.1

      \[\leadsto \frac{\color{blue}{\frac{\beta + \alpha}{1} \cdot \frac{\beta - \alpha}{\mathsf{fma}\left(2.0, \mathsf{fma}\left(2, i, \beta + \alpha\right), \mathsf{fma}\left(2, i, \beta + \alpha\right) \cdot \mathsf{fma}\left(2, i, \beta + \alpha\right)\right)}} + 1.0}{2.0}\]
    6. Applied fma-def15.1

      \[\leadsto \frac{\color{blue}{\mathsf{fma}\left(\frac{\beta + \alpha}{1}, \frac{\beta - \alpha}{\mathsf{fma}\left(2.0, \mathsf{fma}\left(2, i, \beta + \alpha\right), \mathsf{fma}\left(2, i, \beta + \alpha\right) \cdot \mathsf{fma}\left(2, i, \beta + \alpha\right)\right)}, 1.0\right)}}{2.0}\]
    7. Using strategy rm
    8. Applied add-exp-log15.1

      \[\leadsto \frac{\color{blue}{e^{\log \left(\mathsf{fma}\left(\frac{\beta + \alpha}{1}, \frac{\beta - \alpha}{\mathsf{fma}\left(2.0, \mathsf{fma}\left(2, i, \beta + \alpha\right), \mathsf{fma}\left(2, i, \beta + \alpha\right) \cdot \mathsf{fma}\left(2, i, \beta + \alpha\right)\right)}, 1.0\right)\right)}}}{2.0}\]
    9. Simplified15.1

      \[\leadsto \frac{e^{\color{blue}{\log \left(\mathsf{fma}\left(\alpha + \beta, \frac{\beta - \alpha}{\mathsf{fma}\left(2.0, \mathsf{fma}\left(i, 2, \beta\right) + \alpha, \left(\mathsf{fma}\left(i, 2, \beta\right) + \alpha\right) \cdot \left(\mathsf{fma}\left(i, 2, \beta\right) + \alpha\right)\right)}, 1.0\right)\right)}}}{2.0}\]
    10. Using strategy rm
    11. Applied add-cbrt-cube15.1

      \[\leadsto \frac{e^{\color{blue}{\sqrt[3]{\left(\log \left(\mathsf{fma}\left(\alpha + \beta, \frac{\beta - \alpha}{\mathsf{fma}\left(2.0, \mathsf{fma}\left(i, 2, \beta\right) + \alpha, \left(\mathsf{fma}\left(i, 2, \beta\right) + \alpha\right) \cdot \left(\mathsf{fma}\left(i, 2, \beta\right) + \alpha\right)\right)}, 1.0\right)\right) \cdot \log \left(\mathsf{fma}\left(\alpha + \beta, \frac{\beta - \alpha}{\mathsf{fma}\left(2.0, \mathsf{fma}\left(i, 2, \beta\right) + \alpha, \left(\mathsf{fma}\left(i, 2, \beta\right) + \alpha\right) \cdot \left(\mathsf{fma}\left(i, 2, \beta\right) + \alpha\right)\right)}, 1.0\right)\right)\right) \cdot \log \left(\mathsf{fma}\left(\alpha + \beta, \frac{\beta - \alpha}{\mathsf{fma}\left(2.0, \mathsf{fma}\left(i, 2, \beta\right) + \alpha, \left(\mathsf{fma}\left(i, 2, \beta\right) + \alpha\right) \cdot \left(\mathsf{fma}\left(i, 2, \beta\right) + \alpha\right)\right)}, 1.0\right)\right)}}}}{2.0}\]
    12. Simplified7.2

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

    if 9.569473321706742e+195 < alpha

    1. Initial program 63.2

      \[\frac{\frac{\frac{\left(\alpha + \beta\right) \cdot \left(\beta - \alpha\right)}{\left(\alpha + \beta\right) + 2 \cdot i}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2.0} + 1.0}{2.0}\]
    2. Simplified62.5

      \[\leadsto \color{blue}{\frac{\frac{\left(\beta + \alpha\right) \cdot \left(\beta - \alpha\right)}{\mathsf{fma}\left(2.0, \mathsf{fma}\left(2, i, \beta + \alpha\right), \mathsf{fma}\left(2, i, \beta + \alpha\right) \cdot \mathsf{fma}\left(2, i, \beta + \alpha\right)\right)} + 1.0}{2.0}}\]
    3. Using strategy rm
    4. Applied *-un-lft-identity62.5

      \[\leadsto \frac{\frac{\left(\beta + \alpha\right) \cdot \left(\beta - \alpha\right)}{\color{blue}{1 \cdot \mathsf{fma}\left(2.0, \mathsf{fma}\left(2, i, \beta + \alpha\right), \mathsf{fma}\left(2, i, \beta + \alpha\right) \cdot \mathsf{fma}\left(2, i, \beta + \alpha\right)\right)}} + 1.0}{2.0}\]
    5. Applied times-frac55.9

      \[\leadsto \frac{\color{blue}{\frac{\beta + \alpha}{1} \cdot \frac{\beta - \alpha}{\mathsf{fma}\left(2.0, \mathsf{fma}\left(2, i, \beta + \alpha\right), \mathsf{fma}\left(2, i, \beta + \alpha\right) \cdot \mathsf{fma}\left(2, i, \beta + \alpha\right)\right)}} + 1.0}{2.0}\]
    6. Applied fma-def55.9

      \[\leadsto \frac{\color{blue}{\mathsf{fma}\left(\frac{\beta + \alpha}{1}, \frac{\beta - \alpha}{\mathsf{fma}\left(2.0, \mathsf{fma}\left(2, i, \beta + \alpha\right), \mathsf{fma}\left(2, i, \beta + \alpha\right) \cdot \mathsf{fma}\left(2, i, \beta + \alpha\right)\right)}, 1.0\right)}}{2.0}\]
    7. Using strategy rm
    8. Applied add-exp-log55.9

      \[\leadsto \frac{\color{blue}{e^{\log \left(\mathsf{fma}\left(\frac{\beta + \alpha}{1}, \frac{\beta - \alpha}{\mathsf{fma}\left(2.0, \mathsf{fma}\left(2, i, \beta + \alpha\right), \mathsf{fma}\left(2, i, \beta + \alpha\right) \cdot \mathsf{fma}\left(2, i, \beta + \alpha\right)\right)}, 1.0\right)\right)}}}{2.0}\]
    9. Simplified55.9

      \[\leadsto \frac{e^{\color{blue}{\log \left(\mathsf{fma}\left(\alpha + \beta, \frac{\beta - \alpha}{\mathsf{fma}\left(2.0, \mathsf{fma}\left(i, 2, \beta\right) + \alpha, \left(\mathsf{fma}\left(i, 2, \beta\right) + \alpha\right) \cdot \left(\mathsf{fma}\left(i, 2, \beta\right) + \alpha\right)\right)}, 1.0\right)\right)}}}{2.0}\]
    10. Taylor expanded around -inf 41.8

      \[\leadsto \frac{\color{blue}{\left(2.0 \cdot \frac{1}{\alpha} + 8.0 \cdot \frac{1}{{\alpha}^{3}}\right) - 4.0 \cdot \frac{1}{{\alpha}^{2}}}}{2.0}\]
    11. Simplified41.8

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\alpha \le 9.569473321706742 \cdot 10^{+195}:\\ \;\;\;\;\frac{e^{\sqrt[3]{\log \left(\mathsf{fma}\left(\beta + \alpha, \frac{\frac{\beta - \alpha}{\mathsf{fma}\left(i, 2, \beta + \alpha\right)}}{2.0 + \mathsf{fma}\left(i, 2, \beta + \alpha\right)}, 1.0\right)\right) \cdot \left(\log \left(\mathsf{fma}\left(\beta + \alpha, \frac{\frac{\beta - \alpha}{\mathsf{fma}\left(i, 2, \beta + \alpha\right)}}{2.0 + \mathsf{fma}\left(i, 2, \beta + \alpha\right)}, 1.0\right)\right) \cdot \log \left(\mathsf{fma}\left(\beta + \alpha, \frac{\frac{\beta - \alpha}{\mathsf{fma}\left(i, 2, \beta + \alpha\right)}}{2.0 + \mathsf{fma}\left(i, 2, \beta + \alpha\right)}, 1.0\right)\right)\right)}}}{2.0}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\frac{8.0}{\alpha \cdot \alpha}}{\alpha} + \left(\frac{2.0}{\alpha} - \frac{4.0}{\alpha \cdot \alpha}\right)}{2.0}\\ \end{array}\]

Reproduce

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