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::vector_range< V > Class Template Reference

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

#include <vector_proxy.hpp>

Inheritance diagram for boost::numeric::ublas::vector_range< V >:
Collaboration diagram for boost::numeric::ublas::vector_range< V >:

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 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
 
typedef vector_range< V > expression_type
 
typedef vector_tag type_category
 

Public Member Functions

BOOST_UBLAS_INLINE vector_range (vector_type &data, const range_type &r)
 
BOOST_UBLAS_INLINE vector_range (const vector_closure_type &data, const range_type &r, bool)
 
BOOST_UBLAS_INLINE size_type start () 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_range< vector_type
project (const range_type &r) const
 
BOOST_UBLAS_INLINE vector_rangeoperator= (const vector_range &vr)
 
BOOST_UBLAS_INLINE vector_rangeassign_temporary (vector_range &vr)
 
template<class AE >
BOOST_UBLAS_INLINE vector_rangeoperator= (const vector_expression< AE > &ae)
 
template<class AE >
BOOST_UBLAS_INLINE vector_rangeassign (const vector_expression< AE > &ae)
 
template<class AE >
BOOST_UBLAS_INLINE vector_rangeoperator+= (const vector_expression< AE > &ae)
 
template<class AE >
BOOST_UBLAS_INLINE vector_rangeplus_assign (const vector_expression< AE > &ae)
 
template<class AE >
BOOST_UBLAS_INLINE vector_rangeoperator-= (const vector_expression< AE > &ae)
 
template<class AE >
BOOST_UBLAS_INLINE vector_rangeminus_assign (const vector_expression< AE > &ae)
 
template<class AT >
BOOST_UBLAS_INLINE vector_rangeoperator*= (const AT &at)
 
template<class AT >
BOOST_UBLAS_INLINE vector_rangeoperator/= (const AT &at)
 
BOOST_UBLAS_INLINE bool same_closure (const vector_range &vr) const
 
BOOST_UBLAS_INLINE bool operator== (const vector_range &vr) const
 
BOOST_UBLAS_INLINE void swap (vector_range vr)
 
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 cbegin () const
 
BOOST_UBLAS_INLINE const_iterator end () const
 
BOOST_UBLAS_INLINE const_iterator cend () 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 
crbegin () const
 
BOOST_UBLAS_INLINE
const_reverse_iterator 
rend () const
 
BOOST_UBLAS_INLINE
const_reverse_iterator 
crend () const
 
BOOST_UBLAS_INLINE reverse_iterator rbegin ()
 
BOOST_UBLAS_INLINE reverse_iterator rend ()
 
BOOST_UBLAS_INLINE const
expression_type
operator() () const
 
BOOST_UBLAS_INLINE
expression_type
operator() ()
 

Static Public Attributes

static const unsigned complexity
 

Friends

BOOST_UBLAS_INLINE friend void swap (vector_range vr1, vector_range vr2)
 

Detailed Description

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

A vector referencing a continuous subvector of elements of vector v containing all elements specified by range.

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

Template Parameters
Vthe type of vector referenced (for example vector<double>)

Member Typedef Documentation

template<class V>
typedef const self_type boost::numeric::ublas::vector_range< V >::const_closure_type
template<class V>
typedef V::const_reference boost::numeric::ublas::vector_range< V >::const_reference
template<class V>
typedef reverse_iterator_base<const_iterator> boost::numeric::ublas::vector_range< V >::const_reverse_iterator
template<class V>
typedef const V boost::numeric::ublas::vector_range< V >::const_vector_type
template<class V>
typedef V::difference_type boost::numeric::ublas::vector_range< V >::difference_type
template<class V>
typedef boost::mpl::if_<boost::is_const<V>, typename V::const_reference, typename V::reference>::type boost::numeric::ublas::vector_range< V >::reference
template<class V>
typedef reverse_iterator_base<iterator> boost::numeric::ublas::vector_range< V >::reverse_iterator
template<class V>
typedef V::size_type boost::numeric::ublas::vector_range< V >::size_type
template<class V>
typedef storage_restrict_traits<typename V::storage_category, dense_proxy_tag>::storage_category boost::numeric::ublas::vector_range< V >::storage_category
template<class V>
typedef V::value_type boost::numeric::ublas::vector_range< V >::value_type
template<class V>
typedef boost::mpl::if_<boost::is_const<V>, typename V::const_closure_type, typename V::closure_type>::type boost::numeric::ublas::vector_range< V >::vector_closure_type
template<class V>
typedef V boost::numeric::ublas::vector_range< V >::vector_type

Constructor & Destructor Documentation

template<class V>
BOOST_UBLAS_INLINE boost::numeric::ublas::vector_range< V >::vector_range ( vector_type data,
const range_type r 
)
inline
template<class V>
BOOST_UBLAS_INLINE boost::numeric::ublas::vector_range< V >::vector_range ( const vector_closure_type data,
const range_type r,
bool   
)
inline

