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);
27 : values[i0] * (i1 - k) + values[i1] * (k - i0);
30void c_quart1(DCELL * result, DCELL * values,
int n,
const void *closure)
32 static const double q = 0.25;
36void c_quart3(DCELL * result, DCELL * values,
int n,
const void *closure)
38 static const double q = 0.75;
42void c_perc90(DCELL * result, DCELL * values,
int n,
const void *closure)
44 static const double q = 0.90;
48void 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];
76void w_quart1(DCELL * result, DCELL(*values)[2],
int n,
const void *closure)
78 static const double q = 0.25;
82void w_quart3(DCELL * result, DCELL(*values)[2],
int n,
const void *closure)
84 static const double q = 0.75;
88void 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)