26#ifndef quantlib_normal_distribution_hpp
27#define quantlib_normal_distribution_hpp
128 #ifdef REFINE_TO_FULL_MACHINE_PRECISION_USING_HALLEYS_METHOD
144 #if defined(QL_PATCH_SOLARIS)
267 "sigma must be greater than 0.0 ("
268 <<
sigma_ <<
" not allowed)");
279 return exponent <= -690.0 ? 0.0 :
292 "sigma must be greater than 0.0 ("
293 <<
sigma_ <<
" not allowed)");
306 "sigma must be greater than 0.0 ("
307 <<
sigma_ <<
" not allowed)");
315 "sigma must be greater than 0.0 ("
316 <<
sigma_ <<
" not allowed)");
Cumulative normal distribution function.
CumulativeNormalDistribution(Real average=0.0, Real sigma=1.0)
Real derivative(Real x) const
Real operator()(Real x) const
ErrorFunction errorFunction_
NormalDistribution gaussian_
Inverse cumulative normal distribution function.
static Real tail_value(Real x)
Real operator()(Real x) const
InverseCumulativeNormal(Real average=0.0, Real sigma=1.0)
static const CumulativeNormalDistribution f_
static Real standard_value(Real x)
static const Real x_high_
Maddock's cumulative normal distribution class.
Real operator()(Real x) const
Maddock's Inverse cumulative normal distribution class.
Real operator()(Real x) const
Moro Inverse cumulative normal distribution class.
Real operator()(Real x) const
MoroInverseCumulativeNormal(Real average=0.0, Real sigma=1.0)
Normal distribution function.
Real derivative(Real x) const
NormalDistribution(Real average=0.0, Real sigma=1.0)
Real operator()(Real x) const
Real derNormalizationFactor_
Real normalizationFactor_
Classes and functions for error handling.
#define QL_REQUIRE(condition, message)
throw an error if the given pre-condition is not verified
InverseCumulativeNormal InvCumulativeNormalDistribution
NormalDistribution GaussianDistribution
ext::shared_ptr< YieldTermStructure > r