Bonjour à toutes et à tous,

J'ai un grand ensemble de points répartis dans un espace 3D (voire possiblement un espace en plus grandes dimensions) sous forme d'une lattice homogène comprise entre [-n, ..., n]^d
Je souhaite pouvoir indexer ces points dans un simple tableau en 1 dimension pour pouvoir les trouver sans parcourir mon tableau. Par exemple associer les coordonnées suivantes aux indexes:
{x1, y1, z1} donne idx1
{x2, y2, z2} donne idx2
{x3, y3, z3} donne idx3
etc.
Avec une précision: la lattice en 3d est centrée en {0,0,0} (donc {x1,y1,z1} = {0,0,0}).

Il me faut donc une fonction bijective de mapping qui, pour chaque point 3D, associe un index dans mon tableau. Ainsi quand je me trouve en {x1,y1,z1} je sais que dans mon tableau je peux aller chercher la valeur correspondante à l'indice 'idx1'.
Je dois réaliser cette opération un grand nombre de fois (de l'ordre de 10^13 fois au minimum, sans doute beaucoup plus).

Que me conseilleriez vous d'utiliser? je ne trouve pas de fonction de mapping.
Ma question porte vraiment pour la 3D mais s'il est possible de généraliser à 'd' dimensions avec d dans [1, n], ca m'intéresse aussi (mais c'est secondaire).

Merci
Edit: Je me suis trompé de catégorie, est-il possible de déplacer ce post dans la section C/C++ ? Merc