dune-istl 2.9.0
Public Types | Public Member Functions | List of all members
Dune::Amg::MatrixGraph< M >::EdgeIteratorT< C > Class Template Reference

Iterator over all edges starting from a vertex. More...

#include <dune/istl/paamg/graph.hh>

Public Types

enum  { isMutable = std::is_same<C, MutableContainer>::value }
 
typedef std::remove_const< C >::type MutableContainer
 The mutable type of the container type. More...
 
typedef const std::remove_const< C >::type ConstContainer
 The constant type of the container type. More...
 
typedef std::conditional< isMutable &&C::mutableMatrix, typenameMatrix::row_type::Iterator, typenameMatrix::row_type::ConstIterator >::type ColIterator
 The column iterator of the matrix we use. More...
 
typedef std::conditional< isMutable &&C::mutableMatrix, typenameM::block_type, consttypenameM::block_type >::type Weight
 The matrix block type we use as weights. More...
 
typedef std::conditional< std::is_same< C, typenamestd::remove_const< C >::type >::value &&C::mutableMatrix, typenameM::block_type, consttypenameM::block_type >::type WeightType
 

Public Member Functions

 EdgeIteratorT (const VertexDescriptor &source, const ColIterator &block, const ColIterator &end, const EdgeDescriptor &edge)
 Constructor. More...
 
 EdgeIteratorT (const ColIterator &block)
 Constructor for the end iterator. More...
 
template<class C1 >
 EdgeIteratorT (const EdgeIteratorT< C1 > &other)
 Copy Constructor. More...
 
WeightTypeweight () const
 Access the edge weight. More...
 
EdgeIteratorT< C > & operator++ ()
 preincrement operator. More...
 
bool operator!= (const EdgeIteratorT< typename std::remove_const< C >::type > &other) const
 Inequality operator. More...
 
bool operator!= (const EdgeIteratorT< const typename std::remove_const< C >::type > &other) const
 Inequality operator. More...
 
bool operator== (const EdgeIteratorT< typename std::remove_const< C >::type > &other) const
 Equality operator. More...
 
bool operator== (const EdgeIteratorT< const typename std::remove_const< C >::type > &other) const
 Equality operator. More...
 
VertexDescriptor target () const
 The index of the target vertex of the current edge. More...
 
VertexDescriptor source () const
 The index of the source vertex of the current edge. More...
 
const EdgeDescriptoroperator* () const
 Get the edge descriptor. More...
 
const EdgeDescriptoroperator-> () const
 Get the edge descriptor. More...
 

Detailed Description

template<class M>
template<class C>
class Dune::Amg::MatrixGraph< M >::EdgeIteratorT< C >

Iterator over all edges starting from a vertex.

Member Typedef Documentation

◆ ColIterator

template<class M >
template<class C >
typedef std::conditional<isMutable&&C::mutableMatrix,typenameMatrix::row_type::Iterator,typenameMatrix::row_type::ConstIterator>::type Dune::Amg::MatrixGraph< M >::EdgeIteratorT< C >::ColIterator

The column iterator of the matrix we use.

◆ ConstContainer

template<class M >
template<class C >
typedef const std::remove_const<C>::type Dune::Amg::MatrixGraph< M >::EdgeIteratorT< C >::ConstContainer

The constant type of the container type.

◆ MutableContainer

template<class M >
template<class C >
typedef std::remove_const<C>::type Dune::Amg::MatrixGraph< M >::EdgeIteratorT< C >::MutableContainer

The mutable type of the container type.

◆ Weight

template<class M >
template<class C >
typedef std::conditional<isMutable&&C::mutableMatrix,typenameM::block_type,consttypenameM::block_type>::type Dune::Amg::MatrixGraph< M >::EdgeIteratorT< C >::Weight

The matrix block type we use as weights.

◆ WeightType

