ls1-MarDyn
ls1-MarDyn molecular dynamics code
Public Member Functions | List of all members
optFFT_API Class Referenceabstract

#include <optFFT_API.h>

Inheritance diagram for optFFT_API:
FakedOptFFT

Public Member Functions

virtual void optimizedFFT (FFT_precision **&Real, FFT_precision **&Imag, const int size_x, const int size_y)=0
 
virtual void optimizedIFFT (FFT_precision **&Real, FFT_precision **&Imag, const int size_x, const int size_y)=0
 
virtual ~optFFT_API ()
 virtual destructor for inheritance
 

Detailed Description

API of the optimized FFT

Perform all operations in place

Member Function Documentation

◆ optimizedFFT()

virtual void optFFT_API::optimizedFFT ( FFT_precision **&  Real,
FFT_precision **&  Imag,
const int  size_x,
const int  size_y 
)
pure virtual

Perform an optimized FFT using the symmetry of the expansions

Assume that the matrices are the real and imag part of the expansion for Expansion(l,m), l is the first coordinate of the matrices The symmetry Expansion(l,-m) = (-1)^m conj(Expansion(l,m)) is valid

The resulting FFT is done on size_x,2*size_y matrices that would represent on the line i Ex(i,0),.., Ex(i,size_x), | 0, Ex(i,-size_x),.., Ex(i,-1) (the part after | is reconstruct for the FFT and doesn't appear outside of it or in the result, Ex(i,j)=0 if j<i or j>i)

The output is the first half of the reconstructed matrix since it verifies M(i,j) = conj(M(i,j+size_y)) The output is safe to use for entrywise default operation with other matrices converted with this function

Parameters
FFT_precision**& Real, real part
FFT_precision**& Imag, imag part
constint size_x, size of the first coord of the matrices
constint size_y, size of the second coord of the matrices

Implemented in FakedOptFFT.

◆ optimizedIFFT()

virtual void optFFT_API::optimizedIFFT ( FFT_precision **&  Real,
FFT_precision **&  Imag,
const int  size_x,
const int  size_y 
)
pure virtual

Inverse FFT Result is assumed to be rescaled

Take a matrix couples converted with optimizedFFT as input and assume the symmetry M(i,j) = conj(M(i,j+size_y)) on the reconstructed full matrix

Output the first half of the reconstructed matrix IFFT

Implemented in FakedOptFFT.


The documentation for this class was generated from the following file: