fftw and IDL [message #64439] |
Sun, 28 December 2008 09:41  |
leda82
Messages: 1 Registered: December 2008
|
Junior Member |
|
|
Hi everybody!
IDL's fft() is very slow to me. I tried to use fftw (http://
www.fftw.org/). I'v read
next (http://www.mpia-hd.mpg.de/~hippler/tip3_fftw_idl_6.html):
"Download the fftw package (fftw-3.1.2.tar.gz) from www.fftw.org and
configure it with ./configure the following way (this is taken from
instructions written by Henry Chapman, and found in the comp.lang.idl-
pwave newsgroup):
------------------------------------------------------------ ---------------------------
1) Create a shared, multi threaded, single precision library
./configure --enable-shared --enable-threads --enable-float
make
make install
2) Create a shared, single precision library
./configure --enable-shared --enable-float
make
make install
3) Create a shared, multi-threaded, double precision library
./configure --enable-shared --enable-threads
make
make install
4) Create a static, double precision library
./configure
make
make install
5) Build the system wide wisdom file (this took about 3 hours on my
machine)
fftw-wisdom -v -c -o wisdom
cp -p wisdom /etc/fftw
6) Get fftw.c, Makefile_fftw, and fftw.dlm and build fftw.so with:
make -f Makefile_fftw
7) Copy fftw.so and fftw.dlm to the IDL !DLM_PATH, ie:
cp -p fftw.so fftw.dlm /usr/local/rsi/idl//bin/bin.linux.x86_64
8) Before testing fftw with IDL make sure that the fftw libraries are
in the libraries search path, ie:
setenv LD_LIBRARY_PATH /usr/local/lib "
------------------------------------------------------------ ---------------------------
But when i run make -f Makefile_fftw i get:
cc -I/usr/local/itt/idl70/external/include -I/usr/local/include -
c -fPIC fftw.c -o fftw.o
fftw.c: In function 'fftwf_init':
fftw.c:187: warning: assignment makes pointer from integer without a
cast
fftw.c: In function 'fftwf_finish':
fftw.c:211: warning: assignment makes pointer from integer without a
cast
fftw.c: In function 'fftw_transform':
fftw.c:235: warning: assignment makes pointer from integer without a
cast
fftw.c: In function 'fftwf_transform':
fftw.c:248: error: 'fftwf_complex' undeclared (first use in this
function)
fftw.c:248: error: (Each undeclared identifier is reported only once
fftw.c:248: error: for each function it appears in.)
fftw.c:248: error: 'src' undeclared (first use in this function)
fftw.c:248: error: 'Fsrc' undeclared (first use in this function)
fftw.c:249: error: 'fftwf_plan' undeclared (first use in this
function)
fftw.c:249: error: expected ';' before 'plan'
fftw.c:255: error: expected expression before ')' token
fftw.c:256: error: expected expression before ')' token
fftw.c:260: error: 'plan' undeclared (first use in this function)
fftw.c: In function 'fftwrf_transform':
fftw.c:275: error: 'fftwf_complex' undeclared (first use in this
function)
fftw.c:275: error: 'Fsrc' undeclared (first use in this function)
fftw.c:276: error: 'fftwf_plan' undeclared (first use in this
function)
fftw.c:276: error: expected ';' before 'plan'
fftw.c:283: error: expected expression before ')' token
fftw.c:287: error: 'plan' undeclared (first use in this function)
fftw.c: In function 'fftwr_transform':
fftw.c:315: warning: assignment makes pointer from integer without a
cast
fftw.c: In function 'FFTW':
fftw.c:359: error: 'FFTW_PATIENT' undeclared (first use in this
function)
fftw.c:360: error: 'FFTW_EXHAUSTIVE' undeclared (first use in this
function)
What is the problem? I use Debian 2.6.18-1-686 and IDL 7.0.
Maybe there exist more easy way to speed up fft or to use fftw?
Thank you!
|
|
|