13#ifndef ROOT_Math_TUnuranMultiContDist 
   14#define ROOT_Math_TUnuranMultiContDist 
   92   unsigned int NDim()
 const {
 
  120      if (
fXmin.size() == 0 || (  
fXmin.size() != 
fXmax.size() )  ) 
return nullptr;
 
  127      if (
fXmax.size() == 0 || (  
fXmin.size() != 
fXmax.size() )  ) 
return nullptr;
 
  137      if (
fMode.size() == 0) 
return nullptr;
 
  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 ClassDefOverride(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 classes such as TUnuranContDist (for one-dimensio...
 
TUnuranMultiContDist class describing multi dimensional continuous distributions.
 
bool fIsLogPdf
flag to control if function pointer represent log of pdf
 
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
vector with upper x values of the domain
 
void Gradient(const double *x, double *grad) const
evaluate the gradient vector of the Pdf.
 
std::vector< double > fXmin
vector with lower x values of the domain
 
std::vector< double > fMode
vector representing the x coordinates of the maximum of the pdf
 
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...
 
bool fOwnFunc
flag to indicate if class manages the function pointers
 
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.
 
TUnuranMultiContDist * Clone() const override
Clone (required by base class)
 
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
 
~TUnuranMultiContDist() override
Destructor.