Bonjour à tous,
J'ai un problème d'optimisation au niveau de mon programme c++ :
voici une partie de mon programme ou je pense que le problème se situe :
Dans la fonction “Loader::minOfMin_maxOfMax” si je remplace le code
mmin = min(min(c1,c2), min(c3,c4));
mmax = max(max(c1,c2), max(c3,c4));
par :
mmin = 0; float m = min(min(c1,c2), min(c3,c4));
mmax = 0 ; float n = max(max(c1,c2),min(c3,c4))) ;
Le programme devient rapide, sinon mon programme est vraiment long.
inline void Loader::minOfMin_maxOfMax(int idVertex, float theta, float phi, int
numFace, float &mmin, float &mmax)
{
float c1, c2, c3, c4;
c1 = rho(idVertex, theta, phi, numFace);
c2 = rho(idVertex, theta, phi+degPhi, numFace);
c3 = rho(idVertex, theta+degTheta, phi+degPhi, numFace);
c4 = rho(idVertex, theta+degTheta, phi, numFace);
mmin = min(min(c1,c2), min(c3,c4));
mmax = max(max(c1,c2), max(c3,c4));
}
void Loader::remplirContributionPenalite()
{
for(int F=0; F<nbrfaces; F++)
{
for(int i=0; i<(maxTheta-minTheta)/pasTheta; i++)
{
float theta = (minTheta + i*pasTheta) * PI_180;
for(int j=0; j<(maxPhi-minPhi)/pasPhi; j++)
{
float phi = (minPhi+j*pasPhi)*PI_180;
// min des min et max des max pour le vertices I
float minRho1, maxRho1, minRho2, maxRho2, minRho3, maxRho3;
minOfMin_maxOfMax(1, theta, phi, F, minRho1, maxRho1);
minOfMin_maxOfMax(2, theta, phi, F, minRho2, maxRho2);
minOfMin_maxOfMax(3, theta, phi, F, minRho3, maxRho3);
}
}
}
}
Je n'arrive pas à localiser le problème.
Merci d'avance