GRASS GIS 8 Programmer's Manual 8.4.1(2025)-45ca3179ab
Loading...
Searching...
No Matches
xneg.c
Go to the documentation of this file.
1#include <grass/gis.h>
2#include <grass/raster.h>
3#include <grass/calc.h>
4
5/**********************************************************************
6neg(x) = -x
7**********************************************************************/
8
9int f_neg(int argc, const int *argt, void **args)
10{
11 int i;
12
13 if (argc < 1)
14 return E_ARG_LO;
15 if (argc > 1)
16 return E_ARG_HI;
17
18 if (argt[0] != argt[1])
19 return E_RES_TYPE;
20
21 switch (argt[1]) {
22 case CELL_TYPE: {
23 CELL *res = args[0];
24 CELL *arg1 = args[1];
25
26 for (i = 0; i < columns; i++)
27 if (IS_NULL_C(&arg1[i]))
28 SET_NULL_C(&res[i]);
29 else
30 res[i] = -arg1[i];
31 return 0;
32 }
33 case FCELL_TYPE: {
34 FCELL *res = args[0];
35 FCELL *arg1 = args[1];
36
37 for (i = 0; i < columns; i++)
38 if (IS_NULL_F(&arg1[i]))
39 SET_NULL_F(&res[i]);
40 else
41 res[i] = -arg1[i];
42 return 0;
43 }
44 case DCELL_TYPE: {
45 DCELL *res = args[0];
46 DCELL *arg1 = args[1];
47
48 for (i = 0; i < columns; i++)
49 if (IS_NULL_D(&arg1[i]))
50 SET_NULL_D(&res[i]);
51 else
52 res[i] = -arg1[i];
53 return 0;
54 }
55 default:
56 return E_INV_TYPE;
57 }
58}
int columns
Definition calc.c:11
int f_neg(int argc, const int *argt, void **args)
Definition xneg.c:9