GRASS Programmer's Manual  6.4.2(2012)
c_execmem.c
Go to the documentation of this file.
00001 #include <grass/cluster.h>
00002 
00003 int I_cluster_exec_allocate(struct Cluster *C)
00004 {
00005     /*
00006        fprintf(stderr,"I_cluster_exec_allocate(npoints=%d,nclasses=%d,nbands=%d)\n", C->npoints, C->nclasses, C->nbands);
00007      */
00008 
00009     C->class = I_alloc_int(C->npoints);
00010     C->reclass = I_alloc_int(C->nclasses);
00011     C->count = I_alloc_int(C->nclasses);
00012     C->countdiff = I_alloc_int(C->nclasses);
00013     C->sum = I_alloc_double2(C->nbands, C->nclasses);
00014     C->sumdiff = I_alloc_double2(C->nbands, C->nclasses);
00015     C->sum2 = I_alloc_double2(C->nbands, C->nclasses);
00016     C->mean = I_alloc_double2(C->nbands, C->nclasses);
00017     if (C->class == NULL || C->reclass == NULL ||
00018         C->sum == NULL || C->sumdiff == NULL ||
00019         C->count == NULL || C->countdiff == NULL ||
00020         C->sum2 == NULL || C->mean == NULL) {
00021         I_cluster_exec_free(C);
00022         return 0;
00023     }
00024     return 1;
00025 }
00026 
00027 int I_cluster_exec_free(struct Cluster *C)
00028 {
00029     I_free(C->class);
00030     I_free(C->reclass);
00031     I_free(C->count);
00032     I_free(C->countdiff);
00033     I_free_double2(C->sum2);
00034     I_free_double2(C->sum);
00035     I_free_double2(C->sumdiff);
00036     I_free_double2(C->mean);
00037 
00038     C->class = NULL;
00039     C->count = NULL;
00040     C->countdiff = NULL;
00041     C->sum = NULL;
00042     C->sumdiff = NULL;
00043     C->sum2 = NULL;
00044     C->mean = NULL;
00045 
00046     return 0;
00047 }
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines