15 #ifndef BORNAGAIN_CORE_CORRELATIONS_FTDISTRIBUTIONS2D_H 
   16 #define BORNAGAIN_CORE_CORRELATIONS_FTDISTRIBUTIONS2D_H 
   33     double omegaX()
 const { 
return m_omega_x; }
 
   34     double omegaY()
 const { 
return m_omega_y; }
 
   35     double gamma()
 const { 
return m_gamma; }
 
   38     double delta()
 const { 
return M_PI_2; }
 
   43     virtual double evaluate(
double qx, 
double qy) 
const = 0;
 
   46     virtual std::unique_ptr<IDistribution2DSampler> createSampler() 
const = 0;
 
   50     double sumsq(
double qx, 
double qy) 
const;
 
   52     const double& m_omega_x;
 
   53     const double& m_omega_y;
 
   54     const double& m_gamma;
 
   70     double evaluate(
double qx, 
double qy) 
const final;
 
   72     std::unique_ptr<IDistribution2DSampler> createSampler() const final;
 
   89     double evaluate(
double qx, 
double qy) 
const final;
 
   91     std::unique_ptr<IDistribution2DSampler> createSampler() const final;
 
  108     double evaluate(
double qx, 
double qy) 
const final;
 
  110     std::unique_ptr<IDistribution2DSampler> createSampler() const final;
 
  127     double evaluate(
double qx, 
double qy) 
const final;
 
  129     std::unique_ptr<IDistribution2DSampler> createSampler() const final;
 
  145     double evaluate(
double qx, 
double qy) 
const final;
 
  146     double eta()
 const { 
return m_eta; }
 
  148     std::unique_ptr<IDistribution2DSampler> createSampler() const final;
 
Defines and implements the standard mix-in ICloneable.
 
Defines interface class IFTDistribution1D, and children thereof.
 
Defines M_PI and some more mathematical constants.
 
Two-dimensional Cauchy distribution in Fourier space; corresponds to a normalized exp(-r) in real spa...
 
double evaluate(double qx, double qy) const final
evaluate Fourier transformed distribution for q in X,Y coordinates the original distribution (in real...
 
void accept(INodeVisitor *visitor) const final
Calls the INodeVisitor's visit method.
 
Two-dimensional cone distribution in Fourier space; corresponds to 1-r if r<1 (and 0 otherwise) in re...
 
void accept(INodeVisitor *visitor) const final
Calls the INodeVisitor's visit method.
 
double evaluate(double qx, double qy) const final
evaluate Fourier transformed distribution for q in X,Y coordinates the original distribution (in real...
 
Two-dimensional gate distribution in Fourier space; corresponds to normalized constant if r<1 (and 0 ...
 
double evaluate(double qx, double qy) const final
evaluate Fourier transformed distribution for q in X,Y coordinates the original distribution (in real...
 
void accept(INodeVisitor *visitor) const final
Calls the INodeVisitor's visit method.
 
Two-dimensional Gauss distribution in Fourier space; corresponds to normalized exp(-r^2/2) in real sp...
 
double evaluate(double qx, double qy) const final
evaluate Fourier transformed distribution for q in X,Y coordinates the original distribution (in real...
 
void accept(INodeVisitor *visitor) const final
Calls the INodeVisitor's visit method.
 
Two-dimensional Voigt distribution in Fourier space; corresponds to eta*Gauss + (1-eta)*Cauchy.
 
void accept(INodeVisitor *visitor) const final
Calls the INodeVisitor's visit method.
 
double evaluate(double qx, double qy) const final
evaluate Fourier transformed distribution for q in X,Y coordinates the original distribution (in real...
 
Interface for polymorphic classes that should not be copied, except by explicit cloning.
 
Interface for two-dimensional distributions in Fourier space.
 
double delta() const
Angle in direct space between X- and Y-axis of distribution.
 
virtual double evaluate(double qx, double qy) const =0
evaluate Fourier transformed distribution for q in X,Y coordinates the original distribution (in real...
 
Visitor interface to visit ISample objects.
 
Base class for tree-like structures containing parameterized objects.