Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

ogdf::matching_blossom::AuxNode< TWeight > Class Template Reference

#include <ogdf/graphalg/matching_blossom/AuxGraph.h>

Public Member Functions

 AuxNode (node auxGraphNode, node graphNode, BlossomVHelper< TWeight > &helper)
 
void addDelta (double delta)
 Add delta to this tree. delta must be non-negative. More...
 
void addEvenEvenEdge (edge e)
 Add e to the list of even-even edges of this tree. More...
 
void addEvenFreeEdge (edge e)
 Add e to the list of even-free edges of this tree. More...
 
void addOddPseudonode (node v)
 Add v to the list of odd pseudonodes of this tree. More...
 
AuxEdge< TWeight > * currentEdge ()
 The aux edge pointing to the current aux node. More...
 
double delta ()
 
double delta (node v)
 The delta of this tree for the given node. More...
 
EdgePQevenEvenEdges ()
 
EdgePQevenFreeEdges ()
 
node graphNode ()
 
NodePQoddPseudonodes ()
 
void setCurrentEdge (AuxEdge< TWeight > *edge)
 Sets the current edge of this tree to edge and update the iteration to the current one. More...
 
AlternatingTree< TWeight > & tree ()
 

Private Types

using EdgePQ = BlossomPQ< edge, TWeight >
 
using NodePQ = BlossomPQ< node, TWeight >
 

Private Attributes

struct {
   AuxEdge< TWeight > *   edge = nullptr
 
