BornAgain  1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
Distribution1DCauchySampler Class Reference
Inheritance diagram for Distribution1DCauchySampler:
Collaboration diagram for Distribution1DCauchySampler:

Public Member Functions

 Distribution1DCauchySampler (double lambda)
 
double randomSample () const final
 

Private Attributes

double m_lambda
 

Detailed Description

Definition at line 27 of file IDistribution1DSampler.h.

Constructor & Destructor Documentation

◆ Distribution1DCauchySampler()

Distribution1DCauchySampler::Distribution1DCauchySampler ( double  lambda)
inline

Definition at line 30 of file IDistribution1DSampler.h.

Member Function Documentation

◆ randomSample()

double Distribution1DCauchySampler::randomSample ( ) const
finalvirtual

Implements IDistribution1DSampler.

Definition at line 20 of file IDistribution1DSampler.cpp.

21 {
22  // BornAgain Cauchy Distribution = std library Exponential distribution
23  std::random_device rd; // random device class instance
24  std::mt19937 gen(rd()); // Standard mersenne_twister_engine seeded with rd()
25  std::exponential_distribution<double> expDist(m_lambda);
26  double value = expDist(gen);
27 
28  std::bernoulli_distribution bernoulliDist(0.5);
29  bool sign = bernoulliDist(gen);
30 
31  if (sign == true)
32  return value;
33  else
34  return -value;
35 }

References m_lambda.

Member Data Documentation

◆ m_lambda

double Distribution1DCauchySampler::m_lambda
private

Definition at line 34 of file IDistribution1DSampler.h.

Referenced by randomSample().


The documentation for this class was generated from the following files: