\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 2.778527467618903 \cdot 10^{+23}:\\
\;\;\;\;\frac{\mathsf{fma}\left(\left(\beta + \alpha\right), \left(\frac{\frac{\beta - \alpha}{\left(\beta + \alpha\right) + 2 \cdot i}}{2.0 + \left(\left(\beta + \alpha\right) + 2 \cdot i\right)}\right), 1.0\right)}{2.0}\\
\mathbf{elif}\;\alpha \le 7.90075049213558 \cdot 10^{+53}:\\
\;\;\;\;\frac{\mathsf{fma}\left(\left(\frac{1}{\alpha \cdot \alpha}\right), \left(\frac{8.0}{\alpha} - 4.0\right), \left(\frac{2.0}{\alpha}\right)\right)}{2.0}\\
\mathbf{elif}\;\alpha \le 4.755359132529547 \cdot 10^{+94}:\\
\;\;\;\;\frac{\mathsf{fma}\left(\left(\frac{\beta + \alpha}{\sqrt{2.0 + \left(\left(\beta + \alpha\right) + 2 \cdot i\right)}}\right), \left(\frac{\frac{\beta - \alpha}{\left(\beta + \alpha\right) + 2 \cdot i}}{\sqrt{2.0 + \left(\left(\beta + \alpha\right) + 2 \cdot i\right)}}\right), 1.0\right)}{2.0}\\
\mathbf{else}:\\
\;\;\;\;\frac{\mathsf{fma}\left(\left(\frac{1}{\alpha \cdot \alpha}\right), \left(\frac{8.0}{\alpha} - 4.0\right), \left(\frac{2.0}{\alpha}\right)\right)}{2.0}\\
\end{array}double f(double alpha, double beta, double i) {
double r9806035 = alpha;
double r9806036 = beta;
double r9806037 = r9806035 + r9806036;
double r9806038 = r9806036 - r9806035;
double r9806039 = r9806037 * r9806038;
double r9806040 = 2.0;
double r9806041 = i;
double r9806042 = r9806040 * r9806041;
double r9806043 = r9806037 + r9806042;
double r9806044 = r9806039 / r9806043;
double r9806045 = 2.0;
double r9806046 = r9806043 + r9806045;
double r9806047 = r9806044 / r9806046;
double r9806048 = 1.0;
double r9806049 = r9806047 + r9806048;
double r9806050 = r9806049 / r9806045;
return r9806050;
}
double f(double alpha, double beta, double i) {
double r9806051 = alpha;
double r9806052 = 2.778527467618903e+23;
bool r9806053 = r9806051 <= r9806052;
double r9806054 = beta;
double r9806055 = r9806054 + r9806051;
double r9806056 = r9806054 - r9806051;
double r9806057 = 2.0;
double r9806058 = i;
double r9806059 = r9806057 * r9806058;
double r9806060 = r9806055 + r9806059;
double r9806061 = r9806056 / r9806060;
double r9806062 = 2.0;
double r9806063 = r9806062 + r9806060;
double r9806064 = r9806061 / r9806063;
double r9806065 = 1.0;
double r9806066 = fma(r9806055, r9806064, r9806065);
double r9806067 = r9806066 / r9806062;
double r9806068 = 7.90075049213558e+53;
bool r9806069 = r9806051 <= r9806068;
double r9806070 = 1.0;
double r9806071 = r9806051 * r9806051;
double r9806072 = r9806070 / r9806071;
double r9806073 = 8.0;
double r9806074 = r9806073 / r9806051;
double r9806075 = 4.0;
double r9806076 = r9806074 - r9806075;
double r9806077 = r9806062 / r9806051;
double r9806078 = fma(r9806072, r9806076, r9806077);
double r9806079 = r9806078 / r9806062;
double r9806080 = 4.755359132529547e+94;
bool r9806081 = r9806051 <= r9806080;
double r9806082 = sqrt(r9806063);
double r9806083 = r9806055 / r9806082;
double r9806084 = r9806061 / r9806082;
double r9806085 = fma(r9806083, r9806084, r9806065);
double r9806086 = r9806085 / r9806062;
double r9806087 = r9806081 ? r9806086 : r9806079;
double r9806088 = r9806069 ? r9806079 : r9806087;
double r9806089 = r9806053 ? r9806067 : r9806088;
return r9806089;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
if alpha < 2.778527467618903e+23Initial program 11.2
rmApplied *-un-lft-identity11.2
Applied *-un-lft-identity11.2
Applied times-frac0.4
Applied times-frac0.4
Applied fma-def0.4
Simplified0.4
if 2.778527467618903e+23 < alpha < 7.90075049213558e+53 or 4.755359132529547e+94 < alpha Initial program 53.7
Taylor expanded around inf 42.0
Simplified42.0
if 7.90075049213558e+53 < alpha < 4.755359132529547e+94Initial program 37.6
rmApplied add-sqr-sqrt37.6
Applied *-un-lft-identity37.6
Applied times-frac26.6
Applied times-frac26.6
Applied fma-def26.5
Final simplification12.3
herbie shell --seed 2019107 +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))