https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98201
--- Comment #5 from Thomas Koenig <tkoenig at gcc dot gnu.org> ---
What is the output of
#include <complex.h>
#include <stdio.h>
int main()
{
_Complex float z, sq, sq2;
int n;
float a;
a = -1.;
for (n = 1; n < 10; n++)
{
a = a * 10;
z = a + _Complex_I * 1.0;
sq = csqrtf (z);
sq2 = sq * sq;
printf ("(%e,%e) (%e,%e) (%e,%e)\n", creal(z), cimag(z),
creal(sq), cimag(sq), creal(sq2), cimag(sq2));
}
return 0;
}
?
On my Linux box, it is
(-1.000000e+01,1.000000e+00) (1.579171e-01,3.166218e+00)
(-1.000000e+01,1.000000e+00)
(-1.000000e+02,1.000000e+00) (4.999937e-02,1.000012e+01)
(-1.000000e+02,1.000000e+00)
(-1.000000e+03,1.000000e+00) (1.581139e-02,3.162278e+01)
(-9.999999e+02,1.000000e+00)
(-1.000000e+04,1.000000e+00) (5.000000e-03,1.000000e+02)
(-1.000000e+04,1.000000e+00)
(-1.000000e+05,1.000000e+00) (1.581139e-03,3.162278e+02)
(-9.999999e+04,1.000000e+00)
(-1.000000e+06,1.000000e+00) (5.000000e-04,1.000000e+03)
(-1.000000e+06,1.000000e+00)
(-1.000000e+07,1.000000e+00) (1.581139e-04,3.162278e+03)
(-1.000000e+07,1.000000e+00)
(-1.000000e+08,1.000000e+00) (5.000000e-05,1.000000e+04)
(-1.000000e+08,1.000000e+00)
(-1.000000e+09,1.000000e+00) (1.581139e-05,3.162278e+04)
(-1.000000e+09,9.999999e-01)