\left(0.5\right) \cdot \left(\sqrt{\left(\left(2.0\right) \cdot \left(\frac{\left(\sqrt{\left(\frac{\left(re \cdot re\right)}{\left(im \cdot im\right)}\right)}\right)}{re}\right)\right)}\right)0.5 \cdot \sqrt{2.0 \cdot \left(\sqrt{\left(\mathsf{qma}\left(\left(\left(re \cdot re\right)\right), im, im\right)\right)} + re\right)}double f(double re, double im) {
double r1020024 = 0.5;
double r1020025 = /* ERROR: no posit support in C */;
double r1020026 = 2.0;
double r1020027 = /* ERROR: no posit support in C */;
double r1020028 = re;
double r1020029 = r1020028 * r1020028;
double r1020030 = im;
double r1020031 = r1020030 * r1020030;
double r1020032 = r1020029 + r1020031;
double r1020033 = sqrt(r1020032);
double r1020034 = r1020033 + r1020028;
double r1020035 = r1020027 * r1020034;
double r1020036 = sqrt(r1020035);
double r1020037 = r1020025 * r1020036;
return r1020037;
}
double f(double re, double im) {
double r1020038 = 0.5;
double r1020039 = 2.0;
double r1020040 = re;
double r1020041 = r1020040 * r1020040;
double r1020042 = /*Error: no posit support in C */;
double r1020043 = im;
double r1020044 = /*Error: no posit support in C */;
double r1020045 = /*Error: no posit support in C */;
double r1020046 = sqrt(r1020045);
double r1020047 = r1020046 + r1020040;
double r1020048 = r1020039 * r1020047;
double r1020049 = sqrt(r1020048);
double r1020050 = r1020038 * r1020049;
return r1020050;
}



Bits error versus re



Bits error versus im
Initial program 2.0
rmApplied introduce-quire2.0
Applied insert-quire-fdp-add2.0
Final simplification2.0
herbie shell --seed 2019158
(FPCore (re im)
:name "math.sqrt on complex, real part"
(*.p16 (real->posit16 0.5) (sqrt.p16 (*.p16 (real->posit16 2.0) (+.p16 (sqrt.p16 (+.p16 (*.p16 re re) (*.p16 im im))) re)))))