Stxxl  1.4.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes
stxxl::matrix_iterator< ValueType, BlockSideLength > Class Template Reference

general iterator type that points to single elements inside a matrix More...

#include <matrix.h>

Inheritance diagram for stxxl::matrix_iterator< ValueType, BlockSideLength >:
Inheritance graph
[legend]
Collaboration diagram for stxxl::matrix_iterator< ValueType, BlockSideLength >:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 matrix_iterator (const matrix_iterator &other)
matrix_iteratoroperator= (const matrix_iterator &other)
 ~matrix_iterator ()
void set_row (const elem_size_type new_row)
void set_col (const elem_size_type new_col)
void set_pos (const elem_size_type new_row, const elem_size_type new_col)
void set_pos (const std::pair< elem_size_type, elem_size_type > new_pos)
const elem_size_typeget_row () const
const elem_size_typeget_col () const
std::pair< elem_size_type,
elem_size_type
get_pos () const
bool empty () const
 operator bool () const
bool operator== (const matrix_iterator &other) const
ValueType & operator* ()
 Returns reference access to the element referenced by the iterator. The reference is only valid so long as the iterator is not moved.

Protected Types

typedef matrix< ValueType,
BlockSideLength > 
matrix_type
typedef
matrix_type::swappable_block_matrix_type 
swappable_block_matrix_type
typedef
matrix_type::block_scheduler_type 
block_scheduler_type
typedef
block_scheduler_type::internal_block_type 
internal_block_type
typedef matrix_type::elem_size_type elem_size_type
typedef
matrix_type::block_size_type 
block_size_type

Protected Member Functions

void acquire_current_iblock ()
void release_current_iblock ()
 matrix_iterator (matrix_type &matrix, const elem_size_type start_row, const elem_size_type start_col)
 create iterator pointing to given row and col
 matrix_iterator (matrix_type &matrix)
 create empty iterator
void set_empty ()

Protected Attributes

matrix_typem
elem_size_type current_row
elem_size_type current_col
block_size_type current_block_row
block_size_type current_block_col
internal_block_typecurrent_iblock

Detailed Description

template<typename ValueType, unsigned BlockSideLength>
class stxxl::matrix_iterator< ValueType, BlockSideLength >

general iterator type that points to single elements inside a matrix

Template Parameters:
ValueTypetype of contained objects (POD with no references to internal memory)
BlockSideLengthside length of a matrix block

Definition at line 419 of file matrix.h.


Member Typedef Documentation

template<typename ValueType, unsigned BlockSideLength>
typedef matrix_type::block_scheduler_type stxxl::matrix_iterator< ValueType, BlockSideLength >::block_scheduler_type [protected]

Definition at line 424 of file matrix.h.

template<typename ValueType, unsigned BlockSideLength>
typedef matrix_type::block_size_type stxxl::matrix_iterator< ValueType, BlockSideLength >::block_size_type [protected]

Definition at line 427 of file matrix.h.

template<typename ValueType, unsigned BlockSideLength>
typedef matrix_type::elem_size_type stxxl::matrix_iterator< ValueType, BlockSideLength >::elem_size_type [protected]
template<typename ValueType, unsigned BlockSideLength>
typedef block_scheduler_type::internal_block_type stxxl::matrix_iterator< ValueType, BlockSideLength >::internal_block_type [protected]

Definition at line 425 of file matrix.h.

template<typename ValueType, unsigned BlockSideLength>
typedef matrix<ValueType, BlockSideLength> stxxl::matrix_iterator< ValueType, BlockSideLength >::matrix_type [protected]
template<typename ValueType, unsigned BlockSideLength>
typedef matrix_type::swappable_block_matrix_type stxxl::matrix_iterator< ValueType, BlockSideLength >::swappable_block_matrix_type [protected]

Definition at line 423 of file matrix.h.


Constructor & Destructor Documentation

template<typename ValueType, unsigned BlockSideLength>
stxxl::matrix_iterator< ValueType, BlockSideLength >::matrix_iterator ( matrix_type matrix,
const elem_size_type  start_row,
const elem_size_type  start_col 
) [inline, protected]

create iterator pointing to given row and col

Definition at line 455 of file matrix.h.

template<typename ValueType, unsigned BlockSideLength>
stxxl::matrix_iterator< ValueType, BlockSideLength >::matrix_iterator ( matrix_type matrix) [inline, protected]

create empty iterator

Definition at line 464 of file matrix.h.

template<typename ValueType, unsigned BlockSideLength>
stxxl::matrix_iterator< ValueType, BlockSideLength >::matrix_iterator ( const matrix_iterator< ValueType, BlockSideLength > &  other) [inline]
template<typename ValueType, unsigned BlockSideLength>
stxxl::matrix_iterator< ValueType, BlockSideLength >::~matrix_iterator ( ) [inline]

