Samsung/FFTF

Name: FFTF

Owner: Samsung

Description: Fast Fourier Transform Frontend

Created: 2014-03-25 06:47:12.0

Updated: 2017-08-08 19:00:08.0

Pushed: 2013-12-11 12:33:12.0

Homepage:

Size: 700

Language: C++

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

Fast Fourier Transform Frontend

This library puts various Fast Fourier Transform implementations (built-in and third party) under a single interface. Supported backends are:

Refer to Doxygen documentation for details. FFTF uses SEAPT build system, so is compiled on UNIX systems only.

Installation
Getting the source
clone https://github.com/vmarkovtsev/FFTF.git
Compiling

The following commands will install FFTF to /opt:

togen.sh build --enable-gpl --enable-opencl --enable-cuda --prefix=/opt
uild && make -j$(getconf _NPROCESSORS_ONLN)
 make install
Example
lude <assert.h>  // for assert()
lude <fftf/api.h>
lude <stdlib.h>  // for atexit()

can for libraries
Backendbackends = fftf_available_backends(NULL, NULL);

heck if FFTW3 was successfully loaded
rt(backends[FFTF_BACKEND_FFTW3].path != NULL);

ive it maximal priority
_set_backend_priority(FFTF_BACKEND_FFTW3,
                      BACKEND_MAX_INITIAL_PRIORITY + 1);

ote: the alternative way to use that backend is just
rt(fftf_set_backend(FFTF_BACKEND_FFTW3) == FFTF_SET_BACKEND_SUCCESS);
ithout even scanning for available backends

chedule the FFTF resources cleanup
it(fftf_cleanup);

ransform N complex numbers
t int N = 2048;
tin = fftf_malloc(N2sizeof(float));
_with_numbers(in, N);

repare the space for the result
tout = fftf_malloc(N2sizeof(float));

btain the calculation plan (instance)
Instance instance = fftf_init(FFTF_TYPE_COMPLEX, FFTF_DIRECTION_FORWARD,
                             FFTF_DIMENSION_1D, N, FFTF_NO_OPTIONS,
                             in, out);

alculate the forward 1-dimensional complex FFT
_calc(instance);

ree the plan
_destroy(instance);

ree in and out arrays
_free(in);
_free(out);

FFTF is released under the Simplified BSD License. If FFTW3 backend is configured, FFTF automatically becomes GPL. Copyright 2013 Samsung R&D Institute Russia.


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.