Many of the better-known C++ libraries in computational science such as Eigen, Trilinos, and deal.II use the standard C++ template header library object, std::complex<>
, to represent complex floating-point numbers.
In Jack Poulson's answer to a question about default constructors, he points out that he has his own implementation of std::complex
in Elemental "for a number of reasons". What are those reasons? What are the advantages and disadvantages to this approach?