\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}\;\frac{\frac{\left(\beta + \alpha\right) \cdot \left(\beta - \alpha\right)}{2 \cdot i + \left(\beta + \alpha\right)}}{2.0 + \left(2 \cdot i + \left(\beta + \alpha\right)\right)} \le -0.999999999999998:\\
\;\;\;\;\frac{\left(\frac{2.0}{\alpha} + \frac{8.0}{\alpha \cdot \left(\alpha \cdot \alpha\right)}\right) - \frac{4.0}{\alpha \cdot \alpha}}{2.0}\\
\mathbf{else}:\\
\;\;\;\;\frac{e^{\log \left(\frac{1}{\frac{2.0 + \left(2 \cdot i + \left(\beta + \alpha\right)\right)}{\frac{\beta - \alpha}{2 \cdot i + \left(\beta + \alpha\right)} \cdot \left(\beta + \alpha\right)}} + 1.0\right)}}{2.0}\\
\end{array}double f(double alpha, double beta, double i) {
double r2305806 = alpha;
double r2305807 = beta;
double r2305808 = r2305806 + r2305807;
double r2305809 = r2305807 - r2305806;
double r2305810 = r2305808 * r2305809;
double r2305811 = 2.0;
double r2305812 = i;
double r2305813 = r2305811 * r2305812;
double r2305814 = r2305808 + r2305813;
double r2305815 = r2305810 / r2305814;
double r2305816 = 2.0;
double r2305817 = r2305814 + r2305816;
double r2305818 = r2305815 / r2305817;
double r2305819 = 1.0;
double r2305820 = r2305818 + r2305819;
double r2305821 = r2305820 / r2305816;
return r2305821;
}
double f(double alpha, double beta, double i) {
double r2305822 = beta;
double r2305823 = alpha;
double r2305824 = r2305822 + r2305823;
double r2305825 = r2305822 - r2305823;
double r2305826 = r2305824 * r2305825;
double r2305827 = 2.0;
double r2305828 = i;
double r2305829 = r2305827 * r2305828;
double r2305830 = r2305829 + r2305824;
double r2305831 = r2305826 / r2305830;
double r2305832 = 2.0;
double r2305833 = r2305832 + r2305830;
double r2305834 = r2305831 / r2305833;
double r2305835 = -0.999999999999998;
bool r2305836 = r2305834 <= r2305835;
double r2305837 = r2305832 / r2305823;
double r2305838 = 8.0;
double r2305839 = r2305823 * r2305823;
double r2305840 = r2305823 * r2305839;
double r2305841 = r2305838 / r2305840;
double r2305842 = r2305837 + r2305841;
double r2305843 = 4.0;
double r2305844 = r2305843 / r2305839;
double r2305845 = r2305842 - r2305844;
double r2305846 = r2305845 / r2305832;
double r2305847 = 1.0;
double r2305848 = r2305825 / r2305830;
double r2305849 = r2305848 * r2305824;
double r2305850 = r2305833 / r2305849;
double r2305851 = r2305847 / r2305850;
double r2305852 = 1.0;
double r2305853 = r2305851 + r2305852;
double r2305854 = log(r2305853);
double r2305855 = exp(r2305854);
double r2305856 = r2305855 / r2305832;
double r2305857 = r2305836 ? r2305846 : r2305856;
return r2305857;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
Results
if (/ (/ (* (+ alpha beta) (- beta alpha)) (+ (+ alpha beta) (* 2 i))) (+ (+ (+ alpha beta) (* 2 i)) 2.0)) < -0.999999999999998Initial program 62.7
rmApplied *-un-lft-identity62.7
Applied times-frac53.7
Simplified53.7
rmApplied clear-num53.7
Taylor expanded around inf 32.5
Simplified32.5
if -0.999999999999998 < (/ (/ (* (+ alpha beta) (- beta alpha)) (+ (+ alpha beta) (* 2 i))) (+ (+ (+ alpha beta) (* 2 i)) 2.0)) Initial program 12.6
rmApplied *-un-lft-identity12.6
Applied times-frac0.2
Simplified0.2
rmApplied clear-num0.2
rmApplied add-exp-log0.2
Final simplification7.5
herbie shell --seed 2019143
(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))