BornAgain  1.19.79
Open-source research software to simulate and fit neutron and x-ray reflectometry and grazing-incidence small-angle scattering
ROOT::Math Namespace Reference

Namespaces

 Cephes
 
 Minim1D
 
 Util
 

Classes

class  BasicFitMethodFunction
 
class  BasicMinimizer
 
class  Derivator
 
struct  EvaluatorOneDim
 
struct  EvaluatorOneDim< const ROOT::Math::IParamMultiFunction & >
 
class  Functor
 
class  Functor1D
 
class  FunctorGradHandler
 
class  FunctorHandler
 
class  FunctorImpl
 
class  GenAlgoOptions
 
class  GeneticMinimizer
 
struct  GeneticMinimizerParameters
 
class  GradFunctor
 
class  GradFunctor1D
 
class  GSL1DMinimizerWrapper
 
class  GSLDerivator
 
class  GSLFunctionAdapter
 
class  GSLFunctionDerivWrapper
 
class  GSLFunctionWrapper
 
class  GSLMinimizer
 
class  GSLMinimizer1D
 
class  GSLMultiFit
 
class  GSLMultiFitFunctionAdapter
 
class  GSLMultiFitFunctionWrapper
 
class  GSLMultiMinDerivFunctionWrapper
 
struct  GSLMultiMinFunctionAdapter
 
class  GSLMultiMinFunctionWrapper
 
class  GSLMultiMinimizer
 
class  GSLNLSMinimizer
 
class  GSLRandomEngine
 
class  GSLRngCMRG
 
class  GSLRngGFSR4
 
class  GSLRngMinStd
 
class  GSLRngMixMax
 
class  GSLRngMRG
 
class  GSLRngMT
 
class  GSLRngRand
 
class  GSLRngRanLux
 
class  GSLRngRanLuxD1
 
class  GSLRngRanLuxD2
 
class  GSLRngRanLuxS1
 
class  GSLRngRanLuxS2
 
class  GSLRngRanMar
 
struct  GSLRngROOTWrapper
 
class  GSLRngTaus
 
class  GSLRngWrapper
 
class  GSLSimAnFunc
 
class  GSLSimAnMinimizer
 
class  GSLSimAnnealing
 
struct  GSLSimAnParams
 
class  IBaseFunctionMultiDimTempl
 
class  IBaseFunctionOneDim
 
class  IBaseParam
 
class  IGradientFunctionMultiDimTempl
 
class  IGradientFunctionOneDim
 
class  IGradientMultiDimTempl
 
class  IGradientOneDim
 
class  IMinimizer1D
 
class  IOptions
 
class  IParametricFunctionMultiDimTempl
 
class  IParametricFunctionOneDim
 
class  IParametricGradFunctionMultiDimTempl
 
class  IParametricGradFunctionOneDim
 
class  KahanSum
 The Kahan compensate summation algorithm significantly reduces the numerical error in the total obtained by adding a sequence of finite precision floating point numbers. This is done by keeping a separate running compensation (a variable to accumulate small errors).
. More...
 
class  LSResidualFunc
 
class  MemFunHandler
 
class  MemGradFunHandler
 
class  Minimizer
 
class  MinimizerOptions
 
class  MinimizerVariableTransformation
 
class  MinimTransformFunction
 
class  MinimTransformVariable
 
class  MixMaxEngine
 
class  MixMaxEngineImpl
 
class  MixMaxEngineImpl< ROOT_MM_N >
 
class  MultiNumGradFunction
 
struct  NullTypeFunc1D
 
class  OneDimMultiFunctionAdapter
 
class  OneDimParamFunctionAdapter
 
class  RandomFunctions
 
class  RandomFunctions< EngineType, ROOT::Math::GSLRandomEngine >
 
class  RandomFunctionsImpl
 
class  RandomFunctionsImpl< TRandomEngine >
 
class  SinVariableTransformation
 
class  SqrtLowVariableTransformation
 
class  SqrtUpVariableTransformation
 
class  TRandomEngine
 
class  WrappedFunction
 
class  WrappedMemFunction
 
class  WrappedMemMultiFunction
 
