4void c_var(DCELL *result, DCELL *values,
int n,
const void *closure UNUSED)
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;
43void w_var(DCELL *result, DCELL (*values)[2],
int n,
const void *closure UNUSED)
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;