• [^] # Re: Quel est l'intéret de la manoeuvre ?

    Posté par . En réponse au message Permutation "sure" de pointeurs en Fortran. Évalué à 2.

    Je modifie un tableau de grande taille de façon itérative et je ne peux pas faire la modification sur place car les données ne sont pas indépendantes. Du coup, j’ai le tableau aux itérations n et n+1 et après chaque itération, je voudrais les permuter.

    Ca me fait vaguement penser à un algorithme de tri ... J'avais oublié comment on faisait avec un langage classique :)

    mes subroutines vont dépendre d’un paramètre supplémentaire qui n’a pas véritablement de sens (ou devenir impures ce que je ne souhaite pas non plus) ;

    Ca veut dire quoi "devenir impures" ? Est-ce un concept propre à Fortran ?

    je ne peux pas réutiliser l’espace de stockage pour un usage temporaire entre mes itérations, à moins de communiquer l’indice partout, ce qui modifie tout le reste du code ou me fait gaspiller plein de mémoire.

    Ca fait plaisir de voir des développeurs qui s'occupent de l'utilisation de la mémoire à l'heure ou tout le monde s'en moque :). Par curiosité, et si ce n'est pas indiscret, pour quelle(s) raison(s) ? Contrainte mémoire réelle ou juste par principe ?

    Ceci a sûrement plus de chance de survivre à l’optimisation mais ne résout pas le problème décrit dans ma question vis-à-vis de la norme. Car si le terme de droite peut toujours être une copie dans le contexte d’une subroutine, n’importe quelle association de pointeur est dangereuse si elle est faite dans une subroutine et que le pointeur peut être utilisé ailleurs que dans une subroutine appelée depuis celle où a lieu d’assignation. Dans mon cas, ça forcerait à faire l’association dans le programme principal, ce qui va à l’encontre du découpage en subroutine pour la clarté du code.

    Ca a l'air d'être un langage assez particulier, le Fortran. En tout cas merci pour ces précisions.