Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members  

matvec::NormalDist Class Reference

#include <statdist.h>

Inheritance diagram for matvec::NormalDist:

matvec::StatDistBase List of all members.

Detailed Description

normal statistical distribution.

Definition at line 72 of file statdist.h.

Public Methods

 NormalDist (const double mu=0.0, const double sigma2=1.0)
 NormalDist (const NormalDist &u)
void display (void) const
void reset (const double mu, const double sigma2)
void sample (Vector< double > &x) const
void sample (doubleMatrix &x) const
double sample (void) const
Vector< double > sample (unsigned n) const
doubleMatrix sample (unsigned m, unsigned n) const
double mean (void) const
double variance (void) const
double pdf (const double x) const
double cdf (const double x) const
double mgf (const double t) const
double inv (const double p) const
double parameter (const int k) const
void parameter (const int k, const double x)
virtual const std::string name (void) const
virtual double nonct (const double cv, const double p)

Protected Attributes

double mu_value
double sigma2_value
double sigma_value
std::string distname


Constructor & Destructor Documentation

matvec::NormalDist::NormalDist const double    mu = 0.0,
const double    sigma2 = 1.0
[inline]
 

Definition at line 78 of file statdist.h.

References matvec::StatDistBase::distname, and reset().

00079                             {distname="NormalDist"; reset(mu,sigma2);}

matvec::NormalDist::NormalDist const NormalDist &    u [inline]
 

Definition at line 80 of file statdist.h.

References matvec::StatDistBase::distname, and reset().

00080                                      :StatDistBase()
00081                {distname="NormalDist"; reset(u.mu_value,u.sigma2_value);}


Member Function Documentation

double matvec::NormalDist::cdf const double    x const [inline, virtual]
 

Implements matvec::StatDistBase.

Definition at line 94 of file statdist.h.

References mu_value, matvec::Normal_cdf(), and sigma_value.

00095                               {return Normal_cdf((x-mu_value)/sigma_value);}

void matvec::NormalDist::display void    const [inline, virtual]
 

Implements matvec::StatDistBase.

Definition at line 83 of file statdist.h.

References matvec::StatDistBase::distname, mu_value, and sigma2_value.

00083                                   {std::cout << "\t" << distname << "(" << mu_value
00084                                      << "," << sigma2_value << ")\n"; return;}

double matvec::NormalDist::inv const double    p const [inline, virtual]
 

Implements matvec::StatDistBase.

Definition at line 98 of file statdist.h.

References mu_value, matvec::Normal_inv(), and sigma_value.

00099                                {return Normal_inv(p)*sigma_value + mu_value;}

double matvec::NormalDist::mean void    const [inline, virtual]
 

Implements matvec::StatDistBase.

Definition at line 91 of file statdist.h.

References mu_value.

00091 {return mu_value;}

double matvec::NormalDist::mgf const double    t const [inline, virtual]
 

Implements matvec::StatDistBase.

Definition at line 96 of file statdist.h.

References mu_value, and sigma2_value.

00097                                {return std::exp(mu_value*t + sigma2_value*t*t/2.0);}

virtual const std::string matvec::StatDistBase::name void    const [inline, virtual, inherited]
 

Definition at line 45 of file statdistbase.h.

References matvec::StatDistBase::distname.

00045 {return distname;}

virtual double matvec::StatDistBase::nonct const double    cv,
const double    p
[inline, virtual, inherited]
 

Definition at line 58 of file statdistbase.h.

00058 {std::cerr << "error\n"; return 0.0;}

void matvec::NormalDist::parameter const int    k,
const double    x
[virtual]
 

Implements matvec::StatDistBase.

Definition at line 209 of file statdist.cpp.

