Functions
ikmeans.c File Reference

Integer K-Means clustering - Definition. More...

#include "ikmeans.h"
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "assert.h"
#include "ikmeans_init.tc"
#include "ikmeans_lloyd.tc"
#include "ikmeans_elkan.tc"
Include dependency graph for ikmeans.c:

Go to the source code of this file.

Functions

void vl_ikm_delete (VlIKMFilt *f)
 Delete IKM quantizer.
vl_ikmacc_t const * vl_ikm_get_centers (VlIKMFilt const *f)
 Get maximum number of iterations.
vl_size vl_ikm_get_K (VlIKMFilt const *f)
 Get the number of centers K.
vl_size vl_ikm_get_max_niters (VlIKMFilt const *f)
 Get maximum number of iterations.
vl_size vl_ikm_get_ndims (VlIKMFilt const *f)
 Get data dimensionality.
int vl_ikm_get_verbosity (VlIKMFilt const *f)
 Get verbosity level.
static void vl_ikm_init_elkan (VlIKMFilt *)
static void vl_ikm_init_lloyd (VlIKMFilt *)
VlIKMFiltvl_ikm_new (int method)
 Create a new IKM quantizer.
void vl_ikm_push (VlIKMFilt *f, vl_uint32 *asgn, vl_uint8 const *data, vl_size N)
 Project data to clusters.
static void vl_ikm_push_elkan (VlIKMFilt *, vl_uint32 *, vl_uint8 const *, vl_size)
static void vl_ikm_push_lloyd (VlIKMFilt *, vl_uint32 *, vl_uint8 const *, vl_size)
vl_uint32 vl_ikm_push_one (vl_ikmacc_t const *centers, vl_uint8 const *data, vl_size M, vl_size K)
 Project one datum to clusters.
void vl_ikm_set_max_niters (VlIKMFilt *f, vl_size max_niters)
 Set maximum number of iterations.
void vl_ikm_set_verbosity (VlIKMFilt *f, int verb)
 Set verbosity level.
int vl_ikm_train (VlIKMFilt *f, vl_uint8 const *data, vl_size N)
 Train clusters.
static int vl_ikm_train_elkan (VlIKMFilt *, vl_uint8 const *, vl_size)
static int vl_ikm_train_lloyd (VlIKMFilt *, vl_uint8 const *, vl_size)

Detailed Description

Integer K-Means clustering - Definition.

Author:
Brian Fulkerson
Andrea Vedaldi

Definition in file ikmeans.c.


Function Documentation

Delete IKM quantizer.

Parameters:
fIKM quantizer.

Definition at line 117 of file ikmeans.c.

vl_ikmacc_t const* vl_ikm_get_centers ( VlIKMFilt const *  f)

Get maximum number of iterations.

Parameters:
fIKM filter.
Returns:
maximum number of iterations.

Definition at line 268 of file ikmeans.c.

vl_size vl_ikm_get_K ( VlIKMFilt const *  f)

Get the number of centers K.

Parameters:
fIKM filter.
Returns:
number of centers K.

Definition at line 235 of file ikmeans.c.

Get maximum number of iterations.

Parameters:
fIKM filter.
Returns:
maximum number of iterations.

Definition at line 257 of file ikmeans.c.

Get data dimensionality.

Parameters:
fIKM filter.
Returns:
data dimensionality.

Definition at line 223 of file ikmeans.c.

int vl_ikm_get_verbosity ( VlIKMFilt const *  f)

Get verbosity level.

Parameters:
fIKM filter.
Returns:
verbosity level.

Definition at line 246 of file ikmeans.c.

static void vl_ikm_init_elkan ( VlIKMFilt ) [static]
static void vl_ikm_init_lloyd ( VlIKMFilt ) [static]
VlIKMFilt* vl_ikm_new ( int  method)

Create a new IKM quantizer.

Parameters:
methodClustering algorithm.
Returns:
new IKM quantizer.

The function allocates initializes a new IKM quantizer to operate based algorithm method.

method has values in the enumerations VlIKMAlgorithms.

Definition at line 104 of file ikmeans.c.

void vl_ikm_push ( VlIKMFilt f,
vl_uint32 asgn,
vl_uint8 const *  data,
vl_size  N 
)

Project data to clusters.

Parameters:
fIKM quantizer.
asgnAssignments (out).
datadata.
Nnumber of data (N >= 1).

The function projects the data data on the integer K-means clusters specified by the IKM quantizer f. Notice that the quantizer must be initialized.

Definition at line 164 of file ikmeans.c.

static void vl_ikm_push_elkan ( VlIKMFilt ,
vl_uint32 ,
vl_uint8 const *  ,
vl_size   
) [static]
static void vl_ikm_push_lloyd ( VlIKMFilt ,
vl_uint32 ,
vl_uint8 const *  ,
vl_size   
) [static]
vl_uint32 vl_ikm_push_one ( vl_ikmacc_t const *  centers,
vl_uint8 const *  data,
vl_size  M,
vl_size  K 
)

Project one datum to clusters.

Parameters:
centerscenters.
datadatum to project.
Knumber of centers.
Mdimensionality of the datum.
Returns:
the cluster index.

The function projects the specified datum data on the clusters specified by the centers centers.

Definition at line 185 of file ikmeans.c.

void vl_ikm_set_max_niters ( VlIKMFilt f,
vl_size  max_niters 
)

Set maximum number of iterations.

Parameters:
fIKM filter.
max_nitersmaximum number of iterations.

Definition at line 290 of file ikmeans.c.

void vl_ikm_set_verbosity ( VlIKMFilt f,
int  verb 
)

Set verbosity level.

Parameters:
fIKM filter.
verbverbosity level.

Definition at line 279 of file ikmeans.c.

int vl_ikm_train ( VlIKMFilt f,
vl_uint8 const *  data,
vl_size  N 
)

Train clusters.

Parameters:
fIKM quantizer.
datadata.
Nnumber of data (N >= 1).
Returns:
-1 if an overflow may have occurred.

Definition at line 134 of file ikmeans.c.

static int vl_ikm_train_elkan ( VlIKMFilt ,
vl_uint8 const *  ,
vl_size   
) [static]
static int vl_ikm_train_lloyd ( VlIKMFilt ,
vl_uint8 const *  ,
vl_size   
) [static]


libvlfeat
Author(s): Andrea Vedaldi
autogenerated on Thu Jun 6 2019 20:25:52