Fourier library: Operations in the Fourier domain
fftwaff.h File Reference

use fftw together with aff containers (prototypes) More...

#include <complex>
#include <fftw3.h>
#include <aff/series.h>
Include dependency graph for fftwaff.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  fourier::fft::DRFFTWAFF
 

Namespaces

 fourier
 
 fourier::fft
 

Macros

#define TF_FFTWAFF_H_VERSION   "TF_FFTWAFF_H V1.3"
 

Detailed Description

use fftw together with aff containers (prototypes)


Author
Thomas Forbriger
Date
11/07/2006

use fftw together with aff containers (prototypes)

link with -lrfftw -lfftw -lm -laff


libfourier is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software

Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

Copyright (c) 2006 by Thomas Forbriger (BFO Schiltach)

REVISIONS and CHANGES

  • 11/07/2006 V1.0 Thomas Forbriger
  • 12/09/2007 V1.1 first running version
  • 07/10/2010 V1.2
    - migrate to FFTW3:
    • use different fftw header file (fftw3.h)
    • type of FFTW plan has changed
  • 02/10/2012 V1.3
    - provide size calculation functions

Migration to FFTW3:

  • The location of the arrays in memory are part of the plan. Consequently we have to either create a new plan for each transform or to allocate the working array together with the plan and keep it available in the background. The solution of choice is to keep arrays. We will introduce a control parameter to the arguments of the constructor which optionally allows to get rid of the arrays after each transformation.
  • FFTW3 uses wisdom by default.
    void fftw_forget_wisdom(void);
    should be called by the destructor of the class. Alternatively
    void fftw_cleanup(void);
    could be called which apparently is even more rigorous. Plans, however, must be destroyed prior to calling fftw_cleanup.
  • The FFTW documentation states: To the extent that this is true, if you have a variable
    complex<double> *x,
    you can pass it directly to FFTW via
    reinterpret_cast<fftw_complex*>(x).

Definition in file fftwaff.h.