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