\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\frac{x.im \cdot y.re - x.re \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 r2975204 = x_im;
double r2975205 = y_re;
double r2975206 = r2975204 * r2975205;
double r2975207 = x_re;
double r2975208 = y_im;
double r2975209 = r2975207 * r2975208;
double r2975210 = r2975206 - r2975209;
double r2975211 = r2975205 * r2975205;
double r2975212 = r2975208 * r2975208;
double r2975213 = r2975211 + r2975212;
double r2975214 = r2975210 / r2975213;
return r2975214;
}
double f(double x_re, double x_im, double y_re, double y_im) {
double r2975215 = x_im;
double r2975216 = y_re;
double r2975217 = r2975215 * r2975216;
double r2975218 = x_re;
double r2975219 = y_im;
double r2975220 = r2975218 * r2975219;
double r2975221 = r2975217 - r2975220;
double r2975222 = r2975216 * r2975216;
double r2975223 = r2975219 * r2975219;
double r2975224 = r2975222 + r2975223;
double r2975225 = r2975221 / r2975224;
return r2975225;
}



Bits error versus x.re



Bits error versus x.im



Bits error versus y.re



Bits error versus y.im
Results
Initial program 25.1
rmApplied add-sqr-sqrt25.1
Applied *-un-lft-identity25.1
Applied times-frac25.1
rmApplied frac-times25.1
Simplified25.1
Simplified25.1
Final simplification25.1
herbie shell --seed 2019158
(FPCore (x.re x.im y.re y.im)
:name "_divideComplex, imaginary part"
(/ (- (* x.im y.re) (* x.re y.im)) (+ (* y.re y.re) (* y.im y.im))))