自由度1のカイ二乗分布の上側累積確率

自由度\phiのカイ二乗分布の累積分布関数F(x,\phi)は、
F(x,\phi)=\frac{\gamma(\phi/2,x/2)}{\Gamma(\phi/2)}
ここで、
\Gamma(s)=\int_{0}^{\infty}t^{s-1}e^{-t}dt
\gamma(s,x)=\int_{0}^{x}t^{s-1}e^{-t}dt
はそれぞれガンマ関数、不完全ガンマ関数。
自由度1の場合、

\Gamma(1/2)=\sqrt{\pi}
\gamma(1/2,x/2)=\sqrt{\pi}\mbox{erf}\left(\sqrt{x/2}\right)
より、
F(x,1)=\mbox{erf}\left(\sqrt{x/2}\right)
ここで、\mbox{erf}はガウスの誤差関数。
自由度1のカイ二乗分布の上側累積確率
P(x,1)は、
P(x,1)=1-F(x,1)=1-\mbox{erf}\left(\sqrt{x/2}\right)
で計算できる。
C99には誤差関数が導入されているため、これを求めるのは非常に簡単である。

#include <stdio.h>
#include <math.h>

int main(void)
{
    double x = 1.68421;
    printf("%f\n", 1.0 - erf(sqrt(x * 0.5))); // 0.194366
    return 0;
}