26#ifndef SCIMATH_GAUSSIAN2D_H
27#define SCIMATH_GAUSSIAN2D_H
30#include <casacore/casa/aips.h>
31#include <casacore/casa/Arrays/ArrayFwd.h>
32#include <casacore/scimath/Functionals/Gaussian2DParam.h>
33#include <casacore/scimath/Functionals/Function.h>
34#include <casacore/scimath/Mathematics/AutoDiff.h>
35#include <casacore/scimath/Mathematics/AutoDiffMath.h>
245#define Gaussian2D_PS Gaussian2D
285 Gaussian2D_PS<AutoDiff<T> > &
290 virtual ~Gaussian2D_PS() {}
309 *cloneNonAD()
const {
336#ifndef CASACORE_NO_AUTO_TEMPLATES
337#include <casacore/scimath/Functionals/Gaussian2D.tcc>
338#include <casacore/scimath/Functionals/Gaussian2D2.tcc>
FunctionParam< T > param_p
The parameters and masks.
T theXwidth
cached vale of the Xwidth = ratio*theYwidth;
T height() const
Get or set the peak height of the Gaussian.
T thePA
cached vale of the PA
Vector< T > center() const
Get or set the center ordinate of the Gaussian.
Vector< T > width() const
Set or get the FWHM of the Gaussian.
T fwhm2int
Constant to scale halfwidth at 1/e to FWHM.
T theSpa
cached values of the cos and sine of thePA
Gaussian2DParam< T > & operator=(const Gaussian2DParam< T > &other)
Copy assignment (deep copy)
virtual Function< typename FunctionTraits< AutoDiff< T > >::BaseType > * cloneNonAD() const
virtual ~Gaussian2D_PS()
Destructor.
Gaussian2D_PS()
Constructs two dimensional Gaussians.
Gaussian2D_PS< AutoDiff< T > > & operator=(const Gaussian2D_PS< AutoDiff< T > > &other)
Copy assignment (deep copy)
Gaussian2D_PS(const AutoDiff< T > &height, const Vector< AutoDiff< T > > ¢er, const Vector< AutoDiff< T > > &width, const AutoDiff< T > &pa)
Gaussian2D_PS(const AutoDiff< T > &height, const AutoDiff< T > &xCenter, const AutoDiff< T > &yCenter, const AutoDiff< T > &majorAxis, const AutoDiff< T > &axialRatio, const AutoDiff< T > &pa)
Gaussian2D_PS(const Gaussian2D_PS &other)
Copy constructor (deep copy)
Gaussian2D_PS(const Gaussian2D_PS< W > &other)
virtual Function< typename FunctionTraits< AutoDiff< T > >::DiffType > * cloneAD() const
virtual Function< AutoDiff< T > > * clone() const
Return a copy of this object from the heap.
virtual AutoDiff< T > eval(typename Function< AutoDiff< T > >::FunctionArg x) const
Evaluate the Gaussian and its derivatives at x.
virtual Function< typename FunctionTraits< T >::DiffType > * cloneAD() const
virtual ~Gaussian2D()
Destructor.
Gaussian2D(const T &height, const T &xCenter, const T &yCenter, const T &majorAxis, const T &axialRatio, const T &pa)
Gaussian2D()
Constructs the two dimensional Gaussians.
Gaussian2D< T > & operator=(const Gaussian2D< T > &other)
Copy assignment (deep copy)
virtual Function< typename FunctionTraits< T >::BaseType > * cloneNonAD() const
Gaussian2D(const Gaussian2D< W > &other)
virtual Function< T > * clone() const
Return a copy of this object from the heap.
Gaussian2D(const T &height, const Vector< T > ¢er, const Vector< T > &width, const T &pa)
Gaussian2D(const Gaussian2D< T > &other)
Copy constructor (deep copy)
virtual T eval(typename Function< T >::FunctionArg x) const
Evaluate the Gaussian at x.
this file contains all the compiler specific defines
LatticeExprNode pa(const LatticeExprNode &left, const LatticeExprNode &right)
This function finds 180/pi*atan2(left,right)/2.
PtrHolder< T > & operator=(const PtrHolder< T > &other)