15 #ifndef BORNAGAIN_CORE_CORRELATIONS_FTDISTRIBUTIONS1D_H
16 #define BORNAGAIN_CORE_CORRELATIONS_FTDISTRIBUTIONS1D_H
37 double omega()
const {
return m_omega; }
43 virtual std::unique_ptr<IDistribution1DSampler> createSampler()
const = 0;
47 const double& m_omega;
62 double evaluate(
double q)
const override final;
66 std::unique_ptr<IDistribution1DSampler> createSampler() const override final;
82 double evaluate(
double q)
const override final;
86 std::unique_ptr<IDistribution1DSampler> createSampler() const override final;
102 double evaluate(
double q)
const override final;
106 std::unique_ptr<IDistribution1DSampler> createSampler() const override final;
122 double evaluate(
double q)
const override final;
126 std::unique_ptr<IDistribution1DSampler> createSampler() const override final;
143 double evaluate(
double q)
const override final;
147 std::unique_ptr<IDistribution1DSampler> createSampler() const override final;
164 double evaluate(
double q)
const override final;
165 double eta()
const {
return m_eta; }
169 std::unique_ptr<IDistribution1DSampler> createSampler() const override final;
Defines and implements the standard mix-in ICloneable.
Defines interface class IFTDistribution1D, and children thereof.
Exponential IFTDistribution1D exp(-|omega*x|); its Fourier transform evaluate(q) is a Cauchy-Lorentzi...
void accept(INodeVisitor *visitor) const override final
Calls the INodeVisitor's visit method.
double qSecondDerivative() const override final
Returns the negative of the second order derivative in q space around q=0.
double evaluate(double q) const override final
Returns Fourier transform of this distribution; is a decay function starting at evaluate(0)=1.
IFTDistribution1D consisting of one cosine wave [1+cos(pi*x/omega) if |x|<omega, and 0 otherwise]; it...
void accept(INodeVisitor *visitor) const override final
Calls the INodeVisitor's visit method.
double evaluate(double q) const override final
Returns Fourier transform of this distribution; is a decay function starting at evaluate(0)=1.
double qSecondDerivative() const override final
Returns the negative of the second order derivative in q space around q=0.
Square gate IFTDistribution1D; its Fourier transform evaluate(q) is a sinc function starting at evalu...
double evaluate(double q) const override final
Returns Fourier transform of this distribution; is a decay function starting at evaluate(0)=1.
double qSecondDerivative() const override final
Returns the negative of the second order derivative in q space around q=0.
void accept(INodeVisitor *visitor) const override final
Calls the INodeVisitor's visit method.
Gaussian IFTDistribution1D; its Fourier transform evaluate(q) is a Gaussian starting at evaluate(0)=1...
void accept(INodeVisitor *visitor) const override final
Calls the INodeVisitor's visit method.
double qSecondDerivative() const override final
Returns the negative of the second order derivative in q space around q=0.
double evaluate(double q) const override final
Returns Fourier transform of this distribution; is a decay function starting at evaluate(0)=1.
Triangle IFTDistribution1D [1-|x|/omega if |x|<omega, and 0 otherwise]; its Fourier transform evaluat...
void accept(INodeVisitor *visitor) const override final
Calls the INodeVisitor's visit method.
double evaluate(double q) const override final
Returns Fourier transform of this distribution; is a decay function starting at evaluate(0)=1.
double qSecondDerivative() const override final
Returns the negative of the second order derivative in q space around q=0.
IFTDistribution1D that provides a Fourier transform evaluate(q) in form of a pseudo-Voigt decay funct...
void accept(INodeVisitor *visitor) const override final
Calls the INodeVisitor's visit method.
double evaluate(double q) const override final
Returns Fourier transform of this distribution; is a decay function starting at evaluate(0)=1.
double qSecondDerivative() const override final
Returns the negative of the second order derivative in q space around q=0.
Interface for polymorphic classes that should not be copied, except by explicit cloning.
Interface for a one-dimensional distribution, with normalization adjusted so that the Fourier transfo...
virtual double qSecondDerivative() const =0
Returns the negative of the second order derivative in q space around q=0.
virtual double evaluate(double q) const =0
Returns Fourier transform of this distribution; is a decay function starting at evaluate(0)=1.
Visitor interface to visit ISample objects.
Base class for tree-like structures containing parameterized objects.