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.