BICO  1.0
 All Classes Namespaces Files Functions Variables Typedefs Pages
partitionprovider.h
Go to the documentation of this file.
1 #ifndef PARTITIONPROVIDER_H
2 #define PARTITIONPROVIDER_H
3 
4 #include "../base/solutionprovider.h"
5 
6 #include <vector>
7 
8 namespace CluE
9 {
10 
16 template<typename T> class PartitionProvider
17 {
18 public:
19 
21  {
22  }
23 
31  virtual unsigned int number_of_solutions() const = 0;
32 
39  virtual unsigned int size_of_solution(unsigned int index) const = 0;
40 
44  virtual unsigned int clustersize(unsigned int solutionIndex, unsigned int partitionIndex) const = 0;
45 
49  virtual T* element(unsigned int solutionIndex, unsigned int partitionIndex, unsigned int elementIndex) const = 0;
50 
55  virtual std::vector<T*> cluster(unsigned int solutionIndex, unsigned int partitionIndex) const = 0;
56 
60  virtual std::vector<std::vector<T*> > clustering(unsigned int solutionIndex) const = 0;
61 
67  {
68  return dynamic_cast<PartitionProvider<T>*>(s);
69  }
70 };
71 
72 }
73 
74 #endif