27 : fPdf(pdf), fDPdf(dpdf), fCdf(cdf), fXmin(1.), fXmax(-1.), fMode(0), fArea(0), fIsLogPdf(isLogPdf), fHasDomain(false),
28 fHasMode(false), fHasArea(false), fOwnFunc(copyFunc)
47 fPdf( (pdf) ? new
ROOT::
Math::WrappedTF1 ( *pdf) : nullptr ),
48 fDPdf( (deriv) ? new
ROOT::
Math::WrappedTF1 ( *deriv) : nullptr ),
49 fCdf( (cdf) ? new
ROOT::
Math::WrappedTF1 ( *cdf) : nullptr),
81 if (
this == &rhs)
return *
this;
152 static double gEps = 0.001;
153 double h = ( std::abs(
x) > 0 ) ? gEps * std::abs(
x) : gEps;
154 assert (
fPdf !=
nullptr);
Interface (abstract class) for generic functions objects of one-dimension Provides a method to evalua...
virtual IBaseFunctionOneDim * Clone() const =0
Clone a function.
User Class for performing numerical integration of a function in one dimension.
double Integral(Function &f, double a, double b)
evaluate the Integral of a function f over the defined interval (a,b)
User class for calculating the derivatives of a function.
double Derivative1(double x)
Returns the first derivative of the function at point x, computed by Richardson's extrapolation metho...
Class to Wrap a ROOT Function class (like TF1) in a IParamFunction interface of one dimensions to be ...
TUnuranBaseDist, base class for Unuran distribution classes such as TUnuranContDist (for one-dimensio...
TUnuranContDist class describing one dimensional continuous distribution.
const ROOT::Math::IGenFunction * fDPdf
pointer to the derivative of the pdf
double fXmin
lower value of the domain
double DPdf(double x) const
evaluate the derivative of the pdf.
const ROOT::Math::IGenFunction * fPdf
pointer to the pdf
bool fHasArea
flag to control if distribution has a pre-computed area below the pdf
double Pdf(double x) const
evaluate the Probability Density function.
double fMode
mode of the distribution
double fArea
area below pdf
bool fHasMode
flag to control if distribution has a pre-computed mode
const ROOT::Math::IGenFunction * fCdf
pointer to the cdf (cumulative dist.)
bool fIsLogPdf
flag to control if function pointer represent log of pdf
double Cdf(double x) const
evaluate the integral (cdf) on the domain.
TUnuranContDist(TF1 *pdf=nullptr, TF1 *deriv=nullptr, bool isLogPdf=false)
Constructor from a TF1 objects specifying the pdf and optionally from another function representing t...
void SetCdf(TF1 *cdf)
set cdf distribution.
double fXmax
upper value of the domain
bool fHasDomain
flag to control if distribution has a defined domain (otherwise is [-inf,+inf]
~TUnuranContDist() override
Destructor.
bool fOwnFunc
flag to indicate if class manages the function pointers
TUnuranContDist & operator=(const TUnuranContDist &rhs)
Assignment operator.
Namespace for new Math classes and functions.
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...
Double_t QuietNaN()
Returns a quiet NaN as defined by IEEE 754.