2 #include <grass/raster.h> 4 void c_var(DCELL * result, DCELL * values,
int n,
const void *closure)
13 for (i = 0; i < n; i++) {
14 if (Rast_is_d_null_value(&values[i]))
22 Rast_set_d_null_value(result, 1);
30 for (i = 0; i < n; i++) {
33 if (Rast_is_d_null_value(&values[i]))
40 *result = sumsq /
count;
43 void w_var(DCELL * result, DCELL(*values)[2],
int n,
const void *closure)
45 DCELL sum, ave, sumsq;
52 for (i = 0; i < n; i++) {
53 if (Rast_is_d_null_value(&values[i][0]))
56 sum += values[i][0] * values[i][1];
57 count += values[i][1];
61 Rast_set_d_null_value(result, 1);
69 for (i = 0; i < n; i++) {
72 if (Rast_is_d_null_value(&values[i][0]))
75 d = values[i][0] - ave;
76 sumsq += d * d * values[i][1];
79 *result = sumsq /
count;
void w_var(DCELL *result, DCELL(*values)[2], int n, const void *closure)
void c_var(DCELL *result, DCELL *values, int n, const void *closure)