• # sortir le case

    Posté par . 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 :

     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.