Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
Loading...
Searching...
No Matches
Aleph::blossom_weighted_detail::mwmatching::impl::Blossom< WeightType > Struct Template Reference

Represents a blossom in the algorithm. More...

#include <blossom_weighted_mwmatching.H>

Inheritance diagram for Aleph::blossom_weighted_detail::mwmatching::impl::Blossom< WeightType >:
[legend]

Public Member Functions

 Blossom ()
 
 Blossom (VertexId base_vertex)
 
NonTrivialBlossom< WeightType > * nontrivial ()
 Safe downcast to NonTrivialBlossom.
 
const NonTrivialBlossom< WeightType > * nontrivial () const
 Safe downcast to NonTrivialBlossom (const version).
 

Public Attributes

NonTrivialBlossom< WeightType > * parent
 Parent in the blossom hierarchy, or null if top-level.
 
VertexId base_vertex
 Index of the base vertex (the unmatched vertex in the blossom).
 
BlossomLabel label
 Label S or T if this is part of the current alternating forest.
 
bool is_nontrivial_blossom
 Flag to distinguish between Blossom and NonTrivialBlossom.
 
VertexPair tree_edge
 Tree edge attaching this blossom to its parent in the alternating forest.
 
const Edge< WeightType > * best_edge
 Best edge for dual variable calculation (least slack).
 

Protected Member Functions

 Blossom (const VertexId base_vertex, const bool is_nontrivial_blossom)
 

Detailed Description

template<typename WeightType>
struct Aleph::blossom_weighted_detail::mwmatching::impl::Blossom< WeightType >

Represents a blossom in the algorithm.

A blossom is either a single vertex (trivial) or an odd-length alternating cycle of sub-blossoms.

Template Parameters
WeightTypeNumeric type for weights.

Definition at line 315 of file blossom_weighted_mwmatching.H.

Constructor & Destructor Documentation

◆ Blossom() [1/3]

template<typename WeightType >
Aleph::blossom_weighted_detail::mwmatching::impl::Blossom< WeightType >::Blossom ( const VertexId  base_vertex,
const bool  is_nontrivial_blossom 
)
inlineprotected

Definition at line 337 of file blossom_weighted_mwmatching.H.

◆ Blossom() [2/3]

◆ Blossom() [3/3]

Definition at line 352 of file blossom_weighted_mwmatching.H.

Member Function Documentation

◆ nontrivial() [1/2]

◆ nontrivial() [2/2]

Member Data Documentation

◆ base_vertex

◆ best_edge

◆ is_nontrivial_blossom

◆ label

◆ parent

◆ tree_edge


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