#include <gsl/gsl_permutation.h>
#include <gsl/gsl_sort_vector.h>
#include <gsl/gsl_statistics.h>
-#include <math.h>
#include <stdio.h>
#include <stdlib.h>
}
}
- return sqrt (mindist);
-}
-
-
-static void
-dump_matrix (const gsl_matrix *m)
-{
- size_t i, j;
-
- for (i = 0 ; i < m->size1; ++i)
- {
- for (j = 0 ; j < m->size2; ++j)
- printf ("%02f ", gsl_matrix_get (m, i, j));
- printf ("\n");
- }
+ return mindist;
}
dist += pow2 (gsl_matrix_get (kmeans->centers, which, j) - val->f);
}
- return sqrt (dist);
+ return dist;
}
/* Return the minimum distance of the group WHICH and all other groups */
}
}
- return sqrt (mindist);
+ return mindist;
}
dist += pow2 (gsl_matrix_get (kmeans->centers, i, j) - val->f);
}
- dist = sqrt (dist);
if (dist < mindist0)
{
{
if (lex_match_id (lexer, "CLUSTERS"))
{
- if (lex_force_match (lexer, T_LPAREN))
+ if (lex_force_match (lexer, T_LPAREN) &&
+ lex_force_int (lexer))
{
- lex_force_int (lexer);
qc.ngroups = lex_integer (lexer);
if (qc.ngroups <= 0)
{
}
else if (lex_match_id (lexer, "CONVERGE"))
{
- if (lex_force_match (lexer, T_LPAREN))
+ if (lex_force_match (lexer, T_LPAREN) &&
+ lex_force_num (lexer))
{
- lex_force_num (lexer);
qc.epsilon = lex_number (lexer);
if (qc.epsilon <= 0)
{
}
else if (lex_match_id (lexer, "MXITER"))
{
- if (lex_force_match (lexer, T_LPAREN))
+ if (lex_force_match (lexer, T_LPAREN) &&
+ lex_force_int (lexer))
{
- lex_force_int (lexer);
qc.maxiter = lex_integer (lexer);
if (qc.maxiter <= 0)
{