Cost_policy.h
1 /* This file is part of the Gudhi Library - https://gudhi.inria.fr/ - which is released under MIT.
2  * See file LICENSE or go to https://gudhi.inria.fr/licensing/ for full license details.
3  * Author(s): David Salinas
4  *
5  * Copyright (C) 2014 Inria
6  *
7  * Modification(s):
8  * - YYYY/MM Author: Description of the modification
9  */
10 
11 #ifndef CONTRACTION_POLICIES_COST_POLICY_H_
12 #define CONTRACTION_POLICIES_COST_POLICY_H_
13 
14 #include <boost/optional.hpp>
15 
16 namespace Gudhi {
17 
18 namespace contraction {
19 
24 template< typename EdgeProfile>
25 class Cost_policy {
26  public:
27  typedef typename EdgeProfile::Point Point;
28  typedef typename EdgeProfile::Graph_vertex Graph_vertex;
29 
30  typedef boost::optional<double> Cost_type;
31 
32  virtual Cost_type operator()(const EdgeProfile& profile, const boost::optional<Point>& placement) const = 0;
33 
34  virtual ~Cost_policy() { }
35 };
36 
37 } // namespace contraction
38 
39 } // namespace Gudhi
40 
41 #endif // CONTRACTION_POLICIES_COST_POLICY_H_
Policy to specify the cost of contracting an edge.
Definition: Cost_policy.h:25
Gudhi namespace.
Definition: SimplicialComplexForAlpha.h:14