IMP  2.0.1
The Integrative Modeling Platform
clustering_macros.h
Go to the documentation of this file.
1 /**
2  * \file IMP/statistics/clustering_macros.h \brief Various important macros
3  * for implementing decorators.
4  *
5  * Copyright 2007-2013 IMP Inventors. All rights reserved.
6  *
7  */
8 
9 #ifndef IMPSTATISTICS_CLUSTERING_MACROS_H
10 #define IMPSTATISTICS_CLUSTERING_MACROS_H
11 
12 #include "embedding_macros.h"
13 #include <IMP/base/object_macros.h>
14 
15 //! Define things needed for a Metric
16 /** In addition to what is done by IMP_OBJECT() it declares
17  - IMP::statistics::Distance::get_embedding()
18 */
19 #define IMP_METRIC(Name) \
20  double get_distance(unsigned int i, \
21  unsigned int j) const; \
22  unsigned int get_number_of_items() const; \
23  IMP_OBJECT(Name)
24 
25 
26 //! Define the methods needed by Clustering
27 /** In addition to what is defined/declared by IMP_OBJECT() it declares
28  - IMP::statistics::Clustering::get_number_of_clusters()
29  - IMP::statistics::Clustering::get_cluster()
30  - IMP::statistics::Clustering::get_cluster_representative()
31 */
32 #define IMP_CLUSTERING(Name) \
33  unsigned int get_number_of_clusters() const; \
34  const Ints& get_cluster(unsigned int i) const; \
35  int get_cluster_representative(unsigned int i) const; \
36  IMP_OBJECT(Name)
37 
38 #endif /* IMPSTATISTICS_CLUSTERING_MACROS_H */