285 uint32_t cur_k = min_k;
289 update_r(objs, clusters, n, centers, radii, cur_k);
297 converged =
update_r(objs, clusters, n, centers, radii, cur_k);
302 if (!converged || !max_radius)
306 uint32_t new_k =
improve_structure(objs, clusters, n, centers, radii, cur_k, max_radius);
#define LW_ON_INTERRUPT(x)
void lwerror(const char *fmt,...)
Write a notice out to the error handler.
#define KMEANS_MAX_ITERATIONS
static void kmeans_init(POINT4D *objs, uint32_t n, POINT4D *centers, uint32_t k)
static uint8_t update_r(POINT4D *objs, uint32_t *clusters, uint32_t n, POINT4D *centers, double *radii, uint32_t k)
static void update_means(POINT4D *objs, uint32_t *clusters, uint32_t n, POINT4D *centers, uint32_t k)
static uint32_t improve_structure(POINT4D *objs, uint32_t *clusters, uint32_t n, POINT4D *centers, double *radii, uint32_t k, double max_radius)