BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
Distribution2DCauchySampler Class Reference
Inheritance diagram for Distribution2DCauchySampler:
[legend]
Collaboration diagram for Distribution2DCauchySampler:
[legend]

Public Member Functions

 Distribution2DCauchySampler (double omega_x, double omega_y)
 
std::pair< double, double > randomSample () const final
 

Private Attributes

double m_omega_x
 
double m_omega_y
 

Detailed Description

Definition at line 33 of file IDistribution2DSampler.h.

Constructor & Destructor Documentation

◆ Distribution2DCauchySampler()

Distribution2DCauchySampler::Distribution2DCauchySampler ( double  omega_x,
double  omega_y 
)
inline

Definition at line 35 of file IDistribution2DSampler.h.

36  : m_omega_x(omega_x), m_omega_y(omega_y)
37  {
38  }

Member Function Documentation

◆ randomSample()

std::pair< double, double > Distribution2DCauchySampler::randomSample ( ) const
finalvirtual

Implements IDistribution2DSampler.

Definition at line 128 of file IDistribution2DSampler.cpp.

129 {
130  // Use Ziggurat sampling instead of Inverse Transform Sampling (ITS requires numerical solver)
131 
132  double phi_max_Cauchy = 1.0;
133  // rightmost box's right-edge from phi_max_Cauchy for Ziggurat Sampling
134  double r = sigma_scale * std::sqrt(2); // standard dev of func_phi_Cauchy is sqrt(2)
135  std::pair<double, double> samples = samplingZiggurat(r, phi_max_Cauchy, func_phi_Cauchy);
136  return std::make_pair(m_omega_x * samples.first * std::cos(samples.second),
137  m_omega_y * samples.first * std::sin(samples.second));
138 }

References m_omega_x, and m_omega_y.

Member Data Documentation

◆ m_omega_x

double Distribution2DCauchySampler::m_omega_x
private

Definition at line 42 of file IDistribution2DSampler.h.

Referenced by randomSample().

◆ m_omega_y

double Distribution2DCauchySampler::m_omega_y
private

Definition at line 42 of file IDistribution2DSampler.h.

Referenced by randomSample().


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