/fftw

A ruby FFTW3 wrapper for operating on NMatrix d-types

Primary LanguageC

Travis CLI

Gemnasium

Install FFTW

Install on Linux (debian, fedora or opensuse compatible)

git clone http://github.com/thismagpie/fftw
cd fftw
./installer

This installs to the home directory so root access is only needed to install system required libraries but not fftw3 or the fftw gem itself.

Install on OSX

Follow the instructions on installing nmatrix

git clone http://github.com/thismagpie/fftw
cd fftw
./installer

Conventions and Style for the FFTW Gem

  • Do not repeat code.

Common names

 R       : real type, aka fftw_real
 E       : real type for local variables (possibly extra precision)
 C       : complex type
 sz      : size
 vecsz   : vector size
 is, os  : input/output stride
 ri, ii  : real/imag input (complex data)
 ro, io  : real/imag output (complex data)
 I, O    : real input/output (real data)
 A       : assert
 CK      : check
 S       : solver, defined internally to each solver file
 P       : plan, defined internally to each solver file
 k       : codelet
 X(...)  : used for mangling of external names (see below)
 K(...)  : floating-point constant, in E precision

Conventions in FFTW3

If a name is used often and must have the form fftw_foo to avoid namespace pollution, #define FOO fftw_foo and use the short name: Use foo instead.

foo is lowercase so that it does not look like a DOS program.

Exception: typedef struct foo_s {...} foo; instead of:

typedef struct foo {...} foo;

for C++ compatibility.

Donate with Pledgie