\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\frac{\frac{x.im}{\left|e^{\log \left(\sqrt[3]{y.re \cdot y.re + y.im \cdot y.im}\right)}\right|} \cdot \frac{y.re}{\sqrt{\sqrt[3]{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}}{\sqrt{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 r71342 = x_im;
double r71343 = y_re;
double r71344 = r71342 * r71343;
double r71345 = x_re;
double r71346 = y_im;
double r71347 = r71345 * r71346;
double r71348 = r71344 - r71347;
double r71349 = r71343 * r71343;
double r71350 = r71346 * r71346;
double r71351 = r71349 + r71350;
double r71352 = r71348 / r71351;
return r71352;
}
double f(double x_re, double x_im, double y_re, double y_im) {
double r71353 = x_im;
double r71354 = y_re;
double r71355 = r71354 * r71354;
double r71356 = y_im;
double r71357 = r71356 * r71356;
double r71358 = r71355 + r71357;
double r71359 = cbrt(r71358);
double r71360 = log(r71359);
double r71361 = exp(r71360);
double r71362 = fabs(r71361);
double r71363 = r71353 / r71362;
double r71364 = sqrt(r71359);
double r71365 = r71354 / r71364;
double r71366 = r71363 * r71365;
double r71367 = x_re;
double r71368 = r71367 * r71356;
double r71369 = sqrt(r71358);
double r71370 = r71368 / r71369;
double r71371 = r71366 - r71370;
double r71372 = r71371 / r71369;
return r71372;
}



Bits error versus x.re



Bits error versus x.im



Bits error versus y.re



Bits error versus y.im
Results
Initial program 26.1
rmApplied add-sqr-sqrt26.1
Applied associate-/r*26.0
rmApplied div-sub26.0
rmApplied add-cube-cbrt26.2
Applied sqrt-prod26.2
Applied times-frac24.5
Simplified24.5
rmApplied add-exp-log25.3
Final simplification25.3
herbie shell --seed 2019354
(FPCore (x.re x.im y.re y.im)
:name "_divideComplex, imaginary part"
:precision binary64
(/ (- (* x.im y.re) (* x.re y.im)) (+ (* y.re y.re) (* y.im y.im))))