Error when executing TF1Convolution

Hi ! I have recently tried to use the TF1Convolution method to convolute two functions. When executing with Root version 6.08/06 on Centos 7, I get the following errors (the compilation of the macro is without errors):

Error in TUnixSystem::FindDynamicLibrary: FFTW[.so | .dll | .dylib | .sl | .dl | .a] does not exist in /usr/local/root/6.08.06/lib:/usr/lib64:/usr/local/root/6.08.06/lib/root:/usr/local/OpenScientist/16.11.8/lib:/usr/local/OpenScientist/16.11.8/bin:/usr/local/geant4.10.03.p02/lib64:/usr/local/clhep/2.3.4.3/lib:/usr/local/XercesC/3.1.2/lib:/usr/lib64:/usr/lib:/usr/local/Boost/1.61.0/lib:/usr/local/Python/3.6.3/lib:/usr/local/root/6.08.06/lib:/usr/lib64/tls/x86_64:/usr/lib64/tls:/usr/lib64/x86_64:/usr/lib64
Error in TVirtualFFT::FFT: handler not found
Error in TUnixSystem::FindDynamicLibrary: FFTW[.so | .dll | .dylib | .sl | .dl | .a] does not exist in /usr/local/root/6.08.06/lib:/usr/lib64:/usr/local/root/6.08.06/lib/root:/usr/local/OpenScientist/16.11.8/lib:/usr/local/OpenScientist/16.11.8/bin:/usr/local/geant4.10.03.p02/lib64:/usr/local/clhep/2.3.4.3/lib:/usr/local/XercesC/3.1.2/lib:/usr/lib64:/usr/lib:/usr/local/Boost/1.61.0/lib:/usr/local/Python/3.6.3/lib:/usr/local/root/6.08.06/lib:/usr/lib64/tls/x86_64:/usr/lib64/tls:/usr/lib64/x86_64:/usr/lib64
Error in TVirtualFFT::FFT: handler not found
Warning in : Cannot use FFT, probably FFTW package is not available. Switch to numerical convolution

I checked, and all the relevant fftw packages are installed on the system… What could be the cause of this error ?

What do you get when you try to:

rpm -qa|grep -i fftw
locate fftw3

Hi,

Probably, although you gave fifth in your system, ROOT was built without FFTW support.
You need to be sure you do build ROOT with

cmake . -Dfftw3=On

If came does not succeed to find fftw3, you might want to specify the exact location by setting the environment variable (before using cmake) , FFTW_DIR, FFTW_INCLUDE_DIR, FFTW_LIBRARY.
See https://root.cern.ch/building-root

Cheers

Lorenzo

Note that you do not need to build your own binaries. The ROOT team provides ready-to-use binary distributions for some systems, including “CentOS Cern 7 gcc4.8”.

Hi ! With rpm I get
fftw2-2.1.5-26.el7.x86_64
fftw2-devel-2.1.5-26.el7.x86_64
fftw-3.3.3-8.el7.x86_64
fftw2-static-2.1.5-26.el7.x86_64
fftw-libs-single-3.3.3-8.el7.x86_64
root-fftw-6.10.08-1.el7.x86_64
fftw-devel-3.3.3-8.el7.x86_64
fftw-libs-double-3.3.3-8.el7.x86_64
fftw-libs-3.3.3-8.el7.x86_64
fftw-doc-3.3.3-8.el7.noarch
fftw-libs-long-3.3.3-8.el7.x86_64
fftw-static-3.3.3-8.el7.x86_64
with locate:
/usr/include/fftw3.f
/usr/include/fftw3.f03
/usr/include/fftw3.h
/usr/include/fftw3l.f03
/usr/include/fftw3q.f03
/usr/lib64/libfftw3.a
/usr/lib64/libfftw3.so
/usr/lib64/libfftw3.so.3
/usr/lib64/libfftw3.so.3.3.2
/usr/lib64/libfftw3_omp.a
/usr/lib64/libfftw3_omp.so
/usr/lib64/libfftw3_omp.so.3
/usr/lib64/libfftw3_omp.so.3.3.2
/usr/lib64/libfftw3_threads.a
/usr/lib64/libfftw3_threads.so
/usr/lib64/libfftw3_threads.so.3
/usr/lib64/libfftw3_threads.so.3.3.2
/usr/lib64/libfftw3f.a
/usr/lib64/libfftw3f.so
/usr/lib64/libfftw3f.so.3
/usr/lib64/libfftw3f.so.3.3.2
/usr/lib64/libfftw3f_omp.a
/usr/lib64/libfftw3f_omp.so
/usr/lib64/libfftw3f_omp.so.3
/usr/lib64/libfftw3f_omp.so.3.3.2
/usr/lib64/libfftw3f_threads.a
/usr/lib64/libfftw3f_threads.so
/usr/lib64/libfftw3f_threads.so.3
/usr/lib64/libfftw3f_threads.so.3.3.2
/usr/lib64/libfftw3l.a
/usr/lib64/libfftw3l.so
/usr/lib64/libfftw3l.so.3
/usr/lib64/libfftw3l.so.3.3.2
/usr/lib64/libfftw3l_omp.a
/usr/lib64/libfftw3l_omp.so
/usr/lib64/libfftw3l_omp.so.3
/usr/lib64/libfftw3l_omp.so.3.3.2
/usr/lib64/libfftw3l_threads.a
/usr/lib64/libfftw3l_threads.so
/usr/lib64/libfftw3l_threads.so.3
/usr/lib64/libfftw3l_threads.so.3.3.2
/usr/lib64/pkgconfig/fftw3.pc
/usr/lib64/pkgconfig/fftw3f.pc
/usr/lib64/pkgconfig/fftw3l.pc
/usr/share/doc/fftw-doc-3.3.3/fftw3.pdf
/usr/share/info/fftw3.info-1.gz
/usr/share/info/fftw3.info-2.gz
/usr/share/info/fftw3.info.gz

So, from the operating system side, you’ve got everything you need.
Apparently your ROOT binaries do not provide “fftw3” link:

root-config --features | grep -i fftw
root-config --has-fftw3

The answer is “no”. I downloaded new binaries for root and now the convulution is working… Thanks for the help !

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.