GRASS GIS 8 Programmer's Manual
8.5.0dev(2024)-36359e2344
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
cluster.h
G_debug
int G_debug(int, const char *,...) __attribute__((format(printf
I_free_double2
int I_free_double2(double **)
Definition:
imagery/alloc.c:93
I_alloc_int
int * I_alloc_int(int)
Definition:
imagery/alloc.c:49
I_free
int I_free(void *)
Definition:
imagery/alloc.c:21
I_alloc_double2
double ** I_alloc_double2(int, int)
Definition:
imagery/alloc.c:29
Cluster
Definition:
cluster.h:7
Cluster::count
int * count
Definition:
cluster.h:18
Cluster::sum2
double ** sum2
Definition:
cluster.h:22
Cluster::npoints
int npoints
Definition:
cluster.h:9
Cluster::countdiff
int * countdiff
Definition:
cluster.h:19
Cluster::class
int * class
Definition:
cluster.h:16
Cluster::nclasses
int nclasses
Definition:
cluster.h:26
Cluster::mean
double ** mean
Definition:
cluster.h:23
Cluster::reclass
int * reclass
Definition:
cluster.h:17
Cluster::sum
double ** sum
Definition:
cluster.h:20
Cluster::nbands
int nbands
Definition:
cluster.h:8
Cluster::sumdiff
double ** sumdiff
Definition:
cluster.h:21
lib
cluster
c_execmem.c
Generated on Thu Nov 21 2024 07:03:25 for GRASS GIS 8 Programmer's Manual by
1.9.1