Straightforward implementation of k-means clustering. Not all of the Rodinia data sets are present here, because they are fairly large.
There are some changes compared to Rodinia:
The threshold value is integral instead of floating-point. This reflects how it is actually used, which is to indicate the lowest number of cluster reassignments we permit in an iteration before we finish the convergence loops.
There is a maximum number of iterations (this is also present in some Rodinia implementations).
Both of the above values are set on a per-dataset basis.
The implementation outputs two values:
The cluster centres.
The number of iterations done by the convergence loop.