More robust complex.hpp