A ruby FFTW3 wrapper for operating on NMatrix d-types
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
ext/fftw
lib
spec
.gitignore
.rspec
.travis.yml
ChangeLog
Gemfile
Gemfile.lock
MANUAL.md
Manifest
README.md
README.rdoc
Rakefile
fftw.gemspec
install.sh

README.md

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