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

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...

#include <vector_proxy.hpp>

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

List of all members.

Classes

class  const_iterator
class  iterator

Public Types

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

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)
template<class AE >
BOOST_UBLAS_INLINE vector_sliceassign (const vector_expression< AE > &ae)
BOOST_UBLAS_INLINE vector_sliceassign_temporary (vector_slice &vs)
BOOST_UBLAS_INLINE const_iterator begin () const
BOOST_UBLAS_INLINE iterator begin ()
BOOST_UBLAS_INLINE const
vector_closure_type
data () const
BOOST_UBLAS_INLINE
vector_closure_type
data ()
BOOST_UBLAS_INLINE iterator end ()
BOOST_UBLAS_INLINE const_iterator end () const
BOOST_UBLAS_INLINE const_iterator find (size_type i) const
BOOST_UBLAS_INLINE iterator find (size_type i)
template<class AE >
BOOST_UBLAS_INLINE vector_sliceminus_assign (const vector_expression< AE > &ae)
BOOST_UBLAS_INLINE const_reference operator() (size_type i) const
BOOST_UBLAS_INLINE reference operator() (size_type i)
BOOST_UBLAS_INLINE const
expression_type
operator() () const
BOOST_UBLAS_INLINE
expression_type
operator() ()
template<class AT >
BOOST_UBLAS_INLINE vector_sliceoperator*= (const AT &at)
template<class AE >
BOOST_UBLAS_INLINE vector_sliceoperator+= (const vector_expression< AE > &ae)
template<class AE >
BOOST_UBLAS_INLINE vector_sliceoperator-= (const vector_expression< AE > &ae)
template<class AT >
BOOST_UBLAS_INLINE vector_sliceoperator/= (const AT &at)
template<class AE >
BOOST_UBLAS_INLINE vector_sliceoperator= (const vector_expression< AE > &ae)
BOOST_UBLAS_INLINE vector_sliceoperator= (const vector_slice &vs)
BOOST_UBLAS_INLINE bool operator== (const vector_slice &vs) const
BOOST_UBLAS_INLINE reference operator[] (size_type i)
BOOST_UBLAS_INLINE const_reference operator[] (size_type i) const
template<class AE >
BOOST_UBLAS_INLINE vector_sliceplus_assign (const vector_expression< AE > &ae)
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
const_reverse_iterator 
rbegin () const
BOOST_UBLAS_INLINE reverse_iterator rbegin ()
BOOST_UBLAS_INLINE
const_reverse_iterator 
rend () const
BOOST_UBLAS_INLINE reverse_iterator rend ()
BOOST_UBLAS_INLINE bool same_closure (const vector_slice &vr) const
BOOST_UBLAS_INLINE size_type size () const
BOOST_UBLAS_INLINE size_type start () const
BOOST_UBLAS_INLINE difference_type stride () const
BOOST_UBLAS_INLINE void swap (vector_slice vs)

Static Public Attributes

static const unsigned complexity

Private Types

typedef slice_type::const_iterator const_subiterator_type
typedef vector_slice< V > self_type
typedef slice_type::const_iterator subiterator_type

Private Attributes

vector_closure_type data_
slice_type s_

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 referencing a non continuous subvector of elements of vector v containing all elements specified by slice.

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:
Vthe type of vector referenced (for example vector<double>)

Definition at line 588 of file vector_proxy.hpp.


Member Typedef Documentation

template<class V>
typedef vector_slice<V> boost::numeric::ublas::vector_slice< V >::self_type [private]

Definition at line 591 of file vector_proxy.hpp.

template<class V>
typedef const V boost::numeric::ublas::vector_slice< V >::const_vector_type

Definition at line 596 of file vector_proxy.hpp.

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

Definition at line 597 of file vector_proxy.hpp.

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

Definition at line 598 of file vector_proxy.hpp.

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

Definition at line 599 of file vector_proxy.hpp.

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

Definition at line 600 of file vector_proxy.hpp.

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

Definition at line 601 of file vector_proxy.hpp.

template<class V>
typedef boost::mpl::if_<boost::is_const<V>, typename V::const_reference, typename V::reference>::type boost::numeric::ublas::vector_slice< V >::reference

Definition at line 604 of file vector_proxy.hpp.

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_slice< V >::vector_closure_type

Definition at line 607 of file vector_proxy.hpp.

Definition at line 608 of file vector_proxy.hpp.

Definition at line 609 of file vector_proxy.hpp.

template<class V>
typedef const self_type boost::numeric::ublas::vector_slice< V >::const_closure_type

