\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\frac{1}{y.re \cdot y.re + y.im \cdot y.im} \cdot \left(x.im \cdot y.re - x.re \cdot y.im\right)double f(double x_re, double x_im, double y_re, double y_im) {
double r3257639 = x_im;
double r3257640 = y_re;
double r3257641 = r3257639 * r3257640;
double r3257642 = x_re;
double r3257643 = y_im;
double r3257644 = r3257642 * r3257643;
double r3257645 = r3257641 - r3257644;
double r3257646 = r3257640 * r3257640;
double r3257647 = r3257643 * r3257643;
double r3257648 = r3257646 + r3257647;
double r3257649 = r3257645 / r3257648;
return r3257649;
}
double f(double x_re, double x_im, double y_re, double y_im) {
double r3257650 = 1.0;
double r3257651 = y_re;
double r3257652 = r3257651 * r3257651;
double r3257653 = y_im;
double r3257654 = r3257653 * r3257653;
double r3257655 = r3257652 + r3257654;
double r3257656 = r3257650 / r3257655;
double r3257657 = x_im;
double r3257658 = r3257657 * r3257651;
double r3257659 = x_re;
double r3257660 = r3257659 * r3257653;
double r3257661 = r3257658 - r3257660;
double r3257662 = r3257656 * r3257661;
return r3257662;
}



Bits error versus x.re



Bits error versus x.im



Bits error versus y.re



Bits error versus y.im
Results
Initial program 25.4
rmApplied div-inv25.5
Final simplification25.5
herbie shell --seed 2019125
(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))))