![]() |
Licence Creative Commons by-nc-nd
(Paternité, pas d'utilisation commerciale, pas de modification) |
FFTW est une bibliothèque écrite en C de fonctions pour calculer la transformée de Fourier discrète (DFT) en une ou plusieurs dimensions, de taille arbitraire (puissance de 2 ou non), pour des données réelles ou complexes.
Elle inclut également des routines pour la transformée en cosinus ou en sinus (DCT et DST).
Ses principaux atouts sont la performance tout en maintenant une portabilité (compilation sur toutes sortes de machines) et une flexibilité (s'adapte à des arrangements de données complexes).
FFTW peut effectuer des transformées de Fourier en parallèle, sur architecture distribuée via MPI, ou bien sur architecture à mémoire partagée via OpenMP ou pthreads.
Utilisable à partir de programmes en C ou en Fortran.
De plus, la transformée de Fourier de la bibliotheque intel (MKL) peut etre utilisée sans changer le code, car elle peut etre appellée via la meme interface que fftw.
Nous sommes plusieurs à utiliser FFTW pour les transformées de Fourier dans des codes de calcul intensif (méthodes spectrales).
C'est ce qu'il y a de plus rapide tout en restant portable (fonctionne sur des architectures intel, amd, powerpc). Sa flexibilité dans l'organisation des données et dans la taille (pas nécessairement une puissance de 2) la rend très pratique également. La précision du calcul est également optimale (double précision ou simple précision).
De plus, la transformée de Fourier de la bibliotheque intel (MKL) peut etre utilisée sans changer le code, car elle peut etre appellée via la meme interface que fftw.
Une petite difficulté existe pour porter du code utilisant une autre bibliothèque : la transformée de Fourier avec des données réelles calculée par FFTW stocke les coefficients de Fourier sous forme complexe, en nécessitant N/2+1 nombres complexes, car le fondamental k=0 est stocké sous forme complexe également.
La plupart des distributions qui se respectent.
Toutes plates-formes avec un compilateur C.
Logiciels propriétaires pour une plate-forme donnée, mais ils n'implémentent en général qu'une petite partie des fonctionnalités de FFTW (par exemple intel MKL, ...)
Développé au MIT
Une version parallèle MPI devrait voir le jour prochainement.