std::vector< Point< T, N > > random(size_t count, const std::array< std::pair< T, T >, N > &axis_ranges, std::optional< unsigned int > seed=std::nullopt)
Generates a specified number of uniformly distributed random points in N-dimensional space.
Definition random.hpp:66
void normalize_points(std::vector< Point< T, N > > &points)
Normalize the coordinates of a set of points along each axis to the range [0, 1].
Definition utils.hpp:298
std::pair< std::vector< Point< T, N > >, std::vector< size_t > > kmeans_clustering(const std::vector< Point< T, N > > &points, size_t k_clusters, bool normalize_data=true, size_t max_iterations=100)
Perform k-means clustering on a set of points.
Definition kmeans_clustering.hpp:41