added support for complex double and complex long double