29 #ifndef LATTICES_LATTICECONVOLVER_H
30 #define LATTICES_LATTICECONVOLVER_H
33 #include <casacore/casa/aips.h>
34 #include <casacore/scimath/Mathematics/NumericTraits.h>
35 #include <casacore/lattices/Lattices/TempLattice.h>
36 #include <casacore/casa/Arrays/IPosition.h>
242 #ifndef CASACORE_NO_AUTO_TEMPLATES
243 #include <casacore/lattices/LatticeMath/LatticeConvolver.tcc>
@ LINEAR
Linear convolution.
@ CIRCULAR
Circular Convolution.
A class for doing multi-dimensional convolution.
ConvEnums::ConvType type() const
Returns the type of convolution the LatticeConvolver is currently set up to do.
IPosition shape() const
Returns the shape of the Lattices that the convolver will convolve.
TempLattice< typename NumericTraits< T >::ConjugateType > * itsXfr
ConvEnums::ConvType itsType
LatticeConvolver(const Lattice< T > &psf, Bool doFast=False)
Create a convolver that is initialised to do circular convolution with the specified point spread fun...
void linear(Lattice< T > &modelAndResult)
Perform in-place linear convolution of the model with the previously specified psf.
void linear(Lattice< T > &result, const Lattice< T > &model)
Perform linear convolution of the model with the previously specified psf.
void makeXfr(const Lattice< T > &psf)
LatticeConvolver< T > & operator=(const LatticeConvolver< T > &other)
The assignment operator also uses reference semantics.
~LatticeConvolver()
The destructor does nothing special.
IPosition psfShape() const
Returns the shape of the point spread function that the LatticeConvolver was initialised with.
void getPsf(Lattice< T > &psf) const
Return the psf currently used by this convolver.
LatticeConvolver(const LatticeConvolver< T > &other)
The copy constructor uses reference semantics.
LatticeConvolver(const Lattice< T > &psf, const IPosition &modelShape, Bool doFast=False)
Create a convolver that is initialised to do linear convolution with the specified point spread funct...
static void unpad(Lattice< T > &result, const Lattice< T > &paddedResult)
void setFastConvolve()
Set usage of fast convolve with lesser flips.
IPosition fftShape() const
Returns the shape of the FFT's that the LatticeConvolver will do when performing the convolution.
void makePsf(Lattice< T > &psf) const
LatticeConvolver()
The default constructor creates a LatticeConvolver that will convolve your data with a point spread f...
void circular(Lattice< T > &modelAndResult)
Perform in-place linear convolution of the model with the previously specified psf.
void circular(Lattice< T > &result, const Lattice< T > &model)
Perform circular convolution of the model with the previously specified psf.
void convolve(Lattice< T > &modelAndResult) const
Perform convolution on the specified model using the currently initialised convolution type (linear o...
TempLattice< T > * itsPsf
static void pad(Lattice< T > &paddedLat, const Lattice< T > &inLat)
void resize(const IPosition &modelShape, ConvEnums::ConvType type)
Resize the LatticeConvolver to do convolutions of the specified type and shape.
LatticeConvolver(const Lattice< T > &psf, const IPosition &modelShape, ConvEnums::ConvType type, Bool doFast=False)
Create a convolver that is initialised to do the specified type of convolution with the specified poi...
void convolve(Lattice< T > &result, const Lattice< T > &model) const
static IPosition calcFFTShape(const IPosition &psfShape, const IPosition &modelShape, ConvEnums::ConvType type)
this file contains all the compiler specific defines
bool Bool
Define the standard types used by Casacore.