150 XABORTM(
"cannot increment NullImageIterator");
161 XABORTM(
"cannot dereference NullImageIterator");
258 return _index != other._index;
381 return (
_cur1 != other._cur1) || (
_cur2 != other._cur2);
429 const Adj1_& adjactor1,
430 const Adj2_& adjactor2)
437 XASSERTM(
_adj1.get_num_nodes_image() <=
_adj2.get_num_nodes_domain(),
"Composite Adjactor is ill-formed");
445 return _adj1.get_num_nodes_domain();
453 return _adj2.get_num_nodes_image();
#define XABORTM(msg)
Abortion macro definition with custom message.
#define ASSERTM(expr, msg)
Debug-Assertion macro definition with custom message.
#define XASSERTM(expr, msg)
Assertion macro definition with custom message.
Adjactor image node iterator class.
ImageIterator & operator++()
Pre-increment operator.
Index operator*() const
Dereferentiation operator.
bool operator!=(const ImageIterator &other) const
Checks two iterators for inequality.
ImageIterator(const ImageIterator &other)
Copy constructor.
ImageIterator & operator=(const ImageIterator &other)
Assignment operator.
ImageIterator()
Standard constructor.
Index-Image-Iterator class.
IndexImageIterator(Index index)
Constructor.
IndexImageIterator()
default constructor
Index operator*() const
Dereferentiation operator.
Index _index
the current index of the iterator
IndexImageIterator(const IndexImageIterator &other)
copy constructor
bool operator!=(const IndexImageIterator &other) const
Checks two iterators for inequality.
IndexImageIterator & operator++()
Pre-increment operator.
IndexImageIterator & operator=(const IndexImageIterator &other)
assignment operator
Null-Image-Iterator class.
NullImageIterator & operator++()
Pre-increment operator.
Index operator*() const
Dereferentiation operator.
bool operator!=(const NullImageIterator &other) const
Checks two iterators for inequality.
ImageIterator image_begin(Index domain_node) const
Returns an iterator for the first adjacent image node.
Index get_num_nodes_image() const
Returns the number of image nodes.
ImageIterator image_end(Index domain_node) const
Returns an iterator for the first position past the last adjacent image node.
Index get_num_nodes_domain() const
Returns the number of domain nodes.
Image Node Iterator implementation for CompositeAdjactor.
Iterator2 _cur2
current iterator for second adjactor
Adj1_::ImageIterator Iterator1
Dual iterator of first adjactor.
ImageIterator()
Standard constructor.
Iterator2 _end2
end iterator for second adjactor
const Adj2_ * _adj2
pointer to second adjactor
Iterator1 _cur1
current iterator for first adjactor
Index operator*() const
Dereferentiation operator.
bool operator!=(const ImageIterator &other) const
Checks two iterators for inequality.
Adj2_::ImageIterator Iterator2
Dual iterator of second adjactor.
ImageIterator & operator++()
Pre-increment operator.
ImageIterator(const ImageIterator &other)
Iterator1 _end1
end iterator for first adjactor
Composite Adjactor implementation.
Adj2_ Adjactor2
typedef for second adjactor
Index get_num_nodes_image() const
Returns the number of image nodes.
Index get_num_nodes_domain() const
Returns the number of domain nodes.
ImageIterator image_end(Index domain_node) const
Returns an iterator for the first position past the last adjacent image node.
const Adj1_ & _adj1
first adjactor
const Adjactor1 & get_adjactor1() const
Returns the first adjactor.
const Adjactor2 & get_adjactor2() const
Returns the second adjactor.
ImageIterator image_begin(Index domain_node) const
Returns an iterator for the first adjacent image node.
Adj1_ Adjactor1
typedef for first adjactor
const Adj2_ & _adj2
second adjactor
CompositeAdjactor(const Adj1_ &adjactor1, const Adj2_ &adjactor2)
Constructor.
std::uint64_t Index
Index data type.