   long   iteration = -1
 
m_currentEdge
 Structure representing the current edge of this tree. To avoid resetting all edges of all trees after every iteration, we save the iteration number to see if the edge pointer is invalid. More...
 
double m_delta = 0
 The cummulated delta of this tree. More...
 
EdgePQ m_evenEvenEdges
 Eges between even nodes in this tree. More...
 
EdgePQ m_evenFreeEdges
 Edges between an even node in this tree and a free node. More...
 
BlossomVHelper< TWeight > & m_helper
 The auxiliary graph this node belongs to. More...
 
node m_node
 The actual node in the auxiliary graph. More...
 
NodePQ m_oddPseudonodes
 All odd pseudonodes in this tree. More...
 
AlternatingTree< TWeight > m_tree
 The alternating tree this node represents. More...
 

Detailed Description

template<class TWeight>
class ogdf::matching_blossom::AuxNode< TWeight >

Definition at line 58 of file AuxGraph.h.

Member Typedef Documentation

◆ EdgePQ

template<class TWeight >
using ogdf::matching_blossom::AuxNode< TWeight >::EdgePQ = BlossomPQ<edge, TWeight>
private

Definition at line 59 of file AuxGraph.h.

◆ NodePQ

template<class TWeight >
using ogdf::matching_blossom::AuxNode< TWeight >::NodePQ = BlossomPQ<node, TWeight>
private

Definition at line 60 of file AuxGraph.h.

Constructor & Destructor Documentation

◆ AuxNode()

template<class TWeight >
ogdf::matching_blossom::AuxNode< TWeight >::AuxNode ( node  auxGraphNode,
node  graphNode,
BlossomVHelper< TWeight > &  helper 
)
inline

Definition at line 89 of file AuxGraph.h.

Member Function Documentation

◆ addDelta()

template<class TWeight >
void ogdf::matching_blossom::AuxNode< TWeight >::addDelta ( double  delta)
inline

Add delta to this tree. delta must be non-negative.

Definition at line 137 of file AuxGraph.h.

◆ addEvenEvenEdge()

template<class TWeight >
void ogdf::matching_blossom::AuxNode< TWeight >::addEvenEvenEdge ( edge  e)
inline

Add e to the list of even-even edges of this tree.

Definition at line 146 of file AuxGraph.h.

◆ addEvenFreeEdge()

template<class TWeight >
void ogdf::matching_blossom::AuxNode< TWeight >::addEvenFreeEdge ( edge  e)
inline

Add e to the list of even-free edges of this tree.

Definition at line 149 of file AuxGraph.h.

◆ addOddPseudonode()

template<class TWeight >
void ogdf::matching_blossom::AuxNode< TWeight >::addOddPseudonode ( node  v)
inline

Add v to the list of odd pseudonodes of this tree.

Definition at line 143 of file AuxGraph.h.

◆ currentEdge()

template<class TWeight >
AuxEdge<TWeight>* ogdf::matching_blossom::AuxNode< TWeight >::currentEdge ( )
inline

The aux edge pointing to the current aux node.

Definition at line 98 of file AuxGraph.h.

◆ delta() [1/2]

template<class TWeight >
double ogdf::matching_blossom::AuxNode< TWeight >::delta ( )
inline

Definition at line 122 of file AuxGraph.h.

◆ delta() [2/2]

template<class TWeight >
double ogdf::matching_blossom::AuxNode< TWeight >::delta ( node  v)
inline

The delta of this tree for the given node.

Definition at line 127 of file AuxGraph.h.

◆ evenEvenEdges()

template<class TWeight >
EdgePQ& ogdf::matching_blossom::AuxNode< TWeight >::evenEvenEdges ( )
inline

Definition at line 116 of file AuxGraph.h.

◆ evenFreeEdges()

template<class TWeight >
EdgePQ& ogdf::matching_blossom::AuxNode< TWeight >::evenFreeEdges ( )
inline

Definition at line 118 of file AuxGraph.h.

◆ graphNode()

template<class TWeight >
node ogdf::matching_blossom::AuxNode< TWeight >::graphNode ( )
inline

Definition at line 112 of file AuxGraph.h.

◆ oddPseudonodes()

template<class TWeight >
NodePQ& ogdf::matching_blossom::AuxNode< TWeight >::oddPseudonodes ( )
inline

Definition at line 120 of file AuxGraph.h.

◆ setCurrentEdge()

template<class TWeight >
void ogdf::matching_blossom::AuxNode< TWeight >::setCurrentEdge ( AuxEdge< TWeight > *  edge)
inline

Sets the current edge of this tree to edge and update the iteration to the current one.

Definition at line 107 of file AuxGraph.h.

◆ tree()

template<class TWeight >
AlternatingTree<TWeight>& ogdf::matching_blossom::AuxNode< TWeight >::tree ( )
inline

Definition at line 114 of file AuxGraph.h.

Member Data Documentation

◆ edge

template<class TWeight >
AuxEdge<TWeight>* ogdf::matching_blossom::AuxNode< TWeight >::edge = nullptr

Definition at line 84 of file AuxGraph.h.

◆ iteration

template<class TWeight >
long ogdf::matching_blossom::AuxNode< TWeight >::iteration = -1

Definition at line 85 of file AuxGraph.h.

◆ m_currentEdge

struct { ... } ogdf::matching_blossom::AuxNode< TWeight >::m_currentEdge

Structure representing the current edge of this tree. To avoid resetting all edges of all trees after every iteration, we save the iteration number to see if the edge pointer is invalid.

◆ m_delta

template<class TWeight >
double ogdf::matching_blossom::AuxNode< TWeight >::m_delta = 0
private

The cummulated delta of this tree.

Definition at line 72 of file AuxGraph.h.

◆ m_evenEvenEdges

template<class TWeight >
EdgePQ ogdf::matching_blossom::AuxNode< TWeight >::m_evenEvenEdges
private

Eges between even nodes in this tree.

Definition at line 75 of file AuxGraph.h.

◆ m_evenFreeEdges

template<class TWeight >
EdgePQ ogdf::matching_blossom::AuxNode< TWeight >::m_evenFreeEdges
private

Edges between an even node in this tree and a free node.

Definition at line 77 of file AuxGraph.h.

◆ m_helper

template<class TWeight >
BlossomVHelper<TWeight>& ogdf::matching_blossom::AuxNode< TWeight >::m_helper
private

The auxiliary graph this node belongs to.

Definition at line 66 of file AuxGraph.h.

◆ m_node

template<class TWeight >
node ogdf::matching_blossom::AuxNode< TWeight >::m_node
private

The actual node in the auxiliary graph.

Definition at line 63 of file AuxGraph.h.

◆ m_oddPseudonodes

template<class TWeight >
NodePQ ogdf::matching_blossom::AuxNode< TWeight >::m_oddPseudonodes
private

All odd pseudonodes in this tree.

Definition at line 79 of file AuxGraph.h.

◆ m_tree

template<class TWeight >
AlternatingTree<TWeight> ogdf::matching_blossom::AuxNode< TWeight >::m_tree
private

The alternating tree this node represents.

Definition at line 69 of file AuxGraph.h.


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