
    ^jy                     (   d dl Z d dlZd dlmZmZ d dlmZ d dlmZ d dl	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 d dlmc mZ ddlmZ ddlmZ dd	lmZ d
 Z e G d d             Z!dddZ"d Z#d Z$d Z%d Z&d Z'd Z(d Z) edddg      Z*g  e!ejV                  d eddgd      dd       e!ejX                  d eddgd      dd       e!ejZ                  d eddgd      dd       e!ej\                  de*d       e!ej^                  de*e'd        e!ej`                  d eddgd      ddd!       e!ejb                  d" edddg      ddid#       e!ejd                  d" eddgd      d       e!ejf                  d" eddgd      d       e!ejh                  d" eddgd      d       e!ejj                  d eddgd      d       e!ejl                  d"e%$       e!ejn                  d"e&dddd%&       e!ejp                  d" eddgd      d       e!ejr                  d eddgd      dd'       e!ejt                  d eddgd      d       e!ejv                  d eddgd      d       e!ejx                  d eddgd      d       e!ejz                  d eddgd      d       e!ej|                  d       e!ej~                  d       e!ej                  d       e!ej                  d eddd(gd      d       e!ej                  d       e!ej                  d eddgd      d       e!ej                  d eddgd      d       e!ej                  d eddgd      d       e!ej                  d eddgd      d       e!ej                  d edddg      d       e!ej                  d       e!ej                  d" edddg      dd)dd*       e!ej                  d eddgd      d       e!ej                  d eddgd      d       e!ej                  d eddgd      d       e!ej                  d edddg      d       e!ej                  d"       e!ej                  d"ddi+       e!ej                  d" eddgd      d       e!ej                  d" eddgd      d       e!ej                  d       e!ej                  d edddg      d       e!ej                  d eddgd      d       e!ej                  d eddgd      d       e!ej                  d" eddgd      d       e!ej                  d eddg      ddidd,       e!ej                  d" eddgd      d       e!ej                  d" eddgd      d       e!ej                  d       e!ej                  d       e!ej                  d       e!ej                  d       e!ej                  d eddd(gd      d(d-id.       e!ej                  d eddd(gd      d(d/id.       e!ej                  d eddd(gd      d(d0i       e!ej                  d eddd(gd      d(d1id.       e!ej                  d eddd(gd      d(d2i       e!ej                  d eddd(gd      d(d3id.       e!ej                  d" edddg      d       e!ej                  d       e!ej                  d eddgd      d       e!ej                  d       e!ej                  d eddgd      dd4       e!ej                  d"dd5d5d5d%d5d5d5d5d6d5ddd7	       e!ej                  d eddgd      d8dd9       e!ej                  d eddgd      d8dd9       e!ej                  d eddgd      d8dd9       e!ej                  d       e!ej                  d       e!ej                  d" eddgd      dd#       e!ej                  d" eddgd      dd#       e!ej                  d" eddgd      d)dd9       e!ej                  d" edddg      dd'       e!ej                  d" eddgd      d       e!ej                  d"d)dd(d)idd)dd:d;       e!ej                  ddd<i       e!ej                  d eddgd      d       e!ej                  d"e#$       e!ej                  d eddgd      d       e!ej                  d eddd(gd      dd=>       e!ej                  d eddgd      dd'       e!ej                  d eddg      d       e!ej                  d"e*e(d        e!ej                  d" eddgd?g@      e)d        e!ej                  d eddgd      dd'       e!ej                  d"       e!ej                   d"e$$       e!ej                  d eddd(gd      d(dAid.       e!ej                  d eddd(gd      d(dBid.       e!ej                  d" eddgd      dd)id)dd*       e!ej                  d"ddd)dCdD       e!ej
                  d eddgd      d      Z e       j                  eD  ci c]&  } | j                  j                  | j                  ( c}        euZeD  cg c]  } | j                  j                   c} d<gz   Zyc c} w c c} w )E    N)CallableMapping)	dataclass)
ModuleType)array_namespacescipy_namespace_foris_numpyis_dask	is_marrayis_jax_arrayis_jax
xp_promotexp_capabilitiesSCIPY_ARRAY_APIget_native_namespace_nameis_array_api_obj   )_basic)_spfun_stats)_ufuncsc                 2    t        |       }t        |dd       S Nspecial)r   getattr)xpspxs     d/opt/ringagent/.cad-venv/lib/python3.12/site-packages/scipy/special/_support_alternative_backends.py_special_namespace_forr      s    
b
!C3	4((    c                      e Zd ZU eed<   eed<   dZeegef   dz  ed<   dZeeedz  gedz  f   dz  ed<   dZ	e
eef   dz  ed<   dZeedf   dz  ed<   d	Zeeedf   z  eeeeedf   z  f   z  ed
<   dZeed<   dZe
eeedf   f   eedf   z  dz  ed<   dZe
eeedf   f   eedf   z  dz  ed<   dZeed<   d	Zeed<   dZeed<   dZeedf   ed<   ed        Zd Zd Zed        Z ej<                  d      d        Zy)	_FuncInfofuncn_argsNr   generic_implalt_names_map.int_onlyFpositive_onlyTis_ufuncpython_int_onlyscalar_or_0d_onlytest_large_intsproduces_0dtorch_native backends_with_func_in_xpc                 .    | j                   j                  S N)r"   __name__selfs    r   namez_FuncInfo.nameX   s    yy!!!r   c                 ,    t        | j                        S r1   )hashr"   r3   s    r   __hash__z_FuncInfo.__hash__]   s    DIIr   c                 X    t        |t              xr | j                  |j                  k(  S r1   )
isinstancer!   r"   )r4   others     r   __eq__z_FuncInfo.__eq__`   s!    %+G		UZZ0GGr   c                 p     j                   t               v r$dd l}t        |j                   j                         S t
        rBt        j                   j                         fd       }d|_	         j                   |_
        |}n j                  } j                  xs
 t               } ||      }||u sJ |S )Nr   c                  B    t        |  } j                  |      | i |S r1   )r   _wrapper_for)argskwargsr   r4   s      r   wrappedz"_FuncInfo.wrapper.<locals>.wrappedl   s*    $d+,t((,d=f==r   zscipy.special)r5   globalsscipy.specialr   r   r   	functoolswrapsr"   
__module____qualname__r   )r4   scipyrB   r"   capabilitiescap_funcs   `     r   wrapperz_FuncInfo.wrapperc   s    99	! !5==$))44__TYY'> (> "1G#'99G D99D++@/@  %4r   i  c                    t        |      r| j                  S t        |      | j                  v }|r|n
t	        |      }t        ||| j                  | j                        }||S |r@t        d| j                   d|j                   d| j                   d|j                   d	      | j                  | j                  ||      }||S t        |      r t               | j                     }||dd}|S t        |      r t               | j                     }||dd	}|S | j                  }t        |      r| j                  r	||dd
}|S ||dd}|S )Nr%   zfunc z is not available as .z but z was passed in ``in_xp``.)_fr   c                     |D cg c]  }t        |d|       }} | |i |}t        j                  t        j                  d |D              }|j                  ||      S c c}w )Ndatac              3   6   K   | ]  }t        |d d        yw)maskFN)r   .0args     r   	<genexpr>z4_FuncInfo._wrapper_for.<locals>.f.<locals>.<genexpr>   s     (Ufe)D(Us   )rT   )r   rE   reduceoperatoror_asarray)rP   r   r@   rA   rW   	data_argsoutrT   s           r   fz!_FuncInfo._wrapper_for.<locals>.f   sf    BFG3WS&#6G	G).v. ''(UPT(UWzz#Dz11	 Hs   A!c                 P     |j                   t        j                  | fi |g| S r1   )
map_blocksrE   partial)rP   r   r@   rA   s       r   r_   z!_FuncInfo._wrapper_for.<locals>.f   s(    $r}}Y%6%6r%DV%DLtLLr   c                     d |D        }g |d }| j                  |      }|d   }t        ||d d       D cg c]  \  }}|j                  ||       }}}t        j                  | g||d|d|S c c}}w )Nc              3   `   K   | ]&  }t        |      r|j                  n
t        |       ( y wr1   )r   dtypetyperU   s     r   rX   z4_FuncInfo._wrapper_for.<locals>.f.<locals>.<genexpr>   s$     XC|C'8#))d3iGXs   ,.)re   T)r   as_numpyre   )resolve_dtypeszipr\   xpx
lazy_apply)rP   r   r@   rA   dtypes	out_dtyperW   re   s           r   r_   z!_FuncInfo._wrapper_for.<locals>.f   s    XSWX )64 **62"2J	 '*$s&<"U JJs%J0  ~~"$t9HN 	s   A6c                     |D cg c]$  }t        |      rt        j                  |      n|& }} | |i |}|j                  |      S c c}w r1   )r   npr\   )rP   r   r@   rA   rW   r^   s         r   r_   z!_FuncInfo._wrapper_for.<locals>.f   sY     RVJM'7'<BJJsO#E  $)&)zz#&	s   )A	)r	   r"   r   r/   r   _get_native_funcr5   r%   RuntimeErrorr2   r$   r   rC   r
   r   r(   )r4   r   in_xp	namespacer_   rP   s         r   r?   z_FuncInfo._wrapper_for   sd   B<99 *"-1N1NNB%;B%?		499D4F4F
 =H
 		{"7}Adii[}$=?  (!!"i0A}R= 499%B2 2 H2; 499%B2 M H YY":$-- 2 4  2 ' r   ) r2   rG   rH   r   __annotations__intr   r$   r   r%   dictstrr&   tupleboolr'   r   r(   r)   r*   r+   r,   r-   r/   propertyr5   r8   r<   rL   rE   	lru_cacher?   r.   r   r   r!   r!      s    N K >BOXxj(23d:A  (	Z$&'D8 
 ,0M4S>D(/(,HeD#I%, 	 uT3Y'#teD#I6F/F*F"GG
 Hd NROT#uT3Y//05s3CCdJQOStCtSy!112U495EELS OT K L$ 13eCHo2" "H  8 Yc cr   r!   rN   c                    |i }|j                  t        |       |      }t        ||d       }|#t        | d      rt        | j                  |d       }|S r   )getr   r   hasattrr   )r   rt   f_namer%   r_   s        r   rq   rq      sZ    8<fEF	64(AyWR+ BJJ-Hr   c                     | dd}|S )Nr   c                L   t        |      r t        | j                  |j                        n|t        | |dd|      \  } }| dkD  |dkD  z  }|j	                  |       |j	                  |      z  }t        j                  || z  | |ffd|j                        }t        j                  |      | dk(  |dk\  z     j                  d      }t        j                  |      |j                  |       |j                  |      z  ||z  z     j                  |j                        }|S )NT)	broadcastforce_floatingr   r   c                 P    | j                  |       j                  |      z
  z  S r1   )log)xymxps     r   <lambda>z/_rel_entr.<locals>.__rel_entr.<locals>.<lambda>   s!    cggaj3771:56 r   )
fill_value)r
   r   _metar   isinfrk   apply_whereinfatsetisnannan)r   r   r   xy_posxy_infresr   s         @r   
__rel_entrz_rel_entr.<locals>.__rel_entr   s    3:2;oaggqww/B!Q$tK1a%AE"!rxx{*oofWF6vv
 ffSk16a1f-.2215ffSk"((1+3vGHLLRVVT
r   r.   )r   spsxr   s      r   	_rel_entrr      s    ! " r   c                     | dd}|S )Nr   c                    t        | |d|      \  } }t        j                  dd      5  | |j                  |      z  }d d d        |j	                  | dk(  d      S # 1 sw Y   xY w)NT)r   r   ignore)divideinvalidg        )r   rp   errstater   where)r   r   r   temps       r   __xlogyz_xlogy.<locals>.__xlogy	  sa    !Qt;1[[(; 	!rvvay=D	!xxRT**	! 	!s   AA&r.   )r   r   r   s      r   _xlogyr     s     +
 Nr   c                 6     t         |d      y  fd}|S )Ngammaincc                      | dz  |dz        }| dk(  |dkD  z  }j                  |d|      }j                  |       j                  |      z  }j                  |j                  |      S )N   r   g      ?)r   r   r   )vr   r   rT   r   r   s       r   __chdtrz_chdtr.<locals>.__chdtr  sl    q1ua!e$Q1q5!hhtR%xx{RXXa[(xxbffc**r   rq   )r   r   r   r   s   `  @r   _chdtrr     s(    
  D*5H+ Nr   c                 6     t         |d      y  fd}|S )N	gammainccc                     j                  |dk\   | dz  |dz        d      }|dk(  | dk(  z  j                  |      z  j                  |       z  | dk  z  }j                  |j                  |      }|S )Nr   r   r   )r   r   r   )r   r   r   i_nanr   r   s       r   __chdtrcz_chdtrc.<locals>.__chdtrc.  sx    hhqAvy1ac2A6q&Q!V$3bhhqkAQUKhhubffc*
