Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
boost::numeric::ublas::mapped_matrix< T, L, A > Class Template Reference

Index map based sparse matrix of values of type T. More...

#include <matrix_sparse.hpp>

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

Classes

class  const_iterator1
 
class  const_iterator2
 
class  iterator1
 
class  iterator2
 

Public Types

typedef A::size_type size_type
 
typedef A::difference_type difference_type
 
typedef T value_type
 
typedef A array_type
 
typedef const Tconst_reference
 
typedef detail::map_traits< A,
T >::reference 
reference
 
typedef const matrix_reference
< const self_type
const_closure_type
 
typedef matrix_reference
< self_type
closure_type
 
typedef mapped_vector< T, A > vector_temporary_type
 
typedef self_type matrix_temporary_type
 
typedef sparse_tag storage_category
 
typedef L::orientation_category orientation_category
 
typedef reverse_iterator_base1
< const_iterator1
const_reverse_iterator1
 
typedef reverse_iterator_base1
< iterator1
reverse_iterator1
 
typedef reverse_iterator_base2
< const_iterator2
const_reverse_iterator2
 
typedef reverse_iterator_base2
< iterator2
reverse_iterator2
 
typedef mapped_matrix< T, L, A > container_type
 
typedef matrix_tag type_category
 
typedef E expression_type
 

Public Member Functions

BOOST_UBLAS_INLINE mapped_matrix ()
 
BOOST_UBLAS_INLINE mapped_matrix (size_type size1, size_type size2, size_type non_zeros=0)
 
BOOST_UBLAS_INLINE mapped_matrix (const mapped_matrix &m)
 
template<class AE >
BOOST_UBLAS_INLINE mapped_matrix (const matrix_expression< AE > &ae, size_type non_zeros=0)
 
BOOST_UBLAS_INLINE size_type size1 () const
 
BOOST_UBLAS_INLINE size_type size2 () const
 
BOOST_UBLAS_INLINE size_type nnz_capacity () const
 
BOOST_UBLAS_INLINE size_type nnz () const
 
BOOST_UBLAS_INLINE const
array_type
data () const
 
BOOST_UBLAS_INLINE array_typedata ()
 
BOOST_UBLAS_INLINE void resize (size_type size1, size_type size2, bool preserve=true)
 
BOOST_UBLAS_INLINE void reserve (size_type non_zeros, bool preserve=true)
 
BOOST_UBLAS_INLINE pointer find_element (size_type i, size_type j)
 
BOOST_UBLAS_INLINE const_pointer find_element (size_type i, size_type j) const
 
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 true_reference insert_element (size_type i, size_type j, const_reference t)
 
BOOST_UBLAS_INLINE void erase_element (size_type i, size_type j)
 
BOOST_UBLAS_INLINE void clear ()
 
BOOST_UBLAS_INLINE mapped_matrixoperator= (const mapped_matrix &m)
 
template<class C >
BOOST_UBLAS_INLINE mapped_matrixoperator= (const matrix_container< C > &m)
 
BOOST_UBLAS_INLINE mapped_matrixassign_temporary (mapped_matrix &m)
 
template<class AE >
BOOST_UBLAS_INLINE mapped_matrixoperator= (const matrix_expression< AE > &ae)
 
template<class AE >
BOOST_UBLAS_INLINE mapped_matrixassign (const matrix_expression< AE > &ae)
 
template<class AE >
BOOST_UBLAS_INLINE mapped_matrixoperator+= (const matrix_expression< AE > &ae)
 
template<class C >
BOOST_UBLAS_INLINE mapped_matrixoperator+= (const matrix_container< C > &m)
 
template<class AE >
BOOST_UBLAS_INLINE mapped_matrixplus_assign (const matrix_expression< AE > &ae)
 
template<class AE >
BOOST_UBLAS_INLINE mapped_matrixoperator-= (const matrix_expression< AE > &ae)
 
template<class C >
BOOST_UBLAS_INLINE mapped_matrixoperator-= (const matrix_container< C > &m)
 
