C > Translation de matrice N

TitreTranslation de matrice N
Postée le19-10-2008
Affichée611
Mini-lien
Description

avec mesure du temps de calcul

EtatNe contient pas d'erreurs. Ne contient pas d'erreurs.
Code d'insertion
Options
Afficher les numéros de lignes  Mettre la source en plein ecran  Selectionner la source  Partager sur Facebook 
Téléchargement Telecharger en format txt  Telecharger en format pdf  Telecharger en format c
Plein ecran
int main(int argc, int** argv)
{

        if(argc != 2)
        {
                printf("Il ne faut pas oublier de donner la taille N du tableau\n");
                return 0;
        }

        double t1, t2, dt1, t3, t4, dt2, dt1moy, dt2moy;
        int N;
        int k, l, i, j,m;

        int** X;
        int** Y;
        N = atoi(argv[1]);
        X = (int**)malloc(N*sizeof(int));
        Y = (int**)malloc(N*sizeof(int));
        for(k=0; k<N; k++){
                X[k] = (int*)malloc(N*sizeof(int));
                Y[k] = (int*)malloc(N*sizeof(int));
        }
        for(k=0; k<N; k++){
                for(l=0; l<N; l++){
                        X[k][l]=10;
                }
        }

       
        for(m=0; m<6; m++)
        {
                t1 = dtime();
                for(i=0; i<N; i++)
                {
                        for(j=0; j<N; j++)
                        {
                                Y[i][j] = X[i][j];
                        }
                }
                t2 = dtime();
                t3 = dtime();
                for(j=0; j<N; j++)
                {
                        for(i=0; i<N; i++)
                        {
                                Y[i][j] = X[i][j];
                        }
                }
       
                t4 = dtime();
                dt1 = t2-t1;
                dt2 = t4-t3;

                for(k=0; k<N; k++){
                        for(l=0; l<N; l++){
                                X[k][l] = X[k][l] + X[k][l];
                        }
                }
                dt1moy = dt1 + dt1moy;
                dt2moy = dt2 + dt2moy;
                //printf("\n");
        }
        dt1moy = dt1moy/6;
        dt2moy = dt2moy/6;
        printf("dt1moy : %f , ", dt1moy/(N*N));
        printf("dt2moy : %f\n", dt2moy/(N*N));
        return 0;
}