-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathperfect-matching.hpp
More file actions
36 lines (29 loc) · 963 Bytes
/
perfect-matching.hpp
File metadata and controls
36 lines (29 loc) · 963 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#ifndef UARK_CSCE_PERFECT_MATCHING
#define UARK_CSCE_PERFECT_MATCHING
#include <vector>
#include <random>
#include "math.h"
#include "matrix.hpp"
#include "polynomial.hpp"
#include "graph.hpp"
#include "edge.hpp"
#include <iostream>
namespace csce {
class PerfectMatching {
public:
PerfectMatching();
PerfectMatching(Graph& graph);
Graph findPerfectMatching(const Graph& graph) const;
Graph findMatching(Graph graph) const;
bool isSparse(const Graph& graph) const;
bool isPerfectMatching(const Graph& graph, const Graph& possibleMatching) const;
Graph getRedundantEdges(const Graph& graph) const;
Graph getObviousMatches(const Graph& graph) const;
int getRank(const Graph& e, const Graph& s) const;
Graph getRandomSubset(const Graph& graph) const;
size_t getRandomNumber(const Graph& graph) const;
private:
Graph _graph;
};
}
#endif /* UARK_CSCE_PERFECT_MATCHING */