57int f_mode(
int argc,
const int *argt,
void **args)
60 static int value_size;
61 int size = argc *
sizeof(double);
67 for (i = 1; i <= argc; i++)
68 if (argt[i] != argt[0])
71 if (size > value_size) {
73 value = G_realloc(value, value_size);
79 CELL **argv = (CELL **)&args[1];
84 for (j = 0; j < argc && !nv; j++) {
85 if (IS_NULL_C(&argv[j][i]))
88 value[j] = (double)argv[j][i];
94 res[i] = (CELL)mode(value, argc);
100 FCELL **argv = (FCELL **)&args[1];
102 for (i = 0; i <
columns; i++) {
105 for (j = 0; j < argc && !nv; j++) {
106 if (IS_NULL_F(&argv[j][i]))
109 value[j] = (double)argv[j][i];
115 res[i] = (FCELL)mode(value, argc);
120 DCELL *res = args[0];
121 DCELL **argv = (DCELL **)&args[1];
123 for (i = 0; i <
columns; i++) {
126 for (j = 0; j < argc && !nv; j++) {
127 if (IS_NULL_D(&argv[j][i]))
130 value[j] = (double)argv[j][i];
136 res[i] = (DCELL)mode(value, argc);