1 #include <KrisLibrary/math/specialfunctions.h> 6 virtual void GetParameters(Vector& parameters) {
11 virtual void SetParameters(
const Vector& parameters) {
12 Assert(parameters.n==2);
16 virtual Real PDF(Real value) {
17 return (b/a)*Pow(value/a,b-1)*Exp(-Pow(value/a,b));
19 virtual Real CDF(Real value) {
20 return 1.0 - Exp(-Pow(value/a,b));
22 virtual Real Minimum() {
return 0; }
23 virtual Real Maximum() {
return Inf; }
24 virtual Real Mean() {
return a*
Gamma(1.0+1.0/b); }
25 virtual Real Median() {
return a*Pow(Log2,1.0/b); }
26 virtual Real Variance() {
27 return Sqr(a)*
Gamma(1.0+2.0/b)-Sqr(Expectation());
29 virtual Real Skewness() {
30 Real s = StandardDeviation();
32 return (
Gamma(1.0+3.0/b)*a*a*a - 3.0*mu*Sqr(s) - mu*mu*mu)/(s*s*s);
34 virtual Real Sample() {
36 return Pow(-Log(1.0-x)/a,1.0/b);
38 virtual Real CanSample()
const {
return true; }
Definition: WeibullDistribution.h:3
Real Rand()
Generates a random Real uniformly in [0,1].
Definition: math/random.h:36
double Gamma(double x)
Computes the gamma function.
Definition: misc.cpp:169