\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 1.39654162857562 \cdot 10^{+62}:\\
\;\;\;\;\frac{(\left(\left(\beta + \alpha\right) \cdot \frac{\sqrt[3]{\beta - \alpha} \cdot \sqrt[3]{\beta - \alpha}}{\sqrt[3]{2.0 + (i \cdot 2 + \left(\beta + \alpha\right))_*} \cdot \sqrt[3]{2.0 + (i \cdot 2 + \left(\beta + \alpha\right))_*}}\right) \cdot \left(\frac{\frac{\sqrt[3]{\beta - \alpha}}{(i \cdot 2 + \left(\beta + \alpha\right))_*}}{\sqrt[3]{2.0 + (i \cdot 2 + \left(\beta + \alpha\right))_*}}\right) + 1.0)_*}{2.0}\\
\mathbf{elif}\;\alpha \le 2.703385935698668 \cdot 10^{+135}:\\
\;\;\;\;\frac{(\left(\frac{1}{\alpha \cdot \alpha}\right) \cdot \left(\frac{8.0}{\alpha} - 4.0\right) + \left(\frac{2.0}{\alpha}\right))_*}{2.0}\\
\mathbf{elif}\;\alpha \le 3.857914563165407 \cdot 10^{+217}:\\
\;\;\;\;\frac{e^{\log \left((\left(\beta + \alpha\right) \cdot \left(\frac{\frac{\beta - \alpha}{(2 \cdot i + \left(\beta + \alpha\right))_*}}{(2 \cdot i + \left(\beta + \alpha\right))_* + 2.0}\right) + 1.0)_*\right)}}{2.0}\\
\mathbf{else}:\\
\;\;\;\;\frac{(\left(\frac{1}{\alpha \cdot \alpha}\right) \cdot \left(\frac{8.0}{\alpha} - 4.0\right) + \left(\frac{2.0}{\alpha}\right))_*}{2.0}\\
\end{array}double f(double alpha, double beta, double i) {
double r28072150 = alpha;
double r28072151 = beta;
double r28072152 = r28072150 + r28072151;
double r28072153 = r28072151 - r28072150;
double r28072154 = r28072152 * r28072153;
double r28072155 = 2.0;
double r28072156 = i;
double r28072157 = r28072155 * r28072156;
double r28072158 = r28072152 + r28072157;
double r28072159 = r28072154 / r28072158;
double r28072160 = 2.0;
double r28072161 = r28072158 + r28072160;
double r28072162 = r28072159 / r28072161;
double r28072163 = 1.0;
double r28072164 = r28072162 + r28072163;
double r28072165 = r28072164 / r28072160;
return r28072165;
}
double f(double alpha, double beta, double i) {
double r28072166 = alpha;
double r28072167 = 1.39654162857562e+62;
bool r28072168 = r28072166 <= r28072167;
double r28072169 = beta;
double r28072170 = r28072169 + r28072166;
double r28072171 = r28072169 - r28072166;
double r28072172 = cbrt(r28072171);
double r28072173 = r28072172 * r28072172;
double r28072174 = 2.0;
double r28072175 = i;
double r28072176 = 2.0;
double r28072177 = fma(r28072175, r28072176, r28072170);
double r28072178 = r28072174 + r28072177;
double r28072179 = cbrt(r28072178);
double r28072180 = r28072179 * r28072179;
double r28072181 = r28072173 / r28072180;
double r28072182 = r28072170 * r28072181;
double r28072183 = r28072172 / r28072177;
double r28072184 = r28072183 / r28072179;
double r28072185 = 1.0;
double r28072186 = fma(r28072182, r28072184, r28072185);
double r28072187 = r28072186 / r28072174;
double r28072188 = 2.703385935698668e+135;
bool r28072189 = r28072166 <= r28072188;
double r28072190 = 1.0;
double r28072191 = r28072166 * r28072166;
double r28072192 = r28072190 / r28072191;
double r28072193 = 8.0;
double r28072194 = r28072193 / r28072166;
double r28072195 = 4.0;
double r28072196 = r28072194 - r28072195;
double r28072197 = r28072174 / r28072166;
double r28072198 = fma(r28072192, r28072196, r28072197);
double r28072199 = r28072198 / r28072174;
double r28072200 = 3.857914563165407e+217;
bool r28072201 = r28072166 <= r28072200;
double r28072202 = fma(r28072176, r28072175, r28072170);
double r28072203 = r28072171 / r28072202;
double r28072204 = r28072202 + r28072174;
double r28072205 = r28072203 / r28072204;
double r28072206 = fma(r28072170, r28072205, r28072185);
double r28072207 = log(r28072206);
double r28072208 = exp(r28072207);
double r28072209 = r28072208 / r28072174;
double r28072210 = r28072201 ? r28072209 : r28072199;
double r28072211 = r28072189 ? r28072199 : r28072210;
double r28072212 = r28072168 ? r28072187 : r28072211;
return r28072212;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
if alpha < 1.39654162857562e+62Initial program 12.1
rmApplied *-un-lft-identity12.1
Applied *-un-lft-identity12.1
Applied times-frac1.9
Applied times-frac1.9
Simplified1.9
Simplified1.9
rmApplied add-cube-cbrt2.0
Applied *-un-lft-identity2.0
Applied add-cube-cbrt1.9
Applied times-frac1.9
Applied times-frac1.9
Applied associate-*r*1.9
rmApplied fma-def1.9
if 1.39654162857562e+62 < alpha < 2.703385935698668e+135 or 3.857914563165407e+217 < alpha Initial program 52.8
Taylor expanded around inf 40.7
Simplified40.7
if 2.703385935698668e+135 < alpha < 3.857914563165407e+217Initial program 58.8
rmApplied *-un-lft-identity58.8
Applied *-un-lft-identity58.8
Applied times-frac39.4
Applied times-frac39.3
Simplified39.3
Simplified39.3
rmApplied add-exp-log39.3
rmApplied add-exp-log39.3
Applied rem-log-exp39.3
Simplified39.6
Final simplification12.4
herbie shell --seed 2019112 +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))