Nektar++
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
Nektar::NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::iterator_base< MatrixType > Class Template Reference

#include <BlockMatrix.hpp>

Public Types

typedef MatrixType::InnerType IteratorInnerType
 
typedef FullMatrixFuncs StoragePolicy
 

Public Member Functions

 iterator_base (MatrixType &m, unsigned int curRow, unsigned int curCol)
 
 iterator_base (MatrixType &m)
 
 iterator_base (const iterator_base< MatrixType > &rhs)
 
void operator++ ()
 
NumberType operator* ()
 
bool operator== (const iterator_base< MatrixType > &rhs)
 
bool operator!= (const iterator_base< MatrixType > &rhs)
 

Private Member Functions

iterator_base< MatrixType > & operator= (const iterator_base< MatrixType > &rhs)
 

Private Attributes

MatrixType & m_matrix
 
unsigned int m_curRow
 
unsigned int m_curColumn
 

Detailed Description

template<typename DataType, typename InnerMatrixType>
template<typename MatrixType>
class Nektar::NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::iterator_base< MatrixType >

Definition at line 66 of file BlockMatrix.hpp.

Member Typedef Documentation

◆ IteratorInnerType

template<typename DataType , typename InnerMatrixType >
template<typename MatrixType >
typedef MatrixType::InnerType Nektar::NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::iterator_base< MatrixType >::IteratorInnerType

Definition at line 69 of file BlockMatrix.hpp.

◆ StoragePolicy

template<typename DataType , typename InnerMatrixType >
template<typename MatrixType >
typedef FullMatrixFuncs Nektar::NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::iterator_base< MatrixType >::StoragePolicy

Definition at line 70 of file BlockMatrix.hpp.

Constructor & Destructor Documentation

◆ iterator_base() [1/3]

template<typename DataType , typename InnerMatrixType >
template<typename MatrixType >
Nektar::NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::iterator_base< MatrixType >::iterator_base ( MatrixType &  m,
unsigned int  curRow,
unsigned int  curCol 
)
inline

◆ iterator_base() [2/3]

template<typename DataType , typename InnerMatrixType >
template<typename MatrixType >
Nektar::NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::iterator_base< MatrixType >::iterator_base ( MatrixType &  m)
inline

Definition at line 78 of file BlockMatrix.hpp.

79 : m_matrix(m), m_curRow(std::numeric_limits<unsigned int>::max()),
80 m_curColumn(std::numeric_limits<unsigned int>::max())
81 {
82 }

◆ iterator_base() [3/3]

template<typename DataType , typename InnerMatrixType >
template<typename MatrixType >
Nektar::NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::iterator_base< MatrixType >::iterator_base ( const iterator_base< MatrixType > &  rhs)
inline

Definition at line 84 of file BlockMatrix.hpp.

85 : m_matrix(rhs.m_matrix), m_curRow(rhs.m_curRow),
86 m_curColumn(rhs.m_curColumn)
87 {
88 }

Member Function Documentation

◆ operator!=()

template<typename DataType , typename InnerMatrixType >
template<typename MatrixType >
bool Nektar::NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::iterator_base< MatrixType >::operator!= ( const iterator_base< MatrixType > &  rhs)
inline

Definition at line 110 of file BlockMatrix.hpp.

111 {
112 return !(*this == rhs);
113 }

◆ operator*()

template<typename DataType , typename InnerMatrixType >
template<typename MatrixType >
NumberType Nektar::NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::iterator_base< MatrixType >::operator* ( )
inline

Definition at line 100 of file BlockMatrix.hpp.

101 {
103 }

◆ operator++()

template<typename DataType , typename InnerMatrixType >
template<typename MatrixType >
void Nektar::NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::iterator_base< MatrixType >::operator++ ( )
inline

Definition at line 90 of file BlockMatrix.hpp.

91 {
92 if (m_curRow != std::numeric_limits<unsigned int>::max())
93 {
94 std::tie(m_curRow, m_curColumn) = StoragePolicy::Advance(
95 m_matrix.GetRows(), m_matrix.GetColumns(), m_curRow,
97 }
98 }

◆ operator=()

template<typename DataType , typename InnerMatrixType >
template<typename MatrixType >
iterator_base< MatrixType > & Nektar::NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::iterator_base< MatrixType >::operator= ( const iterator_base< MatrixType > &  rhs)
private

◆ operator==()

template<typename DataType , typename InnerMatrixType >
template<typename MatrixType >
bool Nektar::NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::iterator_base< MatrixType >::operator== ( const iterator_base< MatrixType > &  rhs)
inline

Definition at line 105 of file BlockMatrix.hpp.

106 {
107 return m_curRow == rhs.m_curRow && m_curColumn == rhs.m_curColumn;
108 }

Member Data Documentation

◆ m_curColumn

template<typename DataType , typename InnerMatrixType >
template<typename MatrixType >
unsigned int Nektar::NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::iterator_base< MatrixType >::m_curColumn
private

Definition at line 121 of file BlockMatrix.hpp.

◆ m_curRow

template<typename DataType , typename InnerMatrixType >
template<typename MatrixType >
unsigned int Nektar::NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::iterator_base< MatrixType >::m_curRow
private

Definition at line 120 of file BlockMatrix.hpp.

◆ m_matrix

template<typename DataType , typename InnerMatrixType >
template<typename MatrixType >
MatrixType& Nektar::NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::iterator_base< MatrixType >::m_matrix
private

Definition at line 119 of file BlockMatrix.hpp.