
    S_f                        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 e j4                  j7                  dd      ZdZd	 Zd
 ZdddddddddddddddZ e jC                         D ]5  \  Z"Z#er	 ee"e#      n e$ee"      Z%e%ejL                  e'   jP                  e"<   7  e)e       Z*y)    N)array_namespaceis_cupyis_torchis_numpy   )_ufuncs)log_ndtrndtrndtrierferfci0i0ei1i1egammalngammainc	gammaincclogitexpitSCIPY_ARRAY_APIFzscipy._lib.array_api_compatc                    t              rt        t        | d       }|S t              rt        j                  | d       }|S t              r'dd l}t        |j                  j                  | d       }|S j                  t         dk(  r#t        j                  j                  | d       }|S t        t        | d       fd}|S )Nr   z.jaxc                      | d  }| d  }|D cg c]  }t        j                  |       }} g ||i |}j                  |      S c c}w N)npasarray)	argskwargs
array_args
other_argsargoutf_scipyn_array_argsxps	         Klib/python3.12/site-packages/scipy/special/_support_alternative_backends.pyfz!get_array_special_func.<locals>.f   sa    m|,Jlm,J5?@c"**S/@J@=:=
=f=C::c?" As   A)
r   getattrr   r   specialr   cupyxscipy__name__array_api_compat_prefix)f_namer%   r$   r'   r*   r#   s    ``  @r&   get_array_special_funcr/      s    |GVT*" H! 
"BJJ- H 
EKK''6 H 
2348	8BHH$$fd3 H '640	# H    c                 f     t        t               }t        j                  |       fd       }|S )Nc                  D    t        | d   }t        |      } || i |S r   )r   r/   )r   r   r%   r'   r.   r$   s       r&   wrappedz-support_alternative_backends.<locals>.wrapped,   s2    d=L12"62|<$!&!!r0   )r(   r   	functoolswraps)r.   r$   funcr3   s   ``  r&   support_alternative_backendsr7   )   s1    7F#D__T" "
 Nr0      )+ossysr4   numpyr   scipy._lib._array_apir   r   r   r    r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   environget_SCIPY_ARRAY_APIr-   r/   r7   array_special_func_mapitemsr.   r$   r(   r'   modulesr,   __dict__list__all__ r0   r&   <module>rH      s    	 
   N N 0 0 0 0 ::>>"3U; 7 .	 

 " 388: /FL?O	%fl	;gv& -.CKK""6*/
 %
&r0   