1extern double fabs (double); 2extern double sqrt (double); 3 4typedef struct complexm { 5 double re,im; 6} complex; 7 8static complex 9setCom (double r, double i) 10{ 11 complex ct; 12 ct.re=fabs(r)<1E-300?0.0:r; 13 ct.im=fabs(i)<1E-300?0.0:i; 14 return ct; 15} 16 17static complex 18csqrt_crash (double x) 19{ 20 return (x>=0) ? setCom(sqrt(x),0) : setCom(0,sqrt(-x)); 21} 22