GRASS 8 Programmer's Manual
8.5.0(2026)-8d6ceba290
Toggle main menu visibility
Loading...
Searching...
No Matches
c_execmem.c
Go to the documentation of this file.
1
/*!
2
\file cluster/c_execmem.c
3
4
\brief Cluster library - Allocate cluster
5
6
(C) 2001-2009 by the GRASS Development Team
7
8
This program is free software under the GNU General Public License
9
(>=v2). Read the file COPYING that comes with GRASS for details.
10
11
\author Original author CERL
12
*/
13
14
#include <grass/cluster.h>
15
16
/*!
17
\brief Allocate Cluster structure
18
19
\param C pointer to Cluster structure
20
21
\return 1 on success
22
\return 0 on error
23
*/
24
int
I_cluster_exec_allocate
(
struct
Cluster *C)
25
{
26
G_debug
(1,
"I_cluster_exec_allocate(npoints=%d,nclasses=%d,nbands=%d)"
,
27
C->npoints, C->nclasses, C->nbands);
28
29
C->class = I_alloc_int(C->npoints);
30
C->reclass = I_alloc_int(C->nclasses);
31
C->count = I_alloc_int(C->nclasses);
32
C->countdiff = I_alloc_int(C->nclasses);
33
C->sum = I_alloc_double2(C->nbands, C->nclasses);
34
C->sumdiff = I_alloc_double2(C->nbands, C->nclasses);
35
C->sum2 = I_alloc_double2(C->nbands, C->nclasses);
36
C->mean = I_alloc_double2(C->nbands, C->nclasses);
37
if
(C->class ==
NULL
|| C->reclass ==
NULL
|| C->sum ==
NULL
||
38
C->sumdiff ==
NULL
|| C->count ==
NULL
|| C->countdiff ==
NULL
||
39
C->sum2 ==
NULL
|| C->mean ==
NULL
) {
40
I_cluster_exec_free
(C);
41
return
0;
42
}
43
return
1;
44
}
45
46
/*!
47
\brief Free allocated Cluster structure
48
49
\param C pointer to Cluster structure
50
51
\return 0
52
*/
53
int
I_cluster_exec_free
(
struct
Cluster *C)
54
{
55
I_free(C->class);
56
I_free(C->reclass);
57
I_free(C->count);
58
I_free(C->countdiff);
59
I_free_double2(C->sum2);
60
I_free_double2(C->sum);
61
I_free_double2(C->sumdiff);
62
I_free_double2(C->mean);
63
64
C->class =
NULL
;
65
C->count =
NULL
;
66
C->countdiff =
NULL
;
67
C->sum =
NULL
;
68
C->sumdiff =
NULL
;
69
C->sum2 =
NULL
;
70
C->mean =
NULL
;
71
72
return
0;
73
}
I_cluster_exec_allocate
int I_cluster_exec_allocate(struct Cluster *C)
Allocate Cluster structure.
Definition
c_execmem.c:24
I_cluster_exec_free
int I_cluster_exec_free(struct Cluster *C)
Free allocated Cluster structure.
Definition
c_execmem.c:53
NULL
#define NULL
Definition
ccmath.h:32
G_debug
int G_debug(int level, const char *msg,...)
Print debugging message.
Definition
debug.c:66
cluster
c_execmem.c
Generated on
for GRASS 8 Programmer's Manual by
1.17.0