ROOT  6.06/09
Reference Guide
Public Member Functions | Private Attributes | List of all members
TUnuranDiscrDist Class Reference

TUnuranDiscrDist class for one dimensional discrete distribution.

It is used by TUnuran to generate integer random numbers according to this distribution via TUnuran::SampleDiscr().

The class can be constructed from a one-dimensional function (TF1 pointer) representing the discrete distribution (probability mesh function) (for example a TF1("f","TMath::PoissonI(x,[0])") ) or from a vector of probability, used by passing an iterator specifying the begin and the end of the vector. In the latter case the domain of the distribution will be defined by the vector, while in the first case is by default (0,+inf). a Method to set the domain of the distribution ( SetDomain ) is provided and it defines the range of the generated random numbers.

The derivatives of the pdf which are used by some UNURAN methods are estimated numerically in the Derivative() method. Some extra information (like distribution mode, cdf function, probability sum, etc..) can be set as well otherwise will be estimated internally if required.

Definition at line 55 of file TUnuranDiscrDist.h.

Public Member Functions

 TUnuranDiscrDist (const ROOT::Math::IGenFunction &func, bool copyFunc=false)
 Constructor from a generic function object specifying the pdf. More...
 
 TUnuranDiscrDist (TF1 *func)
 Constructor from a TF1 objects specifying the pdf. More...
 
template<class Iterator >
 TUnuranDiscrDist (Iterator *begin, Iterator *end)
 Constructor from a vector of probability. More...
 
virtual ~TUnuranDiscrDist ()
 Destructor. More...
 
 TUnuranDiscrDist (const TUnuranDiscrDist &)
 Copy constructor. More...
 
TUnuranDiscrDistoperator= (const TUnuranDiscrDist &rhs)
 Assignment operator. More...
 
virtual TUnuranDiscrDistClone () const
 Clone (required by base class) More...
 
void SetCdf (const ROOT::Math::IGenFunction &cdf)
 set cdf distribution from a generic function interface. More...
 
void SetCdf (TF1 *cdf)
 set cdf distribution from a TF1 pointer. More...
 
void SetDomain (int xmin, int xmax)
 Set the distribution domain, by default the domain is [0,INT_MAX] If xmin >= xmax a domain is removed. More...
 
void SetMode (int mode)
 set the mode of the distribution (location of maximum probability) More...
 
void SetProbSum (double sum)
 set the value of the sum of the probabilities in the given domain More...
 
bool GetDomain (int &xmin, int &xmax) const
 check if distribution has domain and return in case its domain More...
 
int Mode () const
 get the mode (x location of function maximum) More...
 
double ProbSum () const
 return area of the pdf More...
 
bool HasMode () const
 flag to control if distribution provides the mode More...
 
bool HasProbSum () const
 flag to control if distribution provides the total area of the probability function More...
 
bool HasCdf () const
 flag to control if distribution provides also a Cdf More...
 
