Boost.uBlas 1.49
Linear Algebra in C++: matrices, vectors and numeric algorithms

boost::numeric::ublas::hermitian_adaptor< M, TRI > Class Template Reference

A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression. More...

#include <hermitian.hpp>

Inheritance diagram for boost::numeric::ublas::hermitian_adaptor< M, TRI >:
Collaboration diagram for boost::numeric::ublas::hermitian_adaptor< M, TRI >:

List of all members.

Classes

class  const_iterator1
class  const_iterator2
class  iterator1
class  iterator2

Public Types

typedef self_type closure_type
typedef const self_type const_closure_type
typedef const M const_matrix_type
typedef M::value_type const_reference
typedef reverse_iterator_base1
< const_iterator1
const_reverse_iterator1
typedef reverse_iterator_base2
< const_iterator2
const_reverse_iterator2
typedef M::difference_type difference_type
typedef hermitian_adaptor< M, TRI > expression_type
typedef boost::mpl::if_
< boost::is_const< M >
, typename
M::const_closure_type,
typename M::closure_type >
::type 
matrix_closure_type
typedef M matrix_type
typedef M::orientation_category orientation_category
typedef boost::mpl::if_
< boost::is_const< M >
, typename M::value_type,
typename M::reference >::type 
reference
typedef reverse_iterator_base1
< iterator1
reverse_iterator1
typedef reverse_iterator_base2
< iterator2
reverse_iterator2
typedef M::size_type size_type
typedef
storage_restrict_traits
< typename M::storage_category,
packed_proxy_tag >
::storage_category 
storage_category
typedef TRI triangular_type
typedef matrix_tag type_category
typedef M::value_type value_type

Public Member Functions

BOOST_UBLAS_INLINE hermitian_adaptor (matrix_type &data)
BOOST_UBLAS_INLINE hermitian_adaptor (const hermitian_adaptor &m)
template<class AE >
BOOST_UBLAS_INLINE
hermitian_adaptor
assign (const matrix_expression< AE > &ae)
BOOST_UBLAS_INLINE
hermitian_adaptor
assign_temporary (hermitian_adaptor &m)
BOOST_UBLAS_INLINE const_iterator1 begin1 () const
BOOST_UBLAS_INLINE iterator1 begin1 ()
BOOST_UBLAS_INLINE iterator2 begin2 ()
BOOST_UBLAS_INLINE const_iterator2 begin2 () const
BOOST_UBLAS_INLINE const
matrix_closure_type
data () const
BOOST_UBLAS_INLINE
matrix_closure_type
data ()
BOOST_UBLAS_INLINE const_iterator1 end1 () const
BOOST_UBLAS_INLINE iterator1 end1 ()
BOOST_UBLAS_INLINE iterator2 end2 ()
BOOST_UBLAS_INLINE const_iterator2 end2 () const
BOOST_UBLAS_INLINE const_iterator1 find1 (int rank, size_type i, size_type j) const
BOOST_UBLAS_INLINE iterator1 find1 (int rank, size_type i, size_type j)
BOOST_UBLAS_INLINE const_iterator2 find2 (int rank, size_type i, size_type j) const
BOOST_UBLAS_INLINE iterator2 find2 (int rank, size_type i, size_type j)
BOOST_UBLAS_INLINE true_reference insert_element (size_type i, size_type j, value_type t)
template<class AE >
BOOST_UBLAS_INLINE
hermitian_adaptor
minus_assign (const matrix_expression< AE > &ae)
BOOST_UBLAS_INLINE reference operator() (size_type i, size_type j)
BOOST_UBLAS_INLINE const
expression_type
operator() () const
BOOST_UBLAS_INLINE
expression_type
operator() ()
BOOST_UBLAS_INLINE const_reference operator() (size_type i, size_type j) const
template<class AT >
BOOST_UBLAS_INLINE
hermitian_adaptor
operator*= (const AT &at)
template<class AE >
BOOST_UBLAS_INLINE
hermitian_adaptor
operator+= (const matrix_expression< AE > &ae)
template<class AE >
BOOST_UBLAS_INLINE
hermitian_adaptor
operator-= (const matrix_expression< AE > &ae)
template<class AT >
BOOST_UBLAS_INLINE
hermitian_adaptor
operator/= (const AT &at)
BOOST_UBLAS_INLINE
hermitian_adaptor
operator= (const hermitian_adaptor &m)
template<class AE >
BOOST_UBLAS_INLINE
hermitian_adaptor
operator= (const matrix_expression< AE > &ae)
template<class AE >
BOOST_UBLAS_INLINE
hermitian_adaptor
plus_assign (const matrix_expression< AE > &ae)
BOOST_UBLAS_INLINE
reverse_iterator1 
rbegin1 ()
BOOST_UBLAS_INLINE
const_reverse_iterator1 
rbegin1 () const
BOOST_UBLAS_INLINE
reverse_iterator2 
rbegin2 ()
BOOST_UBLAS_INLINE
const_reverse_iterator2 
rbegin2 () const
BOOST_UBLAS_INLINE
const_reverse_iterator1 
rend1 () const
BOOST_UBLAS_INLINE
reverse_iterator1 
rend1 ()
BOOST_UBLAS_INLINE
reverse_iterator2 
rend2 ()
BOOST_UBLAS_INLINE
const_reverse_iterator2 
rend2 () const
BOOST_UBLAS_INLINE bool same_closure (const hermitian_adaptor &ha) const
BOOST_UBLAS_INLINE size_type size1 () const
BOOST_UBLAS_INLINE size_type size2 () const
BOOST_UBLAS_INLINE void swap (hermitian_adaptor &m)

