\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 5.841782349532883 \cdot 10^{+51}:\\
\;\;\;\;\frac{e^{\log \left(\left(\beta - \alpha\right) \cdot \left(\frac{1}{\mathsf{fma}\left(i, 2, \alpha + \beta\right)} \cdot \frac{\alpha + \beta}{2.0 + \mathsf{fma}\left(i, 2, \alpha + \beta\right)}\right) + 1.0\right)}}{2.0}\\
\mathbf{elif}\;\alpha \le 1.8551287992761453 \cdot 10^{+84}:\\
\;\;\;\;\frac{\left(\frac{\frac{8.0}{\alpha \cdot \alpha}}{\alpha} - \frac{4.0}{\alpha \cdot \alpha}\right) + \frac{2.0}{\alpha}}{2.0}\\
\mathbf{elif}\;\alpha \le 8.621431291668078 \cdot 10^{+174}:\\
\;\;\;\;\frac{e^{\log \left(\mathsf{fma}\left(1, \beta, \left(-\sqrt{\alpha}\right) \cdot \sqrt{\alpha}\right) \cdot \left(\frac{1}{\mathsf{fma}\left(i, 2, \alpha + \beta\right)} \cdot \frac{\alpha + \beta}{2.0 + \mathsf{fma}\left(i, 2, \alpha + \beta\right)}\right) + \left(\mathsf{fma}\left(-\sqrt{\alpha}, \sqrt{\alpha}, \sqrt{\alpha} \cdot \sqrt{\alpha}\right) \cdot \left(\frac{1}{\mathsf{fma}\left(i, 2, \alpha + \beta\right)} \cdot \frac{\alpha + \beta}{2.0 + \mathsf{fma}\left(i, 2, \alpha + \beta\right)}\right) + 1.0\right)\right)}}{2.0}\\
\mathbf{else}:\\
\;\;\;\;\frac{\left(\frac{\frac{8.0}{\alpha \cdot \alpha}}{\alpha} - \frac{4.0}{\alpha \cdot \alpha}\right) + \frac{2.0}{\alpha}}{2.0}\\
\end{array}double f(double alpha, double beta, double i) {
double r1599215 = alpha;
double r1599216 = beta;
double r1599217 = r1599215 + r1599216;
double r1599218 = r1599216 - r1599215;
double r1599219 = r1599217 * r1599218;
double r1599220 = 2.0;
double r1599221 = i;
double r1599222 = r1599220 * r1599221;
double r1599223 = r1599217 + r1599222;
double r1599224 = r1599219 / r1599223;
double r1599225 = 2.0;
double r1599226 = r1599223 + r1599225;
double r1599227 = r1599224 / r1599226;
double r1599228 = 1.0;
double r1599229 = r1599227 + r1599228;
double r1599230 = r1599229 / r1599225;
return r1599230;
}
double f(double alpha, double beta, double i) {
double r1599231 = alpha;
double r1599232 = 5.841782349532883e+51;
bool r1599233 = r1599231 <= r1599232;
double r1599234 = beta;
double r1599235 = r1599234 - r1599231;
double r1599236 = 1.0;
double r1599237 = i;
double r1599238 = 2.0;
double r1599239 = r1599231 + r1599234;
double r1599240 = fma(r1599237, r1599238, r1599239);
double r1599241 = r1599236 / r1599240;
double r1599242 = 2.0;
double r1599243 = r1599242 + r1599240;
double r1599244 = r1599239 / r1599243;
double r1599245 = r1599241 * r1599244;
double r1599246 = r1599235 * r1599245;
double r1599247 = 1.0;
double r1599248 = r1599246 + r1599247;
double r1599249 = log(r1599248);
double r1599250 = exp(r1599249);
double r1599251 = r1599250 / r1599242;
double r1599252 = 1.8551287992761453e+84;
bool r1599253 = r1599231 <= r1599252;
double r1599254 = 8.0;
double r1599255 = r1599231 * r1599231;
double r1599256 = r1599254 / r1599255;
double r1599257 = r1599256 / r1599231;
double r1599258 = 4.0;
double r1599259 = r1599258 / r1599255;
double r1599260 = r1599257 - r1599259;
double r1599261 = r1599242 / r1599231;
double r1599262 = r1599260 + r1599261;
double r1599263 = r1599262 / r1599242;
double r1599264 = 8.621431291668078e+174;
bool r1599265 = r1599231 <= r1599264;
double r1599266 = sqrt(r1599231);
double r1599267 = -r1599266;
double r1599268 = r1599267 * r1599266;
double r1599269 = fma(r1599236, r1599234, r1599268);
double r1599270 = r1599269 * r1599245;
double r1599271 = r1599266 * r1599266;
double r1599272 = fma(r1599267, r1599266, r1599271);
double r1599273 = r1599272 * r1599245;
double r1599274 = r1599273 + r1599247;
double r1599275 = r1599270 + r1599274;
double r1599276 = log(r1599275);
double r1599277 = exp(r1599276);
double r1599278 = r1599277 / r1599242;
double r1599279 = r1599265 ? r1599278 : r1599263;
double r1599280 = r1599253 ? r1599263 : r1599279;
double r1599281 = r1599233 ? r1599251 : r1599280;
return r1599281;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
if alpha < 5.841782349532883e+51Initial program 11.6
Simplified11.6
rmApplied add-exp-log11.6
Simplified8.8
rmApplied *-un-lft-identity8.8
Applied times-frac1.2
rmApplied fma-udef1.2
if 5.841782349532883e+51 < alpha < 1.8551287992761453e+84 or 8.621431291668078e+174 < alpha Initial program 57.7
Simplified57.1
rmApplied add-exp-log57.1
Simplified49.2
Taylor expanded around inf 41.3
Simplified41.3
if 1.8551287992761453e+84 < alpha < 8.621431291668078e+174Initial program 48.0
Simplified47.8
rmApplied add-exp-log47.8
Simplified42.0
rmApplied *-un-lft-identity42.0
Applied times-frac35.1
rmApplied fma-udef35.1
rmApplied add-sqr-sqrt35.1
Applied *-un-lft-identity35.1
Applied prod-diff35.1
Applied distribute-lft-in35.0
Applied associate-+l+35.2
Final simplification11.8
herbie shell --seed 2019156 +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))