Definition at line 503 of file matrix.h.


Member Function Documentation

template<typename ValueType, unsigned BlockSideLength>
void stxxl::matrix_iterator< ValueType, BlockSideLength >::acquire_current_iblock ( ) [inline, protected]

Definition at line 439 of file matrix.h.

template<typename ValueType, unsigned BlockSideLength>
bool stxxl::matrix_iterator< ValueType, BlockSideLength >::empty ( ) const [inline]

Definition at line 554 of file matrix.h.

template<typename ValueType, unsigned BlockSideLength>
const elem_size_type& stxxl::matrix_iterator< ValueType, BlockSideLength >::get_col ( ) const [inline]

Definition at line 548 of file matrix.h.

template<typename ValueType, unsigned BlockSideLength>
std::pair<elem_size_type, elem_size_type> stxxl::matrix_iterator< ValueType, BlockSideLength >::get_pos ( ) const [inline]

Definition at line 551 of file matrix.h.

template<typename ValueType, unsigned BlockSideLength>
const elem_size_type& stxxl::matrix_iterator< ValueType, BlockSideLength >::get_row ( ) const [inline]

Definition at line 545 of file matrix.h.

template<typename ValueType, unsigned BlockSideLength>
stxxl::matrix_iterator< ValueType, BlockSideLength >::operator bool ( ) const [inline]

Definition at line 557 of file matrix.h.

template<typename ValueType, unsigned BlockSideLength>
ValueType& stxxl::matrix_iterator< ValueType, BlockSideLength >::operator* ( ) [inline]

Returns reference access to the element referenced by the iterator. The reference is only valid so long as the iterator is not moved.

Definition at line 567 of file matrix.h.

template<typename ValueType, unsigned BlockSideLength>
matrix_iterator& stxxl::matrix_iterator< ValueType, BlockSideLength >::operator= ( const matrix_iterator< ValueType, BlockSideLength > &  other) [inline]
template<typename ValueType, unsigned BlockSideLength>
bool stxxl::matrix_iterator< ValueType, BlockSideLength >::operator== ( const matrix_iterator< ValueType, BlockSideLength > &  other) const [inline]
template<typename ValueType, unsigned BlockSideLength>
void stxxl::matrix_iterator< ValueType, BlockSideLength >::release_current_iblock ( ) [inline, protected]

Definition at line 445 of file matrix.h.

template<typename ValueType, unsigned BlockSideLength>
void stxxl::matrix_iterator< ValueType, BlockSideLength >::set_col ( const elem_size_type  new_col) [inline]

Definition at line 517 of file matrix.h.

template<typename ValueType, unsigned BlockSideLength>
void stxxl::matrix_iterator< ValueType, BlockSideLength >::set_empty ( ) [inline, protected]

Definition at line 472 of file matrix.h.

template<typename ValueType, unsigned BlockSideLength>
void stxxl::matrix_iterator< ValueType, BlockSideLength >::set_pos ( const elem_size_type  new_row,
const elem_size_type  new_col 
) [inline]

Definition at line 528 of file matrix.h.

template<typename ValueType, unsigned BlockSideLength>
void stxxl::matrix_iterator< ValueType, BlockSideLength >::set_pos ( const std::pair< elem_size_type, elem_size_type new_pos) [inline]
template<typename ValueType, unsigned BlockSideLength>
void stxxl::matrix_iterator< ValueType, BlockSideLength >::set_row ( const elem_size_type  new_row) [inline]

Definition at line 506 of file matrix.h.


Member Data Documentation

template<typename ValueType, unsigned BlockSideLength>
block_size_type stxxl::matrix_iterator< ValueType, BlockSideLength >::current_block_col [protected]

Definition at line 435 of file matrix.h.

template<typename ValueType, unsigned BlockSideLength>
block_size_type stxxl::matrix_iterator< ValueType, BlockSideLength >::current_block_row [protected]

Definition at line 435 of file matrix.h.

template<typename ValueType, unsigned BlockSideLength>
elem_size_type stxxl::matrix_iterator< ValueType, BlockSideLength >::current_col [protected]
template<typename ValueType, unsigned BlockSideLength>
internal_block_type* stxxl::matrix_iterator< ValueType, BlockSideLength >::current_iblock [protected]
template<typename ValueType, unsigned BlockSideLength>
elem_size_type stxxl::matrix_iterator< ValueType, BlockSideLength >::current_row [protected]
template<typename ValueType, unsigned BlockSideLength>
matrix_type* stxxl::matrix_iterator< ValueType, BlockSideLength >::m [protected]

The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines