BornAgain  1.19.79
Open-source research software to simulate and fit neutron and x-ray reflectometry and grazing-incidence small-angle scattering
Distribution1DCauchySampler Class Reference

Description

Definition at line 31 of file IDistribution1DSampler.h.

Inheritance diagram for Distribution1DCauchySampler:
[legend]
Collaboration diagram for Distribution1DCauchySampler:
[legend]

Public Member Functions

 Distribution1DCauchySampler (double lambda)
 
double randomSample () const override
 

Private Attributes

double m_lambda
 

Constructor & Destructor Documentation

◆ Distribution1DCauchySampler()

Distribution1DCauchySampler::Distribution1DCauchySampler ( double  lambda)
inline

Definition at line 33 of file IDistribution1DSampler.h.

34  : m_lambda(lambda)
35  {
36  }

Member Function Documentation

◆ randomSample()

double Distribution1DCauchySampler::randomSample ( ) const
overridevirtual

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  return sign ? value : -value;
32 }

References m_lambda.

Member Data Documentation

◆ m_lambda

double Distribution1DCauchySampler::m_lambda
private

Definition at line 40 of file IDistribution1DSampler.h.

Referenced by randomSample().


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