BICO  1.0
 All Classes Namespaces Files Functions Variables Typedefs Pages
combinedevaluation.h
Go to the documentation of this file.
1 #ifndef COMBINEDEVALUATION_H
2 #define COMBINEDEVALUATION_H
3 
4 #include "../base/partitionprovider.h"
5 #include "../base/proxyprovider.h"
6 #include "../base/discreteproxyprovider.h"
7 
8 #include <vector>
9 
10 namespace CluE {
11 
20 template<typename T> class CombinedEvaluation : virtual public Evaluation {
21 public:
22  virtual ~CombinedEvaluation() {
23  }
24 
29  virtual double combinedcost(std::vector<std::vector<T*> > const& partitioning, std::vector<T> const& proxies) const = 0;
34  virtual double combinedcost(PartitionProvider<T> const &partitioning, ProxyProvider<T> const &proxies, unsigned int solutionIndex) const = 0;
38  virtual double combinedcost(std::vector<T*> const &partition, T const &proxy) const = 0;
44  virtual double combinedcost(PartitionProvider<T> const &partitioning, ProxyProvider<T> const &proxies, unsigned int solutionIndex, unsigned int elementIndex) const = 0;
45 
49  virtual double combinedcost(std::vector<std::vector<T*> > const& partitioning, std::vector<T*> const& proxies) const = 0;
54  virtual double combinedcost(PartitionProvider<T> const &partitioning, DiscreteProxyProvider<T> const &proxies, unsigned int solutionIndex) const = 0;
58  virtual double combinedcost(std::vector<T*> const &partition, T const * const proxy) const;
64  virtual double combinedcost(PartitionProvider<T> const &partitioning, DiscreteProxyProvider<T> const &proxies, unsigned int solutionIndex, unsigned int elementIndex) const = 0;
65 };
66 
67 template<typename T> inline double CombinedEvaluation<T>::combinedcost(std::vector<T*> const& cluster, T const * const proxy) const {
68  return combinedcost(cluster, *proxy);
69 }
70 
71 }
72 
73 #endif