La plupart des bibliothèques C ++ les plus connues en science informatique telles que Eigen , Trilinos et deal.II utilisent l'objet de bibliothèque d'en-tête de modèle C ++ standard std::complex<>, pour représenter des nombres à virgule flottante complexes.
Dans la réponse de Jack Poulson à une question sur les constructeurs par défaut, il souligne qu'il a sa propre implémentation std::complexdans Elemental "pour un certain nombre de raisons". Quelles sont ces raisons? Quels sont les avantages et les inconvénients de cette approche?
zest une expression lvalue de type cvstd::complex<T>alorsreinterpret_cast<cv T(&)[2]>(z)etreinterpret_cast<cv T(&)[2]>(z)[0]doit désigner la partie réelle dez, etreinterpret_cast<cv T(&)[2]>(z)[1]doit désigner la partie imaginaire dez. Des tableaux de nombres complexes sont également traités.