equal
deleted
inserted
replaced
14 * |
14 * |
15 */ |
15 */ |
16 |
16 |
17 #ifndef HUGO_TIGHT_EDGE_FILTER_MAP_H |
17 #ifndef HUGO_TIGHT_EDGE_FILTER_MAP_H |
18 #define HUGO_TIGHT_EDGE_FILTER_MAP_H |
18 #define HUGO_TIGHT_EDGE_FILTER_MAP_H |
|
19 |
|
20 #include <hugo/maps.h> |
19 |
21 |
20 // /// \file |
22 // /// \file |
21 // /// \brief Maximum flow algorithms. |
23 // /// \brief Maximum flow algorithms. |
22 // /// \ingroup galgs |
24 // /// \ingroup galgs |
23 |
25 |
36 /// and the map returns true exactly for those edges. |
38 /// and the map returns true exactly for those edges. |
37 /// To avoid rounding errors, it is recommended to use this class with exact |
39 /// To avoid rounding errors, it is recommended to use this class with exact |
38 /// types, e.g. with int. |
40 /// types, e.g. with int. |
39 template<typename Graph, |
41 template<typename Graph, |
40 typename NodePotentialMap, typename EdgeDistanceMap> |
42 typename NodePotentialMap, typename EdgeDistanceMap> |
41 class TightEdgeFilterMap { |
43 class TightEdgeFilterMap : public MapBase<typename Graph::Edge, bool> { |
42 protected: |
44 protected: |
43 const Graph* g; |
45 const Graph* g; |
44 NodePotentialMap* node_potential; |
46 NodePotentialMap* node_potential; |
45 EdgeDistanceMap* edge_distance; |
47 EdgeDistanceMap* edge_distance; |
46 public: |
48 public: |