Definition at line 610 of file vector_proxy.hpp.

Definition at line 611 of file vector_proxy.hpp.

template<class V>
typedef storage_restrict_traits<typename V::storage_category, dense_proxy_tag>::storage_category boost::numeric::ublas::vector_slice< V >::storage_category

Definition at line 613 of file vector_proxy.hpp.

template<class V>
typedef slice_type::const_iterator boost::numeric::ublas::vector_slice< V >::const_subiterator_type [private]

Definition at line 790 of file vector_proxy.hpp.

template<class V>
typedef slice_type::const_iterator boost::numeric::ublas::vector_slice< V >::subiterator_type [private]

Definition at line 791 of file vector_proxy.hpp.

Definition at line 1026 of file vector_proxy.hpp.


Constructor & Destructor Documentation

template<class V>
BOOST_UBLAS_INLINE boost::numeric::ublas::vector_slice< V >::vector_slice ( vector_type data,
const slice_type s 
) [inline]

Definition at line 617 of file vector_proxy.hpp.

template<class V>
BOOST_UBLAS_INLINE boost::numeric::ublas::vector_slice< V >::vector_slice ( const vector_closure_type data,
const slice_type s,
int   
) [inline]

Definition at line 624 of file vector_proxy.hpp.


Member Function Documentation

template<class V>
BOOST_UBLAS_INLINE size_type boost::numeric::ublas::vector_slice< V >::start ( ) const [inline]

Definition at line 633 of file vector_proxy.hpp.

template<class V>
BOOST_UBLAS_INLINE difference_type boost::numeric::ublas::vector_slice< V >::stride ( ) const [inline]

Definition at line 637 of file vector_proxy.hpp.

template<class V>
BOOST_UBLAS_INLINE size_type boost::numeric::ublas::vector_slice< V >::size ( ) const [inline]

Definition at line 641 of file vector_proxy.hpp.

template<class V>
BOOST_UBLAS_INLINE const vector_closure_type& boost::numeric::ublas::vector_slice< V >::data ( ) const [inline]

Definition at line 647 of file vector_proxy.hpp.

template<class V>
BOOST_UBLAS_INLINE vector_closure_type& boost::numeric::ublas::vector_slice< V >::data ( ) [inline]

Definition at line 651 of file vector_proxy.hpp.

template<class V>
BOOST_UBLAS_INLINE const_reference boost::numeric::ublas::vector_slice< V >::operator() ( size_type  i) const [inline]

Definition at line 658 of file vector_proxy.hpp.

template<class V>
BOOST_UBLAS_INLINE reference boost::numeric::ublas::vector_slice< V >::operator() ( size_type  i) [inline]

Definition at line 662 of file vector_proxy.hpp.

template<class V>
BOOST_UBLAS_INLINE const_reference boost::numeric::ublas::vector_slice< V >::operator[] ( size_type  i) const [inline]

Definition at line 667 of file vector_proxy.hpp.

template<class V>
BOOST_UBLAS_INLINE reference boost::numeric::ublas::vector_slice< V >::operator[] ( size_type  i) [inline]

Definition at line 671 of file vector_proxy.hpp.

template<class V>
BOOST_UBLAS_INLINE vector_slice<vector_type> boost::numeric::ublas::vector_slice< V >::project ( const range_type r) const [inline]

Definition at line 690 of file vector_proxy.hpp.

template<class V>
BOOST_UBLAS_INLINE vector_slice<vector_type> boost::numeric::ublas::vector_slice< V >::project ( const slice_type s) const [inline]

Definition at line 694 of file vector_proxy.hpp.

template<class V>
BOOST_UBLAS_INLINE vector_slice& boost::numeric::ublas::vector_slice< V >::operator= ( const vector_slice< V > &  vs) [inline]

Definition at line 700 of file vector_proxy.hpp.

template<class V>
BOOST_UBLAS_INLINE vector_slice& boost::numeric::ublas::vector_slice< V >::assign_temporary ( vector_slice< V > &  vs) [inline]

Definition at line 706 of file vector_proxy.hpp.

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

Definition at line 713 of file vector_proxy.hpp.

template<class V>
template<class AE >
BOOST_UBLAS_INLINE vector_slice& boost::numeric::ublas::vector_slice< V >::assign ( const vector_expression< AE > &  ae) [inline]

Definition at line 719 of file vector_proxy.hpp.

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

Definition at line 725 of file vector_proxy.hpp.

template<class V>
template<class AE >
BOOST_UBLAS_INLINE vector_slice& boost::numeric::ublas::vector_slice< V >::plus_assign ( const vector_expression< AE > &  ae) [inline]

