31 #ifndef ROOT_Math_VavilovAccurate 32 #define ROOT_Math_VavilovAccurate 162 double Pdf (
double x)
const;
172 double Pdf (
double x,
double kappa,
double beta2);
179 double Cdf (
double x)
const;
189 double Cdf (
double x,
double kappa,
double beta2);
196 double Cdf_c (
double x)
const;
206 double Cdf_c (
double x,
double kappa,
double beta2);
223 double Quantile (
double z,
double kappa,
double beta2);
240 double Quantile_c (
double z,
double kappa,
double beta2);
261 void Set(
double kappa,
double beta2,
double epsilonPM=5
E-4,
double epsilon=1
E-5);
289 virtual double Mode()
const;
298 virtual double Mode(
double kappa,
double beta2);
347 double G116f1 (
double x)
const;
348 double G116f2 (
double x)
const;
350 int Rzero (
double a,
double b,
double& x0,
352 static double E1plLog (
double x);
Base class describing a Vavilov distribution.
virtual double GetKappa() const
Return the current value of .
Namespace for new ROOT classes and functions.
int Rzero(double a, double b, double &x0, double eps, int mxf, double(VavilovAccurate::*f)(double) const) const
double fA_cdf[MAXTERMS+1]
double G116f2(double x) const
double Cdf(double x) const
Evaluate the Vavilov cumulative probability density function.
double GetNTerms() const
Return the number of terms used in the series expansion.
double vavilov_accurate_cdf_c(double x, double kappa, double beta2)
The Vavilov complementary cumulative probability density function.
double GetEpsilonPM() const
Return the current value of .
virtual void SetKappaBeta2(double kappa, double beta2)
Change and and recalculate coefficients if necessary.
double fQuant[kNquantMax]
double fB_cdf[MAXTERMS+1]
virtual double GetLambdaMax() const
Return the maximum value of for which is nonzero in the current approximation.
double GetEpsilon() const
Return the current value of .
void Set(double kappa, double beta2, double epsilonPM=5E-4, double epsilon=1E-5)
(Re)Initialize the object
static VavilovAccurate * GetInstance()
Returns a static instance of class VavilovFast.
double Quantile(double z) const
Evaluate the inverse of the Vavilov cumulative probability density function.
double Cdf_c(double x) const
Evaluate the Vavilov complementary cumulative probability density function.
virtual double Mode() const
Return the value of where the pdf is maximal.
static VavilovAccurate * fgInstance
double fA_pdf[MAXTERMS+1]
VavilovAccurate(double kappa=1, double beta2=1, double epsilonPM=5E-4, double epsilon=1E-5)
Initialize an object to calculate the Vavilov distribution.
void InitQuantile() const
* x
Deprecated and error prone model selection interface.
constexpr Double_t E()
Base of natural log: .
double vavilov_accurate_pdf(double x, double kappa, double beta2)
The Vavilov probability density function.
Class describing a Vavilov distribution.
virtual double GetLambdaMin() const
Return the minimum value of for which is nonzero in the current approximation.
double G116f1(double x) const
Namespace for new Math classes and functions.
you should not use this method at all Int_t Int_t z
virtual double GetBeta2() const
Return the current value of .
static double E1plLog(double x)
double Pdf(double x) const
Evaluate the Vavilov probability density function.
double fLambda[kNquantMax]
double Quantile_c(double z) const
Evaluate the inverse of the complementary Vavilov cumulative probability density function.
virtual ~VavilovAccurate()
Destructor.
you should not use this method at all Int_t Int_t Double_t Double_t Double_t Int_t Double_t Double_t Double_t Double_t b
double fB_pdf[MAXTERMS+1]
double vavilov_accurate_quantile_c(double z, double kappa, double beta2)
The inverse of the complementary Vavilov cumulative probability density function. ...
double vavilov_accurate_quantile(double z, double kappa, double beta2)
The inverse of the Vavilov cumulative probability density function.
double vavilov_accurate_cdf(double x, double kappa, double beta2)
The Vavilov cumulative probability density function.