IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

[FFT] Votre avis sur mon code


Sujet :

C++

  1. #1
    Débutant  
    Inscrit en
    Novembre 2006
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 073
    Points : 217
    Points
    217
    Par défaut [FFT] Votre avis sur mon code
    bonjour voici un code C++/C d'une FFT.
    Pouvez vous apporter tous les commentaires/Corrections/Améliorations que vous estimez necessaires, afin d'améliorer la syntaxe, rigeur, et vitesse de ce programme

    merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
        void  FFT(int dir,int m,double *x)
      {
         long nn,i,i1,j,k,i2,l,l1,l2,o;
         double c1,c2,tx,ty,t1,t2,u1,u2,z;
         double y[nn];
         /* Calculate the number of points */
        nn = 1<<m;
     
        for(o=0;o<nn-1;o++){
           y[o]=0;}
     
        i2 = nn >> 1;
        j = 0;
     
       for (i=0;i<nn-1;i++) {
            if (i < j) {
                tx = x[i];
                ty = y[i];
                x[i] = x[j];
                y[i] = y[j];
                x[j] = tx;
                y[j] = ty;
                }
            k = i2;
            while (k <= j) {
                j -= k;
                k >>= 1;
            }
            j += k;
            }
            c1 = -1.0;
            c2 = 0.0;
            l2 = 1;
            for (l=0;l<m;l++) {
                l1 = l2;
                l2 <<= 1;
                u1 = 1.0;
                u2 = 0.0;
                for (j=0;j<l1;j++) {
                    for (i=j;i<nn;i+=l2) {
                        i1 = i + l1;
                        t1 = u1 * x[i1] - u2 * y[i1];
                        t2 = u1 * y[i1] + u2 * x[i1];
                        x[i1] = x[i] - t1;
                        y[i1] = y[i] - t2;
                        x[i] += t1;
                        y[i] += t2;
                    }
                    z = u1 * c1 - u2 * c2;
                    u2 = u1 * c2 + u2 * c1;
                    u1 = z;
                }
            c2 = sqrt((1.0 - c1) / 2.0);
            if (dir == 1)
               c2 = -c2;
               c1 = sqrt((1.0 + c1) / 2.0);
            }
     
            for(i=0;i<pow(2,m);i++){
            cout<<x[i]<<",";}
        }

  2. #2
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    tech lead c++ linux
    Inscrit en
    Août 2004
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : tech lead c++ linux

    Informations forums :
    Inscription : Août 2004
    Messages : 4 262
    Points : 6 680
    Points
    6 680
    Billets dans le blog
    2
    Par défaut
    Bonjour.

    J'accepte de faire quelques remarques, mais c'est trés personnel, et "en gros", je n'ai pas le temps de me plonger dans ton code, désolé.

    - Ce code ressemble plus à du C qu'à du C++. M'enfin, dans ce genre de fonctions, c'est peut-être pas plus mal finalement. Mais tu obtiendras peut-être des réponses de meilleure qualité dans le forum C.

    - Le décalage de bit. Je suis contre, car ça rend le code abscons et ça n'optimise absolument pas (le compilateur s'en charge).

    Hope it helps.
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

Discussions similaires

  1. Réponses: 0
    Dernier message: 25/02/2012, 16h00
  2. Votre avis sur mon code
    Par Schopenhauer dans le forum Fortran
    Réponses: 4
    Dernier message: 04/05/2011, 15h12
  3. [XL-2003] Votre avis sur mon code en VBA ?
    Par [ZiP] dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/03/2010, 13h56
  4. Réponses: 3
    Dernier message: 01/09/2008, 14h43
  5. [Code Prof]votre avis sur un code?
    Par granquet dans le forum Réseau
    Réponses: 6
    Dernier message: 11/04/2006, 20h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo