\frac{\frac{\left(i \cdot \left(\left(\alpha + \beta\right) + i\right)\right) \cdot \left(\beta \cdot \alpha + i \cdot \left(\left(\alpha + \beta\right) + i\right)\right)}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) \cdot \left(\left(\alpha + \beta\right) + 2 \cdot i\right)}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) \cdot \left(\left(\alpha + \beta\right) + 2 \cdot i\right) - 1}\begin{array}{l}
\mathbf{if}\;i \le 1.200334102707676578905198390790180852224 \cdot 10^{64}:\\
\;\;\;\;\frac{\frac{\left(\alpha + \beta\right) + i}{\frac{{\left(\left(\alpha + \beta\right) + 2 \cdot i\right)}^{3} + \mathsf{fma}\left(i, 2, \alpha + \beta\right) \cdot \left(-1\right)}{i}}}{\frac{\mathsf{fma}\left(i, 2, \alpha + \beta\right)}{\mathsf{fma}\left(\beta, \alpha, i \cdot \left(\left(\alpha + \beta\right) + i\right)\right)}}\\
\mathbf{elif}\;i \le 1.373853224073776070930027931834659728415 \cdot 10^{125}:\\
\;\;\;\;\frac{\frac{\left(\alpha + \beta\right) + i}{\mathsf{fma}\left(8, {i}^{2}, \mathsf{fma}\left(12, \alpha \cdot i, 12 \cdot \left(i \cdot \beta\right)\right)\right)}}{\frac{2}{i}}\\
\mathbf{else}:\\
\;\;\;\;0.0625\\
\end{array}double f(double alpha, double beta, double i) {
double r100044 = i;
double r100045 = alpha;
double r100046 = beta;
double r100047 = r100045 + r100046;
double r100048 = r100047 + r100044;
double r100049 = r100044 * r100048;
double r100050 = r100046 * r100045;
double r100051 = r100050 + r100049;
double r100052 = r100049 * r100051;
double r100053 = 2.0;
double r100054 = r100053 * r100044;
double r100055 = r100047 + r100054;
double r100056 = r100055 * r100055;
double r100057 = r100052 / r100056;
double r100058 = 1.0;
double r100059 = r100056 - r100058;
double r100060 = r100057 / r100059;
return r100060;
}
double f(double alpha, double beta, double i) {
double r100061 = i;
double r100062 = 1.2003341027076766e+64;
bool r100063 = r100061 <= r100062;
double r100064 = alpha;
double r100065 = beta;
double r100066 = r100064 + r100065;
double r100067 = r100066 + r100061;
double r100068 = 2.0;
double r100069 = r100068 * r100061;
double r100070 = r100066 + r100069;
double r100071 = 3.0;
double r100072 = pow(r100070, r100071);
double r100073 = fma(r100061, r100068, r100066);
double r100074 = 1.0;
double r100075 = -r100074;
double r100076 = r100073 * r100075;
double r100077 = r100072 + r100076;
double r100078 = r100077 / r100061;
double r100079 = r100067 / r100078;
double r100080 = r100061 * r100067;
double r100081 = fma(r100065, r100064, r100080);
double r100082 = r100073 / r100081;
double r100083 = r100079 / r100082;
double r100084 = 1.373853224073776e+125;
bool r100085 = r100061 <= r100084;
double r100086 = 8.0;
double r100087 = 2.0;
double r100088 = pow(r100061, r100087);
double r100089 = 12.0;
double r100090 = r100064 * r100061;
double r100091 = r100061 * r100065;
double r100092 = r100089 * r100091;
double r100093 = fma(r100089, r100090, r100092);
double r100094 = fma(r100086, r100088, r100093);
double r100095 = r100067 / r100094;
double r100096 = r100068 / r100061;
double r100097 = r100095 / r100096;
double r100098 = 0.0625;
double r100099 = r100085 ? r100097 : r100098;
double r100100 = r100063 ? r100083 : r100099;
return r100100;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
if i < 1.2003341027076766e+64Initial program 23.1
Simplified19.3
rmApplied *-un-lft-identity19.3
Applied times-frac16.2
Applied associate-/r*16.2
Simplified16.2
if 1.2003341027076766e+64 < i < 1.373853224073776e+125Initial program 57.2
Simplified55.8
rmApplied *-un-lft-identity55.8
Applied times-frac39.7
Applied associate-/r*39.7
Simplified39.7
Taylor expanded around inf 25.5
Simplified25.5
Taylor expanded around inf 19.3
if 1.373853224073776e+125 < i Initial program 64.0
Simplified63.8
rmApplied *-un-lft-identity63.8
Applied times-frac63.8
Applied associate-/r*63.8
Simplified63.8
Taylor expanded around inf 57.4
Simplified57.4
Taylor expanded around 0 11.1
Final simplification13.8
herbie shell --seed 2020001 +o rules:numerics
(FPCore (alpha beta i)
:name "Octave 3.8, jcobi/4"
:precision binary64
:pre (and (> alpha -1) (> beta -1) (> i 1))
(/ (/ (* (* i (+ (+ alpha beta) i)) (+ (* beta alpha) (* i (+ (+ alpha beta) i)))) (* (+ (+ alpha beta) (* 2 i)) (+ (+ alpha beta) (* 2 i)))) (- (* (+ (+ alpha beta) (* 2 i)) (+ (+ alpha beta) (* 2 i))) 1)))