concepts::_HashedSMatrix_iterator< _Tp, _Ref, _Ptr > Class Template Reference

STL like iterator for hashed sparse matrices. More...

#include <hashedSMatrixIterator.hh>

Inheritance diagram for concepts::_HashedSMatrix_iterator< _Tp, _Ref, _Ptr >:
concepts::_Matrix_iterator_base< _Tp, _Ref, _Ptr > concepts::OutputOperator

Classes

struct  MatrixType
 Non-constant matrix for non-constant iterator. More...
 
struct  MatrixType< _Tp_, const _Tp_ &, const _Tp_ * >
 Constant matrix for constant iterator. More...
 

Public Types

typedef _Matrix_iterator_base< _Tp, _Ref, _Ptr > _Base
 
typedef _HashedSMatrix_iterator _Self
 
typedef _HashedSMatrix_iterator< _Tp, const _Tp &, const _Tp * > const_iterator
 
typedef ptrdiff_t difference_type
 
typedef _HashedSMatrix_iterator< _Tp, _Tp &, _Tp * > iterator
 
typedef std::forward_iterator_tag iterator_category
 
typedef MatrixType< _Tp, _Ref, _Ptr >::type matrix_type
 
typedef _Ptr pointer
 
typedef _Ref reference
 
typedef _Base::return_type return_type
 
typedef size_t size_type
 
typedef _Tp value_type
 

Public Member Functions

 _HashedSMatrix_iterator ()
 Constructor. Iterator stands at the end of any matrix. More...
 
template<class _RefR , class _PtrR >
 _HashedSMatrix_iterator (const _HashedSMatrix_iterator< _Tp, _RefR, _PtrR > &__x)
 Copy constructor. Also from iterator to constant iterator. More...
 
 _HashedSMatrix_iterator (matrix_type &m, const unsigned int r=0)
 Constructor. More...
 
unsigned int col () const
 Column. More...
 
int hashBits () const
 
bool last () const
 Returns true, if iterator is behind the last entry. More...
 
const unsigned int nofCols () const
 Number of columns. More...
 
int nofPages () const
 
const unsigned int nofRows () const
 Number of rows. More...
 
reference operator* () const
 Dereferencation. More...
 
_Selfoperator++ ()
 Pre-increment operator. More...
 
_Self operator++ (int)
 Post-increment operator. More...
 
pointer operator-> () const
 Returns a pointer to the value. More...
 
template<class _RefR , class _PtrR >
_Selfoperator= (const _HashedSMatrix_iterator< _Tp, _RefR, _PtrR > &__x)
 Assignment. More...
 
int p () const
 
HashedSparseMatrix< _Tp >::Value ** page () const
 
int pNextRow () const
 
_Self post_increment ()
 Post-increment operator, exportable to Python. More...
 
int pPerRow () const
 
_Self pre_increment ()
 Pre-increment operator, exportable to Python. More...
 
unsigned int row () const
 Row. More...
 
HashedSparseMatrix< _Tp >::Value * v () const
 Data defining the position of the iterator. More...
 

Protected Member Functions

virtual std::ostream & info (std::ostream &os) const
 Returns information in an output stream. More...
 

Protected Attributes

unsigned int col_
 
bool last_
 Iterator is behind the last entrance. More...
 
const unsigned int nofCols_
 
const unsigned int nofRows_
 Number of rows and columns. More...
 
unsigned int row_
 Current row and column. More...
 

Private Attributes

int hashBits_
 Hash bits, number of pages per row (2 ^ hash bits), number of pages. More...
 
int nofPages_
 
int p_
 Current page number, first page number of next row. More...
 
HashedSparseMatrix< _Tp >::Value ** page_
 Pointer to the first entrance in the page. More...
 
int pNextRow_
 
int pPerRow_
 
HashedSparseMatrix< _Tp >::Value * v_
 Pointer to the current entrance. If its zero, the end is reached. More...
 

Detailed Description

template<class _Tp, class _Ref, class _Ptr>
class concepts::_HashedSMatrix_iterator< _Tp, _Ref, _Ptr >

STL like iterator for hashed sparse matrices.

Author
Kersten Schmidt, 2005

Definition at line 28 of file hashedSMatrixIterator.hh.

Member Typedef Documentation

◆ _Base

template<class _Tp , class _Ref , class _Ptr >
typedef _Matrix_iterator_base<_Tp, _Ref, _Ptr> concepts::_HashedSMatrix_iterator< _Tp, _Ref, _Ptr >::_Base

