Commit 91265ea8 authored by Giovanni La Mura's avatar Giovanni La Mura
Browse files

Define real() and imag() as functions to allow for overloading

parent 07136b8b
Loading
Loading
Loading
Loading
+16 −2
Original line number Diff line number Diff line
@@ -62,7 +62,21 @@ typedef __complex__ double dcomplex;
#endif // lapack_int
#endif // np_int

#define imag(z) ( __imag__ (z) )
#define real(z) ( __real__ (z) )
#define dconjg(z) ( (__real__ (z) - I * (__imag__ (z))) )

/*! \brief Get the imaginary part of double precision complex number.
 *
 * \param z: `const dcomplex &` Reference to the complex number from
 * which to extract the imaginary part.
 * \return Im(z): `double` Imaginary part of z.
 */
double inline imag(const dcomplex &z) { return __imag__ z; }

/*! \brief Get the imaginary part of double precision complex number.
 *
 * \param z: `const dcomplex &` Reference to the complex number from
 * which to extract the real part.
 * \return Re(z): `double` Real part of z.
 */
double inline real(const dcomplex &z) { return __real__ z; }
#endif