\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 r2708066 = x_re;
double r2708067 = y_re;
double r2708068 = r2708066 * r2708067;
double r2708069 = x_im;
double r2708070 = y_im;
double r2708071 = r2708069 * r2708070;
double r2708072 = r2708068 + r2708071;
double r2708073 = r2708067 * r2708067;
double r2708074 = r2708070 * r2708070;
double r2708075 = r2708073 + r2708074;
double r2708076 = r2708072 / r2708075;
return r2708076;
}
double f(double x_re, double x_im, double y_re, double y_im) {
double r2708077 = x_re;
double r2708078 = y_re;
double r2708079 = r2708077 * r2708078;
double r2708080 = /*Error: no posit support in C */;
double r2708081 = x_im;
double r2708082 = y_im;
double r2708083 = /*Error: no posit support in C */;
double r2708084 = /*Error: no posit support in C */;
double r2708085 = r2708078 * r2708078;
double r2708086 = /*Error: no posit support in C */;
double r2708087 = /*Error: no posit support in C */;
double r2708088 = /*Error: no posit support in C */;
double r2708089 = r2708084 / r2708088;
return r2708089;
}



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