GRASS 8 Programmer's Manual
8.5.0(2026)-8d6ceba290
Toggle main menu visibility
Loading...
Searching...
No Matches
xmax.c
Go to the documentation of this file.
1
#include <stdlib.h>
2
3
#include <grass/gis.h>
4
#include <grass/raster.h>
5
#include <grass/calc.h>
6
7
/****************************************************************
8
max(x0,x1,...,xn) returns maximum value
9
****************************************************************/
10
11
int
f_max
(
int
argc,
const
int
*argt,
void
**args)
12
{
13
int
i, j;
14
15
if
(argc < 1)
16
return
E_ARG_LO;
17
18
for
(i = 1; i <= argc; i++)
19
if
(argt[i] != argt[0])
20
return
E_ARG_TYPE;
21
22
switch
(argt[0]) {
23
case
CELL_TYPE: {
24
CELL *res = args[0];
25
CELL **argz = (CELL **)args;
26
27
for
(i = 0; i <
columns
; i++) {
28
int
nul = 0;
29
CELL
max
;
30
31
for
(j = 1; j <= argc; j++)
32
if
(IS_NULL_C(&argz[j][i]))
33
nul = 1;
34
else
if
(j == 1)
35
max
= argz[j][i];
36
else
if
(
max
< argz[j][i])
37
max
= argz[j][i];
38
if
(nul)
39
SET_NULL_C(&res[i]);
40
else
41
res[i] =
max
;
42
}
43
return
0;
44
}
45
case
FCELL_TYPE: {
46
FCELL *res = args[0];
47
FCELL **argz = (FCELL **)args;
48
49
for
(i = 0; i <
columns
; i++) {
50
int
nul = 0;
51
FCELL
max
;
52
53
for
(j = 1; j <= argc; j++)
54
if
(IS_NULL_F(&argz[j][i]))
55
nul = 1;
56
else
if
(j == 1)
57
max
= argz[j][i];
58
else
if
(
max
< argz[j][i])
59
max
= argz[j][i];
60
if
(nul)
61
SET_NULL_F(&res[i]);
62
else
63
res[i] =
max
;
64
}
65
66
return
0;
67
}
68
case
DCELL_TYPE: {
69
DCELL *res = args[0];
70
DCELL **argz = (DCELL **)args;
71
72
for
(i = 0; i <
columns
; i++) {
73
int
nul = 0;
74
DCELL
max
;
75
76
for
(j = 1; j <= argc; j++)
77
if
(IS_NULL_D(&argz[j][i]))
78
nul = 1;
79
else
if
(j == 1)
80
max
= argz[j][i];
81
else
if
(
max
< argz[j][i])
82
max
= argz[j][i];
83
if
(nul)
84
SET_NULL_D(&res[i]);
85
else
86
res[i] =
max
;
87
}
88
89
return
0;
90
}
91
default
:
92
return
E_INV_TYPE;
93
}
94
}
columns
int columns
Definition
calc.c:11
max
#define max(a, b)
Definition
pngdriver/draw_bitmap.c:22
f_max
int f_max(int argc, const int *argt, void **args)
Definition
xmax.c:11
calc
xmax.c
Generated on
for GRASS 8 Programmer's Manual by
1.17.0