Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

MatchingBlossomV.h File Reference

Implementation of the Blossom V algorithm by Kolmogorov (2009). More...

#include <ogdf/basic/EdgeArray.h>
#include <ogdf/basic/EpsilonTest.h>
#include <ogdf/basic/Graph.h>
#include <ogdf/basic/GraphCopy.h>
#include <ogdf/basic/Logger.h>
#include <ogdf/graphalg/MatchingModule.h>
#include <ogdf/graphalg/matching_blossom/AlternatingTree.h>
#include <ogdf/graphalg/matching_blossom/AuxGraph.h>
#include <ogdf/graphalg/matching_blossom/BlossomVHelper.h>
#include <ogdf/graphalg/matching_blossom/Cycle.h>
#include <ogdf/graphalg/matching_blossom/Pseudonode.h>
#include <ogdf/graphalg/matching_blossom/utils.h>
#include <algorithm>
#include <chrono>
#include <iostream>
#include <limits>
#include <unordered_map>
#include <unordered_set>
#include <vector>

Go to the source code of this file.

Classes

class  ogdf::MatchingBlossomV< TWeight >
 Implementation of the Blossom-V algorithm by Kolmogorov (2009) for Minimum Weight Perfect Matching. More...
 
struct  ogdf::MatchingBlossomV< TWeight >::stats
 Structure to store statistics. More...
 

Namespaces

 ogdf
 The namespace for all OGDF objects.
 

Macros

#define OGDF_BLOSSOMV_ADD_STAT(stat)   m_stats[stat].add(0)
 
#define OGDF_BLOSSOMV_END_NAMED_TIMER(timer, stat)   m_stats[stat].add(end(timer))
 
#define OGDF_BLOSSOMV_END_TIMER(stat)   OGDF_BLOSSOMV_END_NAMED_TIMER(__timestamp, stat)
 
#define OGDF_BLOSSOMV_PRINT_STATS
 
#define OGDF_BLOSSOMV_START_NAMED_TIMER(timer)   auto timer = now()
 
#define OGDF_BLOSSOMV_START_TIMER()   OGDF_BLOSSOMV_START_NAMED_TIMER(__timestamp)
 

Detailed Description

Implementation of the Blossom V algorithm by Kolmogorov (2009).

Author
Joshua Sangmeister
License:
This file is part of the Open Graph Drawing Framework (OGDF).
Copyright (C)
See README.md in the OGDF root directory for details.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License Version 2 or 3 as published by the Free Software Foundation; see the file LICENSE.txt included in the packaging of this file for details.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, see http://www.gnu.org/copyleft/gpl.html

Definition in file MatchingBlossomV.h.

Macro Definition Documentation

◆ OGDF_BLOSSOMV_ADD_STAT

#define OGDF_BLOSSOMV_ADD_STAT (   stat)    m_stats[stat].add(0)

Definition at line 64 of file MatchingBlossomV.h.

◆ OGDF_BLOSSOMV_END_NAMED_TIMER

#define OGDF_BLOSSOMV_END_NAMED_TIMER (   timer,
  stat 
)    m_stats[stat].add(end(timer))

Definition at line 63 of file MatchingBlossomV.h.

◆ OGDF_BLOSSOMV_END_TIMER

#define OGDF_BLOSSOMV_END_TIMER (   stat)    OGDF_BLOSSOMV_END_NAMED_TIMER(__timestamp, stat)

Definition at line 62 of file MatchingBlossomV.h.

◆ OGDF_BLOSSOMV_PRINT_STATS

#define OGDF_BLOSSOMV_PRINT_STATS

Definition at line 56 of file MatchingBlossomV.h.

◆ OGDF_BLOSSOMV_START_NAMED_TIMER

#define OGDF_BLOSSOMV_START_NAMED_TIMER (   timer)    auto timer = now()

Definition at line 61 of file MatchingBlossomV.h.

◆ OGDF_BLOSSOMV_START_TIMER

#define OGDF_BLOSSOMV_START_TIMER ( )    OGDF_BLOSSOMV_START_NAMED_TIMER(__timestamp)

Definition at line 60 of file MatchingBlossomV.h.