29 #ifndef SCIMATH_CONVOLVER_H
30 #define SCIMATH_CONVOLVER_H
32 #include <casacore/casa/aips.h>
33 #include <casacore/casa/Arrays/Array.h>
34 #include <casacore/casa/BasicSL/Complex.h>
35 #include <casacore/scimath/Mathematics/FFTServer.h>
36 #include <casacore/casa/Arrays/IPosition.h>
37 #include <casacore/scimath/Mathematics/NumericTraits.h>
42 template <
class FType>
class Convolver;
329 #ifndef CASACORE_NO_AUTO_TEMPLATES
330 #include <casacore/scimath/Mathematics/Convolver.tcc>
void setFastConvolve()
Set to use convolution with lesser flips.
void setPsf(const Array< FType > &psf, Bool cachePsf=False)
Set the transfer function for future convolutions to psf.
void makePsf(Array< FType > &psf)
FFTServer< FType, typename NumericTraits< FType >::ConjugateType > theIFFT
Convolver(const Array< FType > &psf, Bool cachePsf=False)
Create the cached Transfer function assuming that circular convolution will be done.
const Array< FType > getPsf(Bool cachePsf=True)
Get the psf currently used by this convolver.
void linearConv(Array< FType > &result, const Array< FType > &model, Bool fullSize=False)
Perform linear convolution of the model with the previously specified psf.
void circularConv(Array< FType > &result, const Array< FType > &model)
Perform circular convolution of the model with the previously specified psf.
void makeXfr(const Array< FType > &psf, const IPosition &imageSize, Bool linear, Bool fullSize)
Convolver(const Convolver< FType > &other)
The copy constructor and the assignment operator make copies (and not references) of all the internal...
void resizeXfr(const IPosition &imageShape, Bool linear, Bool fullSize)
IPosition extractShape(IPosition &psfSize, const IPosition &imageSize)
~Convolver()
The destructor does nothing!
IPosition defaultShape(const Array< FType > &psf)
Convolver()
When using the default constructor the psf MUST be specified using the setPsf function prior to doing...
void setPsf(const Array< FType > &psf, IPosition imageShape, Bool fullSize=False, Bool cachePsf=False)
Set the transfer function for future convolutions to psf.
FFTServer< FType, typename NumericTraits< FType >::ConjugateType > theFFT
Array< typename NumericTraits< FType >::ConjugateType > theXfr
Convolver(const Array< FType > &psf, const IPosition &imageSize, Bool fullSize=False, Bool cachePsf=False)
Create the cached Transfer function assuming that linear convolution with an array of size imageSize ...
void doConvolution(Array< FType > &result, const Array< FType > &model, Bool fullSize)
Convolver< FType > & operator=(const Convolver< FType > &other)
A class with methods for Fast Fourier Transforms.
this file contains all the compiler specific defines
Convolver< Double > DoubleConvolver
bool Bool
Define the standard types used by Casacore.
Convolver< Float > FloatConvolver
Typedefs.