Bonjour.
J'ai déjà posté plusieurs topic, mais comme je suis en train de démarrer un gros programme de calcul pour la physique je veux être certain que mes choix de départ seront les bons.
Mon code va massivement utiliser des vecteurs, des matrices, des tenseurs et certaines fonctions mathématiques. Pour tenter de rendre mon code le plus indépendant possible de librairies annexes j'avais pensé à faire la chose suivante :
Les lib externes étant par exemple boost, blitz++ etc...[lib externe 1] - \
[lib externe 2] - - -> [couche intermédiaire] -> [ mon programme ]
[lib externe 3] - /
Ce que j'appelle "couche intermédiaire" serait un ensemble de classes de base tels que "vector2" "vector3" "vector4" "vectorN" "matrix2" "matrix3" "matrix4" "matrixN" etc... utilisant les lib externes, mais permettant à mon programme de ne pas explicitement utiliser les lib externes.
Comme ça si dans un futur lointain, je dois changer de lib externe, il "suffira" de réimplémenter la couche intermédiaire et pas tout le programme.
Sauf que tout en faisant ça, je cherche à minimiser autant que faire se peut le temps à l'exécution (il faut donc éviter les surcouches inutiles durant le runtime).
Ma question est donc la suivante : quelle est la meilleure façon de faire cela (un exemple est le bienvenu) ? (note : je peux faire usage de la métaprogrammation)
Merci infiniment
Partager