double f(double alpha, double beta) {
double r5904191 = beta;
double r5904192 = alpha;
double r5904193 = r5904191 - r5904192;
double r5904194 = r5904192 + r5904191;
double r5904195 = 2.0;
double r5904196 = r5904194 + r5904195;
double r5904197 = r5904193 / r5904196;
double r5904198 = 1.0;
double r5904199 = r5904197 + r5904198;
double r5904200 = r5904199 / r5904195;
return r5904200;
}
double f(double alpha, double beta) {
double r5904201 = alpha;
double r5904202 = 1205934218818.488;
bool r5904203 = r5904201 <= r5904202;
double r5904204 = beta;
double r5904205 = r5904204 - r5904201;
double r5904206 = 1.0;
double r5904207 = 2.0;
double r5904208 = r5904204 + r5904201;
double r5904209 = r5904207 + r5904208;
double r5904210 = r5904206 / r5904209;
double r5904211 = 1.0;
double r5904212 = fma(r5904205, r5904210, r5904211);
double r5904213 = r5904212 / r5904207;
double r5904214 = r5904204 / r5904209;
double r5904215 = 4.0;
double r5904216 = r5904201 * r5904201;
double r5904217 = r5904215 / r5904216;
double r5904218 = r5904207 / r5904201;
double r5904219 = 8.0;
double r5904220 = r5904219 / r5904216;
double r5904221 = r5904220 / r5904201;
double r5904222 = r5904218 + r5904221;
double r5904223 = r5904217 - r5904222;
double r5904224 = r5904214 - r5904223;
double r5904225 = r5904224 / r5904207;
double r5904226 = r5904203 ? r5904213 : r5904225;
return r5904226;
}
\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2.0} + 1.0}{2.0}\begin{array}{l}
\mathbf{if}\;\alpha \le 1205934218818.488:\\
\;\;\;\;\frac{(\left(\beta - \alpha\right) \cdot \left(\frac{1}{2.0 + \left(\beta + \alpha\right)}\right) + 1.0)_*}{2.0}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\beta}{2.0 + \left(\beta + \alpha\right)} - \left(\frac{4.0}{\alpha \cdot \alpha} - \left(\frac{2.0}{\alpha} + \frac{\frac{8.0}{\alpha \cdot \alpha}}{\alpha}\right)\right)}{2.0}\\
\end{array}


Bits error versus alpha



Bits error versus beta
if alpha < 1205934218818.488Initial program 0.2
rmApplied div-inv0.2
Applied fma-def0.2
if 1205934218818.488 < alpha Initial program 49.4
rmApplied div-sub49.4
Applied associate-+l-47.9
Taylor expanded around -inf 18.4
Simplified18.4
Final simplification6.0
herbie shell --seed 2019102 +o rules:numerics
(FPCore (alpha beta)
:name "Octave 3.8, jcobi/1"
:pre (and (> alpha -1) (> beta -1))
(/ (+ (/ (- beta alpha) (+ (+ alpha beta) 2.0)) 1.0) 2.0))