Bonjour,
J'ai une fonction codé en C qui permet de générer un tableau 3D. Cette fonction génère le grand pourcentage du temps de l'exécution de tout le programme.
La même fonction a été codé sous Matlab et le temps de calcul est beaucoup moins inférieur, malgré que normalement le C est plus rapide que Matlab.
Est-ce que vous pensez que normale ou bien je n’ai pas bien codé la fonction?
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
 
void matrice_F(float ***F,int M,int N, int O)
{
	   float ***Mt=alloue_tableau(vs,vs,s);
        matrice_Mt(Mt,vs,vs,s);
 
 
     float **P=alloue_mtrice(vs,vs);
     matrice_Mr(P,vs,vs);
 
 
    int i,j,k;   
       for (k = 0; k < O; k++)
 
    {
        for (i = 0; i < M; i++)
        {
			for (j = 0; j < N; j++)
             {   
 
				 if (k<dv)
                   {
		   flash[i][j][k]=0;
	               }
	             else
	               {
 
        F[i][j][k]=(2*Q)/(E*sqrt(pow(M_PI,3)*Mt[i][j][k]))*(1/(pow(R,2)+8*D*Mt[i][j][k]))*exp((-2*pow(P[i][j],2))/(pow(R,2)+8*D*Mt[i][j][k]));
 
	               }
            }
       }
   }
   	libre_tab(Mt,vs,vs);
   	libre_matrice(P);
}
Merci