template<class AE >
BOOST_UBLAS_INLINE mapped_matrixminus_assign (const matrix_expression< AE > &ae)
 
template<class AT >
BOOST_UBLAS_INLINE mapped_matrixoperator*= (const AT &at)
 
template<class AT >
BOOST_UBLAS_INLINE mapped_matrixoperator/= (const AT &at)
 
BOOST_UBLAS_INLINE void swap (mapped_matrix &m)
 
const_iterator1 find1 (int rank, size_type i, size_type j, int direction=1) const
 
iterator1 find1 (int rank, size_type i, size_type j, int direction=1)
 
const_iterator2 find2 (int rank, size_type i, size_type j, int direction=1) const
 
iterator2 find2 (int rank, size_type i, size_type j, int direction=1)
 
BOOST_UBLAS_INLINE const_iterator1 begin1 () const
 
BOOST_UBLAS_INLINE const_iterator1 cbegin1 () const
 
BOOST_UBLAS_INLINE const_iterator1 end1 () const
 
BOOST_UBLAS_INLINE const_iterator1 cend1 () const
 
BOOST_UBLAS_INLINE iterator1 begin1 ()
 
BOOST_UBLAS_INLINE iterator1 end1 ()
 
BOOST_UBLAS_INLINE const_iterator2 begin2 () const
 
BOOST_UBLAS_INLINE const_iterator2 cbegin2 () const
 
BOOST_UBLAS_INLINE const_iterator2 end2 () const
 
BOOST_UBLAS_INLINE const_iterator2 cend2 () const
 
BOOST_UBLAS_INLINE iterator2 begin2 ()
 
BOOST_UBLAS_INLINE iterator2 end2 ()
 
BOOST_UBLAS_INLINE
const_reverse_iterator1 
rbegin1 () const
 
BOOST_UBLAS_INLINE
const_reverse_iterator1 
crbegin1 () const
 
BOOST_UBLAS_INLINE
const_reverse_iterator1 
rend1 () const
 
BOOST_UBLAS_INLINE
const_reverse_iterator1 
crend1 () const
 
BOOST_UBLAS_INLINE
reverse_iterator1 
rbegin1 ()
 
BOOST_UBLAS_INLINE
reverse_iterator1 
rend1 ()
 
BOOST_UBLAS_INLINE
const_reverse_iterator2 
rbegin2 () const
 
BOOST_UBLAS_INLINE
const_reverse_iterator2 
crbegin2 () const
 
BOOST_UBLAS_INLINE
const_reverse_iterator2 
rend2 () const
 
BOOST_UBLAS_INLINE
const_reverse_iterator2 
crend2 () const
 
BOOST_UBLAS_INLINE
reverse_iterator2 
rbegin2 ()
 
BOOST_UBLAS_INLINE
reverse_iterator2 
rend2 ()
 
template<class Archive >
void serialize (Archive &ar, const unsigned int)
 
BOOST_UBLAS_INLINE const
container_type
operator() () const
 
BOOST_UBLAS_INLINE container_typeoperator() ()
 

Static Public Attributes

static const unsigned complexity
 

Friends

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

Detailed Description

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

Index map based sparse matrix of values of type T.

This class represents a matrix by using a key to value mapping. The default type is

template<class T, class L = row_major, class A = map_std<std::size_t, T> > class mapped_matrix;

So, by default a STL map container is used to associate keys and values. The key is computed depending on the layout type L as

key = layout_type::element(i, size1_, j, size2_);

which means

key = (i*size2+j)

for a row major matrix. Limitations: The matrix size must not exceed $(size1*size2) < $

std::limits<std::size_t>

. The find1() and find2() operations have a complexity of at least $\mathcal{O}(log(nnz))$, depending on the efficiency of std::lower_bound on the key set of the map. Orientation and storage can also be specified, otherwise a row major orientation is used. It is not required by the storage to initialize elements of the matrix. By default, the orientation is row_major.

See also
fwd.hpp, storage_sparse.hpp
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. By default it is row_major

Member Typedef Documentation

template<class T , class L , class A >
typedef A boost::numeric::ublas::mapped_matrix< T, L, A >::array_type
template<class T , class L , class A >
typedef matrix_reference<self_type> boost::numeric::ublas::mapped_matrix< T, L, A >::closure_type
template<class T , class L , class A >
typedef const matrix_reference<const self_type> boost::numeric::ublas::mapped_matrix< T, L, A >::const_closure_type
template<class T , class L , class A >
typedef const T& boost::numeric::ublas::mapped_matrix< T, L, A >::const_reference
template<class T , class L , class A >
typedef reverse_iterator_base1<const_iterator1> boost::numeric::ublas::mapped_matrix< T, L, A >::const_reverse_iterator1
template<class T , class L , class A >
typedef reverse_iterator_base2<const_iterator2> boost::numeric::ublas::mapped_matrix< T, L, A >::const_reverse_iterator2
template<class T , class L , class A >
typedef A::difference_type boost::numeric::ublas::mapped_matrix< T, L, A >::difference_type
template<class E>
typedef E boost::numeric::ublas::matrix_expression< E >::expression_type
inherited
template<class T , class L , class A >
typedef self_type boost::numeric::ublas::mapped_matrix< T, L, A >::matrix_temporary_type
template<class T , class L , class A >
typedef L::orientation_category boost::numeric::ublas::mapped_matrix< T, L, A >::orientation_category
template<class T , class L , class A >
typedef detail::map_traits<A, T>::reference boost::numeric::ublas::mapped_matrix< T, L, A >::reference
template<class T , class L , class A >
typedef reverse_iterator_base1<iterator1> boost::numeric::ublas::mapped_matrix< T, L, A >::reverse_iterator1
template<class T , class L , class A >
typedef reverse_iterator_base2<iterator2> boost::numeric::ublas::mapped_matrix< T, L, A >::reverse_iterator2
template<class T , class L , class A >
typedef A::size_type boost::numeric::ublas::mapped_matrix< T, L, A >::size_type
template<class T , class L , class A >
typedef sparse_tag boost::numeric::ublas::mapped_matrix< T, L, A >::storage_category
template<class T , class L , class A >
typedef T boost::numeric::ublas::mapped_matrix< T, L, A >::value_type
template<class T , class L , class A >
typedef mapped_vector<T, A> boost::numeric::ublas::mapped_matrix< T, L, A >::vector_temporary_type

Constructor & Destructor Documentation

template<class T , class L , class A >
BOOST_UBLAS_INLINE boost::numeric::ublas::mapped_matrix< T, L, A >::mapped_matrix ( )
inline
template<class T , class L , class A >
BOOST_UBLAS_INLINE boost::numeric::ublas::mapped_matrix< T, L, A >::mapped_matrix ( size_type  size1,
size_type  size2,
size_type  non_zeros = 0 
)
inline
template<class T , class L , class A >
BOOST_UBLAS_INLINE boost::numeric::ublas::mapped_matrix< T, L, A >::mapped_matrix ( const mapped_matrix< T, L, A > &  m)
inline
template<class T , class L , class A >
template<class AE >
BOOST_UBLAS_INLINE boost::numeric::ublas::mapped_matrix< T, L, A >::mapped_matrix ( const matrix_expression< AE > &  ae,
size_type  non_zeros = 0 
)
inline

Member Function Documentation

template<class T , class L , class A >
template<class AE >
BOOST_UBLAS_INLINE mapped_matrix& boost::numeric::ublas::mapped_matrix< T, L, A >::assign ( const matrix_expression< AE > &  ae)
inline
template<class T , class L , class A >
BOOST_UBLAS_INLINE iterator1 boost::numeric::ublas::mapped_matrix< T, L, A >::begin1 ( )
inline
template<class T , class L , class A >
BOOST_UBLAS_INLINE iterator2 boost::numeric::ublas::mapped_matrix< T, L, A >::begin2 ( )
inline
template<class T , class L , class A >
BOOST_UBLAS_INLINE const_iterator1 boost::numeric::ublas::mapped_matrix< T, L, A >::cbegin1 ( ) const
inline
template<class T , class L , class A >
BOOST_UBLAS_INLINE const_iterator2 boost::numeric::ublas::mapped_matrix< T, L, A >::cbegin2 ( ) const
inline
template<class T , class L , class A >
BOOST_UBLAS_INLINE const_iterator1 boost::numeric::ublas::mapped_matrix< T, L, A >::cend1 ( ) const
inline
template<class T , class L , class A >
BOOST_UBLAS_INLINE const_iterator2 boost::numeric::ublas::mapped_matrix< T, L, A >::cend2 ( ) const
inline
template<class T , class L , class A >
BOOST_UBLAS_INLINE void boost::numeric::ublas::mapped_matrix< T, L, A >::clear ( void  )
inline
template<class T , class L , class A >
BOOST_UBLAS_INLINE const_reverse_iterator1 boost::numeric::ublas::mapped_matrix< T, L, A >::crbegin1 ( ) const
inline
template<class T , class L , class A >
BOOST_UBLAS_INLINE const_reverse_iterator2 boost::numeric::ublas::mapped_matrix< T, L, A >::crbegin2 ( ) const
inline
template<class T , class L , class A >
BOOST_UBLAS_INLINE const_reverse_iterator1 boost::numeric::ublas::mapped_matrix< T, L, A >::crend1 ( ) const
inline
template<class T , class L , class A >
BOOST_UBLAS_INLINE const_reverse_iterator2 boost::numeric::ublas::mapped_matrix< T, L, A >::crend2 ( ) const
inline
template<class T , class L , class A >
BOOST_UBLAS_INLINE array_type& boost::numeric::ublas::mapped_matrix< T, L, A >::data ( )
inline
template<class T , class L , class A >
BOOST_UBLAS_INLINE iterator1 boost::numeric::ublas::mapped_matrix< T, L, A >::end1 ( )
inline
template<class T , class L , class A >
BOOST_UBLAS_INLINE iterator2 boost::numeric::ublas::mapped_matrix< T, L, A >::end2 ( )
inline
template<class T , class L , class A >
BOOST_UBLAS_INLINE void boost::numeric::ublas::mapped_matrix< T, L, A >::erase_element ( size_type  i,
size_type  j 
)
inline
template<class T , class L , class A >
iterator2 boost::numeric::ublas::mapped_matrix< T, L, A >::find2 ( int  rank,
size_type  i,
size_type  j,
int  direction = 1 
)
inline
template<class T , class L , class A >
BOOST_UBLAS_INLINE pointer boost::numeric::ublas::mapped_matrix< T, L, A >::find_element ( size_type  i,
size_type  j 
)
inline
template<class T , class L , class A >
BOOST_UBLAS_INLINE const_pointer boost::numeric::ublas::mapped_matrix< T, L, A >::find_element ( size_type  i,
size_type  j 
) const
inline
template<class T , class L , class A >
template<class AE >
BOOST_UBLAS_INLINE mapped_matrix& boost::numeric::ublas::mapped_matrix< T, L, A >::minus_assign ( const matrix_expression< AE > &  ae)
inline
template<class T , class L , class A >
BOOST_UBLAS_INLINE size_type boost::numeric::ublas::mapped_matrix< T, L, A >::nnz ( ) const
inline
template<class T , class L , class A >
BOOST_UBLAS_INLINE size_type boost::numeric::ublas::mapped_matrix< T, L, A >::nnz_capacity ( ) const
inline
template<class T , class L , class A >
BOOST_UBLAS_INLINE const_reference boost::numeric::ublas::mapped_matrix< T, L, A >::operator() ( size_type  i,
size_type  j 
) const
inline
template<class T , class L , class A >
BOOST_UBLAS_INLINE reference boost::numeric::ublas::mapped_matrix< T, L, A >::operator() ( size_type  i,
size_type  j 
)
inline
BOOST_UBLAS_INLINE const container_type& boost::numeric::ublas::matrix_container< mapped_matrix< T, L, A > >::operator() ( ) const
inlineinherited
BOOST_UBLAS_INLINE container_type& boost::numeric::ublas::matrix_container< mapped_matrix< T, L, A > >::operator() ( )
inlineinherited
template<class T , class L , class A >
template<class AT >
BOOST_UBLAS_INLINE mapped_matrix& boost::numeric::ublas::mapped_matrix< T, L, A >::operator*= ( const AT &  at)
inline

References boost::xpressive::at.

template<class T , class L , class A >
template<class C >
BOOST_UBLAS_INLINE mapped_matrix& boost::numeric::ublas::mapped_matrix< T, L, A >::operator+= ( const matrix_container< C > &  m)
inline
template<class T , class L , class A >
template<class C >
BOOST_UBLAS_INLINE mapped_matrix& boost::numeric::ublas::mapped_matrix< T, L, A >::operator-= ( const matrix_container< C > &  m)
inline
template<class T , class L , class A >
template<class AT >
BOOST_UBLAS_INLINE mapped_matrix& boost::numeric::ublas::mapped_matrix< T, L, A >::operator/= ( const AT &  at)
inline

References boost::xpressive::at.

template<class T , class L , class A >
BOOST_UBLAS_INLINE mapped_matrix& boost::numeric::ublas::mapped_matrix< T, L, A >::operator= ( const mapped_matrix< T, L, A > &  m)
inline
template<class T , class L , class A >
template<class AE >
BOOST_UBLAS_INLINE mapped_matrix& boost::numeric::ublas::mapped_matrix< T, L, A >::plus_assign ( const matrix_expression< AE > &  ae)
inline
template<class T , class L , class A >
BOOST_UBLAS_INLINE const_reverse_iterator1 boost::numeric::ublas::mapped_matrix< T, L, A >::rbegin1 ( ) const
inline
template<class T , class L , class A >
BOOST_UBLAS_INLINE reverse_iterator1 boost::numeric::ublas::mapped_matrix< T, L, A >::rbegin1 ( )
inline
template<class T , class L , class A >
BOOST_UBLAS_INLINE const_reverse_iterator2 boost::numeric::ublas::mapped_matrix< T, L, A >::rbegin2 ( ) const
inline
template<class T , class L , class A >
BOOST_UBLAS_INLINE reverse_iterator2 boost::numeric::ublas::mapped_matrix< T, L, A >::rbegin2 ( )
inline
template<class T , class L , class A >
BOOST_UBLAS_INLINE const_reverse_iterator1 boost::numeric::ublas::mapped_matrix< T, L, A >::rend1 ( ) const
inline
template<class T , class L , class A >
BOOST_UBLAS_INLINE reverse_iterator1 boost::numeric::ublas::mapped_matrix< T, L, A >::rend1 ( )
inline
template<class T , class L , class A >
BOOST_UBLAS_INLINE const_reverse_iterator2 boost::numeric::ublas::mapped_matrix< T, L, A >::rend2 ( ) const
inline
template<class T , class L , class A >
BOOST_UBLAS_INLINE reverse_iterator2 boost::numeric::ublas::mapped_matrix< T, L, A >::rend2 ( )
inline
template<class T , class L , class A >
BOOST_UBLAS_INLINE void boost::numeric::ublas::mapped_matrix< T, L, A >::reserve ( size_type  non_zeros,
bool  preserve = true 
)
inline
template<class T , class L , class A >
template<class Archive >
void boost::numeric::ublas::mapped_matrix< T, L, A >::serialize ( Archive &  ar,
const unsigned  int 
)
inline
template<class T , class L , class A >
BOOST_UBLAS_INLINE void boost::numeric::ublas::mapped_matrix< T, L, A >::swap ( mapped_matrix< T, L, A > &  m)
inline

Friends And Related Function Documentation

template<class T , class L , class A >
BOOST_UBLAS_INLINE friend void swap ( mapped_matrix< T, L, A > &  m1,
mapped_matrix< T, L, A > &  m2 
)
friend

Member Data Documentation

const unsigned boost::numeric::ublas::matrix_container< mapped_matrix< T, L, A > >::complexity
staticinherited

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