double rk_noncentral_chisquare(rk_state *state, double df, double nonc) { double Chi2, N; Chi2 = rk_chisquare(state, df-1); N = rk_gauss(state) + sqrt(nonc); return Chi2 + N*N; }
double rk_noncentral_f(rk_state *state, double dfnum, double dfden, double nonc) { double t = rk_noncentral_chisquare(state, dfnum, nonc) * dfden; return t / (rk_chisquare(state, dfden) * dfnum); }
double rk_f(rk_state *state, double dfnum, double dfden) { return ((rk_chisquare(state, dfnum) * dfden) / (rk_chisquare(state, dfden) * dfnum)); }
double rk_noncentral_f(rk_state *state, double dfnum, double dfden, double nonc) { return ((rk_noncentral_chisquare(state, dfnum, nonc)*dfden) / (rk_chisquare(state, dfden)*dfnum)); }