The Fib multimedia system
Fib is a system for storing multimedia data (like images or films).
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
nCluster.h
Go to the documentation of this file.
1 /**
2  * @file nCluster
3  * file name: nCluster.h
4  * @author Betti Oesterholz
5  * @date 17.03.2011
6  * @mail webmaster@BioKom.info
7  *
8  * System: C++
9  *
10  * This header specifies functions to cluster data.
11  * Copyright (C) @c GPL3 2011 Betti Oesterholz
12  *
13  * This program is free software: you can redistribute it and/or modify
14  * it under the terms of the GNU General Public License (GPL) as
15  * published by the Free Software Foundation, either version 3 of the
16  * License, or any later version.
17  *
18  * This program is distributed in the hope that it will be useful,
19  * but WITHOUT ANY WARRANTY; without even the implied warranty of
20  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21  * GNU Lesser General Public License for more details.
22  *
23  * You should have received a copy of the GNU General Public License
24  * along with this program. If not, see <http://www.gnu.org/licenses/>.
25  *
26  *
27  * This header specifies functions to cluster data.
28  */
29 /*
30 History:
31 17.03.2011 Oesterholz created
32 */
33 
34 #ifndef ___N_CLUSTER_H__
35 #define ___N_CLUSTER_H__
36 
37 
38 #include "version.h"
39 
40 #include "iClusterFunction.h"
41 
42 #include <map>
43 
44 
45 
46 using namespace std;
47 
48 
49 namespace fib{
50 
51 namespace algorithms{
52 
53 namespace nCluster{
54 
55  /**
56  * This function clusters the given data.
57  * This will be done with an given formular evaluePoints.
58  * An data point D can be in the cluster to an other data point C, if
59  * 0 < evaluePoints.evalue( C, D )
60  * If ther are more data points C_i for which the formulare is fulfilled,
61  * the data point will be mapped to the data point wher
62  * evaluePoints( C_i, D ) is the maximal.
63  *
64  * @param mapData the data to cluster
65  * key: the datapoint
66  * value: the number of elements for the data point
67  * @param evaluePoints the class for evaluing the cluster value for two
68  * data points
69  * @return a map with:
70  * -key: the data points of the given mapData
71  * -value: the data point, which is the center of the cluster, in
72  * which the key data point is;
73  * so the key data point should be maped to the value data point
74  */
75  template< class tDataPoint >
76  map< tDataPoint, tDataPoint > cluster(
77  const map< tDataPoint, unsigned long > & mapData,
78  const iClusterFunction< tDataPoint > & evaluePoints );
79 
80 
81 
82 };//end namespace nCluster
83 };//end namespace algorithms
84 };//end namespace fib
85 
86 
87 //include template implementation
88 #define ___N_CLUSTER_H_INCLUDE__
89 #include "../src/nCluster.cpp"
90 #undef ___N_CLUSTER_H_INCLUDE__
91 
92 
93 
94 #endif //___N_CLUSTER_H__
95 
96 
97 
98 
99 
100 
101 
102 
103 
104 
105 
106 
107 
108 
109 
110