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