summaryrefslogtreecommitdiff
path: root/src/analysis_tools.hpp
blob: 3beb1a882cf4c39cd9a945d1d56eda42187bf87e (plain)
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

#include <boost/graph/adjacency_list.hpp>
#include <boost/graph/connected_components.hpp>
#include <boost/graph/depth_first_search.hpp>
#include <boost/range/combine.hpp>
#include <boost/foreach.hpp>

#include <vector>
#include <algorithm>
#include <cmath>
#include <list>
#include <valarray>

#include <network.hpp>

struct EdgeProperties {
  unsigned index;
};

typedef boost::adjacency_list<boost::listS, boost::vecS, boost::undirectedS, boost::no_property, EdgeProperties> Graph;


template<class T>
bool is_shorter(const std::list<T> &, const std::list<T> &);

bool trivial(boost::detail::edge_desc_impl<boost::undirected_tag,unsigned long>);

std::list<std::pair<std::array<unsigned, 2>, std::list<unsigned>>> find_minimal_crack(const Graph &, const network &);