5#include <grass/raster.h>
23 for (i = 0; i <= argc; i++)
29int f_graph(
int argc,
const int *argt,
void **args)
31 DCELL **argz = (DCELL **) args;
33 int n = (argc - 1) / 2;
42 if (argt[0] != DCELL_TYPE)
45 for (i = 1; i <= argc; i++)
46 if (argt[i] != DCELL_TYPE)
50#define X(j) (argz[2 + 2 * (j) + 0][i])
51#define Y(j) (argz[2 + 2 * (j) + 1][i])
57 for (j = 0; j < n; j++)
61 for (j = 0; j < n - 1; j++)
73 if (IS_NULL_D(&
Y(n - 1)))
79 for (j = 0; j < n - 1; j++) {
83 if (IS_NULL_D(&
Y(j)) || IS_NULL_D(&
Y(j + 1)))
87 Y(j) + (
x -
X(j)) * (
Y(j + 1) -
Y(j)) / (
X(j + 1) -
X(j));
104int f_graph2(
int argc,
const int *argt,
void **args)
106 DCELL **argz = (DCELL **) args;
107 DCELL *res = argz[0];
108 int n = (argc - 1) / 2;
117 if (argt[0] != DCELL_TYPE)
120 for (i = 1; i <= argc; i++)
121 if (argt[i] != DCELL_TYPE)
124 for (i = 0; i <
columns; i++) {
125#define X(j) (argz[2 + (j) + 0][i])
126#define Y(j) (argz[2 + (j) + n][i])
127#define x (argz[1][i])
132 for (j = 0; j < n; j++)
133 if (IS_NULL_D(&
X(j)))
136 for (j = 0; j < n - 1; j++)
137 if (
X(j + 1) <=
X(j))
141 if (IS_NULL_D(&
Y(0)))
148 if (IS_NULL_D(&
Y(n - 1)))
154 for (j = 0; j < n - 1; j++) {
158 if (IS_NULL_D(&
Y(j)) || IS_NULL_D(&
Y(j + 1)))
162 Y(j) + (
x -
X(j)) * (
Y(j + 1) -
Y(j)) / (
X(j + 1) -
X(j));
int f_graph2(int argc, const int *argt, void **args)
int f_graph(int argc, const int *argt, void **args)
int c_graph(int argc, int *argt)