GRASS Programmer's Manual  6.4.2(2012)
c_distinct.c
Go to the documentation of this file.
00001 #include <grass/cluster.h>
00002 
00003 int I_cluster_distinct(struct Cluster *C, double separation)
00004 {
00005     int class1, class2;
00006     int distinct;
00007     double dmin;
00008     double dsep;
00009 
00010     /* compute sum of squares for each class */
00011     I_cluster_sum2(C);
00012 
00013     /* find closest classes */
00014     distinct = 1;
00015     dmin = separation;
00016     for (class1 = 0; class1 < (C->nclasses - 1); class1++) {
00017         if (C->count[class1] < 2)
00018             continue;
00019         for (class2 = class1 + 1; class2 < C->nclasses; class2++) {
00020             if (C->count[class2] < 2)
00021                 continue;
00022             dsep = I_cluster_separation(C, class1, class2);
00023 
00024             if (dsep >= 0.0 && dsep < dmin) {
00025                 distinct = 0;
00026                 C->merge1 = class1;
00027                 C->merge2 = class2;
00028                 dmin = dsep;
00029             }
00030         }
00031     }
00032 
00033     return distinct;
00034 }
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines