54 if (
this == &
rhs)
return *
this;
64 fPdf = (
rhs.fPdf) ?
rhs.fPdf->Clone() :
nullptr;
85 unsigned int ndim =
NDim();
86 for (
unsigned int i = 0; i < ndim; ++i)
102 std::vector<double>
xx(
NDim() );
111 double h2 = 1/(2.*
h);
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Documentation for the abstract class IBaseFunctionMultiDim.
TUnuranBaseDist, base class for Unuran distribution classes such as TUnuranContDist (for one-dimensio...
TUnuranMultiContDist class describing multi dimensional continuous distributions.
TUnuranMultiContDist(TF1 *func=nullptr, unsigned int dim=0, bool isLogPdf=false)
Constructor from a TF1 object representing the Probability density function.
bool fIsLogPdf
flag to control if function pointer represent log of pdf
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.
bool fOwnFunc
flag to indicate if class manages the function pointers
const ROOT::Math::IMultiGenFunction * fPdf
unsigned int NDim() const
get number of dimension of the distribution
~TUnuranMultiContDist() override
Destructor.
WrappedMultiTF1Templ< double > WrappedMultiTF1