Definition at line 44 of file hashedSMatrixIterator.hh.

◆ _Self

template<class _Tp , class _Ref , class _Ptr >
typedef _HashedSMatrix_iterator concepts::_HashedSMatrix_iterator< _Tp, _Ref, _Ptr >::_Self

Definition at line 43 of file hashedSMatrixIterator.hh.

◆ const_iterator

template<class _Tp , class _Ref , class _Ptr >
typedef _HashedSMatrix_iterator<_Tp, const _Tp&,const _Tp*> concepts::_HashedSMatrix_iterator< _Tp, _Ref, _Ptr >::const_iterator

Definition at line 32 of file hashedSMatrixIterator.hh.

◆ difference_type

template<class _Tp , class _Ref , class _Ptr >
typedef ptrdiff_t concepts::_HashedSMatrix_iterator< _Tp, _Ref, _Ptr >::difference_type

Definition at line 42 of file hashedSMatrixIterator.hh.

◆ iterator

template<class _Tp , class _Ref , class _Ptr >
typedef _HashedSMatrix_iterator<_Tp, _Tp&, _Tp*> concepts::_HashedSMatrix_iterator< _Tp, _Ref, _Ptr >::iterator

Definition at line 31 of file hashedSMatrixIterator.hh.

◆ iterator_category

template<class _Tp , class _Ref , class _Ptr >
typedef std::forward_iterator_tag concepts::_HashedSMatrix_iterator< _Tp, _Ref, _Ptr >::iterator_category

Definition at line 37 of file hashedSMatrixIterator.hh.

◆ matrix_type

template<class _Tp , class _Ref , class _Ptr >
typedef MatrixType<_Tp, _Ref, _Ptr>::type concepts::_HashedSMatrix_iterator< _Tp, _Ref, _Ptr >::matrix_type

Definition at line 45 of file hashedSMatrixIterator.hh.

◆ pointer

template<class _Tp , class _Ref , class _Ptr >
typedef _Ptr concepts::_HashedSMatrix_iterator< _Tp, _Ref, _Ptr >::pointer

Definition at line 39 of file hashedSMatrixIterator.hh.

◆ reference

template<class _Tp , class _Ref , class _Ptr >
typedef _Ref concepts::_HashedSMatrix_iterator< _Tp, _Ref, _Ptr >::reference

Definition at line 40 of file hashedSMatrixIterator.hh.

◆ return_type

template<class _Tp , class _Ref , class _Ptr >
typedef _Base::return_type concepts::_HashedSMatrix_iterator< _Tp, _Ref, _Ptr >::return_type

Definition at line 46 of file hashedSMatrixIterator.hh.

◆ size_type

template<class _Tp , class _Ref , class _Ptr >
typedef size_t concepts::_HashedSMatrix_iterator< _Tp, _Ref, _Ptr >::size_type

Definition at line 41 of file hashedSMatrixIterator.hh.

◆ value_type

template<class _Tp , class _Ref , class _Ptr >
typedef _Tp concepts::_HashedSMatrix_iterator< _Tp, _Ref, _Ptr >::value_type

Definition at line 38 of file hashedSMatrixIterator.hh.

Constructor & Destructor Documentation

◆ _HashedSMatrix_iterator() [1/3]

template<class _Tp , class _Ref , class _Ptr >
concepts::_HashedSMatrix_iterator< _Tp, _Ref, _Ptr >::_HashedSMatrix_iterator ( matrix_type m,
const unsigned int  r = 0 
)

Constructor.

Parameters
mmatrix
rrow

◆ _HashedSMatrix_iterator() [2/3]

template<class _Tp , class _Ref , class _Ptr >
concepts::_HashedSMatrix_iterator< _Tp, _Ref, _Ptr >::_HashedSMatrix_iterator ( )

Constructor. Iterator stands at the end of any matrix.

◆ _HashedSMatrix_iterator() [3/3]

template<class _Tp , class _Ref , class _Ptr >
template<class _RefR , class _PtrR >
concepts::_HashedSMatrix_iterator< _Tp, _Ref, _Ptr >::_HashedSMatrix_iterator ( const _HashedSMatrix_iterator< _Tp, _RefR, _PtrR > &  __x)
inline

Copy constructor. Also from iterator to constant iterator.

Definition at line 58 of file hashedSMatrixIterator.hh.

Member Function Documentation

◆ col()

template<class _Tp , class _Ref , class _Ptr >
unsigned int concepts::_Matrix_iterator_base< _Tp, _Ref, _Ptr >::col ( ) const
inlineinherited

Column.

