ROOT » MATH » UNURAN » TUnuranMultiContDist

class TUnuranMultiContDist: public TUnuranBaseDist

Function Members (Methods)

public:
virtual~TUnuranMultiContDist()
static TClass*Class()
virtual TUnuranMultiContDist*Clone() const
doubleDerivative(const double* x, int icoord) const
const double*GetLowerDomain() const
const double*GetMode() const
const double*GetUpperDomain() const
voidGradient(const double* x, double* grad) const
virtual TClass*IsA() const
boolIsLogPdf() const
unsigned intNDim() const
TUnuranMultiContDist&operator=(const TUnuranMultiContDist& rhs)
doublePdf(const double* x) const
voidSetDomain(const double* xmin, const double* xmax)
voidSetMode(const double* x)
virtual voidShowMembers(TMemberInspector& insp) const
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
TUnuranMultiContDist(const TUnuranMultiContDist&)
TUnuranMultiContDist(const ROOT::Math::IMultiGenFunction& pdf, bool isLogPdf = false)
TUnuranMultiContDist(TF1* func = 0, unsigned int dim = 0, bool isLogPdf = false)

Data Members

private:
boolfIsLogPdfflag to control if function pointer represent log of pdf
vector<double>fModevector representing the x coordinates of the maximum of the pdf
boolfOwnFuncflag to indicate if class manages the function pointers
const ROOT::Math::IMultiGenFunction*fPdfpointer to the pdf
vector<double>fXmaxvector with upper x values of the domain
vector<double>fXminvector with lower x values of the domain

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

TUnuranMultiContDist(const ROOT::Math::IMultiGenFunction& pdf, bool isLogPdf = false)
Constructor from generic function interfaces
TUnuranMultiContDist(TF1* func = 0, unsigned int dim = 0, bool isLogPdf = false)
Constructor from a TF1 objects
TUnuranMultiContDist(const TUnuranMultiContDist& )
 Implementation of copy ctor using assignment operator
~TUnuranMultiContDist()
 destructor implementation
double Pdf(const double* x) const
 evaluate the distribution
void Gradient(const double* x, double* grad) const
 do numerical derivation and return gradient in vector grad
 grad must point to a vector of at least ndim size
double Derivative(const double* x, int icoord) const
 do numerical derivation of gradient using 5 point rule
 use 5 point rule
TUnuranMultiContDist * Clone() const
      Clone (required by base class)

{ return new TUnuranMultiContDist(*this); }
unsigned int NDim() const
      get number of dimension of the distribution

void SetDomain(const double* xmin, const double* xmax)
      set the domain of the distribution giving an array of minimum and maximum values
      By default otherwise the domain is undefined, i.e. is [-inf,+inf]
      To remove the domain do a SetDomain(0,0).
      There is no possibility to have a domain defined in only one coordinate. Use instead inf or DOUBLE_MAX to
      specify un infinite domain in that coordinate

void SetMode(const double* x)
      set the mode of the distribution (coordinates of the distribution maximum values)

const double * GetLowerDomain() const
      get the distribution lower domain values. Return a null pointer if domain is not defined

const double * GetUpperDomain() const
      get the distribution upper domain values. Return a null pointer if domain is not defined

const double * GetMode() const
      get the mode (vector of coordinate positions of the maxima of the distribution)
      If a mode has not defined return a NULL pointer

bool IsLogPdf() const
      flag to control if given function represent the log of a pdf

{ return fIsLogPdf; }