template<class M >
template<class C >
typedef std::conditional<std::is_same<C,typenamestd::remove_const<C>::type>::value&&C::mutableMatrix,typenameM::block_type,consttypenameM::block_type>::type Dune::Amg::MatrixGraph< M >::EdgeIteratorT< C >::WeightType

Member Enumeration Documentation

◆ anonymous enum

template<class M >
template<class C >
anonymous enum
Enumerator
isMutable 

whether C is mutable.

Constructor & Destructor Documentation

◆ EdgeIteratorT() [1/3]

template<class M >
template<class C >
Dune::Amg::MatrixGraph< M >::EdgeIteratorT< C >::EdgeIteratorT ( const VertexDescriptor source,
const ColIterator block,
const ColIterator end,
const EdgeDescriptor edge 
)

Constructor.

Parameters
sourceThe source vertex of the edges.
blockThe matrix column block the iterator is initialized to,
endThe end iterator of the matrix row.
edgeThe edge descriptor of the current edge.

◆ EdgeIteratorT() [2/3]

template<class M >
template<class C >
Dune::Amg::MatrixGraph< M >::EdgeIteratorT< C >::EdgeIteratorT ( const ColIterator block)

Constructor for the end iterator.

Variables not needed by operator== or operator!= will not be initialized.

Parameters
blockThe matrix column block the iterator is initialized to.

◆ EdgeIteratorT() [3/3]

template<class M >
template<class C >
template<class C1 >
Dune::Amg::MatrixGraph< M >::EdgeIteratorT< C >::EdgeIteratorT ( const EdgeIteratorT< C1 > &  other)

Copy Constructor.

Parameters
otherThe iterator to copy.

Member Function Documentation

◆ operator!=() [1/2]

template<class M >
template<class C >
bool Dune::Amg::MatrixGraph< M >::EdgeIteratorT< C >::operator!= ( const EdgeIteratorT< const typename std::remove_const< C >::type > &  other) const

Inequality operator.

◆ operator!=() [2/2]

template<class M >
template<class C >
bool Dune::Amg::MatrixGraph< M >::EdgeIteratorT< C >::operator!= ( const EdgeIteratorT< typename std::remove_const< C >::type > &  other) const

Inequality operator.

◆ operator*()

template<class M >
template<class C >
const EdgeDescriptor & Dune::Amg::MatrixGraph< M >::EdgeIteratorT< C >::operator* ( ) const

Get the edge descriptor.

◆ operator++()

template<class M >
template<class C >
EdgeIteratorT< C > & Dune::Amg::MatrixGraph< M >::EdgeIteratorT< C >::operator++ ( )

preincrement operator.

◆ operator->()

template<class M >
template<class C >
const EdgeDescriptor * Dune::Amg::MatrixGraph< M >::EdgeIteratorT< C >::operator-> ( ) const

Get the edge descriptor.

◆ operator==() [1/2]

template<class M >
template<class C >
bool Dune::Amg::MatrixGraph< M >::EdgeIteratorT< C >::operator== ( const EdgeIteratorT< const typename std::remove_const< C >::type > &  other) const

Equality operator.

◆ operator==() [2/2]

template<class M >
template<class C >
bool Dune::Amg::MatrixGraph< M >::EdgeIteratorT< C >::operator== ( const EdgeIteratorT< typename std::remove_const< C >::type > &  other) const

Equality operator.

◆ source()

template<class M >
template<class C >
VertexDescriptor Dune::Amg::MatrixGraph< M >::EdgeIteratorT< C >::source ( ) const

The index of the source vertex of the current edge.

◆ target()

template<class M >
template<class C >
VertexDescriptor Dune::Amg::MatrixGraph< M >::EdgeIteratorT< C >::target ( ) const

The index of the target vertex of the current edge.

◆ weight()

template<class M >
template<class C >
WeightType & Dune::Amg::MatrixGraph< M >::EdgeIteratorT< C >::weight ( ) const

Access the edge weight.


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