r   r   )r   r   r   r   s   `  @r   _chdtrcr   %  s(    
 !T;7I
 Or   c                 2    t        | |d      y fd}|S )Nbetaincc                      || d|z
        S )Nr   r.   )abr   r   s      r   
__betainccz_betaincc.<locals>.__betaincc;  s    q!QqS!!r   r   )r   r   r   r   s      @r   	_betainccr   6  s&    r43G" r   c                 6     t         |d      y  fd}|S )Nr   c                 l    | |dz  | z   z  } | dz  d|      dz  }j                  |dk  |d|z
        S )Nr   g      ?r   r   )r   )dftr   tailr   r   s       r   __stdtrz_stdtr.<locals>.__stdtrF  sG    !q&2+rAvsA&*xxAtQX..r   r   )r   r   r   r   s   `  @r   _stdtrr   A  s%    r43G/
 Nr   c                 j     t         |d      xs t         |      y ddlmm  fd}|S )Nstdtrr   )bracket_root	find_rootc                     fd} |j                  |      | |f      } ||j                  | |f      }|j                  S )Nc                      ||       |z
  S r1   r.   )r   r   pr   s      r   funz(_stdtrit.<locals>.__stdtrit.<locals>.funZ  s    5Q<!#33r   )r@   )
zeros_likebracketr   )	r   r   r   res_bracketres_rootr   r   r   r   s	        r   	__stdtritz_stdtrit.<locals>.__stdtritY  sC    3"3a(8AwGS+"5"5RGDzzr   )rq   r   scipy.optimize.elementwiser   r   )r   r   r   r   r   r   s   `  @@@r   _stdtritr   N  s7    Rw/C6"d3CE }B r   T	jax.numpycupy)cpu_only
exceptions   )r   r   jax_jit)FTFF)r&   r-   )r-   )r$   r-   )r+   r'   r-   r   )r'   r-   )r$   )r   r   torch)r$   r'   )r+   r-   r   )TF)r'   r&   r+   r-   )r'   )r'   r+   r-   	bessel_j0)r%   r+   	bessel_j1modified_bessel_k0scaled_modified_bessel_k0modified_bessel_k1scaled_modified_bessel_k1)r-   r+   )FT)array_api_strictnumpyz
dask.arraymarray)r(   r)   r*   r&   r+   r'   r-   )TTF)r&   r'   r-   )r   r   )r&   r(   r*   r,   r'   r+   digamma)r   )r(   r/   )r   zno scipy.optimize support)r   r   skip_backends	bessel_y0	bessel_y1)r   r   )r(   r'   r+   )rE   rZ   collections.abcr   r   dataclassesr   typesr   r   rp   scipy._lib._array_apir   r   r	   r
   r   r   r   r   r   r   r   r   scipy._external.array_api_extra	_externalarray_api_extrark    r   r   r   r   r!   rq   r   r   r   r   r   r   r   _needs_betaincbdtrbdtrcbdtrir   betaincc
