25 #ifndef vtkImageFourierFilter_h
26 #define vtkImageFourierFilter_h
29 #include "vtkImagingFourierModule.h"
41 #define vtkImageComplexEuclidSet(C, R, I) \
45 #define vtkImageComplexPolarSet(C, M, P) \
46 (C).Real = (M)*cos(P); \
49 #define vtkImageComplexPrint(C) printf("(%.3f, %.3f)", (C).Real, (C).Imag)
51 #define vtkImageComplexScale(cOut, S, cIn) \
52 (cOut).Real = (cIn).Real * (S); \
53 (cOut).Imag = (cIn).Imag * (S)
55 #define vtkImageComplexConjugate(cIn, cOut) \
56 (cOut).Imag = (cIn).Imag * -1.0; \
57 (cOut).Real = (cIn).Real
59 #define vtkImageComplexAdd(C1, C2, cOut) \
60 (cOut).Real = (C1).Real + (C2).Real; \
61 (cOut).Imag = (C1).Imag + (C2).Imag
63 #define vtkImageComplexSubtract(C1, C2, cOut) \
64 (cOut).Real = (C1).Real - (C2).Real; \
65 (cOut).Imag = (C1).Imag - (C2).Imag
67 #define vtkImageComplexMultiply(C1, C2, cOut) \
69 vtkImageComplex _vtkImageComplexMultiplyTemp; \
70 _vtkImageComplexMultiplyTemp.Real = (C1).Real * (C2).Real - (C1).Imag * (C2).Imag; \
71 _vtkImageComplexMultiplyTemp.Imag = (C1).Real * (C2).Imag + (C1).Imag * (C2).Real; \
72 cOut = _vtkImageComplexMultiplyTemp; \
76 #define vtkImageComplexExponential(cIn, cOut) \
78 double tmp = exp(cIn.Real); \
79 cOut.Real = tmp * cos(cIn.Imag); \
80 cOut.Imag = tmp * sin(cIn.Imag); \
Filters that execute axes in series.
Superclass that implements complex numbers.
void ExecuteRfft(vtkImageComplex *in, vtkImageComplex *out, int N)
This function calculates the whole fft of an array.
int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
Override to change extent splitting rules.
void ExecuteFft(vtkImageComplex *in, vtkImageComplex *out, int N)
This function calculates the whole fft of an array.
void ExecuteFftStepN(vtkImageComplex *p_in, vtkImageComplex *p_out, int N, int bsize, int n, int fb)
void ExecuteFftStep2(vtkImageComplex *p_in, vtkImageComplex *p_out, int N, int bsize, int fb)
~vtkImageFourierFilter() override
void ExecuteFftForwardBackward(vtkImageComplex *in, vtkImageComplex *out, int N, int fb)