/// <summary> /// Returns the probability distribution function. /// </summary> public double pdf(double x) { if (x < 0) { throw new ArgumentException(); } if (x == 0) { if (alpha == 1.0) { return(1.0 / lambda); } else { return(0.0); } } if (alpha == 1.0) { return(System.Math.Exp(-x / lambda) / lambda); } return(System.Math.Exp((alpha - 1.0) * System.Math.Log(x / lambda) - x / lambda - Fun.LogGamma(alpha)) / lambda); }