自由度 df のt分布において,|x| 以上の値をとる確率を与える関数です。
# t分布の両側確率 <a name="txp">txp.awk</a> function txp(t, df, i, t1, t2, p, w, m2pi) { m2pi = 0.636619772367581343076 t1 = abs(t)/sqrt(df) t2 = 1.0/(1.0+t1*t1) if ((df%2) == 0) { w = t1*sqrt(t2) p = 1.0-w for (i = 2; i <= df-2; i += 2) { p -= w *= t2*(i-1)/i } } else { p = 1.0-m2pi*atan2(t1, 1) if (df >= 3) { w = m2pi*t1*t2 p -= w for (i = 3; i <= df-2; i += 2) { p -= w *= t2*(i-1)/i } } } return (p < 0.0 && abs(p) < 1e-10) ? 0.0 : p }