14#include "MantidAlgorithms/DllConfig.h"
15#include "MantidHistogramData/BinEdges.h"
16#include "MantidHistogramData/Points.h"
18#include <gsl/gsl_fft_complex.h>
22namespace HistogramData {
37 const std::string
name()
const override {
return "FFT"; }
39 const std::string
summary()
const override {
return "Performs complex Fast Fourier Transform"; }
42 int version()
const override {
return 1; }
43 const std::vector<std::string>
seeAlso()
const override {
44 return {
"ExtractFFTSpectrum",
"FFTDerivative",
"MaxEnt",
"RealFFT",
"SassenaFFT",
"FFTSmooth"};
47 const std::string
category()
const override {
return "Arithmetic\\FFT"; }
51 std::map<std::string, std::string> validateInputs()
override;
58 void createUnitsLabels(
double &df);
61 void transformForward(std::vector<double> &data,
const int xSize,
const int ySize,
const int dys,
62 const bool addPositiveOnly,
const bool centerShift,
const bool isComplex,
const int iReal,
63 const int iImag,
const double df,
const double dx);
65 void transformBackward(std::vector<double> &data,
const int xSize,
const int ySize,
const int dys,
66 const bool centerShift,
const bool isComplex,
const int iReal,
const int iImag,
69 void setupTAxis(
const int nOut,
const bool addPositiveOnly);
71 bool areBinWidthsUneven(
const HistogramData::BinEdges &xBins)
const;
73 double getPhaseShift(
const HistogramData::Points &xPoints);
Base class from which all concrete algorithm classes should be derived.
Performs a Fast Fourier Transform of data.
const std::string name() const override
Algorithm's name for identification overriding a virtual method.
const std::string summary() const override
Summary of algorithms purpose.
Mantid::API::MatrixWorkspace_sptr m_outWS
gsl_fft_complex_wavetable * m_wavetable
gsl_fft_complex_workspace * m_workspace
Mantid::API::MatrixWorkspace_const_sptr m_inWS
int version() const override
Algorithm's version for identification overriding a virtual method.
const std::vector< std::string > seeAlso() const override
Function to return all of the seeAlso algorithms related to this algorithm.
Mantid::API::MatrixWorkspace_const_sptr m_inImagWS
const std::string category() const override
Algorithm's category for identification overriding a virtual method.
std::shared_ptr< const MatrixWorkspace > MatrixWorkspace_const_sptr
shared pointer to the matrix workspace base class (const version)
std::shared_ptr< MatrixWorkspace > MatrixWorkspace_sptr
shared pointer to the matrix workspace base class
Helper class which provides the Collimation Length for SANS instruments.