\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{\sqrt{\frac{\mathsf{fma}\left(i + \left(\beta + \alpha\right), i, \alpha \cdot \beta\right)}{\sqrt{1.0} + \mathsf{fma}\left(2, i, \beta + \alpha\right)}}}{\frac{\mathsf{fma}\left(2, i, \beta + \alpha\right)}{\sqrt{\frac{\mathsf{fma}\left(i + \left(\beta + \alpha\right), i, \alpha \cdot \beta\right)}{\sqrt{1.0} + \mathsf{fma}\left(2, i, \beta + \alpha\right)}}}} \cdot \frac{\frac{i \cdot \left(i + \left(\beta + \alpha\right)\right)}{\mathsf{fma}\left(2, i, \beta + \alpha\right) - \sqrt{1.0}}}{\mathsf{fma}\left(2, i, \beta + \alpha\right)}double f(double alpha, double beta, double i) {
double r1772858 = i;
double r1772859 = alpha;
double r1772860 = beta;
double r1772861 = r1772859 + r1772860;
double r1772862 = r1772861 + r1772858;
double r1772863 = r1772858 * r1772862;
double r1772864 = r1772860 * r1772859;
double r1772865 = r1772864 + r1772863;
double r1772866 = r1772863 * r1772865;
double r1772867 = 2.0;
double r1772868 = r1772867 * r1772858;
double r1772869 = r1772861 + r1772868;
double r1772870 = r1772869 * r1772869;
double r1772871 = r1772866 / r1772870;
double r1772872 = 1.0;
double r1772873 = r1772870 - r1772872;
double r1772874 = r1772871 / r1772873;
return r1772874;
}
double f(double alpha, double beta, double i) {
double r1772875 = i;
double r1772876 = beta;
double r1772877 = alpha;
double r1772878 = r1772876 + r1772877;
double r1772879 = r1772875 + r1772878;
double r1772880 = r1772877 * r1772876;
double r1772881 = fma(r1772879, r1772875, r1772880);
double r1772882 = 1.0;
double r1772883 = sqrt(r1772882);
double r1772884 = 2.0;
double r1772885 = fma(r1772884, r1772875, r1772878);
double r1772886 = r1772883 + r1772885;
double r1772887 = r1772881 / r1772886;
double r1772888 = sqrt(r1772887);
double r1772889 = r1772885 / r1772888;
double r1772890 = r1772888 / r1772889;
double r1772891 = r1772875 * r1772879;
double r1772892 = r1772885 - r1772883;
double r1772893 = r1772891 / r1772892;
double r1772894 = r1772893 / r1772885;
double r1772895 = r1772890 * r1772894;
return r1772895;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
Initial program 52.6
Simplified52.6
rmApplied add-sqr-sqrt52.6
Applied difference-of-squares52.6
Applied times-frac38.7
Applied times-frac36.7
rmApplied add-sqr-sqrt36.8
Applied associate-/l*36.8
Final simplification36.8
herbie shell --seed 2019152 +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)))