4#include <grass/raster.h>
5#include <grass/stats.h>
7void 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 (i0 == i1) ? values[i0] : values[i0] * (i1 - k) + values[i1] * (k - i0);
29void c_quart1(DCELL *result, DCELL *values,
int n,
const void *closure UNUSED)
31 static const double q = 0.25;
36void c_quart3(DCELL *result, DCELL *values,
int n,
const void *closure UNUSED)
38 static const double q = 0.75;
43void c_perc90(DCELL *result, DCELL *values,
int n,
const void *closure UNUSED)
45 static const double q = 0.90;
50void w_quant(DCELL *result, DCELL (*values)[2],
int n,
const void *closure)
52 double quant = *(
const double *)closure;
60 Rast_set_d_null_value(result, 1);
65 for (i = 0; i < n; i++)
66 total += values[i][1];
69 for (i = 0; i < n; i++) {
71 if (k >= total * quant)
75 *result = values[i][0];
78void w_quart1(DCELL *result, DCELL (*values)[2],
int n,
79 const void *closure UNUSED)
81 static const double q = 0.25;
86void w_quart3(DCELL *result, DCELL (*values)[2],
int n,
87 const void *closure UNUSED)
89 static const double q = 0.75;
94void w_perc90(DCELL *result, DCELL (*values)[2],
int n,
95 const void *closure UNUSED)
97 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 UNUSED)
void c_quart3(DCELL *result, DCELL *values, int n, const void *closure UNUSED)
void w_quart1(DCELL *result, DCELL(*values)[2], int n, const void *closure UNUSED)
void c_quart1(DCELL *result, DCELL *values, int n, const void *closure UNUSED)
void w_quart3(DCELL *result, DCELL(*values)[2], int n, const void *closure UNUSED)
void c_quant(DCELL *result, DCELL *values, int n, const void *closure)
void c_perc90(DCELL *result, DCELL *values, int n, const void *closure UNUSED)
int sort_cell(DCELL *array, int n)
int sort_cell_w(DCELL(*array)[2], int n)