Member Function Documentation

template<class V>
template<class AE >
BOOST_UBLAS_INLINE vector_range& boost::numeric::ublas::vector_range< V >::assign ( const vector_expression< AE > &  ae)
inline
template<class V>
BOOST_UBLAS_INLINE vector_range& boost::numeric::ublas::vector_range< V >::assign_temporary ( vector_range< V > &  vr)
inline
template<class V>
BOOST_UBLAS_INLINE iterator boost::numeric::ublas::vector_range< V >::begin ( void  )
inline
template<class V>
BOOST_UBLAS_INLINE const_iterator boost::numeric::ublas::vector_range< V >::cbegin ( ) const
inline
template<class V>
BOOST_UBLAS_INLINE const_iterator boost::numeric::ublas::vector_range< V >::cend ( ) const
inline
template<class V>
BOOST_UBLAS_INLINE const_reverse_iterator boost::numeric::ublas::vector_range< V >::crbegin ( ) const
inline
template<class V>
BOOST_UBLAS_INLINE const_reverse_iterator boost::numeric::ublas::vector_range< V >::crend ( ) const
inline
template<class V>
BOOST_UBLAS_INLINE const vector_closure_type& boost::numeric::ublas::vector_range< V >::data ( ) const
inline
template<class V>
BOOST_UBLAS_INLINE vector_closure_type& boost::numeric::ublas::vector_range< V >::data ( )
inline
template<class V>
template<class AE >
BOOST_UBLAS_INLINE vector_range& boost::numeric::ublas::vector_range< V >::minus_assign ( const vector_expression< AE > &  ae)
inline
template<class V>
BOOST_UBLAS_INLINE const_reference boost::numeric::ublas::vector_range< V >::operator() ( size_type  i) const
inline
template<class V>
BOOST_UBLAS_INLINE reference boost::numeric::ublas::vector_range< V >::operator() ( size_type  i)
inline
BOOST_UBLAS_INLINE const expression_type& boost::numeric::ublas::vector_expression< vector_range< V > >::operator() ( ) const
inlineinherited
BOOST_UBLAS_INLINE expression_type& boost::numeric::ublas::vector_expression< vector_range< V > >::operator() ( )
inlineinherited
template<class V>
template<class AT >
BOOST_UBLAS_INLINE vector_range& boost::numeric::ublas::vector_range< V >::operator*= ( const AT &  at)
inline

References boost::xpressive::at.

template<class V>
template<class AE >
BOOST_UBLAS_INLINE vector_range& boost::numeric::ublas::vector_range< V >::operator+= ( const vector_expression< AE > &  ae)
inline

References boost::detail::type.

template<class V>
template<class AE >
BOOST_UBLAS_INLINE vector_range& boost::numeric::ublas::vector_range< V >::operator-= ( const vector_expression< AE > &  ae)
inline

References boost::detail::type.

template<class V>
template<class AT >
BOOST_UBLAS_INLINE vector_range& boost::numeric::ublas::vector_range< V >::operator/= ( const AT &  at)
inline

References boost::xpressive::at.

template<class V>
BOOST_UBLAS_INLINE vector_range& boost::numeric::ublas::vector_range< V >::operator= ( const vector_range< V > &  vr)
inline

References boost::detail::type.

template<class V>
template<class AE >
BOOST_UBLAS_INLINE vector_range& boost::numeric::ublas::vector_range< V >::operator= ( const vector_expression< AE > &  ae)
inline

References boost::detail::type.

template<class V>
BOOST_UBLAS_INLINE bool boost::numeric::ublas::vector_range< V >::operator== ( const vector_range< V > &  vr) const
inline
template<class V>
BOOST_UBLAS_INLINE const_reference boost::numeric::ublas::vector_range< V >::operator[] ( size_type  i) const
inline
template<class V>
BOOST_UBLAS_INLINE reference boost::numeric::ublas::vector_range< V >::operator[] ( size_type  i)
inline
template<class V>
template<class AE >
BOOST_UBLAS_INLINE vector_range& boost::numeric::ublas::vector_range< V >::plus_assign ( const vector_expression< AE > &  ae)
inline
template<class V>
BOOST_UBLAS_INLINE reverse_iterator boost::numeric::ublas::vector_range< V >::rbegin ( )
inline
template<class V>
BOOST_UBLAS_INLINE reverse_iterator boost::numeric::ublas::vector_range< V >::rend ( )
inline
template<class V>
BOOST_UBLAS_INLINE void boost::numeric::ublas::vector_range< V >::swap ( vector_range< V >  vr)
inline

Friends And Related Function Documentation

template<class V>
BOOST_UBLAS_INLINE friend void swap ( vector_range< V >  vr1,
vector_range< V >  vr2 
)
friend

Member Data Documentation

const unsigned boost::numeric::ublas::vector_expression< vector_range< V > >::complexity
staticinherited

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