\left(0.5\right) \cdot \left(\sqrt{\left(\left(2.0\right) \cdot \left(\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 r522902 = 0.5;
double r522903 = /* ERROR: no posit support in C */;
double r522904 = 2.0;
double r522905 = /* ERROR: no posit support in C */;
double r522906 = re;
double r522907 = r522906 * r522906;
double r522908 = im;
double r522909 = r522908 * r522908;
double r522910 = r522907 + r522909;
double r522911 = sqrt(r522910);
double r522912 = r522911 - r522906;
double r522913 = r522905 * r522912;
double r522914 = sqrt(r522913);
double r522915 = r522903 * r522914;
return r522915;
}
double f(double re, double im) {
double r522916 = 0.5;
double r522917 = 2.0;
double r522918 = re;
double r522919 = r522918 * r522918;
double r522920 = /*Error: no posit support in C */;
double r522921 = im;
double r522922 = /*Error: no posit support in C */;
double r522923 = /*Error: no posit support in C */;
double r522924 = sqrt(r522923);
double r522925 = r522924 - r522918;
double r522926 = r522917 * r522925;
double r522927 = sqrt(r522926);
double r522928 = r522916 * r522927;
return r522928;
}



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 2019154
(FPCore (re im)
:name "math.sqrt on complex, imaginary part, im greater than 0 branch"
(*.p16 (real->posit16 0.5) (sqrt.p16 (*.p16 (real->posit16 2.0) (-.p16 (sqrt.p16 (+.p16 (*.p16 re re) (*.p16 im im))) re)))))