Static Public Attributes

static const unsigned complexity

Private Types

typedef M::const_iterator1 const_subiterator1_type
typedef M::const_iterator2 const_subiterator2_type
typedef hermitian_adaptor< M, TRI > self_type
typedef boost::mpl::if_
< boost::is_const< M >
, typename M::const_iterator1,
typename M::iterator1 >::type 
subiterator1_type
typedef boost::mpl::if_
< boost::is_const< M >
, typename M::const_iterator2,
typename M::iterator2 >::type 
subiterator2_type
typedef M::value_type & true_reference

Private Attributes

matrix_closure_type data_

Static Private Attributes

static value_type conj_

Friends

BOOST_UBLAS_INLINE friend void swap (hermitian_adaptor &m1, hermitian_adaptor &m2)

Detailed Description

template<class M, class TRI>
class boost::numeric::ublas::hermitian_adaptor< M, TRI >

A Hermitian matrix adaptator: convert a any matrix into a Hermitian matrix expression.

For a $(m\times n)$-dimensional matrix, the hermitian_adaptor will provide a hermitian matrix. Storage and location are based on those of the underlying matrix. This is important because a hermitian_adaptor does not copy the matrix data to a new place. Therefore, modifying values in a hermitian_adaptor matrix will also modify the underlying matrix too.

Template Parameters:
Mthe type of matrix used to generate a hermitian matrix

Definition at line 1156 of file hermitian.hpp.


Member Typedef Documentation

template<class M, class TRI>
typedef hermitian_adaptor<M, TRI> boost::numeric::ublas::hermitian_adaptor< M, TRI >::self_type [private]
template<class M, class TRI>
typedef M::value_type& boost::numeric::ublas::hermitian_adaptor< M, TRI >::true_reference [private]

Definition at line 1160 of file hermitian.hpp.

template<class M, class TRI>
typedef const M boost::numeric::ublas::hermitian_adaptor< M, TRI >::const_matrix_type

Definition at line 1165 of file hermitian.hpp.

template<class M, class TRI>
typedef M boost::numeric::ublas::hermitian_adaptor< M, TRI >::matrix_type

Definition at line 1166 of file hermitian.hpp.

