\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 3.880589050228373 \cdot 10^{+79}:\\
\;\;\;\;\frac{e^{\log \left(\frac{1}{\sqrt{\mathsf{fma}\left(i, 2, \alpha + \beta\right) + 2.0}} \cdot \left(\left(\beta - \alpha\right) \cdot \frac{\frac{\alpha + \beta}{\mathsf{fma}\left(i, 2, \alpha + \beta\right)}}{\sqrt{\mathsf{fma}\left(i, 2, \alpha + \beta\right) + 2.0}}\right) + 1.0\right)}}{2.0}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\frac{8.0}{\alpha \cdot \alpha}}{\alpha} + \left(\frac{2.0}{\alpha} - \frac{4.0}{\alpha \cdot \alpha}\right)}{2.0}\\
\end{array}double f(double alpha, double beta, double i) {
double r1824119 = alpha;
double r1824120 = beta;
double r1824121 = r1824119 + r1824120;
double r1824122 = r1824120 - r1824119;
double r1824123 = r1824121 * r1824122;
double r1824124 = 2.0;
double r1824125 = i;
double r1824126 = r1824124 * r1824125;
double r1824127 = r1824121 + r1824126;
double r1824128 = r1824123 / r1824127;
double r1824129 = 2.0;
double r1824130 = r1824127 + r1824129;
double r1824131 = r1824128 / r1824130;
double r1824132 = 1.0;
double r1824133 = r1824131 + r1824132;
double r1824134 = r1824133 / r1824129;
return r1824134;
}
double f(double alpha, double beta, double i) {
double r1824135 = alpha;
double r1824136 = 3.880589050228373e+79;
bool r1824137 = r1824135 <= r1824136;
double r1824138 = 1.0;
double r1824139 = i;
double r1824140 = 2.0;
double r1824141 = beta;
double r1824142 = r1824135 + r1824141;
double r1824143 = fma(r1824139, r1824140, r1824142);
double r1824144 = 2.0;
double r1824145 = r1824143 + r1824144;
double r1824146 = sqrt(r1824145);
double r1824147 = r1824138 / r1824146;
double r1824148 = r1824141 - r1824135;
double r1824149 = r1824142 / r1824143;
double r1824150 = r1824149 / r1824146;
double r1824151 = r1824148 * r1824150;
double r1824152 = r1824147 * r1824151;
double r1824153 = 1.0;
double r1824154 = r1824152 + r1824153;
double r1824155 = log(r1824154);
double r1824156 = exp(r1824155);
double r1824157 = r1824156 / r1824144;
double r1824158 = 8.0;
double r1824159 = r1824135 * r1824135;
double r1824160 = r1824158 / r1824159;
double r1824161 = r1824160 / r1824135;
double r1824162 = r1824144 / r1824135;
double r1824163 = 4.0;
double r1824164 = r1824163 / r1824159;
double r1824165 = r1824162 - r1824164;
double r1824166 = r1824161 + r1824165;
double r1824167 = r1824166 / r1824144;
double r1824168 = r1824137 ? r1824157 : r1824167;
return r1824168;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
if alpha < 3.880589050228373e+79Initial program 12.4
Simplified12.5
rmApplied add-exp-log12.5
Simplified9.6
rmApplied associate-/r*2.2
rmApplied fma-udef2.3
rmApplied add-sqr-sqrt2.3
Applied *-un-lft-identity2.3
Applied times-frac2.3
Applied associate-*l*2.3
if 3.880589050228373e+79 < alpha Initial program 55.9
Simplified55.4
rmApplied add-exp-log55.4
Simplified48.3
rmApplied associate-/r*42.8
Taylor expanded around -inf 41.6
Simplified41.6
Final simplification12.4
herbie shell --seed 2019151 +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))