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

boost::numeric::ublas::banded_adaptor< M > Class Template Reference

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

#include <banded.hpp>

Inheritance diagram for boost::numeric::ublas::banded_adaptor< M >:
Collaboration diagram for boost::numeric::ublas::banded_adaptor< M >:

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::const_reference 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 banded_adaptor< M > 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::const_reference,
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 matrix_tag type_category
typedef M::value_type value_type

Public Member Functions

BOOST_UBLAS_INLINE banded_adaptor (matrix_type &data, size_type lower=0, size_type upper=0)
BOOST_UBLAS_INLINE banded_adaptor (const banded_adaptor &m)
template<class AE >
BOOST_UBLAS_INLINE banded_adaptorassign (const matrix_expression< AE > &ae)
BOOST_UBLAS_INLINE banded_adaptorassign_temporary (banded_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
matrix_closure_type
data ()
BOOST_UBLAS_INLINE const
matrix_closure_type
data () const
BOOST_UBLAS_INLINE const_iterator1 end1 () const
BOOST_UBLAS_INLINE iterator1 end1 ()
BOOST_UBLAS_INLINE const_iterator2 end2 () const
BOOST_UBLAS_INLINE iterator2 end2 ()
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 size_type lower () const
template<class AE >
BOOST_UBLAS_INLINE banded_adaptorminus_assign (const matrix_expression< AE > &ae)
BOOST_UBLAS_INLINE const_reference operator() (size_type i, size_type j) const
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() ()
template<class AT >
BOOST_UBLAS_INLINE banded_adaptoroperator*= (const AT &at)
template<class AE >
BOOST_UBLAS_INLINE banded_adaptoroperator+= (const matrix_expression< AE > &ae)
template<class AE >
BOOST_UBLAS_INLINE banded_adaptoroperator-= (const matrix_expression< AE > &ae)
template<class AT >
BOOST_UBLAS_INLINE banded_adaptoroperator/= (const AT &at)
BOOST_UBLAS_INLINE banded_adaptoroperator= (const banded_adaptor &m)
template<class AE >
BOOST_UBLAS_INLINE banded_adaptoroperator= (const matrix_expression< AE > &ae)
template<class AE >
BOOST_UBLAS_INLINE banded_adaptorplus_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
reverse_iterator1 
rend1 ()
BOOST_UBLAS_INLINE
const_reverse_iterator1 
rend1 () const
BOOST_UBLAS_INLINE
reverse_iterator2 
rend2 ()
BOOST_UBLAS_INLINE
const_reverse_iterator2 
rend2 () const
BOOST_UBLAS_INLINE bool same_closure (const banded_adaptor &ba) const
BOOST_UBLAS_INLINE size_type size1 () const
BOOST_UBLAS_INLINE size_type size2 () const
BOOST_UBLAS_INLINE void swap (banded_adaptor &m)
BOOST_UBLAS_INLINE size_type upper () const

Static Public Attributes

static const unsigned complexity

Private Types

typedef M::const_iterator1 const_subiterator1_type
typedef M::const_iterator2 const_subiterator2_type
typedef const value_type const_value_type
typedef banded_adaptor< M > 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

Private Attributes

matrix_closure_type data_
size_type lower_
size_type upper_

Static Private Attributes

static const_value_type zero_ = value_type()

Friends

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

Detailed Description

template<class M>
class boost::numeric::ublas::banded_adaptor< M >

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

For a $(m\times n)$-dimensional matrix, the banded_adaptor will provide a banded matrix with $l$ lower and $u$ upper diagonals and $0 \leq i < m$ and $0 \leq j < n$, if $i>j+l$ or $i<j-u$ then $b_{i,j}=0$.

Storage and location are based on those of the underlying matrix. This is important because a banded_adaptor does not copy the matrix data to a new place. Therefore, modifying values in a banded_adaptor matrix will also modify the underlying matrix too.

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

Definition at line 1054 of file banded.hpp.


Member Typedef Documentation

template<class M>
typedef banded_adaptor<M> boost::numeric::ublas::banded_adaptor< M >::self_type [private]

Reimplemented from boost::numeric::ublas::matrix_expression< banded_adaptor< M > >.

Definition at line 1057 of file banded.hpp.

template<class M>
typedef const M boost::numeric::ublas::banded_adaptor< M >::const_matrix_type

Definition at line 1062 of file banded.hpp.

template<class M>
typedef M boost::numeric::ublas::banded_adaptor< M >::matrix_type

Reimplemented in boost::numeric::ublas::diagonal_adaptor< M >.

Definition at line 1063 of file banded.hpp.

template<class M>
typedef M::size_type boost::numeric::ublas::banded_adaptor< M >::size_type

Definition at line 1064 of file banded.hpp.

template<class M>
typedef M::difference_type boost::numeric::ublas::banded_adaptor< M >::difference_type

Definition at line 1065 of file banded.hpp.

template<class M>
typedef M::value_type boost::numeric::ublas::banded_adaptor< M >::value_type

Definition at line 1066 of file banded.hpp.

template<class M>
typedef M::const_reference boost::numeric::ublas::banded_adaptor< M >::const_reference

Definition at line 1067 of file banded.hpp.

template<class M>
typedef boost::mpl::if_<boost::is_const<M>, typename M::const_reference, typename M::reference>::type boost::numeric::ublas::banded_adaptor< M >::reference

Definition at line 1070 of file banded.hpp.

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

Definition at line 1073 of file banded.hpp.

Definition at line 1074 of file banded.hpp.

Definition at line 1075 of file banded.hpp.

Definition at line 1080 of file banded.hpp.

template<class M>
typedef M::orientation_category boost::numeric::ublas::banded_adaptor< M >::orientation_category

Definition at line 1081 of file banded.hpp.

template<class M>
typedef M::const_iterator1 boost::numeric::ublas::banded_adaptor< M >::const_subiterator1_type [private]

Definition at line 1272 of file banded.hpp.

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

Definition at line 1275 of file banded.hpp.

template<class M>
typedef M::const_iterator2 boost::numeric::ublas::banded_adaptor< M >::const_subiterator2_type [private]

Definition at line 1276 of file banded.hpp.

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

Definition at line 1279 of file banded.hpp.

Definition at line 1294 of file banded.hpp.

Definition at line 1296 of file banded.hpp.

template<class M>
typedef const value_type boost::numeric::ublas::banded_adaptor< M >::const_value_type [private]

Definition at line 2003 of file banded.hpp.


Constructor & Destructor Documentation

template<class M>
BOOST_UBLAS_INLINE boost::numeric::ublas::banded_adaptor< M >::banded_adaptor ( matrix_type data,
size_type  lower = 0,
size_type  upper = 0 
) [inline]

Definition at line 1085 of file banded.hpp.

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

Definition at line 1089 of file banded.hpp.


Member Function Documentation

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

Definition at line 1095 of file banded.hpp.

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

Definition at line 1099 of file banded.hpp.

template<class M>
BOOST_UBLAS_INLINE size_type boost::numeric::ublas::banded_adaptor< M >::lower ( ) const [inline]

Definition at line 1103 of file banded.hpp.

template<class M>
BOOST_UBLAS_INLINE size_type boost::numeric::ublas::banded_adaptor< M >::upper ( ) const [inline]

Definition at line 1107 of file banded.hpp.

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

Definition at line 1113 of file banded.hpp.

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

Definition at line 1117 of file banded.hpp.

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

Definition at line 1124 of file banded.hpp.

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

Definition at line 1143 of file banded.hpp.

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

Definition at line 1191 of file banded.hpp.

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

Definition at line 1196 of file banded.hpp.

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

Reimplemented in boost::numeric::ublas::diagonal_adaptor< M >.

Definition at line 1202 of file banded.hpp.

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

Definition at line 1208 of file banded.hpp.

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

Definition at line 1214 of file banded.hpp.

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

Definition at line 1220 of file banded.hpp.

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

Definition at line 1226 of file banded.hpp.

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

Definition at line 1232 of file banded.hpp.

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

Definition at line 1238 of file banded.hpp.

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

Definition at line 1244 of file banded.hpp.

template<class M>
BOOST_UBLAS_INLINE bool boost::numeric::ublas::banded_adaptor< M >::same_closure ( const banded_adaptor< M > &  ba) const [inline]

Definition at line 1251 of file banded.hpp.

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

Definition at line 1257 of file banded.hpp.

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

Definition at line 1300 of file banded.hpp.

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

Definition at line 1310 of file banded.hpp.

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

Definition at line 1320 of file banded.hpp.

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

Definition at line 1330 of file banded.hpp.

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

Definition at line 1489 of file banded.hpp.

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

Definition at line 1493 of file banded.hpp.

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

Definition at line 1643 of file banded.hpp.

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

Definition at line 1647 of file banded.hpp.

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

Definition at line 1799 of file banded.hpp.

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

Definition at line 1803 of file banded.hpp.

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

Definition at line 1953 of file banded.hpp.

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

Definition at line 1957 of file banded.hpp.

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

Definition at line 1964 of file banded.hpp.

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

Definition at line 1968 of file banded.hpp.

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

Definition at line 1973 of file banded.hpp.

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

Definition at line 1977 of file banded.hpp.

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

Definition at line 1982 of file banded.hpp.

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

Definition at line 1986 of file banded.hpp.

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

Definition at line 1991 of file banded.hpp.

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

Definition at line 1995 of file banded.hpp.

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

Definition at line 320 of file expression_types.hpp.

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

Definition at line 324 of file expression_types.hpp.


Friends And Related Function Documentation

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

Definition at line 1265 of file banded.hpp.


Member Data Documentation

Definition at line 2000 of file banded.hpp.

template<class M>
size_type boost::numeric::ublas::banded_adaptor< M >::lower_ [private]

Definition at line 2001 of file banded.hpp.

template<class M>
size_type boost::numeric::ublas::banded_adaptor< M >::upper_ [private]

Definition at line 2002 of file banded.hpp.

template<class M>
banded_adaptor< M >::const_value_type boost::numeric::ublas::banded_adaptor< M >::zero_ = value_type() [static, private]

Definition at line 2004 of file banded.hpp.

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

Definition at line 312 of file expression_types.hpp.


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