class  WrappedMultiFunction
 
class  WrappedParamFunction
 
class  WrappedParamFunctionGen
 

Typedefs

typedef TRandomEngine DefaultEngineType
 
typedef BasicFitMethodFunction< ROOT::Math::IMultiGenFunctionFitMethodFunction
 
typedef BasicFitMethodFunction< ROOT::Math::IMultiGradFunctionFitMethodGradFunction
 
typedef double(* FreeFunctionPtr) (double)
 
typedef double(* FreeMultiFunctionPtr) (const double *)
 
typedef double(* FreeParamMultiFunctionPtr) (const double *, const double *)
 
typedef void(* GSLFdfPointer) (double, void *, double *, double *)
 
typedef double(* GSLFuncPointer) (double, void *)
 
typedef void(* GSLMultiFitDfPointer) (const gsl_vector *, void *, gsl_matrix *)
 
typedef void(* GSLMultiFitFdfPointer) (const gsl_vector *, void *, gsl_vector *, gsl_matrix *)
 
typedef double(* GSLMultiFitFPointer) (const gsl_vector *, void *, gsl_vector *)
 
typedef void(* GSLMultiMinDfPointer) (const gsl_vector *, void *, gsl_vector *)
 
typedef void(* GSLMultiMinFdfPointer) (const gsl_vector *, void *, double *, gsl_vector *)
 
typedef double(* GSLMultiMinFuncPointer) (const gsl_vector *, void *)
 
typedef GSLRngRanLuxS1 GSLRngRanLux1
 
typedef GSLRngRanLuxS2 GSLRngRanLux2
 
typedef GSLRngRanLuxD2 GSLRngRanLux48
 
using IBaseFunctionMultiDim = IBaseFunctionMultiDimTempl< double >
 
typedef IBaseFunctionOneDim IGenFunction
 
typedef IGradientFunctionOneDim IGradFunction
 
using IGradientFunctionMultiDim = IGradientFunctionMultiDimTempl< double >
 
using IGradientMultiDim = IGradientMultiDimTempl< double >
 
using IMultiGenFunction = IMultiGenFunctionTempl< double >
 
template<class T >
using IMultiGenFunctionTempl = IBaseFunctionMultiDimTempl< T >
 
typedef IGradientFunctionMultiDim IMultiGradFunction
 
using IParametricFunctionMultiDim = IParametricFunctionMultiDimTempl< double >
 
using IParametricGradFunctionMultiDim = IParametricGradFunctionMultiDimTempl< double >
 
typedef IParametricFunctionOneDim IParamFunction
 
typedef IParametricGradFunctionOneDim IParamGradFunction
 
typedef IParametricFunctionMultiDim IParamMultiFunction
 
template<class T >
using IParamMultiFunctionTempl = IParametricFunctionMultiDimTempl< T >
 
typedef IParametricGradFunctionMultiDim IParamMultiGradFunction
 
template<class T >
using IParamMultiGradFunctionTempl = IParametricGradFunctionMultiDimTempl< T >
 
typedef MixMaxEngine< 17, 0 > MixMaxEngine17
 
typedef MixMaxEngine< 240, 0 > MixMaxEngine240
 
typedef MixMaxEngine< 256, 2 > MixMaxEngine256
 

Enumerations

enum  EGSLMinimizerType {
  kConjugateFR , kConjugatePR , kVectorBFGS , kVectorBFGS2 ,
  kSteepestDescent
}
 
enum  EMinimVariableType {
  kDefault , kFix , kBounds , kLowBound ,
  kUpBound
}
 

Functions

double beta_cdf (double x, double a, double b)
 
double beta_cdf_c (double x, double a, double b)
 
double binomial_cdf (unsigned int k, double p, unsigned int n)
 
double binomial_cdf_c (unsigned int k, double p, unsigned int n)
 
double breitwigner_cdf (double x, double gamma, double x0=0)
 
double breitwigner_cdf_c (double x, double gamma, double x0=0)
 
double cauchy_cdf (double x, double b, double x0=0)
 
double cauchy_cdf_c (double x, double b, double x0=0)
 
