# cython: language_level=3 from cython cimport floating cimport numpy as np cdef floating _euclidean_dense_dense(floating*, floating*, int, bint) nogil cdef floating _euclidean_sparse_dense(floating[::1], int[::1], floating[::1], floating, bint) nogil cpdef void _relocate_empty_clusters_dense( np.ndarray[floating, ndim=2, mode='c'], floating[::1], floating[:, ::1], floating[:, ::1], floating[::1], int[::1]) cpdef void _relocate_empty_clusters_sparse( floating[::1], int[::1], int[::1], floating[::1], floating[:, ::1], floating[:, ::1], floating[::1], int[::1]) cdef void _average_centers(floating[:, ::1], floating[::1]) cdef void _center_shift(floating[:, ::1], floating[:, ::1], floating[::1])