betaincinvbetalnbinomboxcoxboxcox1pcbrtchdtrchdtrcchdtricosdgcosm1cotdgellipkellipkm1entrerferfcerfcxerfinvexp1exp10exp2exprelexpiexpitexpnfdtrfdtrcfdtrigammar   r   gammainccinvgammaincinvgammalngammasgngdtrgdtrchuberhyp1f1
inv_boxcoxinv_boxcox1pi0i0ei1i1ej0j1k0k0ek1k1ekl_divlog_ndtrloggammalogitlpmvmultigammalnnbdtrnbdtrcnbdtrindtrndtripdtrpdtrcpdtripochpseudo_huber	polygammapsiradianrel_entrrgammasincsindgspencer   stdtrittandgxlog1pyxlogyy0y1ynzetazetac_special_funcsrC   updater"   r2   rL   r   __all__)nfos   0r   <module>rH     s,     - !     
 . -   )
 J J JZ >B 	*&"
2 !$K;PQravh	
 &Er qvh	
 &Er" qvh	
 &E#r2 gooq.uE3r4 g>	 "5r8 Avh	
 T9rH 6;2GH #D)IrV qvh	
 Wrf vh	
 grv !vh	
 wrF avh	
 GrV gmmQV4WrX gnnag%)tLNYr^ vh	
 _rn qvh	
 Eor~ qvh	
 rN qvh	
 Or^ vh	
 _rn !vh	
 or~ gllAr@ gkk1ArB gllACrD qvw&7	
 ErT gnna UrV avh	
 Wrf qvh	
 grv avh	
 wrF vh	
 GrV a6;2GHWr` gmmQarb a6;2GH crt avh	
 urD qvh	
 ErT qvh	
 Urd q6;2GHern g"orp 1"D)qrz avh	
 {rJ Qvh	
 KrZ gooq![r\ !6;2GH]rf avh	
 grv qvh	
 wrF qvh	
 GrV ;-@"D)5	Wrr Avh	
 srB	 avh	
 C	rR	 gjj!S	rT	 gkk1U	rV	 gjj!W	rX	 gkk1Y	rZ	 

Avw&7	
 ,e[	rj	 

Avw&7	
 ,ek	rz	 

Avw&7	
  45{	rJ
 Qvw&7	
  ;<K
r\
 

Avw&7	
  45]
rl
 Qvw&7	
  ;<m
r|
 6;2GH}
rF g"GrH !vh	
 IrX gmmQYrZ avh	
 [rl !!1!&"
 !."'#	
 mrN qvh	
 %DOr` vh	
 %Darr vh	
 %DsrD gllAErF gmmQGrH avh	
 IrX qvh	
 Yrh qvh	
 dirz a6;2GHE{rD avh	
 ErT !me!(- 8d&3$G#	Ur` gkk1[),DEarb vh	
 crr g	:srt vh	
 urD Qvw&7	
 !/ErV qvh	
 EWrf ;-@grp gmmaf "qrt vhEF	
 EurD qvh	
 EErT gooq!UrV gmmQV4WrX 

Avw&7	
 ,eYrh 

Avw&7	
 ,eirx 

Avh	
 }-EyrJ Q$(=AKrT qvh	
 Urn 	  NKS#((##S[[0K L (6
7388
79+
E L
 8s   ++n
#n