double chisquared_cdf (double x, double r, double x0=0)
 
double chisquared_cdf_c (double x, double r, double x0=0)
 
double crystalball_cdf (double x, double alpha, double n, double sigma, double x0=0)
 
double crystalball_cdf_c (double x, double alpha, double n, double sigma, double x0=0)
 
double crystalball_integral (double x, double alpha, double n, double sigma, double x0=0)
 
double expm1 (double x)
 exp(x) -1 with error cancellation when x is small More...
 
double exponential_cdf (double x, double lambda, double x0=0)
 
double exponential_cdf_c (double x, double lambda, double x0=0)
 
double fdistribution_cdf (double x, double n, double m, double x0=0)
 
double fdistribution_cdf_c (double x, double n, double m, double x0=0)
 
double gamma_cdf (double x, double alpha, double theta, double x0=0)
 
double gamma_cdf_c (double x, double alpha, double theta, double x0=0)
 
double gaussian_cdf (double x, double sigma=1, double x0=0)
 Alternative name for same function. More...
 
double gaussian_cdf_c (double x, double sigma=1, double x0=0)
 Alternative name for same function. More...
 
double landau_cdf (double x, double xi=1, double x0=0)
 
double landau_cdf_c (double x, double xi=1, double x0=0)
 
double landau_xm1 (double x, double xi=1, double x0=0)
 
double landau_xm2 (double x, double xi=1, double x0=0)
 
double log1p (double x)
 log(1+x) with error cancelatio when x is small More...
 
double lognormal_cdf (double x, double m, double s, double x0=0)
 
double lognormal_cdf_c (double x, double m, double s, double x0=0)
 
double negative_binomial_cdf (unsigned int k, double p, double n)
 
double negative_binomial_cdf_c (unsigned int k, double p, double n)
 
double normal_cdf (double x, double sigma=1, double x0=0)
 
double normal_cdf_c (double x, double sigma=1, double x0=0)
 
double Pi ()
 
double poisson_cdf (unsigned int n, double mu)
 
double poisson_cdf_c (unsigned int n, double mu)
 
double Polynomial1eval (double x, double *a, unsigned int N)
 
double Polynomialeval (double x, double *a, unsigned int N)
 
double tdistribution_cdf (double x, double r, double x0=0)
 
double tdistribution_cdf_c (double x, double r, double x0=0)
 
double uniform_cdf (double x, double a, double b, double x0=0)
 
double uniform_cdf_c (double x, double a, double b, double x0=0)
 
Probability Density Functions from MathCore

Additional PDF's are provided in the MathMore library (see PDF functions from MathMore)

double beta_pdf (double x, double a, double b)
 
double binomial_pdf (unsigned int k, double p, unsigned int n)
 
double negative_binomial_pdf (unsigned int k, double p, double n)
 
double breitwigner_pdf (double x, double gamma, double x0=0)
 
double cauchy_pdf (double x, double b=1, double x0=0)
 
double chisquared_pdf (double x, double r, double x0=0)
 
double crystalball_function (double x, double alpha, double n, double sigma, double x0=0)
 
double crystalball_pdf (double x, double alpha, double n, double sigma, double x0=0)
 
double exponential_pdf (double x, double lambda, double x0=0)
 
double fdistribution_pdf (double x, double n, double m, double x0=0)
 
double gamma_pdf (double x, double alpha, double theta, double x0=0)
 
double gaussian_pdf (double x, double sigma=1, double x0=0)
 
double bigaussian_pdf (double x, double y, double sigmax=1, double sigmay=1, double rho=0, double x0=0, double y0=0)
 
double landau_pdf (double x, double xi=1, double x0=0)
 
double lognormal_pdf (double x, double m, double s, double x0=0)
 
double normal_pdf (double x, double sigma=1, double x0=0)
 
double poisson_pdf (unsigned int n, double mu)
 
double tdistribution_pdf (double x, double r, double x0=0)
 
double uniform_pdf (double x, double a, double b, double x0=0)
 
Special Functions from MathCore
double erf (double x)
 
double erfc (double x)
 
double tgamma (double x)
 
