\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{\left(\mathsf{qma}\left(\left(\left(x.re \cdot y.re\right)\right), x.im, y.im\right)\right)}{\left(\mathsf{qma}\left(\left(\left(y.re \cdot y.re\right)\right), y.im, y.im\right)\right)}double f(double x_re, double x_im, double y_re, double y_im) {
double r527289 = x_re;
double r527290 = y_re;
double r527291 = r527289 * r527290;
double r527292 = x_im;
double r527293 = y_im;
double r527294 = r527292 * r527293;
double r527295 = r527291 + r527294;
double r527296 = r527290 * r527290;
double r527297 = r527293 * r527293;
double r527298 = r527296 + r527297;
double r527299 = r527295 / r527298;
return r527299;
}
double f(double x_re, double x_im, double y_re, double y_im) {
double r527300 = x_re;
double r527301 = y_re;
double r527302 = r527300 * r527301;
double r527303 = /*Error: no posit support in C */;
double r527304 = x_im;
double r527305 = y_im;
double r527306 = /*Error: no posit support in C */;
double r527307 = /*Error: no posit support in C */;
double r527308 = r527301 * r527301;
double r527309 = /*Error: no posit support in C */;
double r527310 = /*Error: no posit support in C */;
double r527311 = /*Error: no posit support in C */;
double r527312 = r527307 / r527311;
return r527312;
}



Bits error versus x.re



Bits error versus x.im



Bits error versus y.re



Bits error versus y.im
Initial program 1.1
rmApplied introduce-quire1.1
Applied insert-quire-fdp-add1.1
rmApplied introduce-quire1.1
Applied insert-quire-fdp-add1.0
Final simplification1.0
herbie shell --seed 2019156
(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))))