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,
Class describing a Vavilov distribution.
double Cdf_c(double x) const
Evaluate the Vavilov complementary cumulative probability density function.
double GetEpsilon() const
Return the current value of .
void InitQuantile() const
static VavilovAccurate * GetInstance()
Returns a static instance of class VavilovFast.
double G116f1(double x) const
int Rzero(double a, double b, double &x0, double eps, int mxf, double(VavilovAccurate::*f)(double) const) const
static VavilovAccurate * fgInstance
double fA_cdf[MAXTERMS+1]
double fA_pdf[MAXTERMS+1]
virtual double GetBeta2() const
Return the current value of .
double fLambda[kNquantMax]
static double E1plLog(double x)
virtual double GetLambdaMin() const
Return the minimum value of for which is nonzero in the current approximation.
double Quantile_c(double z) const
Evaluate the inverse of the complementary Vavilov cumulative probability density function.
virtual double Mode() const
Return the value of where the pdf is maximal.
double Pdf(double x) const
Evaluate the Vavilov probability density function.
virtual double GetLambdaMax() const
Return the maximum value of for which is nonzero in the current approximation.
double GetEpsilonPM() const
Return the current value of .
virtual double GetKappa() const
Return the current value of .
double Quantile(double z) const
Evaluate the inverse of the Vavilov cumulative probability density function.
virtual void SetKappaBeta2(double kappa, double beta2)
Change and and recalculate coefficients if necessary.
double fB_cdf[MAXTERMS+1]
double G116f2(double x) const
double fQuant[kNquantMax]
void Set(double kappa, double beta2, double epsilonPM=5E-4, double epsilon=1E-5)
(Re)Initialize the object
VavilovAccurate(double kappa=1, double beta2=1, double epsilonPM=5E-4, double epsilon=1E-5)
Initialize an object to calculate the Vavilov distribution.
double fB_pdf[MAXTERMS+1]
double GetNTerms() const
Return the number of terms used in the series expansion.
virtual ~VavilovAccurate()
Destructor.
double Cdf(double x) const
Evaluate the Vavilov cumulative probability density function.
Base class describing a Vavilov distribution.
double vavilov_accurate_pdf(double x, double kappa, double beta2)
The Vavilov probability density function.
double vavilov_accurate_cdf_c(double x, double kappa, double beta2)
The Vavilov complementary cumulative probability density function.
double vavilov_accurate_cdf(double x, double kappa, double beta2)
The Vavilov cumulative probability density function.
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.
Namespace for new Math classes and functions.
Namespace for new ROOT classes and functions.
constexpr Double_t E()
Base of natural log: