Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

Click here to view the latest version of this page.

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

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

Inherits matrix_container< mapped_matrix< T, L, A > >.

List of all members.

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 T & const_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

Public Member Functions

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_type & data ()
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 end1 () const
BOOST_UBLAS_INLINE iterator1 begin1 ()
BOOST_UBLAS_INLINE iterator1 end1 ()
BOOST_UBLAS_INLINE const_iterator2 begin2 () const
BOOST_UBLAS_INLINE const_iterator2 end2 () 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 
rend1 () 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 
rend2 () const
BOOST_UBLAS_INLINE
reverse_iterator2 
rbegin2 ()
BOOST_UBLAS_INLINE
reverse_iterator2 
rend2 ()
template<class Archive >
void serialize (Archive &ar, const unsigned int)

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 >

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:
T the type of object stored in the matrix (like double, float, complex, etc...)
L the storage organization. It can be either row_major or column_major. By default it is row_major

Generated on Sun Jul 4 20:31:07 2010 for ublas by  doxygen 1.6.1