|
Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
|
Represents a blossom in the algorithm. More...
#include <blossom_weighted_mwmatching.H>
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) | |
Represents a blossom in the algorithm.
A blossom is either a single vertex (trivial) or an odd-length alternating cycle of sub-blossoms.
| WeightType | Numeric type for weights. |
Definition at line 315 of file blossom_weighted_mwmatching.H.
|
inlineprotected |
Definition at line 337 of file blossom_weighted_mwmatching.H.
|
inline |
Definition at line 347 of file blossom_weighted_mwmatching.H.
|
inlineexplicit |
Definition at line 352 of file blossom_weighted_mwmatching.H.
|
inline |
Safe downcast to NonTrivialBlossom.
Definition at line 357 of file blossom_weighted_mwmatching.H.
References Aleph::blossom_weighted_detail::mwmatching::impl::Blossom< WeightType >::is_nontrivial_blossom.
Referenced by Aleph::blossom_weighted_detail::mwmatching::impl::MatchingContext< WeightType >::assign_label_t(), Aleph::blossom_weighted_detail::mwmatching::impl::MatchingContext< WeightType >::augment_blossom_rec(), Aleph::blossom_weighted_detail::mwmatching::impl::MatchingContext< WeightType >::augment_matching(), Aleph::blossom_weighted_detail::mwmatching::impl::for_vertices_in_blossom(), Aleph::blossom_weighted_detail::mwmatching::impl::MatchingContext< WeightType >::lset_add_blossom_edge(), and Aleph::blossom_weighted_detail::mwmatching::impl::MatchingContext< WeightType >::lset_new_blossom().
|
inline |
Safe downcast to NonTrivialBlossom (const version).
Definition at line 365 of file blossom_weighted_mwmatching.H.
References Aleph::blossom_weighted_detail::mwmatching::impl::Blossom< WeightType >::is_nontrivial_blossom.
| VertexId Aleph::blossom_weighted_detail::mwmatching::impl::Blossom< WeightType >::base_vertex |
Index of the base vertex (the unmatched vertex in the blossom).
Definition at line 321 of file blossom_weighted_mwmatching.H.
Referenced by Aleph::blossom_weighted_detail::mwmatching::impl::MatchingContext< WeightType >::augment_blossom_rec(), and Aleph::blossom_weighted_detail::mwmatching::impl::for_vertices_in_blossom().
| const Edge<WeightType>* Aleph::blossom_weighted_detail::mwmatching::impl::Blossom< WeightType >::best_edge |
Best edge for dual variable calculation (least slack).
Definition at line 333 of file blossom_weighted_mwmatching.H.
Referenced by Aleph::blossom_weighted_detail::mwmatching::impl::MatchingContext< WeightType >::lset_add_blossom_edge(), Aleph::blossom_weighted_detail::mwmatching::impl::MatchingContext< WeightType >::lset_merge_blossoms(), and Aleph::blossom_weighted_detail::mwmatching::impl::MatchingContext< WeightType >::lset_new_blossom().
| bool Aleph::blossom_weighted_detail::mwmatching::impl::Blossom< WeightType >::is_nontrivial_blossom |
Flag to distinguish between Blossom and NonTrivialBlossom.
Definition at line 327 of file blossom_weighted_mwmatching.H.
Referenced by Aleph::blossom_weighted_detail::mwmatching::impl::Blossom< WeightType >::nontrivial(), and Aleph::blossom_weighted_detail::mwmatching::impl::Blossom< WeightType >::nontrivial().
| BlossomLabel Aleph::blossom_weighted_detail::mwmatching::impl::Blossom< WeightType >::label |
Label S or T if this is part of the current alternating forest.
Definition at line 324 of file blossom_weighted_mwmatching.H.
Referenced by Aleph::blossom_weighted_detail::mwmatching::impl::MatchingContext< WeightType >::expand_t_blossom(), Aleph::blossom_weighted_detail::mwmatching::impl::MatchingContext< WeightType >::expand_unlabeled_blossom(), Aleph::blossom_weighted_detail::mwmatching::impl::MatchingContext< WeightType >::make_blossom(), and Aleph::blossom_weighted_detail::mwmatching::impl::MatchingContext< WeightType >::substage_scan().
| NonTrivialBlossom<WeightType>* Aleph::blossom_weighted_detail::mwmatching::impl::Blossom< WeightType >::parent |
Parent in the blossom hierarchy, or null if top-level.
Definition at line 318 of file blossom_weighted_mwmatching.H.
Referenced by Aleph::blossom_weighted_detail::mwmatching::impl::MatchingContext< WeightType >::augment_blossom(), Aleph::blossom_weighted_detail::mwmatching::impl::MatchingContext< WeightType >::expand_t_blossom(), and Aleph::blossom_weighted_detail::mwmatching::impl::MatchingContext< WeightType >::expand_unlabeled_blossom().
| VertexPair Aleph::blossom_weighted_detail::mwmatching::impl::Blossom< WeightType >::tree_edge |
Tree edge attaching this blossom to its parent in the alternating forest.
Definition at line 330 of file blossom_weighted_mwmatching.H.
Referenced by Aleph::blossom_weighted_detail::mwmatching::impl::MatchingContext< WeightType >::expand_t_blossom(), and Aleph::blossom_weighted_detail::mwmatching::impl::MatchingContext< WeightType >::make_blossom().