Average Error: 24.3 → 11.4
Time: 9.2s
Precision: 64
\[\alpha \gt -1 \land \beta \gt -1 \land i \gt 0.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} + 1}{2}\]
\[\begin{array}{l} \mathbf{if}\;\alpha \le 5.127844411711004421416606352766433702715 \cdot 10^{176}:\\ \;\;\;\;\frac{\mathsf{fma}\left(\frac{\frac{\alpha + \beta}{1}}{1}, \frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2 \cdot i}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2}, 1\right)}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{1 \cdot \mathsf{fma}\left(-4, \frac{1}{{\alpha}^{2}}, \mathsf{fma}\left(8, \frac{1}{{\alpha}^{3}}, \frac{2}{\alpha}\right)\right)}{2}\\ \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} + 1}{2}
\begin{array}{l}
\mathbf{if}\;\alpha \le 5.127844411711004421416606352766433702715 \cdot 10^{176}:\\
\;\;\;\;\frac{\mathsf{fma}\left(\frac{\frac{\alpha + \beta}{1}}{1}, \frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2 \cdot i}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2}, 1\right)}{2}\\

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

\end{array}
double f(double alpha, double beta, double i) {
        double r134858 = alpha;
        double r134859 = beta;
        double r134860 = r134858 + r134859;
        double r134861 = r134859 - r134858;
        double r134862 = r134860 * r134861;
        double r134863 = 2.0;
        double r134864 = i;
        double r134865 = r134863 * r134864;
        double r134866 = r134860 + r134865;
        double r134867 = r134862 / r134866;
        double r134868 = r134866 + r134863;
        double r134869 = r134867 / r134868;
        double r134870 = 1.0;
        double r134871 = r134869 + r134870;
        double r134872 = r134871 / r134863;
        return r134872;
}

double f(double alpha, double beta, double i) {
        double r134873 = alpha;
        double r134874 = 5.127844411711004e+176;
        bool r134875 = r134873 <= r134874;
        double r134876 = beta;
        double r134877 = r134873 + r134876;
        double r134878 = 1.0;
        double r134879 = r134877 / r134878;
        double r134880 = r134879 / r134878;
        double r134881 = r134876 - r134873;
        double r134882 = 2.0;
        double r134883 = i;
        double r134884 = r134882 * r134883;
        double r134885 = r134877 + r134884;
        double r134886 = r134881 / r134885;
        double r134887 = r134885 + r134882;
        double r134888 = r134886 / r134887;
        double r134889 = 1.0;
        double r134890 = fma(r134880, r134888, r134889);
        double r134891 = r134890 / r134882;
        double r134892 = 4.0;
        double r134893 = -r134892;
        double r134894 = 2.0;
        double r134895 = pow(r134873, r134894);
        double r134896 = r134878 / r134895;
        double r134897 = 8.0;
        double r134898 = 3.0;
        double r134899 = pow(r134873, r134898);
        double r134900 = r134878 / r134899;
        double r134901 = r134882 / r134873;
        double r134902 = fma(r134897, r134900, r134901);
        double r134903 = fma(r134893, r134896, r134902);
        double r134904 = r134878 * r134903;
        double r134905 = r134904 / r134882;
        double r134906 = r134875 ? r134891 : r134905;
        return r134906;
}

Error

Bits error versus alpha

Bits error versus beta

Bits error versus i

Derivation

  1. Split input into 2 regimes
  2. if alpha < 5.127844411711004e+176

    1. Initial program 17.5

      \[\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} + 1}{2}\]
    2. Using strategy rm
    3. Applied *-un-lft-identity17.5

      \[\leadsto \frac{\frac{\frac{\left(\alpha + \beta\right) \cdot \left(\beta - \alpha\right)}{\left(\alpha + \beta\right) + 2 \cdot i}}{\color{blue}{1 \cdot \left(\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2\right)}} + 1}{2}\]
    4. Applied *-un-lft-identity17.5

      \[\leadsto \frac{\frac{\frac{\left(\alpha + \beta\right) \cdot \left(\beta - \alpha\right)}{\color{blue}{1 \cdot \left(\left(\alpha + \beta\right) + 2 \cdot i\right)}}}{1 \cdot \left(\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2\right)} + 1}{2}\]
    5. Applied times-frac6.5

      \[\leadsto \frac{\frac{\color{blue}{\frac{\alpha + \beta}{1} \cdot \frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2 \cdot i}}}{1 \cdot \left(\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2\right)} + 1}{2}\]
    6. Applied times-frac6.5

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

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

    if 5.127844411711004e+176 < alpha

    1. Initial program 64.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} + 1}{2}\]
    2. Using strategy rm
    3. Applied *-un-lft-identity64.0

      \[\leadsto \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} + \color{blue}{1 \cdot 1}}{2}\]
    4. Applied *-un-lft-identity64.0

      \[\leadsto \frac{\color{blue}{1 \cdot \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}} + 1 \cdot 1}{2}\]
    5. Applied distribute-lft-out64.0

      \[\leadsto \frac{\color{blue}{1 \cdot \left(\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} + 1\right)}}{2}\]
    6. Simplified48.4

      \[\leadsto \frac{1 \cdot \color{blue}{\mathsf{fma}\left(\frac{\alpha + \beta}{\mathsf{fma}\left(i, 2, \alpha + \beta\right)}, \frac{\beta - \alpha}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2}, 1\right)}}{2}\]
    7. Taylor expanded around inf 40.6

      \[\leadsto \frac{1 \cdot \color{blue}{\left(\left(2 \cdot \frac{1}{\alpha} + 8 \cdot \frac{1}{{\alpha}^{3}}\right) - 4 \cdot \frac{1}{{\alpha}^{2}}\right)}}{2}\]
    8. Simplified40.6

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

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

Reproduce

herbie shell --seed 2019346 +o rules:numerics
(FPCore (alpha beta i)
  :name "Octave 3.8, jcobi/2"
  :precision binary64
  :pre (and (> alpha -1) (> beta -1) (> i 0.0))
  (/ (+ (/ (/ (* (+ alpha beta) (- beta alpha)) (+ (+ alpha beta) (* 2 i))) (+ (+ (+ alpha beta) (* 2 i)) 2)) 1) 2))