45int f_nmedian(
int argc,
const int *argt,
void **args)
49 int size = argc * Rast_cell_size(argt[0]);
55 for (i = 1; i <= argc; i++)
56 if (argt[i] != argt[0])
61 array = G_realloc(array, size);
67 CELL **argv = (CELL **)&args[1];
75 for (j = 0; j < argc; j++) {
76 if (IS_NULL_C(&argv[j][i]))
86 qsort(a, n,
sizeof(CELL), icmp);
91 *resc = (*resc + a1) / 2;
100 FCELL **argv = (FCELL **)&args[1];
105 for (i = 0; i <
columns; i++) {
108 for (j = 0; j < argc; j++) {
109 if (IS_NULL_F(&argv[j][i]))
119 qsort(a, n,
sizeof(FCELL), fcmp);
124 *resc = (*resc + a1) / 2;
132 DCELL *res = args[0];
133 DCELL **argv = (DCELL **)&args[1];
138 for (i = 0; i <
columns; i++) {
141 for (j = 0; j < argc; j++) {
142 if (IS_NULL_D(&argv[j][i]))
152 qsort(a, n,
sizeof(DCELL), dcmp);
157 *resc = (*resc + a1) / 2;