\frac{\left(\frac{\left(x.re \cdot y.re\right)}{\left(x.im \cdot y.im\right)}\right)}{\left(\frac{\left(y.re \cdot y.re\right)}{\left(y.im \cdot y.im\right)}\right)}\frac{x.re \cdot y.re + x.im \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}double f(double x_re, double x_im, double y_re, double y_im) {
double r552147 = x_re;
double r552148 = y_re;
double r552149 = r552147 * r552148;
double r552150 = x_im;
double r552151 = y_im;
double r552152 = r552150 * r552151;
double r552153 = r552149 + r552152;
double r552154 = r552148 * r552148;
double r552155 = r552151 * r552151;
double r552156 = r552154 + r552155;
double r552157 = r552153 / r552156;
return r552157;
}
double f(double x_re, double x_im, double y_re, double y_im) {
double r552158 = x_re;
double r552159 = y_re;
double r552160 = r552158 * r552159;
double r552161 = x_im;
double r552162 = y_im;
double r552163 = r552161 * r552162;
double r552164 = r552160 + r552163;
double r552165 = r552159 * r552159;
double r552166 = r552162 * r552162;
double r552167 = r552165 + r552166;
double r552168 = r552164 / r552167;
return r552168;
}



Bits error versus x.re



Bits error versus x.im



Bits error versus y.re



Bits error versus y.im
Initial program 1.1
Final simplification1.1
herbie shell --seed 2019120 +o rules:numerics
(FPCore (x.re x.im y.re y.im)
:name "_divideComplex, real part"
(/.p16 (+.p16 (*.p16 x.re y.re) (*.p16 x.im y.im)) (+.p16 (*.p16 y.re y.re) (*.p16 y.im y.im))))