4void c_kurt(DCELL *result, DCELL *values,
int n,
const void *closure UNUSED)
6 DCELL sum, ave, sumsq, sumqt, var;
13 for (i = 0; i < n; i++) {
14 if (Rast_is_d_null_value(&values[i]))
22 Rast_set_d_null_value(result, 1);
31 for (i = 0; i < n; i++) {
34 if (Rast_is_d_null_value(&values[i]))
39 sumqt += d * d * d * d;
44 *result = sumqt / (
count * var * var) - 3;
47void w_kurt(DCELL *result, DCELL (*values)[2],
int n,
48 const void *closure UNUSED)
50 DCELL sum, ave, sumsq, sumqt, var;
57 for (i = 0; i < n; i++) {
58 if (Rast_is_d_null_value(&values[i][0]))
61 sum += values[i][0] * values[i][1];
62 count += values[i][1];
66 Rast_set_d_null_value(result, 1);
75 for (i = 0; i < n; i++) {
78 if (Rast_is_d_null_value(&values[i][0]))
81 d = values[i][0] - ave;
82 sumsq += d * d * values[i][1];
83 sumqt += d * d * d * values[i][1];
88 *result = sumqt / (
count * var * var) - 3;