TBCI Numerical high perf. C++ Library 2.8.0
CPLX__ Namespace Reference

Detailed Description

Now, namespace issues play an important role and are likely to screw us up:

  • We want to provide transparent support for different types, such as double, TBCI::cplx<>, std::complex<>
  • Therefore the functions acting on this types should be defined in the same namespace, otherwise the template won't work in general
  • We can either accept the namespaces the functions are defined in according to the standards (like std::fabs(double), std::conj(std::complex<double>), or reexport them to our own namespace.
  • The latter option has the disadvantage of tieing code to our library. It needs to be converted.
  • So, we'll export our functions to the namespaces of the ANSI standard.
  • Compiler and library bugs (incomplete namespace support) make a mess out of any concept.
  • We use CSTD__/MATH__ (for the libc functions that should live in the std:: namespace), STD__ (for C++ functions that should be in std::), CPLX__ (for the complex class in std::) and TBCI__ (for our own extensions)