4 #include <grass/raster.h>
5 #include <grass/stats.h>
7 void c_quant(DCELL * result, DCELL * values,
int n,
const void *closure)
9 double quant = *(
const double *)closure;
16 Rast_set_d_null_value(result, 1);
26 : values[i0] * (i1 - k) + values[i1] * (k - i0);
29 void c_quart1(DCELL * result, DCELL * values,
int n,
const void *closure)
31 static const double q = 0.25;
35 void c_quart3(DCELL * result, DCELL * values,
int n,
const void *closure)
37 static const double q = 0.75;
41 void c_perc90(DCELL * result, DCELL * values,
int n,
const void *closure)
43 static const double q = 0.90;
47 void w_quant(DCELL * result, DCELL(*values)[2],
int n,
const void *closure)
49 double quant = *(
const double *)closure;
57 Rast_set_d_null_value(result, 1);
62 for (i = 0; i < n; i++)
63 total += values[i][1];
66 for (i = 0; i < n; i++) {
68 if (k >= total * quant)
72 *result = values[i][0];
75 void w_quart1(DCELL * result, DCELL(*values)[2],
int n,
const void *closure)
77 static const double q = 0.25;
81 void w_quart3(DCELL * result, DCELL(*values)[2],
int n,
const void *closure)
83 static const double q = 0.75;
87 void w_perc90(DCELL * result, DCELL(*values)[2],
int n,
const void *closure)
89 static const double q = 0.90;