const std::vector< double > & ProbVec () const
 retrieve a reference to the vector of the probabilities : Prob(i) If the distribution is defined from a function (i.e. More...
 
double Pmf (int x) const
 evaluate the distribution (probability mesh function) at the integer value x. More...
 
double Cdf (int x) const
 evaluate the integral (cdf) on the given domain More...
 
- Public Member Functions inherited from TUnuranBaseDist
virtual ~TUnuranBaseDist ()
 Destructor (no operations) More...
 

Private Attributes

std::vector< doublefPVec
 
std::vector< doublefPVecSum
 
const ROOT::Math::IGenFunctionfPmf
 
const ROOT::Math::IGenFunctionfCdf
 
int fXmin
 
int fXmax
 
int fMode
 
double fSum
 
bool fHasDomain
 
bool fHasMode
 
bool fHasSum
 
bool fOwnFunc
 

#include <TUnuranDiscrDist.h>

+ Inheritance diagram for TUnuranDiscrDist:
+ Collaboration diagram for TUnuranDiscrDist:

Constructor & Destructor Documentation

TUnuranDiscrDist::TUnuranDiscrDist ( const ROOT::Math::IGenFunction func,
bool  copyFunc = false 
)

Constructor from a generic function object specifying the pdf.

Definition at line 23 of file TUnuranDiscrDist.cxx.

Referenced by Clone().

TUnuranDiscrDist::TUnuranDiscrDist ( TF1 func)

Constructor from a TF1 objects specifying the pdf.

Definition at line 43 of file TUnuranDiscrDist.cxx.

template<class Iterator >
TUnuranDiscrDist::TUnuranDiscrDist ( Iterator *  begin,
Iterator *  end 
)
inline

Constructor from a vector of probability.

Definition at line 73 of file TUnuranDiscrDist.h.

TUnuranDiscrDist::~TUnuranDiscrDist ( )
virtual

Destructor.

Definition at line 96 of file TUnuranDiscrDist.cxx.

TUnuranDiscrDist::TUnuranDiscrDist ( const TUnuranDiscrDist rhs)

Copy constructor.

Definition at line 59 of file TUnuranDiscrDist.cxx.

Member Function Documentation

double TUnuranDiscrDist::Cdf ( int  x) const

evaluate the integral (cdf) on the given domain

Definition at line 131 of file TUnuranDiscrDist.cxx.

Referenced by DiscrDist::Cdf().

virtual TUnuranDiscrDist* TUnuranDiscrDist::Clone ( ) const
inlinevirtual

Clone (required by base class)

Implements TUnuranBaseDist.

Definition at line 105 of file TUnuranDiscrDist.h.

Referenced by TUnuran::Init().

bool TUnuranDiscrDist::GetDomain ( int &  xmin,
int &  xmax 
) const
inline

check if distribution has domain and return in case its domain

Definition at line 147 of file TUnuranDiscrDist.h.

Referenced by TUnuran::SetDiscreteDistribution().

bool TUnuranDiscrDist::HasCdf ( ) const
inline

flag to control if distribution provides also a Cdf

Definition at line 178 of file TUnuranDiscrDist.h.

Referenced by TUnuran::SetDiscreteDistribution().

bool TUnuranDiscrDist::HasMode ( ) const
inline

flag to control if distribution provides the mode

Definition at line 167 of file TUnuranDiscrDist.h.

Referenced by TUnuran::SetDiscreteDistribution().

bool TUnuranDiscrDist::HasProbSum ( ) const
inline

flag to control if distribution provides the total area of the probability function

Definition at line 173 of file TUnuranDiscrDist.h.

Referenced by TUnuran::SetDiscreteDistribution().

int TUnuranDiscrDist::Mode ( ) const
inline

get the mode (x location of function maximum)

Definition at line 156 of file TUnuranDiscrDist.h.

Referenced by TUnuran::SetDiscreteDistribution().

TUnuranDiscrDist & TUnuranDiscrDist::operator= ( const TUnuranDiscrDist rhs)

Assignment operator.

Definition at line 68 of file TUnuranDiscrDist.cxx.

Referenced by TUnuranDiscrDist().

double TUnuranDiscrDist::Pmf ( int  x) const

evaluate the distribution (probability mesh function) at the integer value x.

Used internally by UnuRan For integer values outside the domain the function must return 0.0

Definition at line 122 of file TUnuranDiscrDist.cxx.

Referenced by Cdf(), and DiscrDist::Pmf().

double TUnuranDiscrDist::ProbSum ( ) const
inline

return area of the pdf

Definition at line 161 of file TUnuranDiscrDist.h.

Referenced by TUnuran::SetDiscreteDistribution().

const std::vector<double>& TUnuranDiscrDist::ProbVec ( ) const
inline

retrieve a reference to the vector of the probabilities : Prob(i) If the distribution is defined from a function (i.e.

for distribution with undefined domain) the vector is empty.

Definition at line 186 of file TUnuranDiscrDist.h.

Referenced by TUnuran::SetDiscreteDistribution().

void TUnuranDiscrDist::SetCdf ( const ROOT::Math::IGenFunction cdf)

set cdf distribution from a generic function interface.

If a method requires it and is not set it is estimated numerically

Definition at line 104 of file TUnuranDiscrDist.cxx.

void TUnuranDiscrDist::SetCdf ( TF1 cdf)

set cdf distribution from a TF1 pointer.

If a method requires it and is not set it is estimated numerically

Definition at line 109 of file TUnuranDiscrDist.cxx.

void TUnuranDiscrDist::SetDomain ( int  xmin,
int  xmax 
)
inline

Set the distribution domain, by default the domain is [0,INT_MAX] If xmin >= xmax a domain is removed.

Definition at line 124 of file TUnuranDiscrDist.h.

Referenced by TUnuranSampler::DoInitDiscrete1D().

void TUnuranDiscrDist::SetMode ( int  mode)
inline

set the mode of the distribution (location of maximum probability)

Definition at line 137 of file TUnuranDiscrDist.h.

Referenced by TUnuranSampler::DoInitDiscrete1D(), testBinomial(), and testPoisson().

void TUnuranDiscrDist::SetProbSum ( double  sum)
inline

set the value of the sum of the probabilities in the given domain

Definition at line 142 of file TUnuranDiscrDist.h.

Referenced by TUnuranSampler::DoInitDiscrete1D(), testBinomial(), testPoisson(), and testProbVector().

Member Data Documentation

const ROOT::Math::IGenFunction* TUnuranDiscrDist::fCdf
private

Definition at line 209 of file TUnuranDiscrDist.h.

Referenced by Cdf(), HasCdf(), operator=(), SetCdf(), and ~TUnuranDiscrDist().

bool TUnuranDiscrDist::fHasDomain
private

Definition at line 215 of file TUnuranDiscrDist.h.

Referenced by Cdf(), GetDomain(), operator=(), and SetDomain().

bool TUnuranDiscrDist::fHasMode
private

Definition at line 216 of file TUnuranDiscrDist.h.

Referenced by HasMode(), operator=(), and SetMode().

bool TUnuranDiscrDist::fHasSum
private

Definition at line 217 of file TUnuranDiscrDist.h.

Referenced by HasProbSum(), operator=(), and SetProbSum().

int TUnuranDiscrDist::fMode
private

Definition at line 212 of file TUnuranDiscrDist.h.

Referenced by Mode(), operator=(), and SetMode().

bool TUnuranDiscrDist::fOwnFunc
private

Definition at line 218 of file TUnuranDiscrDist.h.

Referenced by operator=(), SetCdf(), TUnuranDiscrDist(), and ~TUnuranDiscrDist().

const ROOT::Math::IGenFunction* TUnuranDiscrDist::fPmf
private

Definition at line 208 of file TUnuranDiscrDist.h.

Referenced by operator=(), Pmf(), SetCdf(), TUnuranDiscrDist(), and ~TUnuranDiscrDist().

std::vector<double> TUnuranDiscrDist::fPVec
private

Definition at line 206 of file TUnuranDiscrDist.h.

Referenced by operator=(), Pmf(), and ProbVec().

std::vector<double> TUnuranDiscrDist::fPVecSum
mutableprivate

Definition at line 207 of file TUnuranDiscrDist.h.

Referenced by Cdf(), and operator=().

double TUnuranDiscrDist::fSum
private

Definition at line 213 of file TUnuranDiscrDist.h.

Referenced by operator=(), ProbSum(), and SetProbSum().

int TUnuranDiscrDist::fXmax
private

Definition at line 211 of file TUnuranDiscrDist.h.

Referenced by GetDomain(), operator=(), and SetDomain().

int TUnuranDiscrDist::fXmin
private

Definition at line 210 of file TUnuranDiscrDist.h.

Referenced by Cdf(), GetDomain(), operator=(), and SetDomain().


The documentation for this class was generated from the following files: