29 #ifndef LATTICES_LATTICECONVOLVER_H
30 #define LATTICES_LATTICECONVOLVER_H
110 template<
class T>
class LatticeConvolver
140 LatticeConvolver<T> &
operator=(
const LatticeConvolver<T> & other);
147 void linear(Lattice<T> & result,
const Lattice<T> & model);
152 void linear(Lattice<T> & modelAndResult);
156 void circular(Lattice<T> & result,
const Lattice<T> & model);
160 void circular(Lattice<T> & modelAndResult);
174 void convolve(Lattice<T> & modelAndResult)
const;
175 void convolve(Lattice<T> & result,
const Lattice<T> & model)
const;
181 void getPsf(Lattice<T> & psf)
const;
197 IPosition
shape()
const;
222 static void pad(Lattice<T> & paddedLat,
const Lattice<T> & inLat);
223 static void unpad(Lattice<T> & result,
const Lattice<T> & paddedResult);
224 void makeXfr(
const Lattice<T> & psf);
225 void makePsf(Lattice<T> & psf)
const;
226 static IPosition
calcFFTShape(
const IPosition & psfShape,
227 const IPosition & modelShape,
242 #ifndef CASACORE_NO_AUTO_TEMPLATES
243 #include <casacore/lattices/LatticeMath/LatticeConvolver.tcc>
244 #endif //# CASACORE_NO_AUTO_TEMPLATES
void makeXfr(const Lattice< T > &psf)
A Vector of integers, for indexing into Array<T> objects.
IPosition psfShape() const
Returns the shape of the point spread function that the LatticeConvolver was initialised with...
A Lattice that can be used for temporary storage.
void getPsf(Lattice< T > &psf) const
Return the psf currently used by this convolver.
~LatticeConvolver()
The destructor does nothing special.
LatticeConvolver< T > & operator=(const LatticeConvolver< T > &other)
The assignment operator also uses reference semantics.
IPosition shape() const
Returns the shape of the Lattices that the convolver will convolve.
IPosition fftShape() const
Returns the shape of the FFT's that the LatticeConvolver will do when performing the convolution...
ConvEnums::ConvType itsType
void makePsf(Lattice< T > &psf) const
static void pad(Lattice< T > &paddedLat, const Lattice< T > &inLat)
TempLattice< typename NumericTraits< T >::ConjugateType > * itsXfr
void setFastConvolve()
Set usage of fast convolve with lesser flips.
static void unpad(Lattice< T > &result, const Lattice< T > &paddedResult)
ConvEnums::ConvType type() const
Returns the type of convolution the LatticeConvolver is currently set up to do.
void linear(Lattice< T > &result, const Lattice< T > &model)
Perform linear convolution of the model with the previously specified psf.
void resize(const IPosition &modelShape, ConvEnums::ConvType type)
Resize the LatticeConvolver to do convolutions of the specified type and shape.
TempLattice< T > * itsPsf
bool Bool
Define the standard types used by Casacore.
void circular(Lattice< T > &result, const Lattice< T > &model)
Perform circular convolution of the model with the previously specified psf.
static IPosition calcFFTShape(const IPosition &psfShape, const IPosition &modelShape, ConvEnums::ConvType type)
void convolve(Lattice< T > &modelAndResult) const
Perform convolution on the specified model using the currently initialised convolution type (linear o...
LatticeConvolver()
The default constructor creates a LatticeConvolver that will convolve your data with a point spread f...
#define casacore
<X11/Intrinsic.h> #defines true, false, casacore::Bool, and String.