\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 r782339 = x_re;
double r782340 = y_re;
double r782341 = r782339 * r782340;
double r782342 = x_im;
double r782343 = y_im;
double r782344 = r782342 * r782343;
double r782345 = r782341 + r782344;
double r782346 = r782340 * r782340;
double r782347 = r782343 * r782343;
double r782348 = r782346 + r782347;
double r782349 = r782345 / r782348;
return r782349;
}
double f(double x_re, double x_im, double y_re, double y_im) {
double r782350 = x_re;
double r782351 = y_re;
double r782352 = r782350 * r782351;
double r782353 = /*Error: no posit support in C */;
double r782354 = x_im;
double r782355 = y_im;
double r782356 = /*Error: no posit support in C */;
double r782357 = /*Error: no posit support in C */;
double r782358 = r782351 * r782351;
double r782359 = /*Error: no posit support in C */;
double r782360 = /*Error: no posit support in C */;
double r782361 = /*Error: no posit support in C */;
double r782362 = r782357 / r782361;
return r782362;
}



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 2019163
(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))))