
    sg%                        d dl Z 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	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 e j>                  jA                  dd      Z!dZ"d	 Z#d
 Z$d Z%d Z&d Z'e%e&e'dZ(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iZ*e*jW                         D ]5  \  Z,Z-e!r	 e)e,e-      n e.ee,      Z/e/ej`                  e1   jd                  e,<   7  e3e*      Z4y)#    N)array_namespacescipy_namespace_foris_numpyis_torch   )_ufuncs)log_ndtrndtrndtrierferfci0i0ei1i1egammalngammainc	gammaincclogitexpitentrrel_entrxlogychdtrcSCIPY_ARRAY_APIFzscipy._lib.array_api_compatc                 T   t        |      }d }t        |      rt        t        | d       }nBt	        |      rt        |j
                  | d       }n|t        urt        |j
                  | d       }||S | t        v rt        |    ||      }||S t        t        | d       }||dfd
}|S )N)xpspx)_f_xpc                     |d  }|d  }|D cg c]  }t        j                  |       }} | g ||i |}|j                  |      S c c}w N)npasarray)	r   r    argskwargs
array_args
other_argsargoutn_array_argss	           ^/var/www/html/venv/lib/python3.12/site-packages/scipy/special/_support_alternative_backends.pyfz!get_array_special_func.<locals>.f,   sa    -<(
,-(
1;<#bjjo<
<4*4z4V4{{3 =s   A)r   r   getattrr   r   specialscipy_generic_implementations)f_namer   r+   r   r-   r   s     `   r,   get_array_special_funcr3      s    
b
!CA|GVT*	"BJJ-	E	CKK.} ))%f-=>I	&$	'BB   H    c                      | j                   | }|d   j                  } | j                  | }| j                  |d      r,| j                  }|D cg c]  }| j                  ||       }}|||fS c c}w )Nr   integraldtype)broadcast_arraysshaperesult_typeisdtypefloat64r$   )r   r%   r:   r8   r)   s        r,   _get_shape_dtyper>   6   sz    2%DGMMEBNND!E	zz%$

8<=

3e
,== >s   A1c                     | dd}|S )Nr   c                <   t        | ||      \  }}}|\  } }|j                  | j                  |j                  |      }|j	                  d|      || dk(  |dk\  z  <   | dkD  |dkD  z  }| |   |j                  | |         |j                  ||         z
  z  ||<   |S )Nr@   r7   r   )r>   fullr:   infr$   log)xyr   r%   r:   r8   resis           r,   
__rel_entrz_rel_entr.<locals>.__rel_entrA   s    -ar:eU1ggaggrvvUg3#%::au:#=Q!VQ Uq1u1!qt45A
r4    )r   r   rI   s      r,   	_rel_entrrK   @   s    !  r4   c                     | dd}|S )Nr@   c                    t        j                  dd      5  | |j                  |      z  }d d d        |j                  | dk(  |j	                  dj
                        |      S # 1 sw Y   :xY w)Nignore)divideinvalidg        r7   )r#   errstaterD   wherer$   r8   )rE   rF   r   temps       r,   __xlogyz_xlogy.<locals>.__xlogyM   s^    [[(; 	!rvvay=D	!xxRBdjj!A4HH	! 	!s   A&&A/rJ   )r   r   rT   s      r,   _xlogyrU   L   s     I Nr4   c                      t        |dd       #t         d      rt         j                  dd       y  fd}|S )Nr   r/   c                     j                  |dk\   | dz  |dz        d      }|dk(  | dk(  z  j                  |      z  j                  |       z  }j                  |j                  |      }|S )Nr      r   )rR   isnannan)vrE   rG   i_nanr   r   s       r,   __chdtrcz_chdtrc.<locals>.__chdtrc_   so    hhqAvy1ac2A6q&Q!V$3bhhqkAhhubffc*
r4   )r.   hasattrr/   )r   r   r]   r   s   `  @r,   _chdtrcr_   T   sI    
 [$/IWR3BJJT:	
 Or4   )r   r   r   c                 f     t        t               }t        j                  |       fd       }|S )Nc                  D    t        | d   }t        |      } || i |S r"   )r   r3   )r%   r&   r   r-   r2   r+   s       r,   wrappedz-support_alternative_backends.<locals>.wrappedq   s2    d=L12"62|<$!&!!r4   )r.   r   	functoolswraps)r2   r+   funcrb   s   ``  r,   support_alternative_backendsrf   n   s1    7F#D__T" "
 Nr4   r	   r
   r   r   r   r   r   r   r   r   r   rX   r   r   r   r   r   r   r   )5ossysrc   numpyr#   r0   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   environget_SCIPY_ARRAY_APIarray_api_compat_prefixr3   r>   rK   rU   r_   r1   rf   array_special_func_mapitemsr2   r+   r.   r-   modules__name____dict__list__all__rJ   r4   r,   <module>rw      s   	 
          ::>>"3U; 7 >	& )2%+&-/ 	
A Q 
1	
 A 	! 
1 	! 
1 q   Q Q A  !" Q#$ a% * 388: /FL?O	%fl	;gv& -.CKK""6*/
 %
&r4   