Definition at line 75 of file matrixIterator.hh.

◆ hashBits()

template<class _Tp , class _Ref , class _Ptr >
int concepts::_HashedSMatrix_iterator< _Tp, _Ref, _Ptr >::hashBits ( ) const
inline

Definition at line 99 of file hashedSMatrixIterator.hh.

◆ info()

template<class _Tp , class _Ref , class _Ptr >
virtual std::ostream& concepts::_HashedSMatrix_iterator< _Tp, _Ref, _Ptr >::info ( std::ostream &  os) const
protectedvirtual

Returns information in an output stream.

Reimplemented from concepts::_Matrix_iterator_base< _Tp, _Ref, _Ptr >.

◆ last()

template<class _Tp , class _Ref , class _Ptr >
bool concepts::_Matrix_iterator_base< _Tp, _Ref, _Ptr >::last ( ) const
inlineinherited

Returns true, if iterator is behind the last entry.

Definition at line 77 of file matrixIterator.hh.

◆ nofCols()

template<class _Tp , class _Ref , class _Ptr >
const unsigned int concepts::_Matrix_iterator_base< _Tp, _Ref, _Ptr >::nofCols ( ) const
inlineinherited

Number of columns.

Definition at line 71 of file matrixIterator.hh.

◆ nofPages()

template<class _Tp , class _Ref , class _Ptr >
int concepts::_HashedSMatrix_iterator< _Tp, _Ref, _Ptr >::nofPages ( ) const
inline

Definition at line 101 of file hashedSMatrixIterator.hh.

◆ nofRows()

template<class _Tp , class _Ref , class _Ptr >
const unsigned int concepts::_Matrix_iterator_base< _Tp, _Ref, _Ptr >::nofRows ( ) const
inlineinherited

Number of rows.

Definition at line 69 of file matrixIterator.hh.

◆ operator*()

template<class _Tp , class _Ref , class _Ptr >
reference concepts::_HashedSMatrix_iterator< _Tp, _Ref, _Ptr >::operator* ( ) const
inline

Dereferencation.

Definition at line 67 of file hashedSMatrixIterator.hh.

◆ operator++() [1/2]

template<class _Tp , class _Ref , class _Ptr >
_Self& concepts::_HashedSMatrix_iterator< _Tp, _Ref, _Ptr >::operator++ ( )

Pre-increment operator.

◆ operator++() [2/2]

template<class _Tp , class _Ref , class _Ptr >
_Self concepts::_HashedSMatrix_iterator< _Tp, _Ref, _Ptr >::operator++ ( int  )

Post-increment operator.

◆ operator->()

template<class _Tp , class _Ref , class _Ptr >
pointer concepts::_HashedSMatrix_iterator< _Tp, _Ref, _Ptr >::operator-> ( ) const
inline

Returns a pointer to the value.

Definition at line 72 of file hashedSMatrixIterator.hh.

◆ operator=()

template<class _Tp , class _Ref , class _Ptr >
template<class _RefR , class _PtrR >
_Self& concepts::_HashedSMatrix_iterator< _Tp, _Ref, _Ptr >::operator= ( const _HashedSMatrix_iterator< _Tp, _RefR, _PtrR > &  __x)
inline

Assignment.

Definition at line 79 of file hashedSMatrixIterator.hh.

◆ p()

template<class _Tp , class _Ref , class _Ptr >
int concepts::_HashedSMatrix_iterator< _Tp, _Ref, _Ptr >::p ( ) const
inline

Definition at line 102 of file hashedSMatrixIterator.hh.

◆ page()

template<class _Tp , class _Ref , class _Ptr >
HashedSparseMatrix<_Tp>::Value** concepts::_HashedSMatrix_iterator< _Tp, _Ref, _Ptr >::page ( ) const
inline

Definition at line 104 of file hashedSMatrixIterator.hh.

◆ pNextRow()

template<class _Tp , class _Ref , class _Ptr >
int concepts::_HashedSMatrix_iterator< _Tp, _Ref, _Ptr >::pNextRow ( ) const
inline

Definition at line 103 of file hashedSMatrixIterator.hh.

◆ post_increment()

template<class _Tp , class _Ref , class _Ptr >
_Self concepts::_HashedSMatrix_iterator< _Tp, _Ref, _Ptr >::post_increment ( )

Post-increment operator, exportable to Python.

◆ pPerRow()

template<class _Tp , class _Ref , class _Ptr >
int concepts::_HashedSMatrix_iterator< _Tp, _Ref, _Ptr >::pPerRow ( ) const
inline

