60int f_mode(
int argc,
const int *argt,
void **args)
63 double *value = stack_value;
64 bool use_heap =
false;
65 int size = argc *
sizeof(double);
71 for (i = 1; i <= argc; i++)
72 if (argt[i] != argt[0])
76 value = G_malloc(size);
83 CELL **argv = (CELL **)&args[1];
88 for (j = 0; j < argc && !nv; j++) {
89 if (IS_NULL_C(&argv[j][i]))
92 value[j] = (double)argv[j][i];
98 res[i] = (CELL)mode(value, argc);
106 FCELL *res = args[0];
107 FCELL **argv = (FCELL **)&args[1];
109 for (i = 0; i <
columns; i++) {
112 for (j = 0; j < argc && !nv; j++) {
113 if (IS_NULL_F(&argv[j][i]))
116 value[j] = (double)argv[j][i];
122 res[i] = (FCELL)mode(value, argc);
130 DCELL *res = args[0];
131 DCELL **argv = (DCELL **)&args[1];
133 for (i = 0; i <
columns; i++) {
136 for (j = 0; j < argc && !nv; j++) {
137 if (IS_NULL_D(&argv[j][i]))
140 value[j] = (double)argv[j][i];
146 res[i] = (DCELL)mode(value, argc);