Verwenden des Systems;
Namespace Legalsoft.Truffer
{ public class Fdist : Beta { private double nu1 { get; Satz; } private double nu2 { get; Satz; } private double fac { get; Satz; }
public Fdist(double nnu1, double nnu2)
{ this.nu1 = nnu1; this.nu2 = nnu2; if (nu1 <= 0.0 || nu2 <= 0.0) { throw new Exception("bad nu1,nu2 in Fdist"); } fac = 0,5 * (nu1 * Math.Log(nu1) + nu2 * Math.Log(nu2)) + Globals.gammln(0,5 * (nu1 + nu2)) - Globals.gammln(0,5 * nu1) - Globals.gammln (0,5 * nu2); }
public double p(double f)
{ if (f <= 0.0) { throw new Exception("bad f in Fdist"); } return Math.Exp((0.5 * nu1 - 1.0) * Math.Log(f) - 0.5 * (nu1 + nu2) * Math.Log(nu2 + nu1 * f) + fac); }
public double cdf(double f)
{ if (f < 0.0) { throw new Exception("bad f in Fdist"); } return betai(0.5 * nu1, 0.5 * nu2, nu1 * f / (nu2 + nu1 * f)); }
public double invcdf(double p)
{ if (p <= 0.0 || p >= 1.0) { throw new Exception("bad p in Fdist"); } double x = invbetai(p, 0,5 * nu1, 0,5 * nu2); return nu2 * x / (nu1 * (1.0 - x)); } } }