o
    	h                     @   s  d dl Z d dlZd dlZd dlZd dlmZmZmZ ddl	m
Z
 ddl
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z  e j!"ddZ#dZ$d	d
 Z%dd Z&dd Z'dd Z(dd Z)dd Z*dd Z+dd Z,e'e(e)e*e+e,dZ-dd Z.i ddddddddd dd!dd"dd#dd$dd%dd&d'd(d'd)dd*dd+dd,d'd-d'd'd'd.d.d'd/Z/e/0 D ]\Z1Z2e#re.e1e2ne3e
e1Z4e4ej5e6 j7e1< qe8e/Z9dS )0    N)array_namespacescipy_namespace_foris_numpy   )_ufuncs)log_ndtrndtrndtrierferfci0i0ei1i1egammalngammainc	gammaincclogitexpitentrrel_entrxlogychdtrchdtrcbetaincbetainccstdtrSCIPY_ARRAY_APIFzscipy._lib.array_api_compatc                    s   t |}d }t|rtt| d }n|d urt|j| d }|d ur"|S | tv r4t|  ||d}|d ur4|S tt| d }||d fdd
}|S )N)xpspx)_f_xpc                    sH   |d   }| d  }dd |D }| g ||R i |}| |S )Nc                 S   s   g | ]}t |qS  )npasarray.0argr"   r"   _/var/www/vscode/kcb/lib/python3.10/site-packages/scipy/special/_support_alternative_backends.py
<listcomp>,   s    z7get_array_special_func.<locals>.__f.<locals>.<listcomp>r$   )r    r!   argskwargs
array_args
other_argsoutn_array_argsr"   r(   __f)   s
   
z#get_array_special_func.<locals>.__f)r   r   getattrr   special_generic_implementations)f_namer   r1   r   fr    r2   r"   r0   r(   get_array_special_func   s   r8   c                    sN   j | }|d j}j|   dr"j  fdd|D }|| fS )Nr   integralc                    s   g | ]	}j | d qS )dtyper*   r%   r;   r   r"   r(   r)   9   s    z$_get_shape_dtype.<locals>.<listcomp>)broadcast_arraysshaperesult_typeisdtypefloat64)r   r+   r>   r"   r<   r(   _get_shape_dtype3   s   



rB   c                 C      | ddd}|S )Nr   c                S   s   t | ||d\}}}|\} }|j| j|j|d}|jd|d|| dk|dk@ < | dk|dk@ }| | || | |||   ||< |S )NrD   r:   r   )rB   fullr>   infr$   log)xyr   r+   r>   r;   resir"   r"   r(   
__rel_entr>   s   (z_rel_entr.<locals>.__rel_entrr"   )r   r   rL   r"   r"   r(   	_rel_entr=   s   rM   c                 C   rC   )NrD   c                S   sZ   t jddd | || }W d    n1 sw   Y  || dk|jd|jd|S )Nignore)divideinvalidg        r:   )r#   errstaterG   wherer$   r;   )rH   rI   r   tempr"   r"   r(   __xlogyJ   s   z_xlogy.<locals>.__xlogyr"   )r   r   rT   r"   r"   r(   _xlogyI   s   rU   c                    T   |r	t |jdd nd   d u rtdrt jdd   d u r!d S  fdd}|S )Nr   r4   c                    sT    | d |d }| dk|dk@ } |d|}| |@ } |j|S )N   r   g      ?)rR   isinfnan)vrH   rJ   maskr   r   r"   r(   __chdtr\   s
   z_chdtr.<locals>.__chdtrr3   r4   hasattr)r   r   r]   r"   r\   r(   _chdtrQ   s   r`   c                    rV   )Nr   r4   c                    s`    |dk | d |d d}|dk| dk@ |B | B | dkB } |j|}|S )Nr   rW   r   )rR   isnanrY   )rZ   rH   rJ   i_nanr   r   r"   r(   __chdtrcq   s    ,z_chdtrc.<locals>.__chdtrcr^   )r   r   rd   r"   rc   r(   _chdtrcf   s   re   c                    sR   |r	t |jdd nd   d u rt| drt | jdd   d u r!d S  fdd}|S )Nr   r4   c                    s    || d| S )Nr   r"   )abrH   r   r"   r(   
__betaincc   s   z_betaincc.<locals>.__betainccr^   )r   r   ri   r"   rh   r(   	_betainccy   s   rj   c                    rV   )Nr   r4   c                    s:   | |d |   } | d d|d } |dk |d| S )NrW   g      ?r   r   )rR   )dftrH   tailr   r   r"   r(   __stdtr   s   z_stdtr.<locals>.__stdtrr^   )r   r   ro   r"   rn   r(   _stdtr   s   rp   )r   r   r   r   r   r   c                    s&   t t }t| fdd}|S )Nc                     s*   t | d   }t |}|| i |S )N)r   r8   )r+   r,   r   r7   r6   r1   r"   r(   wrapped   s   z-support_alternative_backends.<locals>.wrapped)r3   r   	functoolswraps)r6   r1   funcrr   r"   rq   r(   support_alternative_backends   s   
rv   r   r   r	   r
   r   r   r   r   r   r   r   rW   r   r   r   r   r   r      )r   r   r   r   r   ):ossysrs   numpyr#   scipy._lib._array_apir   r   r    r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   environget_SCIPY_ARRAY_APIarray_api_compat_prefixr8   rB   rM   rU   r`   re   rj   rp   r5   rv   array_special_func_mapitemsr6   r1   r3   r7   modules__name____dict__list__all__r"   r"   r"   r(   <module>   s    `
	
