# fftw_flags

choix de la méthode pour la sélection de l'algorithme de planification pour la fft

## Séquence d'appel

    [a,[S]]=fftw_flags(flag)

## Paramètres

flag

  une chaîne de caractères ou bien un entier. Sert à spécifier l'algorithme de planification. Voir ci-dessous.

a

  un entier. Code de l'algorithme de planification. Voir ci-dessous.

S

  une chaîne de caractères. Le nom de l'algorithme de planification.

## Description

Cette fonction permet la sélection de l'algorithme utilisé pour déterminer l'algorithme de planification de fftw. Le planificateur est utilisé pour déterminer un moyen efficace pour calculer la fft.

Attention: la valeur par défaut "FFTW_ESTIMATE" donne le plus souvent de bonnes performances. N'essayez d'autres choix que si la performance est cruciale et que vous avez beaucoup d'appels du même type à effectuer.

Les entrées possibles sont :

- {FFTW_ESTIMATE} ou 64. Selectionne une heuristique simple et peu couteuse pour choisir un plan (probablement sous-optimal). C'est la valeur par défaut.

- FFTW_MEASURE ou 0. Selectionne une méthode consistant a effectuer plusieurs calcul de fft avec des planifications différentes, à mesurer leur temps d'exécution et de choisir la meilleure planification. En fonction de votre machine, cela peut prendre un certain temps (souvent quelques secondes).

- FFTW_PATIENT ou 32. Similaire à "FFTW_MEASURE", mais considère un plus large éventail d'algorithmes et produit souvent un plan plus efficace (en particulier pour les transformations importantes). En revanche, le coût de la détermination du plan peut être largement supérieur (en particulier pour les transformations importantes).

- FFTW_EXHAUSTIVE ou 8. Comme "FFTW_PATIENT", mais considère une gamme encore plus large d'algorithmes, visant a trouver le plan optimal , mais avec un temps de planification sensiblement augmenté.

Remarque : Lors de l'utilisation des méthodes FFTW_MEASURE/FFTW_PATIENT/FFTW_EXHAUSTIVE la fonction fftw doit être appélée au moins deux fois. (le premier appel est pour l'initalisation, le second et les autres pour le calcul)

## Exemples

    A=rand(1, 2^9 + 2^15);
    fftw_forget_wisdom();
    fftw_flags("FFTW_ESTIMATE");
    timer(); y=fft(A); timer()//premier appel, détermine le plan
    timer(); y=fft(A); timer() //appels similaires suivants
    fftw_flags("FFTW_MEASURE");
    fftw_forget_wisdom();
    timer(); y=fft(A); timer()//premier appel, détermine le plan, prend environ 5min
    timer(); y=fft(A); timer() //appels similaires suivants

## Voir aussi

- fft
- set_fftw_wisdom
- get_fftw_wisdom
- fftw_forget_wisdom