Intelegentny_Pszczelarz/.venv/Lib/site-packages/sklearn/metrics/_pairwise_distances_reduction/_argkmin.pxd
2023-06-19 00:49:18 +02:00

57 lines
1.6 KiB
Cython

cimport numpy as cnp
from ...utils._typedefs cimport ITYPE_t, DTYPE_t
cnp.import_array()
from ._base cimport BaseDistancesReduction64
from ._middle_term_computer cimport MiddleTermComputer64
cdef class ArgKmin64(BaseDistancesReduction64):
"""float64 implementation of the ArgKmin."""
cdef:
ITYPE_t k
ITYPE_t[:, ::1] argkmin_indices
DTYPE_t[:, ::1] argkmin_distances
# Used as array of pointers to private datastructures used in threads.
DTYPE_t ** heaps_r_distances_chunks
ITYPE_t ** heaps_indices_chunks
cdef class EuclideanArgKmin64(ArgKmin64):
"""EuclideanDistance-specialisation of ArgKmin64."""
cdef:
MiddleTermComputer64 middle_term_computer
const DTYPE_t[::1] X_norm_squared
const DTYPE_t[::1] Y_norm_squared
bint use_squared_distances
from ._base cimport BaseDistancesReduction32
from ._middle_term_computer cimport MiddleTermComputer32
cdef class ArgKmin32(BaseDistancesReduction32):
"""float32 implementation of the ArgKmin."""
cdef:
ITYPE_t k
ITYPE_t[:, ::1] argkmin_indices
DTYPE_t[:, ::1] argkmin_distances
# Used as array of pointers to private datastructures used in threads.
DTYPE_t ** heaps_r_distances_chunks
ITYPE_t ** heaps_indices_chunks
cdef class EuclideanArgKmin32(ArgKmin32):
"""EuclideanDistance-specialisation of ArgKmin32."""
cdef:
MiddleTermComputer32 middle_term_computer
const DTYPE_t[::1] X_norm_squared
const DTYPE_t[::1] Y_norm_squared
bint use_squared_distances