template<class M, class TRI>
typedef TRI boost::numeric::ublas::hermitian_adaptor< M, TRI >::triangular_type

Definition at line 1167 of file hermitian.hpp.

template<class M, class TRI>
typedef M::size_type boost::numeric::ublas::hermitian_adaptor< M, TRI >::size_type

Definition at line 1168 of file hermitian.hpp.

template<class M, class TRI>
typedef M::difference_type boost::numeric::ublas::hermitian_adaptor< M, TRI >::difference_type

Definition at line 1169 of file hermitian.hpp.

template<class M, class TRI>
typedef M::value_type boost::numeric::ublas::hermitian_adaptor< M, TRI >::value_type

Definition at line 1170 of file hermitian.hpp.

template<class M, class TRI>
typedef M::value_type boost::numeric::ublas::hermitian_adaptor< M, TRI >::const_reference

Definition at line 1171 of file hermitian.hpp.

template<class M, class TRI>
typedef boost::mpl::if_<boost::is_const<M>, typename M::value_type, typename M::reference>::type boost::numeric::ublas::hermitian_adaptor< M, TRI >::reference

Definition at line 1175 of file hermitian.hpp.

template<class M, class TRI>
typedef boost::mpl::if_<boost::is_const<M>, typename M::const_closure_type, typename M::closure_type>::type boost::numeric::ublas::hermitian_adaptor< M, TRI >::matrix_closure_type

Definition at line 1183 of file hermitian.hpp.

template<class M, class TRI>
typedef const self_type boost::numeric::ublas::hermitian_adaptor< M, TRI >::const_closure_type

Definition at line 1184 of file hermitian.hpp.

template<class M, class TRI>
typedef self_type boost::numeric::ublas::hermitian_adaptor< M, TRI >::closure_type

Definition at line 1185 of file hermitian.hpp.

template<class M, class TRI>
typedef storage_restrict_traits<typename M::storage_category, packed_proxy_tag>::storage_category boost::numeric::ublas::hermitian_adaptor< M, TRI >::storage_category

Definition at line 1190 of file hermitian.hpp.

template<class M, class TRI>
typedef M::orientation_category boost::numeric::ublas::hermitian_adaptor< M, TRI >::orientation_category

Definition at line 1191 of file hermitian.hpp.

template<class M, class TRI>
typedef M::const_iterator1 boost::numeric::ublas::hermitian_adaptor< M, TRI >::const_subiterator1_type [private]

Definition at line 1392 of file hermitian.hpp.

template<class M, class TRI>
typedef boost::mpl::if_<boost::is_const<M>, typename M::const_iterator1, typename M::iterator1>::type boost::numeric::ublas::hermitian_adaptor< M, TRI >::subiterator1_type [private]

Definition at line 1395 of file hermitian.hpp.

template<class M, class TRI>
typedef M::const_iterator2 boost::numeric::ublas::hermitian_adaptor< M, TRI >::const_subiterator2_type [private]

Definition at line 1396 of file hermitian.hpp.

template<class M, class TRI>
typedef boost::mpl::if_<boost::is_const<M>, typename M::const_iterator2, typename M::iterator2>::type boost::numeric::ublas::hermitian_adaptor< M, TRI >::subiterator2_type [private]

Definition at line 1399 of file hermitian.hpp.

Definition at line 1411 of file hermitian.hpp.

Definition at line 1414 of file hermitian.hpp.

Definition at line 1415 of file hermitian.hpp.

Definition at line 1416 of file hermitian.hpp.

Definition at line 314 of file expression_types.hpp.


Constructor & Destructor Documentation

template<class M, class TRI>
BOOST_UBLAS_INLINE boost::numeric::ublas::hermitian_adaptor< M, TRI >::hermitian_adaptor ( matrix_type data) [inline]

Definition at line 1195 of file hermitian.hpp.

template<class M, class TRI>
BOOST_UBLAS_INLINE boost::numeric::ublas::hermitian_adaptor< M, TRI >::hermitian_adaptor ( const hermitian_adaptor< M, TRI > &  m) [inline]

