\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}\;\frac{\frac{\left(\beta + \alpha\right) \cdot \left(\beta - \alpha\right)}{2 \cdot i + \left(\beta + \alpha\right)}}{2 + \left(2 \cdot i + \left(\beta + \alpha\right)\right)} \le -0.9999999999999998889776975374843459576368:\\
\;\;\;\;\frac{\left(\frac{8}{\left(\alpha \cdot \alpha\right) \cdot \alpha} - \frac{4}{\alpha \cdot \alpha}\right) + \frac{2}{\alpha}}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\log \left(e^{1 \cdot \left(1 \cdot 1\right)} \cdot e^{\left(\frac{\beta + \alpha}{\left(2 + \left(\beta + \alpha\right)\right) + 2 \cdot i} \cdot \frac{\beta - \alpha}{2 \cdot i + \left(\beta + \alpha\right)}\right) \cdot \left(\left(\frac{\beta + \alpha}{\left(2 + \left(\beta + \alpha\right)\right) + 2 \cdot i} \cdot \frac{\beta - \alpha}{2 \cdot i + \left(\beta + \alpha\right)}\right) \cdot \left(\frac{\beta + \alpha}{\left(2 + \left(\beta + \alpha\right)\right) + 2 \cdot i} \cdot \frac{\beta - \alpha}{2 \cdot i + \left(\beta + \alpha\right)}\right)\right)}\right)}{\frac{1 \cdot 1 - \left(\frac{\beta + \alpha}{\left(2 + \left(\beta + \alpha\right)\right) + 2 \cdot i} \cdot \frac{\beta - \alpha}{2 \cdot i + \left(\beta + \alpha\right)}\right) \cdot \left(\frac{\beta + \alpha}{\left(2 + \left(\beta + \alpha\right)\right) + 2 \cdot i} \cdot \frac{\beta - \alpha}{2 \cdot i + \left(\beta + \alpha\right)}\right)}{\frac{\beta + \alpha}{\left(2 + \left(\beta + \alpha\right)\right) + 2 \cdot i} \cdot \frac{\beta - \alpha}{2 \cdot i + \left(\beta + \alpha\right)} + 1} \cdot 1 + \left(\frac{\beta + \alpha}{\left(2 + \left(\beta + \alpha\right)\right) + 2 \cdot i} \cdot \frac{\beta - \alpha}{2 \cdot i + \left(\beta + \alpha\right)}\right) \cdot \left(\frac{\beta + \alpha}{\left(2 + \left(\beta + \alpha\right)\right) + 2 \cdot i} \cdot \frac{\beta - \alpha}{2 \cdot i + \left(\beta + \alpha\right)}\right)}}{2}\\
\end{array}double f(double alpha, double beta, double i) {
double r5017073 = alpha;
double r5017074 = beta;
double r5017075 = r5017073 + r5017074;
double r5017076 = r5017074 - r5017073;
double r5017077 = r5017075 * r5017076;
double r5017078 = 2.0;
double r5017079 = i;
double r5017080 = r5017078 * r5017079;
double r5017081 = r5017075 + r5017080;
double r5017082 = r5017077 / r5017081;
double r5017083 = r5017081 + r5017078;
double r5017084 = r5017082 / r5017083;
double r5017085 = 1.0;
double r5017086 = r5017084 + r5017085;
double r5017087 = r5017086 / r5017078;
return r5017087;
}
double f(double alpha, double beta, double i) {
double r5017088 = beta;
double r5017089 = alpha;
double r5017090 = r5017088 + r5017089;
double r5017091 = r5017088 - r5017089;
double r5017092 = r5017090 * r5017091;
double r5017093 = 2.0;
double r5017094 = i;
double r5017095 = r5017093 * r5017094;
double r5017096 = r5017095 + r5017090;
double r5017097 = r5017092 / r5017096;
double r5017098 = r5017093 + r5017096;
double r5017099 = r5017097 / r5017098;
double r5017100 = -0.9999999999999999;
bool r5017101 = r5017099 <= r5017100;
double r5017102 = 8.0;
double r5017103 = r5017089 * r5017089;
double r5017104 = r5017103 * r5017089;
double r5017105 = r5017102 / r5017104;
double r5017106 = 4.0;
double r5017107 = r5017106 / r5017103;
double r5017108 = r5017105 - r5017107;
double r5017109 = r5017093 / r5017089;
double r5017110 = r5017108 + r5017109;
double r5017111 = r5017110 / r5017093;
double r5017112 = 1.0;
double r5017113 = r5017112 * r5017112;
double r5017114 = r5017112 * r5017113;
double r5017115 = exp(r5017114);
double r5017116 = r5017093 + r5017090;
double r5017117 = r5017116 + r5017095;
double r5017118 = r5017090 / r5017117;
double r5017119 = r5017091 / r5017096;
double r5017120 = r5017118 * r5017119;
double r5017121 = r5017120 * r5017120;
double r5017122 = r5017120 * r5017121;
double r5017123 = exp(r5017122);
double r5017124 = r5017115 * r5017123;
double r5017125 = log(r5017124);
double r5017126 = r5017113 - r5017121;
double r5017127 = r5017120 + r5017112;
double r5017128 = r5017126 / r5017127;
double r5017129 = r5017128 * r5017112;
double r5017130 = r5017129 + r5017121;
double r5017131 = r5017125 / r5017130;
double r5017132 = r5017131 / r5017093;
double r5017133 = r5017101 ? r5017111 : r5017132;
return r5017133;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
Results
if (/ (/ (* (+ alpha beta) (- beta alpha)) (+ (+ alpha beta) (* 2.0 i))) (+ (+ (+ alpha beta) (* 2.0 i)) 2.0)) < -0.9999999999999999Initial program 63.3
Taylor expanded around inf 32.7
Simplified32.7
if -0.9999999999999999 < (/ (/ (* (+ alpha beta) (- beta alpha)) (+ (+ alpha beta) (* 2.0 i))) (+ (+ (+ alpha beta) (* 2.0 i)) 2.0)) Initial program 12.8
rmApplied flip3-+12.8
Simplified12.8
Simplified0.3
rmApplied add-log-exp0.3
Applied add-log-exp0.3
Applied sum-log0.3
rmApplied flip--0.3
Final simplification7.4
herbie shell --seed 2019172
(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))