double lgamma (double x)
 
double inc_gamma (double a, double x)
 
double inc_gamma_c (double a, double x)
 
double beta (double x, double y)
 
double inc_beta (double x, double a, double b)
 
double sinint (double x)
 
double cosint (double x)
 

Typedef Documentation

◆ DefaultEngineType

Documentation for the RandomFunction class

Definition at line 47 of file RandomFunctions.h.

◆ FitMethodFunction

◆ FitMethodGradFunction

◆ FreeFunctionPtr

typedef double(* ROOT::Math::FreeFunctionPtr) (double)

Definition at line 39 of file WrappedFunction.h.

◆ FreeMultiFunctionPtr

typedef double(* ROOT::Math::FreeMultiFunctionPtr)(const double *)

Definition at line 41 of file WrappedFunction.h.

◆ FreeParamMultiFunctionPtr

typedef double( * ROOT::Math::FreeParamMultiFunctionPtr) (const double *, const double *)

Definition at line 29 of file WrappedParamFunction.h.

◆ GSLFdfPointer

typedef void( * ROOT::Math::GSLFdfPointer) (double, void *, double *, double *)

Definition at line 46 of file GSLFunctionWrapper.h.

◆ GSLFuncPointer

typedef double(* ROOT::Math::GSLFuncPointer)(double, void *)

Function pointer corresponding to gsl_function signature

Definition at line 45 of file GSLFunctionAdapter.h.

◆ GSLMultiFitDfPointer

typedef void( * ROOT::Math::GSLMultiFitDfPointer) (const gsl_vector *, void *, gsl_matrix *)

Definition at line 48 of file GSLMultiFitFunctionWrapper.h.

◆ GSLMultiFitFdfPointer

typedef void( * ROOT::Math::GSLMultiFitFdfPointer) (const gsl_vector *, void *, gsl_vector *, gsl_matrix *)

Definition at line 49 of file GSLMultiFitFunctionWrapper.h.

◆ GSLMultiFitFPointer

typedef double( * ROOT::Math::GSLMultiFitFPointer) (const gsl_vector *, void *, gsl_vector *)

Definition at line 47 of file GSLMultiFitFunctionWrapper.h.

◆ GSLMultiMinDfPointer

typedef void( * ROOT::Math::GSLMultiMinDfPointer) (const gsl_vector *, void *, gsl_vector *)

Definition at line 47 of file GSLMultiMinFunctionWrapper.h.

◆ GSLMultiMinFdfPointer

typedef void( * ROOT::Math::GSLMultiMinFdfPointer) (const gsl_vector *, void *, double *, gsl_vector *)

Definition at line 48 of file GSLMultiMinFunctionWrapper.h.

◆ GSLMultiMinFuncPointer

typedef double( * ROOT::Math::GSLMultiMinFuncPointer) (const gsl_vector *, void *)

Definition at line 46 of file GSLMultiMinFunctionWrapper.h.

◆ GSLRngRanLux1

Definition at line 369 of file GSLRndmEngines.h.

◆ GSLRngRanLux2

Definition at line 384 of file GSLRndmEngines.h.

◆ GSLRngRanLux48

Definition at line 413 of file GSLRndmEngines.h.

◆ IBaseFunctionMultiDim

Definition at line 33 of file IFunctionfwd.h.

◆ IGenFunction

Definition at line 39 of file IFunctionfwd.h.

◆ IGradFunction

◆ IGradientFunctionMultiDim

Definition at line 36 of file IFunctionfwd.h.

◆ IGradientMultiDim

Definition at line 37 of file IFunctionfwd.h.

◆ IMultiGenFunction

◆ IMultiGenFunctionTempl

template<class T >
using ROOT::Math::IMultiGenFunctionTempl = typedef IBaseFunctionMultiDimTempl<T>

Definition at line 32 of file IFunctionfwd.h.

◆ IMultiGradFunction

◆ IParametricFunctionMultiDim

◆ IParametricGradFunctionMultiDim

◆ IParamFunction

◆ IParamGradFunction

◆ IParamMultiFunction

◆ IParamMultiFunctionTempl