Definition at line 1201 of file hermitian.hpp.


Member Function Documentation

template<class M, class TRI>
BOOST_UBLAS_INLINE size_type boost::numeric::ublas::hermitian_adaptor< M, TRI >::size1 ( ) const [inline]

Definition at line 1209 of file hermitian.hpp.

template<class M, class TRI>
BOOST_UBLAS_INLINE size_type boost::numeric::ublas::hermitian_adaptor< M, TRI >::size2 ( ) const [inline]

Definition at line 1213 of file hermitian.hpp.

template<class M, class TRI>
BOOST_UBLAS_INLINE const matrix_closure_type& boost::numeric::ublas::hermitian_adaptor< M, TRI >::data ( ) const [inline]

Definition at line 1219 of file hermitian.hpp.

template<class M, class TRI>
BOOST_UBLAS_INLINE matrix_closure_type& boost::numeric::ublas::hermitian_adaptor< M, TRI >::data ( ) [inline]

Definition at line 1223 of file hermitian.hpp.

template<class M, class TRI>
BOOST_UBLAS_INLINE const_reference boost::numeric::ublas::hermitian_adaptor< M, TRI >::operator() ( size_type  i,
size_type  j 
) const [inline]

Definition at line 1230 of file hermitian.hpp.

template<class M, class TRI>
BOOST_UBLAS_INLINE reference boost::numeric::ublas::hermitian_adaptor< M, TRI >::operator() ( size_type  i,
size_type  j 
) [inline]

Definition at line 1242 of file hermitian.hpp.

template<class M, class TRI>
BOOST_UBLAS_INLINE true_reference boost::numeric::ublas::hermitian_adaptor< M, TRI >::insert_element ( size_type  i,
size_type  j,
value_type  t 
) [inline]

Definition at line 1260 of file hermitian.hpp.

template<class M, class TRI>
BOOST_UBLAS_INLINE hermitian_adaptor& boost::numeric::ublas::hermitian_adaptor< M, TRI >::operator= ( const hermitian_adaptor< M, TRI > &  m) [inline]

Definition at line 1306 of file hermitian.hpp.

template<class M, class TRI>
BOOST_UBLAS_INLINE hermitian_adaptor& boost::numeric::ublas::hermitian_adaptor< M, TRI >::assign_temporary ( hermitian_adaptor< M, TRI > &  m) [inline]

Definition at line 1311 of file hermitian.hpp.

template<class M, class TRI>
template<class AE >
BOOST_UBLAS_INLINE hermitian_adaptor& boost::numeric::ublas::hermitian_adaptor< M, TRI >::operator= ( const matrix_expression< AE > &  ae) [inline]

Definition at line 1317 of file hermitian.hpp.

template<class M, class TRI>
template<class AE >
BOOST_UBLAS_INLINE hermitian_adaptor& boost::numeric::ublas::hermitian_adaptor< M, TRI >::assign ( const matrix_expression< AE > &  ae) [inline]

Definition at line 1323 of file hermitian.hpp.

template<class M, class TRI>
template<class AE >
BOOST_UBLAS_INLINE hermitian_adaptor& boost::numeric::ublas::hermitian_adaptor< M, TRI >::operator+= ( const matrix_expression< AE > &  ae) [inline]

Definition at line 1329 of file hermitian.hpp.

template<class M, class TRI>
template<class AE >
BOOST_UBLAS_INLINE hermitian_adaptor& boost::numeric::ublas::hermitian_adaptor< M, TRI >::plus_assign ( const matrix_expression< AE > &  ae) [inline]

Definition at line 1335 of file hermitian.hpp.

template<class M, class TRI>
template<class AE >
BOOST_UBLAS_INLINE hermitian_adaptor& boost::numeric::ublas::hermitian_adaptor< M, TRI >::operator-= ( const matrix_expression< AE > &  ae) [inline]

