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