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

boost::numeric::ublas::diagonal_matrix< T, L, A > Class Template Reference

A diagonal matrix of values of type T, which is a specialization of a banded matrix. More...

#include <banded.hpp>

Inheritance diagram for boost::numeric::ublas::diagonal_matrix< T, L, A >:
Collaboration diagram for boost::numeric::ublas::diagonal_matrix< T, L, A >:

List of all members.

Public Types

typedef A array_type
typedef matrix_reference
< self_type
closure_type
typedef const matrix_reference
< const self_type
const_closure_type
typedef const T & const_reference
typedef reverse_iterator_base1
< const_iterator1
const_reverse_iterator1
typedef reverse_iterator_base2
< const_iterator2
const_reverse_iterator2
typedef banded_matrix< T, L, A > container_type
typedef A::difference_type difference_type
typedef banded_matrix< T, L, A > expression_type
typedef matrix< T, L, A > matrix_temporary_type
typedef banded_matrix< T, L, A > matrix_type
typedef L::orientation_category orientation_category
typedef T & reference
typedef reverse_iterator_base1
< iterator1
reverse_iterator1
typedef reverse_iterator_base2
< iterator2
reverse_iterator2
typedef A::size_type size_type
typedef packed_tag storage_category
typedef matrix_tag type_category
typedef T value_type
typedef vector< T, A > vector_temporary_type

Public Member Functions

