\frac{x.re \cdot y.re + x.im \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\frac{1 \cdot \left(x.re \cdot y.re + x.im \cdot y.im\right)}{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 r109376 = x_re;
double r109377 = y_re;
double r109378 = r109376 * r109377;
double r109379 = x_im;
double r109380 = y_im;
double r109381 = r109379 * r109380;
double r109382 = r109378 + r109381;
double r109383 = r109377 * r109377;
double r109384 = r109380 * r109380;
double r109385 = r109383 + r109384;
double r109386 = r109382 / r109385;
return r109386;
}
double f(double x_re, double x_im, double y_re, double y_im) {
double r109387 = 1.0;
double r109388 = x_re;
double r109389 = y_re;
double r109390 = r109388 * r109389;
double r109391 = x_im;
double r109392 = y_im;
double r109393 = r109391 * r109392;
double r109394 = r109390 + r109393;
double r109395 = r109387 * r109394;
double r109396 = r109389 * r109389;
double r109397 = r109392 * r109392;
double r109398 = r109396 + r109397;
double r109399 = r109395 / r109398;
return r109399;
}



Bits error versus x.re



Bits error versus x.im



Bits error versus y.re



Bits error versus y.im
Results
Initial program 26.9
rmApplied *-un-lft-identity26.9
Final simplification26.9
herbie shell --seed 2020064
(FPCore (x.re x.im y.re y.im)
:name "_divideComplex, real part"
:precision binary64
(/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))))