U
    b2                     @  sL  d dl mZ ddlmZmZ ddlmZ ddlmZ ddlm	Z	m
Z
 d dlmZmZmZmZ erlddlmZ d d	lZd	d
ddddddddZd	d
ddddddddZd	d
ddddddddZd	d	d
dddddddddZd	dd
ddddddddd Zd	d	d
dddddddd!d"Zd	dd
dddddddd#d$Zd	S )%    )annotations   )_floating_dtypes_numeric_dtypes)Array)asarray)float32float64)TYPE_CHECKINGOptionalTupleUnion)DtypeNFaxiskeepdimsr   z%Optional[Union[int, Tuple[int, ...]]]bool)xr   r   returnc               C  s*   | j tkrtdttj| j||dS )Nz&Only numeric dtypes are allowed in maxr   )dtyper   	TypeErrorr   _newnpmax_arrayr   r   r    r   J/tmp/pip-unpacked-wheel-cxuynqjx/numpy/array_api/_statistical_functions.pyr      s    
r   c               C  s*   | j tkrtdttj| j||dS )Nz.Only floating-point dtypes are allowed in meanr   )r   r   r   r   r   r   meanr   r   r   r   r   r      s    
r   c               C  s*   | j tkrtdttj| j||dS )Nz&Only numeric dtypes are allowed in minr   )r   r   r   r   r   r   minr   r   r   r   r   r   +   s    
r   r   r   r   zOptional[Dtype])r   r   r   r   r   c               C  sB   | j tkrtd|d kr(| j tkr(t}ttj| j	|||dS )Nz'Only numeric dtypes are allowed in prod)r   r   r   )
r   r   r   r   r	   r   r   r   prodr   r   r   r   r   r   r   r   r!   7   s
    
r!   g        )r   
correctionr   zUnion[int, float])r   r   r#   r   r   c               C  s,   | j tkrtdttj| j|||dS )Nz-Only floating-point dtypes are allowed in stdr   Zddofr   )r   r   r   r   r   r   stdr   r   r   r#   r   r   r   r   r%   H   s    	
r%   c               C  sB   | j tkrtd|d kr(| j tkr(t}ttj| j	|||dS )Nz&Only numeric dtypes are allowed in sumr    )
r   r   r   r   r	   r   r   r   sumr   r"   r   r   r   r'   V   s
    
r'   c               C  s,   | j tkrtdttj| j|||dS )Nz-Only floating-point dtypes are allowed in varr$   )r   r   r   r   r   r   varr   r&   r   r   r   r(   h   s    	
r(   )
__future__r   Z_dtypesr   r   Z_array_objectr   Z_creation_functionsr   r   r	   typingr
   r   r   r   _typingr   Znumpyr   r   r   r   r!   r%   r'   r(   r   r   r   r   <module>   sB   