Question optim le truc le plus simple c'est comme variable_exterieure_a_la_boucle ne change pas pendant les boucles c'est de mette le switch case autour des boucles c'est pas ce qu'il y a de plus beau, le code et dupliqué etc ... mais c'est efficace.
ca donnerai un truc du genre :
select case(variable_exterieure_a_la_boucle)
case (0)
for i1 = 1,maxi1
for i2 = 1,maxi2
for [...]
for in = 1,maxin
instructions_generales();
instructions_zero(i1, i2, ..., in);
end
[...] end
end
end
case (1)
for i1 = 1,maxi1
for i2 = 1,maxi2
for [...]
for in = 1,maxin
instructions_generales();
instructions_un(i1, i2, ..., in);
end
[...] end
end
end
case (m)
for i1 = 1,maxi1
for i2 = 1,maxi2
for [...]
for in = 1,maxin
instructions_generales();
instructions_un(i1, i2, ..., in);
end
[...] end
end
end
Je connais pas le fortran mais il y a peut être des macro pour éviter d'écrire a chaque fois toutes les boucles et ne pas introduire de bug (surtout si tu doit toutes les modifier).
avec un peu de chance dans certain cas du case toute les boucle ne sont pas utile et tu pourra aussi gagner un peux.
Au final tu peux peu être repenser globalement ton algo pour trouver un autre façon de faire.
# sortir le case
Posté par bibitte . En réponse au message Optimisation de tests dans des boucles. Évalué à 1.
Question optim le truc le plus simple c'est comme variable_exterieure_a_la_boucle ne change pas pendant les boucles c'est de mette le switch case autour des boucles c'est pas ce qu'il y a de plus beau, le code et dupliqué etc ... mais c'est efficace.
ca donnerai un truc du genre :
Je connais pas le fortran mais il y a peut être des macro pour éviter d'écrire a chaque fois toutes les boucles et ne pas introduire de bug (surtout si tu doit toutes les modifier).
avec un peu de chance dans certain cas du case toute les boucle ne sont pas utile et tu pourra aussi gagner un peux.
Au final tu peux peu être repenser globalement ton algo pour trouver un autre façon de faire.