@@ -261,9 +261,9 @@ class BaseCubicalCover:
261261
262262 _n_intervals : int
263263 _overlap_frac : float
264- _min : NDArray
265- _max : NDArray
266- _delta : NDArray
264+ _min : NDArray [ np . float64 ]
265+ _max : NDArray [ np . float64 ]
266+ _delta : NDArray [ np . float64 ]
267267 _cover : BallCover
268268
269269 def __init__ (
@@ -282,7 +282,7 @@ def __init__(
282282 self .leaf_radius = leaf_radius
283283 self .pivoting = pivoting
284284
285- def _get_center (self , x : NDArray ) -> tuple [tuple , NDArray ]:
285+ def _get_center (self , x : NDArray [ np . float64 ] ) -> tuple [tuple , NDArray ]:
286286 offset = self ._offset (x )
287287 center = self ._phi (x )
288288 return tuple (offset ), center
@@ -291,20 +291,22 @@ def _get_overlap_frac(self, dim: int, overlap_vol_frac: float) -> float:
291291 beta = math .pow (1.0 - overlap_vol_frac , 1.0 / dim )
292292 return 1.0 - 1.0 / (2.0 - beta )
293293
294- def _offset (self , x : NDArray ) -> NDArray :
294+ def _offset (self , x : NDArray [ np . float64 ] ) -> NDArray [ np . float64 ] :
295295 return np .minimum (self ._n_intervals - 1 , np .floor (self ._gamma_n (x )))
296296
297- def _phi (self , x : NDArray ) -> NDArray :
297+ def _phi (self , x : NDArray [ np . float64 ] ) -> NDArray [ np . float64 ] :
298298 offset = self ._offset (x )
299299 return self ._gamma_n_inv (0.5 + offset )
300300
301- def _gamma_n (self , x : NDArray ) -> NDArray :
301+ def _gamma_n (self , x : NDArray [ np . float64 ] ) -> NDArray [ np . float64 ] :
302302 return self ._n_intervals * (x - self ._min ) / self ._delta
303303
304- def _gamma_n_inv (self , x : NDArray ) -> NDArray :
304+ def _gamma_n_inv (self , x : NDArray [ np . float64 ] ) -> NDArray [ np . float64 ] :
305305 return self ._min + self ._delta * x / self ._n_intervals
306306
307- def _get_bounds (self , X : ArrayLike ) -> tuple [NDArray , NDArray , NDArray ]:
307+ def _get_bounds (
308+ self , X : ArrayLike
309+ ) -> tuple [NDArray [np .float64 ], NDArray [np .float64 ], NDArray [np .float64 ]]:
308310 if (X is None ) or len (X ) == 0 :
309311 raise ValueError ("The dataset is empty or None." )
310312 _min , _max = X [0 ], X [0 ]
@@ -408,12 +410,12 @@ class ProximityCubicalCover(BaseCubicalCover, ParamsMixin, Proximity):
408410
409411 def __init__ (
410412 self ,
411- n_intervals = 1 ,
412- overlap_frac = None ,
413- kind = "flat" ,
414- leaf_capacity = 1 ,
415- leaf_radius = None ,
416- pivoting = None ,
413+ n_intervals : int = 1 ,
414+ overlap_frac : Optional [ float ] = None ,
415+ kind : str = "flat" ,
416+ leaf_capacity : int = 1 ,
417+ leaf_radius : Optional [ float ] = None ,
418+ pivoting : Optional [ str ] = None ,
417419 ):
418420 super ().__init__ (
419421 n_intervals = n_intervals ,
@@ -479,15 +481,15 @@ def __init__(
479481 pivoting = pivoting ,
480482 )
481483
482- def _landmarks (self , X : ArrayLike ) -> dict [tuple , NDArray ]:
484+ def _landmarks (self , X : NDArray [ np . float64 ] ) -> dict [tuple , NDArray [ np . float64 ] ]:
483485 lmrks = {}
484486 for x in X :
485487 lmrk , _ = self ._get_center (x )
486488 if lmrk not in lmrks :
487489 lmrks [lmrk ] = x
488490 return lmrks
489491
490- def apply (self , X : ArrayLike ) -> Generator [list [int ]]:
492+ def apply (self , X : NDArray [ np . float64 ] ) -> Generator [list [int ]]:
491493 """
492494 Covers the dataset using landmarks.
493495
@@ -575,7 +577,7 @@ def __init__(
575577 self .pivoting = pivoting
576578
577579 def _get_cubical_cover (self ) -> Union [ProximityCubicalCover , StandardCubicalCover ]:
578- params = dict (
580+ params : dict [ str , Any ] = dict (
579581 n_intervals = self .n_intervals ,
580582 overlap_frac = self .overlap_frac ,
581583 kind = self .kind ,
@@ -593,7 +595,7 @@ def _get_cubical_cover(self) -> Union[ProximityCubicalCover, StandardCubicalCove
593595 "'proximity'."
594596 )
595597
596- def fit (self , X : ArrayLike ) -> CubicalCover :
598+ def fit (self , X : NDArray [ np . float64 ] ) -> CubicalCover :
597599 """
598600 Train internal parameters.
599601
@@ -623,7 +625,7 @@ def search(self, x: Any) -> list[int]:
623625 """
624626 return self ._cubical_cover .search (x )
625627
626- def apply (self , X : ArrayLike ) -> Generator [list [int ]]:
628+ def apply (self , X : NDArray [ np . float64 ] ) -> Generator [list [int ]]:
627629 """
628630 Covers the dataset using hypercubes.
629631
0 commit comments