Lapack++
Public Types
la::complex< _Tp > Class Template Reference

Complex data type that can be used from the application. More...

List of all members.

Public Types

typedef _Tp value_type

Functions for Lapack++ complex number type

 complex (const _Tp &=_Tp(), const _Tp &=_Tp())
template<typename _Up >
 complex (const complex< _Up > &)
 complex (const std::complex< _Tp > &)
_Tp real () const
_Tp imag () const
complex< _Tp > & operator= (const _Tp &)
complex< _Tp > & operator+= (const _Tp &)
complex< _Tp > & operator-= (const _Tp &)
complex< _Tp > & operator*= (const _Tp &)
complex< _Tp > & operator/= (const _Tp &)
template<typename _Up >
complex< _Tp > & operator= (const complex< _Up > &)
template<typename _Up >
complex< _Tp > & operator+= (const complex< _Up > &)
template<typename _Up >
complex< _Tp > & operator-= (const complex< _Up > &)
template<typename _Up >
complex< _Tp > & operator*= (const complex< _Up > &)
template<typename _Up >
complex< _Tp > & operator/= (const complex< _Up > &)
 complex (COMPLEX)
 operator COMPLEX () const
COMPLEX toCOMPLEX () const
 operator std::complex< _Tp > () const

Detailed Description

template<typename _Tp>
class la::complex< _Tp >

Complex data type that can be used from the application.

This type is used for passing scalars in and out of LAPACK++. It is a copy of the std::complex<double> and it includes automatic conversion from and to std::complex<double>. Additionally it includes automatic conversion from and to the internal FORTRAN type COMPLEX, which is why this class is needed to pass complex values into Lapack++.

Again: If you get errors when passing a std::complex<double> into Lapack++, then you first need to convert your std::complex<double> into this LaComplex value.


Member Typedef Documentation

template<typename _Tp>
typedef _Tp la::complex< _Tp >::value_type

Constructor & Destructor Documentation

template<typename _Tp >
la::complex< _Tp >::complex ( const _Tp &  __r = _Tp(),
const _Tp &  __i = _Tp() 
) [inline]
template<typename _Tp >
template<typename _Up >
la::complex< _Tp >::complex ( const complex< _Up > &  __z) [inline]
template<typename _Tp >
la::complex< _Tp >::complex ( const std::complex< _Tp > &  __z) [inline]
template<typename _Tp >
la::complex< _Tp >::complex ( COMPLEX  c) [inline]

Member Function Documentation

template<typename _Tp >
_Tp la::complex< _Tp >::real ( ) const [inline]
template<typename _Tp >
_Tp la::complex< _Tp >::imag ( ) const [inline]
template<typename _Tp >
complex< _Tp > & la::complex< _Tp >::operator= ( const _Tp &  __t)
template<typename _Tp >
complex< _Tp > & la::complex< _Tp >::operator+= ( const _Tp &  __t) [inline]
template<typename _Tp >
complex< _Tp > & la::complex< _Tp >::operator-= ( const _Tp &  __t) [inline]
template<typename _Tp >
complex< _Tp > & la::complex< _Tp >::operator*= ( const _Tp &  __t)
template<typename _Tp >
complex< _Tp > & la::complex< _Tp >::operator/= ( const _Tp &  __t)
template<typename _Tp >
template<typename _Up >
complex< _Tp > & la::complex< _Tp >::operator= ( const complex< _Up > &  __z)
template<typename _Tp >
template<typename _Up >
complex< _Tp > & la::complex< _Tp >::operator+= ( const complex< _Up > &  __z)
template<typename _Tp >
template<typename _Up >
complex< _Tp > & la::complex< _Tp >::operator-= ( const complex< _Up > &  __z)
template<typename _Tp >
template<typename _Up >
complex< _Tp > & la::complex< _Tp >::operator*= ( const complex< _Up > &  __z)
template<typename _Tp >
template<typename _Up >
complex< _Tp > & la::complex< _Tp >::operator/= ( const complex< _Up > &  __z)
template<typename _Tp >
la::complex< _Tp >::operator COMPLEX ( ) const [inline]
template<typename _Tp >
COMPLEX la::complex< _Tp >::toCOMPLEX ( ) const [inline]
template<typename _Tp >
la::complex< _Tp >::operator std::complex< _Tp > ( ) const [inline]

References la::imag(), and la::real().