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

This is an old version of boost. Click here for the latest version's documentation home page.

boost::numeric::ublas::vector_slice< V > Class Template Reference

A vector referencing a non continuous subvector of elements of vector v containing all elements specified by slice. More...

Inherits vector_expression< vector_slice< V > >.

List of all members.

Classes

class  const_iterator
class  iterator

Public Types

typedef const V const_vector_type
typedef V vector_type
typedef V::size_type size_type
typedef V::difference_type difference_type
typedef V::value_type value_type
typedef V::const_reference const_reference
typedef boost::mpl::if_
< boost::is_const< V >
, typename V::const_reference,
typename V::reference >::type 
reference
typedef boost::mpl::if_
< boost::is_const< V >
, typename
V::const_closure_type,
typename V::closure_type >
::type 
vector_closure_type
typedef basic_range< size_type,
difference_type > 
range_type
typedef basic_slice< size_type,
difference_type > 
slice_type
typedef const self_type const_closure_type
typedef self_type closure_type
typedef
storage_restrict_traits
< typename V::storage_category,
dense_proxy_tag >
::storage_category 
storage_category
typedef reverse_iterator_base
< const_iterator
const_reverse_iterator
typedef reverse_iterator_base
< iterator
reverse_iterator

Public Member Functions

BOOST_UBLAS_INLINE vector_slice (vector_type &data, const slice_type &s)
BOOST_UBLAS_INLINE vector_slice (const vector_closure_type &data, const slice_type &s, int)
BOOST_UBLAS_INLINE size_type start () const
BOOST_UBLAS_INLINE difference_type stride () const
BOOST_UBLAS_INLINE size_type size () const
BOOST_UBLAS_INLINE const
vector_closure_type & 
data () const
BOOST_UBLAS_INLINE
vector_closure_type & 
data ()
BOOST_UBLAS_INLINE const_reference operator() (size_type i) const
BOOST_UBLAS_INLINE reference operator() (size_type i)
BOOST_UBLAS_INLINE const_reference operator[] (size_type i) const
BOOST_UBLAS_INLINE reference operator[] (size_type i)
BOOST_UBLAS_INLINE
vector_slice< vector_type > 
project (const range_type &r) const
BOOST_UBLAS_INLINE
vector_slice< vector_type > 
project (const slice_type &s) const
BOOST_UBLAS_INLINE vector_sliceoperator= (const vector_slice &vs)
BOOST_UBLAS_INLINE vector_sliceassign_temporary (vector_slice &vs)
template<class AE >
BOOST_UBLAS_INLINE vector_sliceoperator= (const vector_expression< AE > &ae)
template<class AE >
BOOST_UBLAS_INLINE vector_sliceassign (const vector_expression< AE > &ae)
template<class AE >
BOOST_UBLAS_INLINE vector_sliceoperator+= (const vector_expression< AE > &ae)
template<class AE >
BOOST_UBLAS_INLINE vector_sliceplus_assign (const vector_expression< AE > &ae)
template<class AE >
BOOST_UBLAS_INLINE vector_sliceoperator-= (const vector_expression< AE > &ae)
template<class AE >
BOOST_UBLAS_INLINE vector_sliceminus_assign (const vector_expression< AE > &ae)
template<class AT >
BOOST_UBLAS_INLINE vector_sliceoperator*= (const AT &at)
template<class AT >
BOOST_UBLAS_INLINE vector_sliceoperator/= (const AT &at)
BOOST_UBLAS_INLINE bool same_closure (const vector_slice &vr) const
BOOST_UBLAS_INLINE bool operator== (const vector_slice &vs) const
BOOST_UBLAS_INLINE void swap (vector_slice vs)
BOOST_UBLAS_INLINE const_iterator find (size_type i) const
BOOST_UBLAS_INLINE iterator find (size_type i)
BOOST_UBLAS_INLINE const_iterator begin () const
BOOST_UBLAS_INLINE const_iterator end () const
BOOST_UBLAS_INLINE iterator begin ()
BOOST_UBLAS_INLINE iterator end ()
BOOST_UBLAS_INLINE
const_reverse_iterator 
rbegin () const
BOOST_UBLAS_INLINE
const_reverse_iterator 
rend () const
BOOST_UBLAS_INLINE reverse_iterator rbegin ()
BOOST_UBLAS_INLINE reverse_iterator rend ()

Friends

BOOST_UBLAS_INLINE friend void swap (vector_slice vs1, vector_slice vs2)

Detailed Description

template<class V>
class boost::numeric::ublas::vector_slice< V >

A vector slice can be used as a normal vector in any expression. If the specified slice falls outside that of the index slice of the vector, then the vector_slice is not a well formed Vector Expression and access to an element outside of index slice of the vector is undefined.

A slice is a generalization of a range. In a range going from $a$ to $b$, all elements belong to the range. In a slice, a $step$ can be specified meaning to take one element over $step$ in the range specified from $a$ to $b$. Obviously, a slice with a $step$ of 1 is equivalent to a range.

Template Parameters:
V the type of vector referenced (for example vector<double>)

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