do_del.do_del
template do_del(alias X)
enum do_del =
`xsq = trunc(` ~ X.stringof ~ ` * SIXTEN) / SIXTEN;
del = (` ~ X.stringof ~ ` - xsq) * (` ~ X.stringof ~ ` + xsq);
if(log_p) {
cum = (-xsq * xsq * 0.5) + (-del * 0.5) + log(temp);
if((lower && x > 0.) || (upper && x <= 0.))
ccum = log1p(-exp(-xsq * xsq * 0.5) * exp(-del * 0.5) * temp);
}
else {
cum = exp(-xsq * xsq * 0.5) * exp(-del * 0.5) * temp;
ccum = 1.0 - cum;
}`;
rmathd normal do_del
manifest constants