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);
27 : values[i0] * (i1 - k) + values[i1] * (k - i0);
30 void c_quart1(DCELL * result, DCELL * values,
int n,
const void *closure)
32 static const double q = 0.25;
36 void c_quart3(DCELL * result, DCELL * values,
int n,
const void *closure)
38 static const double q = 0.75;
42 void c_perc90(DCELL * result, DCELL * values,
int n,
const void *closure)
44 static const double q = 0.90;
48 void w_quant(DCELL * result, DCELL(*values)[2],
int n,
const void *closure)
50 double quant = *(
const double *)closure;
58 Rast_set_d_null_value(result, 1);
63 for (i = 0; i < n; i++)
64 total += values[i][1];
67 for (i = 0; i < n; i++) {
69 if (k >= total * quant)
73 *result = values[i][0];
76 void w_quart1(DCELL * result, DCELL(*values)[2],
int n,
const void *closure)
78 static const double q = 0.25;
82 void w_quart3(DCELL * result, DCELL(*values)[2],
int n,
const void *closure)
84 static const double q = 0.75;
88 void w_perc90(DCELL * result, DCELL(*values)[2],
int n,
const void *closure)
90 static const double q = 0.90;
void w_quant(DCELL *result, DCELL(*values)[2], int n, const void *closure)
void w_perc90(DCELL *result, DCELL(*values)[2], int n, const void *closure)
void c_quart1(DCELL *result, DCELL *values, int n, const void *closure)
void w_quart3(DCELL *result, DCELL(*values)[2], int n, const void *closure)
void c_quart3(DCELL *result, DCELL *values, int n, const void *closure)
void w_quart1(DCELL *result, DCELL(*values)[2], int n, const void *closure)
void c_perc90(DCELL *result, DCELL *values, int n, const void *closure)
void c_quant(DCELL *result, DCELL *values, int n, const void *closure)
int sort_cell(DCELL *array, int n)
int sort_cell_w(DCELL(*array)[2], int n)