Definition at line 34 of file IParamFunctionfwd.h.

◆ IParamMultiGradFunction

◆ IParamMultiGradFunctionTempl

Definition at line 39 of file IParamFunctionfwd.h.

◆ MixMaxEngine17

Definition at line 188 of file MixMaxEngine.h.

◆ MixMaxEngine240

Definition at line 186 of file MixMaxEngine.h.

◆ MixMaxEngine256

Definition at line 187 of file MixMaxEngine.h.

Enumeration Type Documentation

◆ EMinimVariableType

Enumeration describing the status of the variable The enumeration are used in the minimizer classes to categorize the variables

Enumerator
kDefault 
kFix 
kBounds 
kLowBound 
kUpBound 

Definition at line 27 of file MinimTransformVariable.h.

27  {
28  kDefault, // free variable (unlimited)
29  kFix, // fixed variable
30  kBounds, // variable has two bounds
31  kLowBound, // variable has a lower bound
32  kUpBound // variable has an upper bounds
33  };

Function Documentation

◆ expm1()

double ROOT::Math::expm1 ( double  x)
inline

exp(x) -1 with error cancellation when x is small

Definition at line 112 of file Math.h.

112  {
113 #ifndef HAVE_NO_EXPM1
114  return ::expm1(x);
115 #else
116  // compute using taylor expansion until difference is less than epsilon
117  // use for values smaller than 0.5 (for larger (exp(x)-1 is fine
118  if (std::abs(x) < 0.5)
119  {
120  // taylor series S = x + (1/2!) x^2 + (1/3!) x^3 + ...
121 
122  double i = 1.0;
123  double sum = x;
124  double term = x / 1.0;
125  do {
126  i++ ;
127  term *= x/i;
128  sum += term;
129  }
130  while (std::abs(term) > std::abs(sum) * std::numeric_limits<double>::epsilon() ) ;
131 
132  return sum ;
133  }
134  else
135  {
136  return std::exp(x) - 1;
137  }
138 #endif
139 }
double expm1(double x)
exp(x) -1 with error cancellation when x is small
Definition: Math.h:112

◆ gaussian_cdf()

double ROOT::Math::gaussian_cdf ( double  x,
double  sigma = 1,
double  x0 = 0 
)
inline

Alternative name for same function.

Definition at line 485 of file ProbFuncMathCore.h.

485  {
486  return normal_cdf(x,sigma,x0);
487  }
double normal_cdf(double x, double sigma=1, double x0=0)

References normal_cdf().

Here is the call graph for this function:

◆ gaussian_cdf_c()

double ROOT::Math::gaussian_cdf_c ( double  x,
double  sigma = 1,
double  x0 = 0 
)
inline

Alternative name for same function.

Definition at line 463 of file ProbFuncMathCore.h.

463  {
464  return normal_cdf_c(x,sigma,x0);
465  }
double normal_cdf_c(double x, double sigma=1, double x0=0)

References normal_cdf_c().

Here is the call graph for this function:

◆ log1p()

double ROOT::Math::log1p ( double  x)
inline

log(1+x) with error cancelatio when x is small

declarations for functions which are not implemented by some compilers

Definition at line 100 of file Math.h.

101  {
102 #ifndef HAVE_NO_LOG1P
103  return ::log1p(x);
104 #else
105  // if log1p is not in c math library
106  volatile double y;
107  y = 1 + x;
108  return std::log(y) - ((y-1)-x)/y ; /* cancels errors with IEEE arithmetic */
109 #endif
110 }
double log1p(double x)
log(1+x) with error cancelatio when x is small
Definition: Math.h:100

◆ Pi()

double ROOT::Math::Pi ( )
inline

Mathematical constants

Definition at line 90 of file Math.h.

91 {
92  return M_PI;
93  }
#define M_PI
Definition: Math.h:38

References M_PI.

◆ Polynomial1eval()

double ROOT::Math::Polynomial1eval ( double  x,
double *  a,
unsigned int  N 
)

◆ Polynomialeval()

double ROOT::Math::Polynomialeval ( double  x,
double *  a,
unsigned int  N 
)