BOOST_UBLAS_INLINE diagonal_matrix ()
BOOST_UBLAS_INLINE diagonal_matrix (size_type size)
BOOST_UBLAS_INLINE diagonal_matrix (size_type size1, size_type size2)
template<class AE >
BOOST_UBLAS_INLINE diagonal_matrix (const matrix_expression< AE > &ae)
BOOST_UBLAS_INLINE diagonal_matrix (size_type size, const array_type &data)
BOOST_UBLAS_INLINE ~diagonal_matrix ()
template<class AE >
BOOST_UBLAS_INLINE banded_matrixassign (const matrix_expression< AE > &ae)
BOOST_UBLAS_INLINE banded_matrixassign_temporary (banded_matrix &m)
BOOST_UBLAS_INLINE reference at_element (size_type i, size_type j)
BOOST_UBLAS_INLINE const_iterator1 begin1 () const
BOOST_UBLAS_INLINE iterator1 begin1 ()
BOOST_UBLAS_INLINE const_iterator2 begin2 () const
BOOST_UBLAS_INLINE iterator2 begin2 ()
BOOST_UBLAS_INLINE void clear ()
BOOST_UBLAS_INLINE const
array_type
data () const
BOOST_UBLAS_INLINE array_typedata ()
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 void erase_element (size_type i, size_type j)
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 iterator2 find2 (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 reference insert_element (size_type i, size_type j, const_reference t)
BOOST_UBLAS_INLINE size_type lower () const
template<class AE >
BOOST_UBLAS_INLINE banded_matrixminus_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 container_typeoperator() ()
BOOST_UBLAS_INLINE const
container_type
operator() () const
template<class AT >
BOOST_UBLAS_INLINE banded_matrixoperator*= (const AT &at)
template<class AE >
BOOST_UBLAS_INLINE banded_matrixoperator+= (const matrix_expression< AE > &ae)
template<class AE >
BOOST_UBLAS_INLINE banded_matrixoperator-= (const matrix_expression< AE > &ae)
template<class AT >
BOOST_UBLAS_INLINE banded_matrixoperator/= (const AT &at)
template<class AE >
BOOST_UBLAS_INLINE
diagonal_matrix
operator= (const matrix_expression< AE > &ae)
BOOST_UBLAS_INLINE
diagonal_matrix
operator= (const diagonal_matrix &m)
template<class AE >
BOOST_UBLAS_INLINE banded_matrixplus_assign (const matrix_expression< AE > &ae)
BOOST_UBLAS_INLINE
const_reverse_iterator1 
rbegin1 () const
BOOST_UBLAS_INLINE
reverse_iterator1 
rbegin1 ()
BOOST_UBLAS_INLINE
const_reverse_iterator2 
rbegin2 () const
BOOST_UBLAS_INLINE
reverse_iterator2 
rbegin2 ()
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 void resize (size_type size1, size_type size2, size_type lower=0, size_type upper=0, bool preserve=true)
BOOST_UBLAS_INLINE void resize_packed_preserve (size_type size1, size_type size2, size_type lower=0, size_type upper=0)
BOOST_UBLAS_INLINE size_type size1 () const
BOOST_UBLAS_INLINE size_type size2 () const
BOOST_UBLAS_INLINE void swap (banded_matrix &m)
BOOST_UBLAS_INLINE size_type upper () const

Static Public Attributes

static const unsigned complexity

Friends

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

Detailed Description

template<class T, class L, class A>
class boost::numeric::ublas::diagonal_matrix< T, L, A >

A diagonal matrix of values of type T, which is a specialization of a banded matrix.

For a $(m\times m)$-dimensional diagonal matrix, $0 \leq i < m$ and $0 \leq j < m$, if $i\neq j$ then $b_{i,j}=0$. The default storage for diagonal matrices is packed. Orientation and storage can also be specified. Default is row major unbounded_array.

As a specialization of a banded matrix, the constructor of the diagonal matrix creates a banded matrix with 0 upper and lower diagonals around the main diagonal and the matrix is obviously a square matrix. Operations are optimized based on these 2 assumptions. It is not required by the storage to initialize elements of the matrix.

Template Parameters:
Tthe type of object stored in the matrix (like double, float, complex, etc...)
Lthe storage organization. It can be either row_major or column_major. Default is row_major
Athe type of Storage array. Default is unbounded_array

Definition at line 1000 of file banded.hpp.


Member Typedef Documentation

template<class T , class L , class A >
typedef A::size_type boost::numeric::ublas::diagonal_matrix< T, L, A >::size_type

Reimplemented from boost::numeric::ublas::banded_matrix< T, L, A >.

Definition at line 1003 of file banded.hpp.

template<class T , class L , class A >
typedef banded_matrix<T, L, A> boost::numeric::ublas::diagonal_matrix< T, L, A >::matrix_type

Definition at line 1004 of file banded.hpp.

template<class T , class L , class A >
typedef A boost::numeric::ublas::diagonal_matrix< T, L, A >::array_type

Reimplemented from boost::numeric::ublas::banded_matrix< T, L, A >.

Definition at line 1005 of file banded.hpp.

template<class T, class L, class A>
typedef A::difference_type boost::numeric::ublas::banded_matrix< T, L, A >::difference_type [inherited]

Definition at line 47 of file banded.hpp.

template<class T, class L, class A>
typedef T boost::numeric::ublas::banded_matrix< T, L, A >::value_type [inherited]

Definition at line 48 of file banded.hpp.

template<class T, class L, class A>
typedef const T& boost::numeric::ublas::banded_matrix< T, L, A >::const_reference [inherited]

Definition at line 49 of file banded.hpp.

template<class T, class L, class A>
typedef T& boost::numeric::ublas::banded_matrix< T, L, A >::reference [inherited]

Definition at line 50 of file banded.hpp.

template<class T, class L, class A>
typedef const matrix_reference<const self_type> boost::numeric::ublas::banded_matrix< T, L, A >::const_closure_type [inherited]

Definition at line 52 of file banded.hpp.

template<class T, class L, class A>
typedef matrix_reference<self_type> boost::numeric::ublas::banded_matrix< T, L, A >::closure_type [inherited]

Definition at line 53 of file banded.hpp.

template<class T, class L, class A>
typedef vector<T, A> boost::numeric::ublas::banded_matrix< T, L, A >::vector_temporary_type [inherited]

Definition at line 54 of file banded.hpp.

template<class T, class L, class A>
typedef matrix<T, L, A> boost::numeric::ublas::banded_matrix< T, L, A >::matrix_temporary_type [inherited]

Definition at line 55 of file banded.hpp.

template<class T, class L, class A>
typedef packed_tag boost::numeric::ublas::banded_matrix< T, L, A >::storage_category [inherited]

Definition at line 56 of file banded.hpp.

template<class T, class L, class A>
typedef L::orientation_category boost::numeric::ublas::banded_matrix< T, L, A >::orientation_category [inherited]

Definition at line 57 of file banded.hpp.

template<class T, class L, class A>
typedef reverse_iterator_base1<const_iterator1> boost::numeric::ublas::banded_matrix< T, L, A >::const_reverse_iterator1 [inherited]

Definition at line 315 of file banded.hpp.

template<class T, class L, class A>
typedef reverse_iterator_base1<iterator1> boost::numeric::ublas::banded_matrix< T, L, A >::reverse_iterator1 [inherited]

Definition at line 318 of file banded.hpp.

template<class T, class L, class A>
typedef reverse_iterator_base2<const_iterator2> boost::numeric::ublas::banded_matrix< T, L, A >::const_reverse_iterator2 [inherited]

Definition at line 319 of file banded.hpp.

template<class T, class L, class A>
typedef reverse_iterator_base2<iterator2> boost::numeric::ublas::banded_matrix< T, L, A >::reverse_iterator2 [inherited]

Definition at line 320 of file banded.hpp.

Definition at line 488 of file expression_types.hpp.


Constructor & Destructor Documentation

template<class T , class L , class A >
BOOST_UBLAS_INLINE boost::numeric::ublas::diagonal_matrix< T, L, A >::diagonal_matrix ( ) [inline]

Definition at line 1009 of file banded.hpp.

template<class T , class L , class A >
BOOST_UBLAS_INLINE boost::numeric::ublas::diagonal_matrix< T, L, A >::diagonal_matrix ( size_type  size) [inline]

Definition at line 1012 of file banded.hpp.

template<class T , class L , class A >
BOOST_UBLAS_INLINE boost::numeric::ublas::diagonal_matrix< T, L, A >::diagonal_matrix ( size_type  size,
const array_type data 
) [inline]

Definition at line 1015 of file banded.hpp.

template<class T , class L , class A >
BOOST_UBLAS_INLINE boost::numeric::ublas::diagonal_matrix< T, L, A >::diagonal_matrix ( size_type  size1,
size_type  size2 
) [inline]

Definition at line 1018 of file banded.hpp.

template<class T , class L , class A >
template<class AE >
BOOST_UBLAS_INLINE boost::numeric::ublas::diagonal_matrix< T, L, A >::diagonal_matrix ( const matrix_expression< AE > &  ae) [inline]

Definition at line 1022 of file banded.hpp.

template<class T , class L , class A >
BOOST_UBLAS_INLINE boost::numeric::ublas::diagonal_matrix< T, L, A >::~diagonal_matrix ( ) [inline]

Definition at line 1025 of file banded.hpp.


Member Function Documentation

template<class T , class L , class A >
BOOST_UBLAS_INLINE diagonal_matrix& boost::numeric::ublas::diagonal_matrix< T, L, A >::operator= ( const diagonal_matrix< T, L, A > &  m) [inline]

Definition at line 1029 of file banded.hpp.

template<class T , class L , class A >
template<class AE >
BOOST_UBLAS_INLINE diagonal_matrix& boost::numeric::ublas::diagonal_matrix< T, L, A >::operator= ( const matrix_expression< AE > &  ae) [inline]

Reimplemented from boost::numeric::ublas::banded_matrix< T, L, A >.

Definition at line 1035 of file banded.hpp.

template<class T, class L, class A>
BOOST_UBLAS_INLINE size_type boost::numeric::ublas::banded_matrix< T, L, A >::size1 ( ) const [inline, inherited]

Definition at line 93 of file banded.hpp.

template<class T, class L, class A>
BOOST_UBLAS_INLINE size_type boost::numeric::ublas::banded_matrix< T, L, A >::size2 ( ) const [inline, inherited]

Definition at line 97 of file banded.hpp.

template<class T, class L, class A>
BOOST_UBLAS_INLINE size_type boost::numeric::ublas::banded_matrix< T, L, A >::lower ( ) const [inline, inherited]

Definition at line 101 of file banded.hpp.

template<class T, class L, class A>
BOOST_UBLAS_INLINE size_type boost::numeric::ublas::banded_matrix< T, L, A >::upper ( ) const [inline, inherited]

Definition at line 105 of file banded.hpp.

template<class T, class L, class A>
BOOST_UBLAS_INLINE const array_type& boost::numeric::ublas::banded_matrix< T, L, A >::data ( ) const [inline, inherited]

Definition at line 111 of file banded.hpp.

template<class T, class L, class A>
BOOST_UBLAS_INLINE array_type& boost::numeric::ublas::banded_matrix< T, L, A >::data ( ) [inline, inherited]

Definition at line 115 of file banded.hpp.

template<class T, class L, class A>
BOOST_UBLAS_INLINE void boost::numeric::ublas::banded_matrix< T, L, A >::resize ( size_type  size1,
size_type  size2,
size_type  lower = 0,
size_type  upper = 0,
bool  preserve = true 
) [inline, inherited]

Definition at line 121 of file banded.hpp.

template<class T, class L, class A>
BOOST_UBLAS_INLINE void boost::numeric::ublas::banded_matrix< T, L, A >::resize_packed_preserve ( size_type  size1,
size_type  size2,
size_type  lower = 0,
size_type  upper = 0 
) [inline, inherited]

Definition at line 136 of file banded.hpp.

template<class T, class L, class A>
BOOST_UBLAS_INLINE const_reference boost::numeric::ublas::banded_matrix< T, L, A >::operator() ( size_type  i,
size_type  j 
) const [inline, inherited]

Definition at line 146 of file banded.hpp.

template<class T, class L, class A>
BOOST_UBLAS_INLINE reference boost::numeric::ublas::banded_matrix< T, L, A >::operator() ( size_type  i,
size_type  j 
) [inline, inherited]

Definition at line 183 of file banded.hpp.

BOOST_UBLAS_INLINE const container_type& boost::numeric::ublas::matrix_container< banded_matrix< T, L, A > >::operator() ( ) const [inline, inherited]
BOOST_UBLAS_INLINE container_type& boost::numeric::ublas::matrix_container< banded_matrix< T, L, A > >::operator() ( ) [inline, inherited]
template<class T, class L, class A>
BOOST_UBLAS_INLINE reference boost::numeric::ublas::banded_matrix< T, L, A >::at_element ( size_type  i,
size_type  j 
) [inline, inherited]

Definition at line 167 of file banded.hpp.

template<class T, class L, class A>
BOOST_UBLAS_INLINE reference boost::numeric::ublas::banded_matrix< T, L, A >::insert_element ( size_type  i,
size_type  j,
const_reference  t 
) [inline, inherited]

Definition at line 211 of file banded.hpp.

template<class T, class L, class A>
BOOST_UBLAS_INLINE void boost::numeric::ublas::banded_matrix< T, L, A >::erase_element ( size_type  i,
size_type  j 
) [inline, inherited]

Definition at line 215 of file banded.hpp.

template<class T, class L, class A>
BOOST_UBLAS_INLINE void boost::numeric::ublas::banded_matrix< T, L, A >::clear ( ) [inline, inherited]

Definition at line 221 of file banded.hpp.

template<class T, class L, class A>
BOOST_UBLAS_INLINE banded_matrix& boost::numeric::ublas::banded_matrix< T, L, A >::assign_temporary ( banded_matrix< T, L, A > &  m) [inline, inherited]

Definition at line 236 of file banded.hpp.

template<class T, class L, class A>
template<class AE >
BOOST_UBLAS_INLINE banded_matrix& boost::numeric::ublas::banded_matrix< T, L, A >::assign ( const matrix_expression< AE > &  ae) [inline, inherited]

Definition at line 248 of file banded.hpp.

template<class T, class L, class A>
template<class AE >
BOOST_UBLAS_INLINE banded_matrix& boost::numeric::ublas::banded_matrix< T, L, A >::operator+= ( const matrix_expression< AE > &  ae) [inline, inherited]

Definition at line 254 of file banded.hpp.

template<class T, class L, class A>
template<class AE >
BOOST_UBLAS_INLINE banded_matrix& boost::numeric::ublas::banded_matrix< T, L, A >::plus_assign ( const matrix_expression< AE > &  ae) [inline, inherited]

Definition at line 260 of file banded.hpp.

template<class T, class L, class A>
template<class AE >
BOOST_UBLAS_INLINE banded_matrix& boost::numeric::ublas::banded_matrix< T, L, A >::operator-= ( const matrix_expression< AE > &  ae) [inline, inherited]

Definition at line 266 of file banded.hpp.

template<class T, class L, class A>
template<class AE >
BOOST_UBLAS_INLINE banded_matrix& boost::numeric::ublas::banded_matrix< T, L, A >::minus_assign ( const matrix_expression< AE > &  ae) [inline, inherited]

Definition at line 272 of file banded.hpp.

template<class T, class L, class A>
template<class AT >
BOOST_UBLAS_INLINE banded_matrix& boost::numeric::ublas::banded_matrix< T, L, A >::operator*= ( const AT &  at) [inline, inherited]

Definition at line 278 of file banded.hpp.

template<class T, class L, class A>
template<class AT >
BOOST_UBLAS_INLINE banded_matrix& boost::numeric::ublas::banded_matrix< T, L, A >::operator/= ( const AT &  at) [inline, inherited]

Definition at line 284 of file banded.hpp.

template<class T, class L, class A>
BOOST_UBLAS_INLINE void boost::numeric::ublas::banded_matrix< T, L, A >::swap ( banded_matrix< T, L, A > &  m) [inline, inherited]

Definition at line 291 of file banded.hpp.

template<class T, class L, class A>
BOOST_UBLAS_INLINE const_iterator1 boost::numeric::ublas::banded_matrix< T, L, A >::find1 ( int  rank,
size_type  i,
size_type  j 
) const [inline, inherited]

Definition at line 324 of file banded.hpp.

template<class T, class L, class A>
BOOST_UBLAS_INLINE iterator1 boost::numeric::ublas::banded_matrix< T, L, A >::find1 ( int  rank,
size_type  i,
size_type  j 
) [inline, inherited]

Definition at line 334 of file banded.hpp.

template<class T, class L, class A>
BOOST_UBLAS_INLINE const_iterator2 boost::numeric::ublas::banded_matrix< T, L, A >::find2 ( int  rank,
size_type  i,
size_type  j 
) const [inline, inherited]

Definition at line 344 of file banded.hpp.

template<class T, class L, class A>
BOOST_UBLAS_INLINE iterator2 boost::numeric::ublas::banded_matrix< T, L, A >::find2 ( int  rank,
size_type  i,
size_type  j 
) [inline, inherited]

Definition at line 354 of file banded.hpp.

template<class T, class L, class A>
BOOST_UBLAS_INLINE const_iterator1 boost::numeric::ublas::banded_matrix< T, L, A >::begin1 ( ) const [inline, inherited]

Definition at line 500 of file banded.hpp.

template<class T, class L, class A>
BOOST_UBLAS_INLINE iterator1 boost::numeric::ublas::banded_matrix< T, L, A >::begin1 ( ) [inline, inherited]

Definition at line 641 of file banded.hpp.

template<class T, class L, class A>
BOOST_UBLAS_INLINE const_iterator1 boost::numeric::ublas::banded_matrix< T, L, A >::end1 ( ) const [inline, inherited]

Definition at line 504 of file banded.hpp.

template<class T, class L, class A>
BOOST_UBLAS_INLINE iterator1 boost::numeric::ublas::banded_matrix< T, L, A >::end1 ( ) [inline, inherited]

Definition at line 645 of file banded.hpp.

template<class T, class L, class A>
BOOST_UBLAS_INLINE const_iterator2 boost::numeric::ublas::banded_matrix< T, L, A >::begin2 ( ) const [inline, inherited]

Definition at line 783 of file banded.hpp.

template<class T, class L, class A>
BOOST_UBLAS_INLINE iterator2 boost::numeric::ublas::banded_matrix< T, L, A >::begin2 ( ) [inline, inherited]

Definition at line 924 of file banded.hpp.

template<class T, class L, class A>
BOOST_UBLAS_INLINE const_iterator2 boost::numeric::ublas::banded_matrix< T, L, A >::end2 ( ) const [inline, inherited]

Definition at line 787 of file banded.hpp.

template<class T, class L, class A>
BOOST_UBLAS_INLINE iterator2 boost::numeric::ublas::banded_matrix< T, L, A >::end2 ( ) [inline, inherited]

Definition at line 928 of file banded.hpp.

template<class T, class L, class A>
BOOST_UBLAS_INLINE const_reverse_iterator1 boost::numeric::ublas::banded_matrix< T, L, A >::rbegin1 ( ) const [inline, inherited]

Definition at line 935 of file banded.hpp.

template<class T, class L, class A>
BOOST_UBLAS_INLINE reverse_iterator1 boost::numeric::ublas::banded_matrix< T, L, A >::rbegin1 ( ) [inline, inherited]

Definition at line 944 of file banded.hpp.

template<class T, class L, class A>
BOOST_UBLAS_INLINE const_reverse_iterator1 boost::numeric::ublas::banded_matrix< T, L, A >::rend1 ( ) const [inline, inherited]

Definition at line 939 of file banded.hpp.

template<class T, class L, class A>
BOOST_UBLAS_INLINE reverse_iterator1 boost::numeric::ublas::banded_matrix< T, L, A >::rend1 ( ) [inline, inherited]

Definition at line 948 of file banded.hpp.

template<class T, class L, class A>
BOOST_UBLAS_INLINE const_reverse_iterator2 boost::numeric::ublas::banded_matrix< T, L, A >::rbegin2 ( ) const [inline, inherited]

Definition at line 953 of file banded.hpp.

template<class T, class L, class A>
BOOST_UBLAS_INLINE reverse_iterator2 boost::numeric::ublas::banded_matrix< T, L, A >::rbegin2 ( ) [inline, inherited]

Definition at line 962 of file banded.hpp.

template<class T, class L, class A>
BOOST_UBLAS_INLINE const_reverse_iterator2 boost::numeric::ublas::banded_matrix< T, L, A >::rend2 ( ) const [inline, inherited]

Definition at line 957 of file banded.hpp.

template<class T, class L, class A>
BOOST_UBLAS_INLINE reverse_iterator2 boost::numeric::ublas::banded_matrix< T, L, A >::rend2 ( ) [inline, inherited]

Definition at line 966 of file banded.hpp.


Friends And Related Function Documentation

template<class T, class L, class A>
BOOST_UBLAS_INLINE friend void swap ( banded_matrix< T, L, A > &  m1,
banded_matrix< T, L, A > &  m2 
) [friend, inherited]

Definition at line 301 of file banded.hpp.


Member Data Documentation

const unsigned boost::numeric::ublas::matrix_container< banded_matrix< T, L, A > >::complexity [static, inherited]

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