Average Error: 23.9 → 11.4
Time: 20.6s
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 6.6050151834176628 \cdot 10^{79}:\\ \;\;\;\;\frac{e^{\log \left(\mathsf{fma}\left(\frac{1}{\frac{\frac{\mathsf{fma}\left(i, 2, \alpha + \beta\right)}{\alpha + \beta}}{\beta - \alpha}}, \frac{1}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2}, 1\right)\right)}}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{\mathsf{fma}\left(2, \frac{1}{\alpha}, 8 \cdot \frac{1}{{\alpha}^{3}} - 4 \cdot \frac{1}{{\alpha}^{2}}\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 6.6050151834176628 \cdot 10^{79}:\\
\;\;\;\;\frac{e^{\log \left(\mathsf{fma}\left(\frac{1}{\frac{\frac{\mathsf{fma}\left(i, 2, \alpha + \beta\right)}{\alpha + \beta}}{\beta - \alpha}}, \frac{1}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2}, 1\right)\right)}}{2}\\

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

\end{array}
double f(double alpha, double beta, double i) {
        double r186937 = alpha;
        double r186938 = beta;
        double r186939 = r186937 + r186938;
        double r186940 = r186938 - r186937;
        double r186941 = r186939 * r186940;
        double r186942 = 2.0;
        double r186943 = i;
        double r186944 = r186942 * r186943;
        double r186945 = r186939 + r186944;
        double r186946 = r186941 / r186945;
        double r186947 = r186945 + r186942;
        double r186948 = r186946 / r186947;
        double r186949 = 1.0;
        double r186950 = r186948 + r186949;
        double r186951 = r186950 / r186942;
        return r186951;
}

double f(double alpha, double beta, double i) {
        double r186952 = alpha;
        double r186953 = 6.605015183417663e+79;
        bool r186954 = r186952 <= r186953;
        double r186955 = 1.0;
        double r186956 = i;
        double r186957 = 2.0;
        double r186958 = beta;
        double r186959 = r186952 + r186958;
        double r186960 = fma(r186956, r186957, r186959);
        double r186961 = r186960 / r186959;
        double r186962 = r186958 - r186952;
        double r186963 = r186961 / r186962;
        double r186964 = r186955 / r186963;
        double r186965 = r186957 * r186956;
        double r186966 = r186959 + r186965;
        double r186967 = r186966 + r186957;
        double r186968 = r186955 / r186967;
        double r186969 = 1.0;
        double r186970 = fma(r186964, r186968, r186969);
        double r186971 = log(r186970);
        double r186972 = exp(r186971);
        double r186973 = r186972 / r186957;
        double r186974 = r186955 / r186952;
        double r186975 = 8.0;
        double r186976 = 3.0;
        double r186977 = pow(r186952, r186976);
        double r186978 = r186955 / r186977;
        double r186979 = r186975 * r186978;
        double r186980 = 4.0;
        double r186981 = 2.0;
        double r186982 = pow(r186952, r186981);
        double r186983 = r186955 / r186982;
        double r186984 = r186980 * r186983;
        double r186985 = r186979 - r186984;
        double r186986 = fma(r186957, r186974, r186985);
        double r186987 = r186986 / r186957;
        double r186988 = r186954 ? r186973 : r186987;
        return r186988;
}

Error

Bits error versus alpha

Bits error versus beta

Bits error versus i

Derivation

  1. Split input into 2 regimes
  2. if alpha < 6.605015183417663e+79

    1. Initial program 12.9

      \[\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 clear-num12.9

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

      \[\leadsto \frac{\frac{\frac{1}{\color{blue}{\frac{\frac{\mathsf{fma}\left(i, 2, \alpha + \beta\right)}{\alpha + \beta}}{\beta - \alpha}}}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2} + 1}{2}\]
    5. Using strategy rm
    6. Applied div-inv2.2

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

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

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

    if 6.605015183417663e+79 < alpha

    1. Initial program 58.1

      \[\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. Taylor expanded around inf 40.0

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

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

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

Reproduce

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