o
    `۷i                     @   sN   d dl Zd dlmZ d dlmZ d dlmZ e \ZZ	eG dd deZ
dS )    N)try_import_torch)SeriesStats)DeveloperAPIc                   @   s@   e Zd ZdZdZdejdefddZddd	Z	de
fd
dZdS )MinStatszPA Stats object that tracks the min of a series of singular values (not vectors).minvaluesreturnc                 C   s
   t |S )N)npnanmin)selfr    r   W/home/ubuntu/vllm_env/lib/python3.10/site-packages/ray/rllib/utils/metrics/stats/min.py_np_reduce_fn   s   
zMinStats._np_reduce_fntorch.Tensorc                 C   s>   |t |  }t|dkrt jtd|jdS t | S )z1Reduce function for torch tensors (stays on GPU).r   nan)device)torchisnanlentensorfloatr   r   )r   r   clean_valuesr   r   r   _torch_reduce_fn   s   zMinStats._torch_reduce_fnc                 C   s"   d|    d| j dt|  dS )Nz	MinStats(z	; window=z; len=))peek_windowr   )r   r   r   r   __repr__   s   "zMinStats.__repr__N)r   r   )__name__
__module____qualname____doc__stats_cls_identifierr	   ndarrayr   r   r   strr   r   r   r   r   r   
   s    
	r   )numpyr	   ray.rllib.utils.frameworkr   $ray.rllib.utils.metrics.stats.seriesr   ray.util.annotationsr   r   _r   r   r   r   r   <module>   s    
