\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 4.817585748747987305707799364642926876965 \cdot 10^{97}:\\
\;\;\;\;\frac{\sqrt{\frac{1}{\alpha + \left(\beta + 2 \cdot i\right)}}}{\frac{\sqrt{\left(\left(\beta + 2 \cdot i\right) - \sqrt{1}\right) + \alpha}}{i}} \cdot \left(\frac{\sqrt{i \cdot \left(\beta + \left(i + \alpha\right)\right) + \beta \cdot \alpha}}{\sqrt{\left(2 \cdot i + \left(\beta + \alpha\right)\right) - \sqrt{1}}} \cdot \frac{\sqrt{\frac{i \cdot \left(\beta + \left(i + \alpha\right)\right) + \beta \cdot \alpha}{2 \cdot i + \left(\beta + \alpha\right)}}}{\frac{\left(\beta + 2 \cdot i\right) + \left(\alpha + \sqrt{1}\right)}{\frac{\beta + \left(i + \alpha\right)}{2 \cdot i + \left(\beta + \alpha\right)}}}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{i \cdot 0.5 + \left(\beta + \alpha\right) \cdot 0.25}{\frac{\left(\alpha + \left(\beta + 2 \cdot i\right)\right) \cdot \left(\alpha + \left(\beta + 2 \cdot i\right)\right) - 1}{i \cdot \frac{i + \left(\beta + \alpha\right)}{\alpha + \left(\beta + 2 \cdot i\right)}}}\\
\end{array}double f(double alpha, double beta, double i) {
double r248046 = i;
double r248047 = alpha;
double r248048 = beta;
double r248049 = r248047 + r248048;
double r248050 = r248049 + r248046;
double r248051 = r248046 * r248050;
double r248052 = r248048 * r248047;
double r248053 = r248052 + r248051;
double r248054 = r248051 * r248053;
double r248055 = 2.0;
double r248056 = r248055 * r248046;
double r248057 = r248049 + r248056;
double r248058 = r248057 * r248057;
double r248059 = r248054 / r248058;
double r248060 = 1.0;
double r248061 = r248058 - r248060;
double r248062 = r248059 / r248061;
return r248062;
}
double f(double alpha, double beta, double i) {
double r248063 = i;
double r248064 = 4.817585748747987e+97;
bool r248065 = r248063 <= r248064;
double r248066 = 1.0;
double r248067 = alpha;
double r248068 = beta;
double r248069 = 2.0;
double r248070 = r248069 * r248063;
double r248071 = r248068 + r248070;
double r248072 = r248067 + r248071;
double r248073 = r248066 / r248072;
double r248074 = sqrt(r248073);
double r248075 = 1.0;
double r248076 = sqrt(r248075);
double r248077 = r248071 - r248076;
double r248078 = r248077 + r248067;
double r248079 = sqrt(r248078);
double r248080 = r248079 / r248063;
double r248081 = r248074 / r248080;
double r248082 = r248063 + r248067;
double r248083 = r248068 + r248082;
double r248084 = r248063 * r248083;
double r248085 = r248068 * r248067;
double r248086 = r248084 + r248085;
double r248087 = sqrt(r248086);
double r248088 = r248068 + r248067;
double r248089 = r248070 + r248088;
double r248090 = r248089 - r248076;
double r248091 = sqrt(r248090);
double r248092 = r248087 / r248091;
double r248093 = r248086 / r248089;
double r248094 = sqrt(r248093);
double r248095 = r248067 + r248076;
double r248096 = r248071 + r248095;
double r248097 = r248083 / r248089;
double r248098 = r248096 / r248097;
double r248099 = r248094 / r248098;
double r248100 = r248092 * r248099;
double r248101 = r248081 * r248100;
double r248102 = 0.5;
double r248103 = r248063 * r248102;
double r248104 = 0.25;
double r248105 = r248088 * r248104;
double r248106 = r248103 + r248105;
double r248107 = r248072 * r248072;
double r248108 = r248107 - r248075;
double r248109 = r248063 + r248088;
double r248110 = r248109 / r248072;
double r248111 = r248063 * r248110;
double r248112 = r248108 / r248111;
double r248113 = r248106 / r248112;
double r248114 = r248065 ? r248101 : r248113;
return r248114;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
Results
if i < 4.817585748747987e+97Initial program 32.8
Simplified13.7
rmApplied add-sqr-sqrt13.7
Applied difference-of-squares13.7
Applied times-frac11.0
Applied add-sqr-sqrt11.3
Applied times-frac9.4
Simplified9.4
Simplified9.4
rmApplied *-un-lft-identity9.4
Applied add-sqr-sqrt9.4
Applied times-frac9.3
Applied div-inv9.3
Applied sqrt-prod9.4
Applied times-frac9.5
Applied associate-*r*9.4
Simplified9.4
if 4.817585748747987e+97 < i Initial program 64.0
Simplified52.6
Taylor expanded around 0 50.9
Simplified50.9
Final simplification38.1
herbie shell --seed 2019179
(FPCore (alpha beta i)
:name "Octave 3.8, jcobi/4"
:pre (and (> alpha -1.0) (> beta -1.0) (> i 1.0))
(/ (/ (* (* i (+ (+ alpha beta) i)) (+ (* beta alpha) (* i (+ (+ alpha beta) i)))) (* (+ (+ alpha beta) (* 2.0 i)) (+ (+ alpha beta) (* 2.0 i)))) (- (* (+ (+ alpha beta) (* 2.0 i)) (+ (+ alpha beta) (* 2.0 i))) 1.0)))