Definition at line 1341 of file hermitian.hpp.

template<class M, class TRI>
template<class AE >
BOOST_UBLAS_INLINE hermitian_adaptor& boost::numeric::ublas::hermitian_adaptor< M, TRI >::minus_assign ( const matrix_expression< AE > &  ae) [inline]

Definition at line 1347 of file hermitian.hpp.

template<class M, class TRI>
template<class AT >
BOOST_UBLAS_INLINE hermitian_adaptor& boost::numeric::ublas::hermitian_adaptor< M, TRI >::operator*= ( const AT &  at) [inline]

Definition at line 1353 of file hermitian.hpp.

template<class M, class TRI>
template<class AT >
BOOST_UBLAS_INLINE hermitian_adaptor& boost::numeric::ublas::hermitian_adaptor< M, TRI >::operator/= ( const AT &  at) [inline]

Definition at line 1363 of file hermitian.hpp.

template<class M, class TRI>
BOOST_UBLAS_INLINE bool boost::numeric::ublas::hermitian_adaptor< M, TRI >::same_closure ( const hermitian_adaptor< M, TRI > &  ha) const [inline]

Definition at line 1374 of file hermitian.hpp.

template<class M, class TRI>
BOOST_UBLAS_INLINE void boost::numeric::ublas::hermitian_adaptor< M, TRI >::swap ( hermitian_adaptor< M, TRI > &  m) [inline]

Definition at line 1380 of file hermitian.hpp.

template<class M, class TRI>
BOOST_UBLAS_INLINE const_iterator1 boost::numeric::ublas::hermitian_adaptor< M, TRI >::find1 ( int  rank,
size_type  i,
size_type  j 
) const [inline]

Definition at line 1420 of file hermitian.hpp.

template<class M, class TRI>
BOOST_UBLAS_INLINE iterator1 boost::numeric::ublas::hermitian_adaptor< M, TRI >::find1 ( int  rank,
size_type  i,
size_type  j 
) [inline]

Definition at line 1444 of file hermitian.hpp.

template<class M, class TRI>
BOOST_UBLAS_INLINE const_iterator2 boost::numeric::ublas::hermitian_adaptor< M, TRI >::find2 ( int  rank,
size_type  i,
size_type  j 
) const [inline]

Definition at line 1452 of file hermitian.hpp.

template<class M, class TRI>
BOOST_UBLAS_INLINE iterator2 boost::numeric::ublas::hermitian_adaptor< M, TRI >::find2 ( int  rank,
size_type  i,
size_type  j 
) [inline]

Definition at line 1476 of file hermitian.hpp.

template<class M, class TRI>
BOOST_UBLAS_INLINE const_iterator1 boost::numeric::ublas::hermitian_adaptor< M, TRI >::begin1 ( ) const [inline]

Definition at line 1795 of file hermitian.hpp.

template<class M, class TRI>
BOOST_UBLAS_INLINE const_iterator1 boost::numeric::ublas::hermitian_adaptor< M, TRI >::end1 ( ) const [inline]

Definition at line 1799 of file hermitian.hpp.

template<class M, class TRI>
BOOST_UBLAS_INLINE iterator1 boost::numeric::ublas::hermitian_adaptor< M, TRI >::begin1 ( ) [inline]

Definition at line 1932 of file hermitian.hpp.

template<class M, class TRI>
BOOST_UBLAS_INLINE iterator1 boost::numeric::ublas::hermitian_adaptor< M, TRI >::end1 ( ) [inline]

Definition at line 1936 of file hermitian.hpp.

template<class M, class TRI>
BOOST_UBLAS_INLINE const_iterator2 boost::numeric::ublas::hermitian_adaptor< M, TRI >::begin2 ( ) const [inline]

Definition at line 2249 of file hermitian.hpp.

template<class M, class TRI>
BOOST_UBLAS_INLINE const_iterator2 boost::numeric::ublas::hermitian_adaptor< M, TRI >::end2 ( ) const [inline]

