extern void cerfc(double *y, double *x, long n);
void cerfc(double *y, double *x, long n)
{
extern double exp(double);
double xx, t, z, p;
while (n--) {
xx= *x++;
z= xx<0.? -xx : xx;
t= 1.0/(1.0+0.5*z);
p= -1.26551223 +
t*(1.00002368 + t*(0.37409196 + t*(0.09678418 +
t*(-0.18628806 + t*(0.27886807 + t*(-1.13520398 +
t*(1.48851587 + t*(-0.82215223 + t*0.17087277))))))));
p= t*exp(-z*z + p);
if (xx<0.) p= 2.-p;
*(y++)= p;
}
}