
    Џkh)                     H   d dl Z d dlZd dl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 d dlmc mZ ddlmZ e G d d	             Zd
 Zd Zd Zd Zd Zd Zd Z d Z! edddg      Z" eejF                  de"       eejH                  de"e       eejJ                  de       eejL                  de       eejN                  d       eejP                  d       eejR                  d       eejT                  d       eejV                  d       eejX                  d       eejZ                  d       eej\                  d       eej^                  d       eej`                  d       eejb                  d       eejd                  d       eejf                  d       eejh                  d       eejj                  d       eejl                  de       eejn                  de"e        eejp                  d eddgdg      e!       eejr                  de      fZ: e;       jy                  e:D  ci c]#  } | jz                  j|                  | j~                  % c}        e:D  cg c]  } | jz                  j|                   c} Z@yc c} w c c} w )    N)Callable)	dataclass)
ModuleType)array_namespacescipy_namespace_foris_numpyis_dask	is_marray
xp_promotexp_capabilitiesSCIPY_ARRAY_API   )_ufuncsc                       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<   e	d        Z
d Zd Ze	d	        Z ej                  d
      d        Zy)	_FuncInfofuncn_argsNr   generic_implc                 .    | j                   j                  S N)r   __name__selfs    g/var/www/teggl/fontify/venv/lib/python3.12/site-packages/scipy/special/_support_alternative_backends.pynamez_FuncInfo.name#   s    yy!!!    c                 ,    t        | j                        S r   )hashr   r   s    r   __hash__z_FuncInfo.__hash__(   s    DIIr   c                 X    t        |t              xr | j                  |j                  k(  S r   )
isinstancer   r   )r   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 r   )r   _wrapper_for)argskwargsxpr   s      r   wrappedz"_FuncInfo.wrapper.<locals>.wrapped7   s*    $d+,t((,d=f==r   zscipy.special)r   globalsscipy.specialgetattrspecialr   	functoolswrapsr   
__module____qualname__r   )r   scipyr*   r   capabilitiescap_funcs   `     r   wrapperz_FuncInfo.wrapper.   s    99	! !5==$))44__TYY'> (> "1G#'99G D99D++@/@  %4r   i  c                    t        |      r| j                  S t        |      }t        ||| j                        }||S | j
                  | j                  ||      }||S t        |      r t               | j                     }||dd}|S t        |      r t               | j                     }||dd}|S | j                  }||dd}|S )N)_fr)   c                     |D cg c]  }|j                    }} | |i |}t        j                  t        j                  d |D              }|j                  ||      S c c}w )Nc              3   4   K   | ]  }|j                     y wr   mask).0args     r   	<genexpr>z4_FuncInfo._wrapper_for.<locals>.f.<locals>.<genexpr>g   s     6PCsxx6Ps   r;   )datar/   reduceoperatoror_asarray)r8   r)   r'   r(   r>   	data_argsoutr<   s           r   fz!_FuncInfo._wrapper_for.<locals>.fd   s\    156#SXX6	6).v. ''6P46PQzz#Dz11 7s   A c                 P     |j                   t        j                  | fi |g| S r   )
map_blocksr/   partial)r8   r)   r'   r(   s       r   rG   z!_FuncInfo._wrapper_for.<locals>.ft   s(    $r}}Y%6%6r%DV%DLtLLr   c                     |D cg c]  }t        j                  |       }} | |i |}|j                  |      S c c}w r   )nprD   )r8   r)   r'   r(   r>   rF   s         r   rG   z!_FuncInfo._wrapper_for.<locals>.f|   sA     044BJJsO4D4d%f%C::c?" 5s   <)	r   r   r   _get_native_funcr   r   r
   r+   r	   )r   r)   spxrG   r8   s        r   r&   z_FuncInfo._wrapper_forK   s    B<99 ""%Rdii0=H (!!"c*A}R= 499%B2 2 H2; 499%B2 M H YYr 	# r   )r   r1   r2   r   __annotations__intr   r   r   propertyr   r   r#   r6   r/   	lru_cacher&    r   r   r   r      s     N K >BOXxj(23d:A  (	Z$&'D8  " "H  8 Y7 7r   r   c                     |rt        |j                  |d       nd }|#t        | d      rt        | j                  |d       }|S )Nr.   )r-   r.   hasattr)r)   rN   f_namerG   s       r   rM   rM      s?    .1VT*tA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 r   )log)xymxps     r   <lambda>z/_rel_entr.<locals>.__rel_entr.<locals>.<lambda>   s!    cggaj3771:56 r   )
fill_value)r	   r   _metar   isinfxpx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   rS   )r)   rN   ro   s      r   	_rel_entrrp      s    ! " r   c                     | dd}|S )NrX   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   rL   errstater]   where)r^   r_   r)   temps       r   __xlogyz_xlogy.<locals>.__xlogy   sa    !Qt;1[[(; 	!rvvay=D	!xxRT**	! 	!s   AA&rS   )r)   rN   ry   s      r   _xlogyrz      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      ?)rw   rd   rk   )vr^   rn   r<   r|   r)   s       r   __chdtrz_chdtr.<locals>.__chdtr   sl    q1ua!e$Q1q5!hhtR%xx{RXXa[(xxbffc**r   rM   )r)   rN   r   r|   s   `  @r   _chdtrr      s(    
  C4H+ 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   )rw   rj   rk   )r   r^   rn   i_nanr   r)   s       r   __chdtrcz_chdtrc.<locals>.__chdtrc   sx    hhqAvy1ac2A6q&Q!V$3bhhqkAQ!VLhhubffc*
r   r   )r)   rN   r   r   s   `  @r   _chdtrcr      s(    
 !S+6I
 Or   c                 2    t        | |d      y fd}|S )Nbetaincc                      || d|z
        S )Nr   rS   )abr^   r   s      r   
__betainccz_betaincc.<locals>.__betaincc   s    q!QqS!!r   r   )r)   rN   r   r   s      @r   	_betainccr      s&    r3	2G" 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   )rw   )dftr^   tailr   r)   s       r   __stdtrz_stdtr.<locals>.__stdtr   sG    !q&2+rAvsA&*xxAtQX..r   r   )r)   rN   r   r   s   `  @r   _stdtrr      s%    r3	2G/
 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 r   rS   )r   r   pr   s      r   funz(_stdtrit.<locals>.__stdtrit.<locals>.fun   s    5Q<!#33r   )r'   )
zeros_likebracketr^   )	r   r   r   res_bracketres_rootr   r   r   r)   s	        r   	__stdtritz_stdtrit.<locals>.__stdtrit   sC    3"3a(8AwGS+"5"5RGDzzr   )rM   r   scipy.optimize.elementwiser   r   )r)   rN   r   r   r   r   s   `  @@@r   _stdtritr      s6    Rg.A&S/E }B r   T	jax.numpycupy)cpu_only
exceptions   )r   r~   )r   zno scipy.optimize support)r   r   skip_backends)Ar/   rB   collections.abcr   dataclassesr   typesr   numpyrL   scipy._lib._array_apir   r   r   r	   r
   r   r   r   scipy._lib.array_api_extra_libarray_api_extrare    r   r   rM   rp   rz   r   r   r   r   r   _needs_betaincr   betainccchdtrchdtrcerferfcentrexpiti0i0ei1i1elog_ndtrlogitgammalnr|   r   ndtrndtrirel_entrr   stdtritxlogy_special_funcsr+   updater   r   r6   __all__)nfos   0r   <module>r      sc     $ !     ) (  r r rj*&"
2 !$K;PQ gooq.1g>	JgmmQV4gnnag6gkk1gllAgllAgmmQgjj!gkk1gjj!gkk1g"gmmQgooq!g"g#gllAgmmQg	:gmmafEgooqVH!K LN $	%
 gmmQV47B 	  NKS#((##S[[0K L(6
7388
7 L
7s   (J9J