00213 {
00214    if (k==1) {
00215       mu_value = x;
00216    }
00217    else if (k==2) {
00218       if (x > 0.0) {
00219          sigma2_value = x;
00220       }
00221       else {
00222          throw exception("NormalDist::parameter(): 2nd arg must be positive");
00223       }
00224       sigma_value = std::sqrt(sigma2_value);
00225    }
00226    else {

double matvec::NormalDist::parameter const int    k const [virtual]
 

Implements matvec::StatDistBase.

Definition at line 194 of file statdist.cpp.

00198 {
00199    double par =  0.0;
00200    if (k==1) {
00201       par = mu_value;
00202    }
00203    else if (k==2) {
00204       par = sigma2_value;
00205    }
00206    else {
00207       throw exception("NormalDist::parameter(): bad arg, 1 or 2 is expected");

double matvec::NormalDist::pdf const double    x const [virtual]
 

The probability density function (pdf) is defined by

Implements matvec::StatDistBase.

Definition at line 142 of file statdist.cpp.

References mu_value.

00146 {
00147    const double c = 1.0/std::sqrt(4.0*std::asin(1.0));        //    1.0/sqrt(2.0*pi)   pi = 2.0*std::asin(1.0)

void matvec::NormalDist::reset const double    mu,
const double    sigma2
 

Definition at line 131 of file statdist.cpp.

References mu_value, sigma2_value, and sigma_value.

Referenced by NormalDist().

00132 {
00133    if (sigma2 <= 0.0) throw exception("NormalDist::reset(): 2nd arg must be positive");
00134    mu_value = mu;  sigma2_value = sigma2;
00135    sigma_value = std::sqrt(sigma2_value);
00136 }

doubleMatrix matvec::NormalDist::sample unsigned    m,
unsigned    n
const [virtual]
 

Implements matvec::StatDistBase.

Definition at line 187 of file statdist.cpp.

00191 {
00192    doubleMatrix x(m,n);

Vector< double > matvec::NormalDist::sample unsigned    n const [virtual]
 

Implements matvec::StatDistBase.

Definition at line 180 of file statdist.cpp.

00184 {
00185    Vector<double> x(n);

double matvec::NormalDist::sample void    const [inline, virtual]
 

Implements matvec::StatDistBase.

Definition at line 88 of file statdist.h.

References mu_value, sigma_value, and matvec::snorm().

00088 {return mu_value + sigma_value*snorm();}

void matvec::NormalDist::sample doubleMatrix   x const [virtual]
 

Implements matvec::StatDistBase.

Definition at line 160 of file statdist.cpp.

References mu_value, and sigma_value.

00164 {
00165    int nr = x.num_rows();
00166    int nc = x.num_cols();
00167    double *bot,*top;
00168    unsigned i;
00169    if (mu_value==0.0 && sigma2_value==1.0) {
00170       for (i=0; i<nr; i++) {
00171          bot = x[i];  top = &bot[nc];
00172          while (bot < top ) *bot++ = snorm();
00173       }
00174    }
00175    else {
00176       for (i=0; i<nr; i++) {
00177          bot = x[i];  top = &bot[nc];
00178          while (bot < top ) *bot++ = mu_value + sigma_value*snorm();

void matvec::NormalDist::sample Vector< double > &    x const [virtual]
 

Implements matvec::StatDistBase.

Definition at line 149 of file statdist.cpp.

References sigma2_value, and sigma_value.

00153 {
00154    double *bot = x.begin();
00155    double *top = x.end();
00156    if (mu_value==0.0 && sigma_value==1.0) {
00157       while (bot < top ) *bot++ = snorm();
00158    }
00159    else {

double matvec::NormalDist::variance void    const [inline, virtual]
 

Implements matvec::StatDistBase.

Definition at line 92 of file statdist.h.

References sigma2_value.

00092 {return sigma2_value;}


Member Data Documentation

std::string matvec::StatDistBase::distname [protected, inherited]
 

Definition at line 39 of file statdistbase.h.

Referenced by matvec::BetaDist::BetaDist(), matvec::BinomialDist::BinomialDist(), matvec::ChiSquareDist::ChiSquareDist(), matvec::DiscreteUniformDist::DiscreteUniformDist(), matvec::NegativeBinomialDist::display(), matvec::GeometricDist::display(), matvec::PoissonDist::display(), matvec::BinomialDist::display(), matvec::DiscreteUniformDist::display(), matvec::BetaDist::display(), matvec::ExponentialDist::display(), matvec::GammaDist::display(), matvec::FDist::display(), matvec::tDist::display(), matvec::ChiSquareDist::display(), matvec::LogNormalDist::display(), display(), matvec::UniformDist::display(), matvec::ExponentialDist::ExponentialDist(), matvec::FDist::FDist(), matvec::GammaDist::GammaDist(), matvec::GeometricDist::GeometricDist(), matvec::LogNormalDist::LogNormalDist(), matvec::StatDistBase::name(), matvec::NegativeBinomialDist::NegativeBinomialDist(), NormalDist(), matvec::PoissonDist::PoissonDist(), matvec::StatDistBase::StatDistBase(), matvec::tDist::tDist(), and matvec::UniformDist::UniformDist().

double matvec::NormalDist::mu_value [protected]
 

Definition at line 74 of file statdist.h.

Referenced by cdf(), display(), inv(), mean(), mgf(), pdf(), reset(), and sample().

double matvec::NormalDist::sigma2_value [protected]
 

Definition at line 75 of file statdist.h.

Referenced by display(), mgf(), reset(), sample(), and variance().

double matvec::NormalDist::sigma_value [protected]
 

Definition at line 76 of file statdist.h.

Referenced by cdf(), inv(), reset(), and sample().


The documentation for this class was generated from the following files:
Generated on Thu Jun 16 17:14:40 2005 for Matvec by doxygen1.2.16