Definition at line 731 of file vector_proxy.hpp.

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

Definition at line 737 of file vector_proxy.hpp.

template<class V>
template<class AE >
BOOST_UBLAS_INLINE vector_slice& boost::numeric::ublas::vector_slice< V >::minus_assign ( const vector_expression< AE > &  ae) [inline]

Definition at line 743 of file vector_proxy.hpp.

template<class V>
template<class AT >
BOOST_UBLAS_INLINE vector_slice& boost::numeric::ublas::vector_slice< V >::operator*= ( const AT &  at) [inline]

Definition at line 749 of file vector_proxy.hpp.

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

Definition at line 755 of file vector_proxy.hpp.

template<class V>
BOOST_UBLAS_INLINE bool boost::numeric::ublas::vector_slice< V >::same_closure ( const vector_slice< V > &  vr) const [inline]

Definition at line 762 of file vector_proxy.hpp.

template<class V>
BOOST_UBLAS_INLINE bool boost::numeric::ublas::vector_slice< V >::operator== ( const vector_slice< V > &  vs) const [inline]

Definition at line 768 of file vector_proxy.hpp.

template<class V>
BOOST_UBLAS_INLINE void boost::numeric::ublas::vector_slice< V >::swap ( vector_slice< V >  vs) [inline]

Definition at line 774 of file vector_proxy.hpp.

template<class V>
BOOST_UBLAS_INLINE const_iterator boost::numeric::ublas::vector_slice< V >::find ( size_type  i) const [inline]

Definition at line 806 of file vector_proxy.hpp.

template<class V>
BOOST_UBLAS_INLINE iterator boost::numeric::ublas::vector_slice< V >::find ( size_type  i) [inline]

Definition at line 814 of file vector_proxy.hpp.

template<class V>
BOOST_UBLAS_INLINE const_iterator boost::numeric::ublas::vector_slice< V >::begin ( ) const [inline]

Definition at line 915 of file vector_proxy.hpp.

template<class V>
BOOST_UBLAS_INLINE const_iterator boost::numeric::ublas::vector_slice< V >::end ( ) const [inline]

Definition at line 919 of file vector_proxy.hpp.

template<class V>
BOOST_UBLAS_INLINE iterator boost::numeric::ublas::vector_slice< V >::begin ( ) [inline]

Definition at line 1016 of file vector_proxy.hpp.

template<class V>
BOOST_UBLAS_INLINE iterator boost::numeric::ublas::vector_slice< V >::end ( ) [inline]

Definition at line 1020 of file vector_proxy.hpp.

template<class V>
BOOST_UBLAS_INLINE const_reverse_iterator boost::numeric::ublas::vector_slice< V >::rbegin ( ) const [inline]

Definition at line 1029 of file vector_proxy.hpp.

template<class V>
BOOST_UBLAS_INLINE const_reverse_iterator boost::numeric::ublas::vector_slice< V >::rend ( ) const [inline]

Definition at line 1033 of file vector_proxy.hpp.

template<class V>
BOOST_UBLAS_INLINE reverse_iterator boost::numeric::ublas::vector_slice< V >::rbegin ( ) [inline]

Definition at line 1037 of file vector_proxy.hpp.

template<class V>
BOOST_UBLAS_INLINE reverse_iterator boost::numeric::ublas::vector_slice< V >::rend ( ) [inline]

Definition at line 1041 of file vector_proxy.hpp.

BOOST_UBLAS_INLINE const expression_type& boost::numeric::ublas::vector_expression< vector_slice< V > >::operator() ( ) const [inline, inherited]

Definition at line 194 of file expression_types.hpp.

BOOST_UBLAS_INLINE expression_type& boost::numeric::ublas::vector_expression< vector_slice< V > >::operator() ( ) [inline, inherited]

Definition at line 198 of file expression_types.hpp.


Friends And Related Function Documentation

template<class V>
BOOST_UBLAS_INLINE friend void swap ( vector_slice< V >  vs1,
vector_slice< V >  vs2 
) [friend]

Definition at line 783 of file vector_proxy.hpp.


Member Data Documentation

Definition at line 1046 of file vector_proxy.hpp.

template<class V>
slice_type boost::numeric::ublas::vector_slice< V >::s_ [private]

Definition at line 1047 of file vector_proxy.hpp.

const unsigned boost::numeric::ublas::vector_expression< vector_slice< V > >::complexity [static, inherited]

Definition at line 186 of file expression_types.hpp.


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