
Jaap Suter wrote:
As for implementing these types in terms of a geometric algebra? It depends. [...] if you have a clifford library in your project already anyway, you might as well use it for complex numbers, quaternions, etcetera. Otherwise, using clifford to provide these basic components is probably overkill.
Overkill for who? You only write the library once. The compiler has more work to do, but that may be affordable. The run-time cost may well be zero. As far as the client programmer is concerned, the major cost is in writing bridges and forwarding functions whenever they wish to use third party std::complex libraries in their clifford-using project. I wondered whether we can reduce that cost to zero, by telling the compiler that std::complex *is* a 2D spinor.