13#ifndef ROOT_Math_TUnuranMultiContDist
14#define ROOT_Math_TUnuranMultiContDist
92 unsigned int NDim()
const {
137 if (
fMode.size() == 0 )
return 0;
138 return &
fMode.front();
150 double Pdf (
const double *
x)
const;
155 void Gradient(
const double *
x,
double * grad)
const;
160 double Derivative(
const double *
x,
int icoord)
const;
#define ClassDef(name, id)
Documentation for the abstract class IBaseFunctionMultiDim.
virtual unsigned int NDim() const =0
Retrieve the dimension of the function.
TUnuranBaseDist, base class for Unuran distribution classees such as TUnuranContDist (for one-dimensi...
TUnuranMultiContDist class describing multi dimensional continuous distributions.
void SetMode(const double *x)
set the mode of the distribution (coordinates of the distribution maximum values)
double Pdf(const double *x) const
evaluate the probability density function, used by UnuRan
double Derivative(const double *x, int icoord) const
evaluate the partial derivative for the given coordinate.
std::vector< double > fXmax
void Gradient(const double *x, double *grad) const
evaluate the gradient vector of the Pdf.
std::vector< double > fXmin
std::vector< double > fMode
TUnuranMultiContDist & operator=(const TUnuranMultiContDist &rhs)
Assignment operator.
const double * GetMode() const
get the mode (vector of coordinate positions of the maxima of the distribution) If a mode has not def...
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...
const ROOT::Math::IMultiGenFunction * fPdf
unsigned int NDim() const
get number of dimension of the distribution
const double * GetUpperDomain() const
get the distribution upper domain values.
virtual ~TUnuranMultiContDist()
Destructor.
const double * GetLowerDomain() const
get the distribution lower domain values.
bool IsLogPdf() const
flag to control if given function represent the log of a pdf
virtual TUnuranMultiContDist * Clone() const
Clone (required by base class)