31#ifndef ROOT_Math_VavilovAccurate 
   32#define ROOT_Math_VavilovAccurate 
  162   double Pdf (
double x) 
const override;
 
  172   double Pdf (
double x, 
double kappa, 
double beta2) 
override;
 
  179   double Cdf (
double x) 
const override;
 
  189   double Cdf (
double x, 
double kappa, 
double beta2) 
override;
 
  196   double Cdf_c (
double x) 
const override;
 
  206   double Cdf_c (
double x, 
double kappa, 
double beta2) 
override;
 
  213   double Quantile (
double z) 
const override;
 
  223   double Quantile (
double z, 
double kappa, 
double beta2) 
override;
 
  261   void Set(
double kappa, 
double beta2, 
double epsilonPM=5E-4, 
double epsilon=1E-5);
 
  289   double Mode() 
const override;
 
  298   double Mode(
double kappa, 
double beta2) 
override;
 
  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 GetEpsilon() const
Return the current value of .
 
void InitQuantile() const
 
double Quantile_c(double z) const override
Evaluate the inverse of the complementary Vavilov cumulative probability density function.
 
double Cdf(double x) const override
Evaluate the Vavilov cumulative probability density function.
 
static VavilovAccurate * GetInstance()
Returns a static instance of class VavilovFast.
 
double G116f1(double x) const
 
double GetBeta2() const override
Return the current value of .
 
int Rzero(double a, double b, double &x0, double eps, int mxf, double(VavilovAccurate::*f)(double) const) const
 
void SetKappaBeta2(double kappa, double beta2) override
Change  and  and recalculate coefficients if necessary.
 
static VavilovAccurate * fgInstance
 
double fA_cdf[MAXTERMS+1]
 
double fA_pdf[MAXTERMS+1]
 
double Quantile(double z) const override
Evaluate the inverse of the Vavilov cumulative probability density function.
 
double fLambda[kNquantMax]
 
double GetKappa() const override
Return the current value of .
 
static double E1plLog(double x)
 
double GetLambdaMax() const override
Return the maximum value of  for which  is nonzero in the current approximation.
 
~VavilovAccurate() override
Destructor.
 
double Pdf(double x) const override
Evaluate the Vavilov probability density function.
 
double GetLambdaMin() const override
Return the minimum value of  for which  is nonzero in the current approximation.
 
double GetEpsilonPM() const
Return the current value of .
 
double fB_cdf[MAXTERMS+1]
 
double G116f2(double x) const
 
double Cdf_c(double x) const override
Evaluate the Vavilov complementary cumulative probability density function.
 
static constexpr int MAXTERMS
 
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.
 
static constexpr int kNquantMax
 
double Mode() const override
Return the value of  where the pdf is maximal.
 
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.
 
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...