Definition at line 100 of file hashedSMatrixIterator.hh.

◆ pre_increment()

template<class _Tp , class _Ref , class _Ptr >
_Self concepts::_HashedSMatrix_iterator< _Tp, _Ref, _Ptr >::pre_increment ( )

Pre-increment operator, exportable to Python.

◆ row()

template<class _Tp , class _Ref , class _Ptr >
unsigned int concepts::_Matrix_iterator_base< _Tp, _Ref, _Ptr >::row ( ) const
inlineinherited

Row.

Definition at line 73 of file matrixIterator.hh.

◆ v()

template<class _Tp , class _Ref , class _Ptr >
HashedSparseMatrix<_Tp>::Value* concepts::_HashedSMatrix_iterator< _Tp, _Ref, _Ptr >::v ( ) const
inline

Data defining the position of the iterator.

Definition at line 98 of file hashedSMatrixIterator.hh.

Member Data Documentation

◆ col_

template<class _Tp , class _Ref , class _Ptr >
unsigned int concepts::_Matrix_iterator_base< _Tp, _Ref, _Ptr >::col_
protectedinherited

Definition at line 93 of file matrixIterator.hh.

◆ hashBits_

template<class _Tp , class _Ref , class _Ptr >
int concepts::_HashedSMatrix_iterator< _Tp, _Ref, _Ptr >::hashBits_
private

Hash bits, number of pages per row (2 ^ hash bits), number of pages.

Definition at line 111 of file hashedSMatrixIterator.hh.

◆ last_

template<class _Tp , class _Ref , class _Ptr >
bool concepts::_Matrix_iterator_base< _Tp, _Ref, _Ptr >::last_
protectedinherited

Iterator is behind the last entrance.

Definition at line 95 of file matrixIterator.hh.

◆ nofCols_

template<class _Tp , class _Ref , class _Ptr >
const unsigned int concepts::_Matrix_iterator_base< _Tp, _Ref, _Ptr >::nofCols_
protectedinherited

Definition at line 91 of file matrixIterator.hh.

◆ nofPages_

template<class _Tp , class _Ref , class _Ptr >
int concepts::_HashedSMatrix_iterator< _Tp, _Ref, _Ptr >::nofPages_
private

Definition at line 111 of file hashedSMatrixIterator.hh.

◆ nofRows_

template<class _Tp , class _Ref , class _Ptr >
const unsigned int concepts::_Matrix_iterator_base< _Tp, _Ref, _Ptr >::nofRows_
protectedinherited

Number of rows and columns.

Definition at line 91 of file matrixIterator.hh.

◆ p_

template<class _Tp , class _Ref , class _Ptr >
int concepts::_HashedSMatrix_iterator< _Tp, _Ref, _Ptr >::p_
private

Current page number, first page number of next row.

Definition at line 113 of file hashedSMatrixIterator.hh.

◆ page_

template<class _Tp , class _Ref , class _Ptr >
HashedSparseMatrix<_Tp>::Value** concepts::_HashedSMatrix_iterator< _Tp, _Ref, _Ptr >::page_
private

Pointer to the first entrance in the page.

Definition at line 115 of file hashedSMatrixIterator.hh.

◆ pNextRow_

template<class _Tp , class _Ref , class _Ptr >
int concepts::_HashedSMatrix_iterator< _Tp, _Ref, _Ptr >::pNextRow_
private

Definition at line 113 of file hashedSMatrixIterator.hh.

◆ pPerRow_

template<class _Tp , class _Ref , class _Ptr >
int concepts::_HashedSMatrix_iterator< _Tp, _Ref, _Ptr >::pPerRow_
private

Definition at line 111 of file hashedSMatrixIterator.hh.

◆ row_

template<class _Tp , class _Ref , class _Ptr >
unsigned int concepts::_Matrix_iterator_base< _Tp, _Ref, _Ptr >::row_
protectedinherited

Current row and column.

Definition at line 93 of file matrixIterator.hh.

◆ v_

template<class _Tp , class _Ref , class _Ptr >
HashedSparseMatrix<_Tp>::Value* concepts::_HashedSMatrix_iterator< _Tp, _Ref, _Ptr >::v_
private

Pointer to the current entrance. If its zero, the end is reached.

Definition at line 109 of file hashedSMatrixIterator.hh.


The documentation for this class was generated from the following file:
Page URL: http://wiki.math.ethz.ch/bin/view/Concepts/WebHome
21 August 2020
© 2020 Eidgenössische Technische Hochschule Zürich