Definition at line 2253 of file hermitian.hpp.

template<class M, class TRI>
BOOST_UBLAS_INLINE iterator2 boost::numeric::ublas::hermitian_adaptor< M, TRI >::begin2 ( ) [inline]

Definition at line 2386 of file hermitian.hpp.

template<class M, class TRI>
BOOST_UBLAS_INLINE iterator2 boost::numeric::ublas::hermitian_adaptor< M, TRI >::end2 ( ) [inline]

Definition at line 2390 of file hermitian.hpp.

template<class M, class TRI>
BOOST_UBLAS_INLINE const_reverse_iterator1 boost::numeric::ublas::hermitian_adaptor< M, TRI >::rbegin1 ( ) const [inline]

Definition at line 2397 of file hermitian.hpp.

template<class M, class TRI>
BOOST_UBLAS_INLINE const_reverse_iterator1 boost::numeric::ublas::hermitian_adaptor< M, TRI >::rend1 ( ) const [inline]

Definition at line 2401 of file hermitian.hpp.

template<class M, class TRI>
BOOST_UBLAS_INLINE reverse_iterator1 boost::numeric::ublas::hermitian_adaptor< M, TRI >::rbegin1 ( ) [inline]

Definition at line 2406 of file hermitian.hpp.

template<class M, class TRI>
BOOST_UBLAS_INLINE reverse_iterator1 boost::numeric::ublas::hermitian_adaptor< M, TRI >::rend1 ( ) [inline]

Definition at line 2410 of file hermitian.hpp.

template<class M, class TRI>
BOOST_UBLAS_INLINE const_reverse_iterator2 boost::numeric::ublas::hermitian_adaptor< M, TRI >::rbegin2 ( ) const [inline]

Definition at line 2415 of file hermitian.hpp.

template<class M, class TRI>
BOOST_UBLAS_INLINE const_reverse_iterator2 boost::numeric::ublas::hermitian_adaptor< M, TRI >::rend2 ( ) const [inline]

Definition at line 2419 of file hermitian.hpp.

template<class M, class TRI>
BOOST_UBLAS_INLINE reverse_iterator2 boost::numeric::ublas::hermitian_adaptor< M, TRI >::rbegin2 ( ) [inline]

Definition at line 2424 of file hermitian.hpp.

template<class M, class TRI>
BOOST_UBLAS_INLINE reverse_iterator2 boost::numeric::ublas::hermitian_adaptor< M, TRI >::rend2 ( ) [inline]

Definition at line 2428 of file hermitian.hpp.

BOOST_UBLAS_INLINE const expression_type& boost::numeric::ublas::matrix_expression< hermitian_adaptor< M, TRI > >::operator() ( ) const [inline, inherited]

Definition at line 320 of file expression_types.hpp.

BOOST_UBLAS_INLINE expression_type& boost::numeric::ublas::matrix_expression< hermitian_adaptor< M, TRI > >::operator() ( ) [inline, inherited]

Definition at line 324 of file expression_types.hpp.


Friends And Related Function Documentation

template<class M, class TRI>
BOOST_UBLAS_INLINE friend void swap ( hermitian_adaptor< M, TRI > &  m1,
hermitian_adaptor< M, TRI > &  m2 
) [friend]

Definition at line 1385 of file hermitian.hpp.


Member Data Documentation

template<class M, class TRI>
matrix_closure_type boost::numeric::ublas::hermitian_adaptor< M, TRI >::data_ [private]

Definition at line 2433 of file hermitian.hpp.

template<class M, class TRI>
hermitian_adaptor< M, TRI >::value_type boost::numeric::ublas::hermitian_adaptor< M, TRI >::conj_ [static, private]

Definition at line 2434 of file hermitian.hpp.

const unsigned boost::numeric::ublas::matrix_expression< hermitian_adaptor< M, TRI > >::complexity [static, inherited]

Definition at line 312 of file expression_types.hpp.


The documentation for this class was generated from the following file: