
    \ci?n                        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mZ d dlmc mZ ddlmZ ddlmZ dd	lm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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           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j,        d! edddg          ddi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j0        d eddgd          d           eej1        d!e #           eej2        d!e!dddd$%           eej3        d! eddgd          d           eej4        d eddgd          dd&           eej5        d eddgd          d           eej6        d eddgd          d           eej7        d eddgd          d           eej8        d eddgd          d           eej9        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jA        d eddgd          d           eejB        d edddg          d           eejC        d           eejD        d! edddg          dd(dd)           eejE        d eddgd          d           eejF        d eddgd          d           eejG        d eddgd          d           eejH        d edddg          d           eejI        d!           eejJ        d!ddi*           eejK        d! eddgd          d           eejL        d! eddgd          d           eejM        d           eejN        d edddg          d           eejO        d eddgd          d           eejP        d eddgd          d           eejQ        d! eddgd          d           eejR        d eddg          ddidd+           eejS        d! eddgd          d           eejT        d! eddgd          d           eejU        d           eejV        d           eejW        d           eejX        d           eejY        d eddd'gd          d'd,id-           eejZ        d eddd'gd          d'd.id-           eej[        d eddd'gd          d'd/i           eej\        d eddd'gd          d'd0id-           eej]        d eddd'gd          d'd1i           eej^        d eddd'gd          d'd2id-           eej_        d! edddg          d           eej`        d           eeja        d eddgd          d           eejb        d           eejc        d eddgd          dd3           eejd        d!dddgddgddgd$ddgddgddgddgd4d5ddd6	  	         eeje        d eddgd          d7dd8           eejf        d eddgd          d7dd8           eejg        d eddgd          d7dd8           eejh        d           eeji        d           eejj        d! eddgd          dd"           eejk        d! eddgd          dd"           eejl        d! eddgd          d(dd8           eejm        d! edddg          dd&           eejn        d! eddgd          d           eejo        d!d(dd'd(idd(dd9d:           eejp        ddd;i           eejq        d eddgd          d           eejr        d!e#           eejs        d eddgd          d           eejt        d eddd'gd          d<           eeju        d eddgd          dd&           eejv        d eddg          d           eejw        d!e%e#d           eejx        d! eddgd=g>          e$d           eejy        d eddgd          dd&           eejz        d!           eej{        d!e#           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gd          dd(id(dd)           eej        d!ddd(dAdB           eej        d eddgd          d          R Z e                                dC eD                        epZdD eD             d;gz   ZdS )E    N)Callable)	dataclass)
ModuleType)	array_namespacescipy_namespace_foris_numpyis_dask	is_marray
xp_promotexp_capabilitiesSCIPY_ARRAY_APIget_native_namespace_name   )_basic)_spfun_stats)_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<   dZ	e
eef         dz  ed<   dZee         dz  ed<   dZeee         z  e
eee         f         z  ed	<   d
Zeed<   dZe
eee         f         ee         z  dz  ed<   dZe
eee         f         ee         z  dz  ed<   d
Zeed<   dZeed<   d
Zeed<   ed             Zd Zd Zed             Z ej        d          d             ZdS )	_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_nativec                     | j         j        S Nr   __name__selfs    {/var/www/html/mdtn/previsions/meteo_cartes/venv/lib/python3.11/site-packages/scipy/special/_support_alternative_backends.pynamez_FuncInfo.nameK   s    y!!    c                 *    t          | j                  S r"   )hashr   r%   s    r'   __hash__z_FuncInfo.__hash__P   s    DIr)   c                 L    t          |t                    o| j        |j        k    S r"   )
isinstancer   r   )r&   others     r'   __eq__z_FuncInfo.__eq__S   s     %++G	UZ0GGr)   c                 J     j         t                      v rdd l}t          |j         j                   S t
          r:t          j         j                   fd            }d|_	         j         |_
        |}n j        } j        pt                      } ||          }||u sJ |S )Nr   c                  L    t          |  }                     |          | i |S r"   )r   _wrapper_for)argskwargsxpr&   s      r'   wrappedz"_FuncInfo.wrapper.<locals>.wrapped_   s0    $d+,t((,,d=f===r)   zscipy.special)r(   globalsscipy.specialgetattrspecialr   	functoolswrapsr   
__module____qualname__r   )r&   scipyr7   r   capabilitiescap_funcs   `     r'   wrapperz_FuncInfo.wrapperV   s    9		!! !   5=$)444 	_TY''> > > > ('> "1G#'9G DD9D+@/@/@  <%%4r)   i  c                    t          |          r| j        S t          |          }t          ||| j        | j                  }||S | j        |                     ||          }||S t          |          r"t                      | j                 }||dd}|S t          |          r"t                      | j                 }||dd}|S | j        }||dd}|S )Nr   )_fr6   c                     d |D             } | |i |}t          j        t          j        d |D                       }|                    ||          S )Nc                 0    g | ]}t          |d |          S )datar:   .0args     r'   
<listcomp>z5_FuncInfo._wrapper_for.<locals>.f.<locals>.<listcomp>   s$    GGG3WS&#66GGGr)   c              3   8   K   | ]}t          |d d          V  dS )maskFNrJ   rK   s     r'   	<genexpr>z4_FuncInfo._wrapper_for.<locals>.f.<locals>.<genexpr>   s.      (U(Ufe)D)D(U(U(U(U(U(Ur)   )rP   )r<   reduceoperatoror_asarray)rF   r6   r4   r5   	data_argsoutrP   s          r'   fz!_FuncInfo._wrapper_for.<locals>.f   si    GG$GGG	b).v.. '(U(UPT(U(U(UW Wzz#Dz111r)   c                 >     |j         t          j        | fi |g|R  S r"   )
map_blocksr<   partial)rF   r6   r4   r5   s       r'   rX   z!_FuncInfo._wrapper_for.<locals>.f   s/    $r}Y%6r%D%DV%D%DLtLLLLr)   c                 T    d |D             } | |i |}|                     |          S )Nc                 6    g | ]}t          j        |          S  )nprU   rK   s     r'   rN   z5_FuncInfo._wrapper_for.<locals>.f.<locals>.<listcomp>   s     444BJsOO444r)   )rU   )rF   r6   r4   r5   rW   s        r'   rX   z!_FuncInfo._wrapper_for.<locals>.f   s;     54t444D"d%f%%C::c??"r)   )
r   r   r   _get_native_funcr(   r   r   r
   r8   r	   )r&   r6   spxrX   rF   s        r'   r3   z_FuncInfo._wrapper_fors   s3   B<< 	9 ""%%Rdit?QRRR=H (!!"c**A}R== 	 49%B2 2 2 2 2 2 H2;; 	 49%B2 M M M M M H Yr 	# 	# 	# 	# 	# r)   )r$   r>   r?   r   __annotations__intr   r   r   r   dictstrr   tupleboolr   r   r   r   r   r   r    propertyr(   r,   r0   rC   r<   	lru_cacher3   r^   r)   r'   r   r      s         NNN KKK >BOXxj(23d:AAA  (	Z$&'D8   
 ,0M4S>D(///#'HeDkD ''' BGM4%+%S%+-=(>>FFF Hd DHOT#uT{*+eDk9D@GGGEItCt,-d;dBIII OT   K L$" " X"  H H H   X8 Y8 8 8 8 8r)   r   rE   c                    |i }|                     t          |           |          }|rt          |j        |d           nd }|&t	          | d          rt          | j        |d           }|S )Nr;   )getr   r:   r;   hasattr)r6   ra   f_namer   rX   s        r'   r`   r`      su    8<<fEEF.1;VT***tAyWR++y BJ--Hr)   c                     | dd}|S )Nr6   c                z   t          |          rt          | j        |j                  n|t          | |dd|          \  } }| dk    |dk    z  }|                    |           |                    |          z  }t          j        || z  | |ffd|j                  }t          j        |          | dk    |dk    z           	                    d          }t          j        |          |
                    |           |
                    |          z  ||z  z           	                    |j                  }|S )NT)	broadcastforce_floatingr6   r   c                 `    |                      |                                |          z
  z  S r"   )log)xymxps     r'   <lambda>z/_rel_entr.<locals>.__rel_entr.<locals>.<lambda>   s%    cggajj3771::56 r)   )
fill_value)r	   r   _metar   isinfxpxapply_whereinfatsetisnannan)ru   rv   r6   xy_posxy_infresrw   s         @r'   
__rel_entrz_rel_entr.<locals>.__rel_entr   s"   3:2;;Foagqw///B!Q$tKKK1a%AE"!rxx{{*ofWF6666v
 
 
 fSkk16a1f-.22155fSkk"((1++3vGHLLRVTT
r)   r^   )r6   ra   r   s      r'   	_rel_entrr      s&    !     " r)   c                     | dd}|S )Nro   c                    t          | |d|          \  } }t          j        dd          5  | |                    |          z  }d d d            n# 1 swxY w Y   |                    | dk    d|          S )NT)rr   r6   ignore)divideinvalidg        )r   r_   errstatert   where)ru   rv   r6   temps       r'   __xlogyz_xlogy.<locals>.__xlogy   s    !Qt;;;1[(;;; 	! 	!rvvayy=D	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!xxRT***s   AAAr^   )r6   ra   r   s      r'   _xlogyr      s%     + + + + +
 Nr)   c                 @     t           |d          d S  fd}|S )Ngammaincc                      | dz  |dz            }| dk    |dk    z  }                     |d|          }                    |                               |          z  }                     |j        |          S )N   r   g      ?)r   r{   r   )vru   r   rP   r   r6   s       r'   __chdtrz_chdtr.<locals>.__chdtr   sy    hq1ua!e$$Q1q5!hhtR%%xx{{RXXa[[(xxbfc***r)   r`   )r6   ra   r   r   s   `  @r'   _chdtrr      sG    
  C44Ht+ + + + + + Nr)   c                 @     t           |d          d S  fd}|S )N	gammainccc                                         |dk     | dz  |dz            d          }|dk    | dk    z                      |          z                      |           z  | dk    z  }                     |j        |          }|S )Nr   r   r   )r   r   r   )r   ru   r   i_nanr   r6   s       r'   __chdtrcz_chdtrc.<locals>.__chdtrc   s    hhqAvyy1ac22A66q&Q!V$3bhhqkkAQ!VLhhubfc**
r)   r   )r6   ra   r   r   s   `  @r'   _chdtrcr      sG    
 !S+66It     
 Or)   c                 <    t          | |d          d S fd}|S )Nbetaincc                 $     || d|z
            S )Nr   r^   )abru   r   s      r'   
__betainccz_betaincc.<locals>.__betaincc  s    wq!QqS!!!r)   r   )r6   ra   r   r   s      @r'   	_betainccr      s?    r3	22Gt" " " " " r)   c                 @     t           |d          d S  fd}|S )Nr   c                 |    | |dz  | z   z  } | dz  d|          dz  }                     |dk     |d|z
            S )Nr   g      ?r   r   )r   )dftru   tailr   r6   s       r'   __stdtrz_stdtr.<locals>.__stdtr  sO    !q&2+wrAvsA&&*xxAtQX...r)   r   )r6   ra   r   r   s   `  @r'   _stdtrr   	  sD    r3	22Gt/ / / / / /
 Nr)   c                 x     t           |d          pt           |          d S ddlmm  fd}|S )Nstdtrr   )bracket_root	find_rootc                     fd} |                     |          | |f          } ||j        | |f          }|j        S )Nc                 "     ||           |z
  S r"   r^   )r   r   pr   s      r'   funz(_stdtrit.<locals>.__stdtrit.<locals>.fun"  s    55Q<<!#33r)   )r4   )
zeros_likebracketru   )	r   r   r   res_bracketres_rootr   r   r   r6   s	        r'   	__stdtritz_stdtrit.<locals>.__stdtrit!  s]    33333"l3a(8(8AwGGG9S+"5RGDDDzr)   )r`   r   scipy.optimize.elementwiser   r   )r6   ra   r   r   r   r   s   `  @@@r'   _stdtritr     sx    Rg..A&S//E }tBBBBBBBB        r)   T	jax.numpycupy)cpu_only
exceptions   F)r   r   jax_jit)FTF)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   )array_api_strictnumpyz
dask.arraymarray)FT)r   r   r   r   r   r   r    )TTF)r   r   r    )r   r   )r   r   r   r   r   r   digamma)r   )r   zno scipy.optimize support)r   r   skip_backends	bessel_y0	bessel_y1)r   r   )r   r   r   c                 2    i | ]}|j         j        |j        S r^   )r   r$   rC   rL   nfos     r'   
<dictcomp>r   g  s!    KKKS#(#S[KKKr)   c                 &    g | ]}|j         j        S r^   r#   r   s     r'   rN   rN   l  s    
7
7
738
7
7
7r)   )r<   rS   collections.abcr   dataclassesr   typesr   r   r_   scipy._lib._array_apir   r   r   r	   r
   r   r   r   r   scipy._lib.array_api_extra_libarray_api_extrar|    r   r   r   r   r`   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_funcsr8   updater   __all__r^   r)   r'   <module>r9     ss        $ $ $ $ $ $ ! ! ! ! ! !                                ) ( ( ( ( ( ( ( (                   Y Y Y Y Y Y Y Yx 8< 	 	 	 	 	  *    &  "  
 
 
  2 !$K;PQQQqIavh	
 	
 	
 &E  q Iqvh	
 	
 	
 &E  q" Iqvh	
 	
 	
 &E  #q2 Igoq.uEEE3q4 Ig>	 " " "5q8 IAvh	
 	
 	
 T  9qH I6;2GHHH #D)  IqV Iqvh	
 	
 	
   Wqf Ivh	
 	
 	
   gqv I!vh	
 	
 	
   wqF Iavh	
 	
 	
   GqV IgmQV444WqX Ignag%)tLLN N NYq^ Ivh	
 	
 	
   _qn Iqvh	
 	
 	
 E  oq~ Iqvh	
 	
 	
   qN Iqvh	
 	
 	
   Oq^ Ivh	
 	
 	
   _qn I!vh	
 	
 	
   oq~ IglAq@ Igk1AqB IglACqD Iqvw&7	
 	
 	
   EqT Igna  UqV Iavh	
 	
 	
   Wqf Iqvh	
 	
 	
   gqv Iavh	
 	
 	
   wqF Ivh	
 	
 	
   GqV Ia6;2GHHH  Wq` IgmQaqb Ia6;2GHHH   cqt Iavh	
 	
 	
   uqD Iqvh	
 	
 	
   EqT Iqvh	
 	
 	
   Uqd Iq6;2GHHH  eqn Ig""oqp I1"D)  qqz Iavh	
 	
 	
   {qJ IQvh	
 	
 	
   KqZ Igoq!![q\ I!6;2GHHH  ]qf Iavh	
 	
 	
   gqv Iqvh	
 	
 	
   wqF Iqvh	
 	
 	
   GqV I;-@@@"D)5	  Wqr IAvh	
 	
 	
   sqB	 Iavh	
 	
 	
   C	qR	 Igj!S	qT	 Igk1U	qV	 Igj!W	qX	 Igk1Y	qZ	 I
Avw&7	
 	
 	
 ,e  [	qj	 I
Avw&7	
 	
 	
 ,e  k	qz	 I
Avw&7	
 	
 	
  45  {	qJ
 IQvw&7	
 	
 	
  ;<  K
q\
 I
Avw&7	
 	
 	
  45  ]
ql
 IQvw&7	
 	
 	
  ;<  m
q|
 I6;2GHHH  }
qF Ig""GqH I!vh	
 	
 	
   IqX IgmQYqZ Iavh	
 	
 	
   [ql I!1DMT]
 
 "'T] $-dm	
 
   mqN Iqvh	
 	
 	
 %D  Oq` Ivh	
 	
 	
 %D  aqr Ivh	
 	
 	
 %D  sqD IglAEqF IgmQGqH Iavh	
 	
 	
   IqX Iqvh	
 	
 	
   Yqh Iqvh	
 	
 	
 d  iqz Ia6;2GHHHE  {qD Iavh	
 	
 	
   EqT I!me!(- 8d&3$GG#	  Uq` Igk1[),DEEEaqb Ivh	
 	
 	
   cqr Ig	:::sqt Ivh	
 	
 	
   uqD IQvw&7	
 	
 	
   EqT Iqvh	
 	
 	
 E  Uqd I;-@@@  eqn Igmaf " " "oqr IvhEF	
 	
 	
 E  sqB Iqvh	
 	
 	
 E  CqR Igoq!!SqT IgmQV444UqV I
Avw&7	
 	
 	
 ,e  Wqf I
Avw&7	
 	
 	
 ,e  gqv I
Avh	
 	
 	
 }-E  wqH IQ$(=AA  IqR Iqvh	
 	
 	
   Sq ql 		  KKNKKK L L L 
7
7
7
7
79+
Er)   