\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 1.244272110236542990854135182922651770205 \cdot 10^{212}:\\
\;\;\;\;\frac{\log \left(e^{\mathsf{fma}\left(\frac{\beta + \alpha}{2 + \mathsf{fma}\left(i, 2, \beta + \alpha\right)}, \frac{\beta - \alpha}{\mathsf{fma}\left(i, 2, \beta + \alpha\right)}, 1\right)}\right)}{2}\\
\mathbf{elif}\;\alpha \le 1.675582865797448591833702134224369736841 \cdot 10^{277} \lor \neg \left(\alpha \le 8.077229676032386787136342497816904083827 \cdot 10^{288}\right):\\
\;\;\;\;\frac{\frac{2}{\alpha} + \left(\frac{8}{{\alpha}^{3}} - \frac{4}{\alpha \cdot \alpha}\right)}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{e^{\left(\log 2 - \log \alpha\right) + \left(\frac{1}{\beta} - \left(\frac{2}{\alpha} - \log \beta\right)\right)}}{2}\\
\end{array}double f(double alpha, double beta, double i) {
double r86971 = alpha;
double r86972 = beta;
double r86973 = r86971 + r86972;
double r86974 = r86972 - r86971;
double r86975 = r86973 * r86974;
double r86976 = 2.0;
double r86977 = i;
double r86978 = r86976 * r86977;
double r86979 = r86973 + r86978;
double r86980 = r86975 / r86979;
double r86981 = r86979 + r86976;
double r86982 = r86980 / r86981;
double r86983 = 1.0;
double r86984 = r86982 + r86983;
double r86985 = r86984 / r86976;
return r86985;
}
double f(double alpha, double beta, double i) {
double r86986 = alpha;
double r86987 = 1.244272110236543e+212;
bool r86988 = r86986 <= r86987;
double r86989 = beta;
double r86990 = r86989 + r86986;
double r86991 = 2.0;
double r86992 = i;
double r86993 = fma(r86992, r86991, r86990);
double r86994 = r86991 + r86993;
double r86995 = r86990 / r86994;
double r86996 = r86989 - r86986;
double r86997 = r86996 / r86993;
double r86998 = 1.0;
double r86999 = fma(r86995, r86997, r86998);
double r87000 = exp(r86999);
double r87001 = log(r87000);
double r87002 = r87001 / r86991;
double r87003 = 1.6755828657974486e+277;
bool r87004 = r86986 <= r87003;
double r87005 = 8.077229676032387e+288;
bool r87006 = r86986 <= r87005;
double r87007 = !r87006;
bool r87008 = r87004 || r87007;
double r87009 = r86991 / r86986;
double r87010 = 8.0;
double r87011 = 3.0;
double r87012 = pow(r86986, r87011);
double r87013 = r87010 / r87012;
double r87014 = 4.0;
double r87015 = r86986 * r86986;
double r87016 = r87014 / r87015;
double r87017 = r87013 - r87016;
double r87018 = r87009 + r87017;
double r87019 = r87018 / r86991;
double r87020 = 2.0;
double r87021 = log(r87020);
double r87022 = log(r86986);
double r87023 = r87021 - r87022;
double r87024 = r86998 / r86989;
double r87025 = log(r86989);
double r87026 = r87009 - r87025;
double r87027 = r87024 - r87026;
double r87028 = r87023 + r87027;
double r87029 = exp(r87028);
double r87030 = r87029 / r86991;
double r87031 = r87008 ? r87019 : r87030;
double r87032 = r86988 ? r87002 : r87031;
return r87032;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
if alpha < 1.244272110236543e+212Initial program 18.9
Simplified7.3
rmApplied fma-udef7.2
Simplified7.3
rmApplied add-log-exp7.3
Applied add-log-exp7.3
Applied sum-log7.3
Simplified7.3
if 1.244272110236543e+212 < alpha < 1.6755828657974486e+277 or 8.077229676032387e+288 < alpha Initial program 64.0
Simplified51.1
rmApplied fma-udef49.9
Simplified49.9
rmApplied add-exp-log49.9
Simplified49.9
Taylor expanded around inf 42.0
Simplified42.0
if 1.6755828657974486e+277 < alpha < 8.077229676032387e+288Initial program 64.0
Simplified52.8
rmApplied fma-udef51.9
Simplified51.8
rmApplied add-exp-log51.8
Simplified51.8
Taylor expanded around inf 51.3
Simplified51.3
Final simplification11.1
herbie shell --seed 2019194 +o rules:numerics
(FPCore (alpha beta i)
:name "Octave 3.8, jcobi/2"
:pre (and (> alpha -1.0) (> beta -1.0) (> i 0.0))
(/ (+ (/ (/ (* (+ alpha beta) (- beta alpha)) (+ (+ alpha beta) (* 2.0 i))) (+ (+ (+ alpha beta) (* 2.0 i)) 2.0)) 1.0) 2.0))