\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.0}\frac{1}{\frac{\mathsf{fma}\left(2, i, \alpha + \beta\right)}{\frac{\mathsf{fma}\left(\left(\alpha + \beta\right) + i, i, \alpha \cdot \beta\right)}{\mathsf{fma}\left(2, i, \alpha + \beta\right) + \sqrt{1.0}}}} \cdot \frac{\frac{\left(\left(\alpha + \beta\right) + i\right) \cdot i}{\mathsf{fma}\left(2, i, \alpha + \beta\right) - \sqrt{1.0}}}{\mathsf{fma}\left(2, i, \alpha + \beta\right)}double f(double alpha, double beta, double i) {
double r1681828 = i;
double r1681829 = alpha;
double r1681830 = beta;
double r1681831 = r1681829 + r1681830;
double r1681832 = r1681831 + r1681828;
double r1681833 = r1681828 * r1681832;
double r1681834 = r1681830 * r1681829;
double r1681835 = r1681834 + r1681833;
double r1681836 = r1681833 * r1681835;
double r1681837 = 2.0;
double r1681838 = r1681837 * r1681828;
double r1681839 = r1681831 + r1681838;
double r1681840 = r1681839 * r1681839;
double r1681841 = r1681836 / r1681840;
double r1681842 = 1.0;
double r1681843 = r1681840 - r1681842;
double r1681844 = r1681841 / r1681843;
return r1681844;
}
double f(double alpha, double beta, double i) {
double r1681845 = 1.0;
double r1681846 = 2.0;
double r1681847 = i;
double r1681848 = alpha;
double r1681849 = beta;
double r1681850 = r1681848 + r1681849;
double r1681851 = fma(r1681846, r1681847, r1681850);
double r1681852 = r1681850 + r1681847;
double r1681853 = r1681848 * r1681849;
double r1681854 = fma(r1681852, r1681847, r1681853);
double r1681855 = 1.0;
double r1681856 = sqrt(r1681855);
double r1681857 = r1681851 + r1681856;
double r1681858 = r1681854 / r1681857;
double r1681859 = r1681851 / r1681858;
double r1681860 = r1681845 / r1681859;
double r1681861 = r1681852 * r1681847;
double r1681862 = r1681851 - r1681856;
double r1681863 = r1681861 / r1681862;
double r1681864 = r1681863 / r1681851;
double r1681865 = r1681860 * r1681864;
return r1681865;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
Initial program 52.5
Simplified52.5
rmApplied add-sqr-sqrt52.5
Applied difference-of-squares52.5
Applied times-frac38.2
Applied times-frac36.3
rmApplied *-un-lft-identity36.3
Applied associate-/l*36.3
Final simplification36.3
herbie shell --seed 2019151 +o rules:numerics
(FPCore (alpha beta i)
:name "Octave 3.8, jcobi/4"
: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.0)))