o
    װi                     @   s   U d dl Z d dlmZmZmZ d dlZd dlZe jdd Ze jdd Z	e jdd Z
e jd	d
 ZG dd dZee ZdZed ed< edde	ZeddeZedde
ZeddeZdS )    N)CallableFinalOptionalc                 C   sB   | j dv r| t| jS | j dv r| tj S td|  NbiufzUnsupported type: )kindtypenumpyiinfomininfRuntimeErrordtype r   R/home/ubuntu/.local/lib/python3.10/site-packages/cupyx/distributed/array/_modes.py_min_value_of	   s
   

r   c                 C   s@   | j dv r| t| jS | j dv r| tjS td|  r   )r   r	   r
   r   maxr   r   r   r   r   r   _max_value_of   s
   

r   c                 C   
   |  dS )Nr   r	   r   r   r   r   _zero_of      
r   c                 C   r   )N   r   r   r   r   r   _one_of"   r   r   c                   @   sP   e Zd ZU ejjjed< ejed< e	ed< e
ed< dede	de
ddfdd	ZdS )
_OpModefunc
numpy_func
idempotentidentity_of	func_namereturnNc                 C   sD   zt t|| _t t|| _W n ty   tdw || _|| _d S )NzNo such function exists)	getattrcupyr   r
   r   AttributeErrorr   r   r    )selfr!   r   r    r   r   r   __init__-   s   
z_OpMode.__init__)__name__
__module____qualname__r$   _core_kernelufunc__annotations__r
   boolr   strr'   r   r   r   r   r   '   s   
 
r   REPLICAminimumTmaximumaddFmultiply)	functoolstypingr   r   r   r
   r$   	lru_cacher   r   r   r   r   Moder1   r.   MINMAXSUMPRODr   r   r   r   <module>   s&   
 
	
	

