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