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
Size: 700
Language: C++
GitHub Committers
User | Most Recent Commit | # Commits |
---|
Other Committers
User | Most Recent Commit | # Commits |
---|
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.
clone https://github.com/vmarkovtsev/FFTF.git
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
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.