
    UgJ              
         U d dl mZ d dlmZ d dlZd dlmZ d dlmZm	Z	 d dl
mZ d dlmZ dd	gZg d
Zg dZd  eed          D             Zdddddddddd	Zeeeeeeeeed	Zg ej        ej        ddfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        ddfej         ej         ddfej!        ej!        ddfej"        ej"        ddfej#        ej#        ddfej$        ej$        ddfej%        ej%        ddfej&        ej&        ddfej'        ej'        ddfej(        ej(        ddfej)        ej)        ddfej*        ej*        ddfej+        ej+        ddfej,        ej,        ddfej-        ej-        ddfej.        ej.        ddfej/        ej/        ddfej0        ej0        ddfej1        ej1        ddfej2        ej2        ddfej3        ej3        ddfej4        ej4        ddfej5        ej5        ddfej6        ej6        ddfej7        ej7        ddfej8        ej8        ddfej9        ej9        ddfej:        ej:        ddfej;        ej;        ddfej<        ej<        ddfej=        ej=        ddfej>        ej>        ddfej?        ej@        ddfejA        ejA        ddfejB        ejB        ddfejC        ejC        ddfejD        ejD        ddfejE        ejE        ddfejF        ejF        ddfejG        ejG        ddfejH        ejH        d dfejI        ejI        ddfejJ        ejJ        ddfejK        ejK        ddfejL        ejL        ddfejM        ejM        ddfejN        ejN        ddfejO        ejO        ddfejP        ejP        d!dfejQ        ejQ        d!d"fejR        ejR        d!d"fejS        ejS        d!d"fejT        ejT        d#d"fejU        ejU        d#d"fejV        ejV        d$dfejW        ejW        d$dfejX        ejX        d%d"fejY        ejY        d!d"fejZ        ejZ        d!dfej[        ej[        d!dfej\        ej\        d!d"fej]        ej]        d%d"fej^        ej^        d!dfej_        ej_        ddfej`        ej`        ddfeja        eja        ddfejb        ejb        ddfejc        ejc        d&dfejd        ejd        ddfeje        eje        d'dfejf        ejf        ddfejg        ejg        ddfejh        ejh        ddfeji        eji        ddfejj        ejj        ddfejk        ejl        ddfejm        ejm        ddfejn        ejn        ddfejo        ejo        ddfejp        ejp        ddfejq        ejq        ddfejr        ejr        ddfejs        ejs        ddfejt        ejt        ddfeju        eju        ddfejv        ejv        ddfejw        ejw        ddfejx        ejx        ddfejy        ejy        d(dfejz        ejz        d(dfej{        ej{        d(dfej|        ej|        d(dfej}        ej}        ddfej~        ej~        d)dfej        ej        d*dfej        ej        d+dfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        d)dfej        ej        d)dfej        ej        ddfej        ej        ddfej        ej        d)dfej        ej        d)dfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        d'dfej        ej        ddfej        ej        ddfej        ej        d)dfej        ej        d)dfej        ej        ddfej        ej        d&dfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        d,dfej        ej        d&dfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        d-dfej        ej        d-dfej        ej        d-dfej        ej        ddfej        ej        ddfej        ej        d.dfej        ej        d.dfej        ej        d.dfej        ej        d.dfej        ej        d.dfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        d.dfej        ej        d/dfej        ej        ddfej        ej        d.d0fej        ej        d/d0fej        ej        d.d0fej        ej        d/d0fej        ej        ddfej        ej        ddfej        ej        ddfej        ej        d1dfej        ej        d1dfej        ej        d'dfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        d.dfej        ej        d/dfej        ej        ddfej        ej        d.d0fej        ej        d/d0fej        ej        d.d0fej        ej        d/d0fej        ej        ddfej        ej        ddfej         ej         ddfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        d2dfej        ej        d2dfej        ej        d2dfej        ej        d2dfej        ej	        ddfej
        ej        ddfej        ej        ddfej        ej        d'dfej        ej        d'dfej        ej        ddfej        ej        d3dfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        d,dfej        ej        ddfej        ej        d,dfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        ddfej        ej        d'dfej         ej         d)dfej!        ej!        d)dfej"        ej"        ddfej#        ej#        ddfZ$d4e%d5<   d6 e$D             Z&d7 Z'd8 Z(ej)        *                    d9          ej)        +                    d:e$e&;          d<                         Z,dS )=    )annotations)CallableN)product)assert_allclosesuppress_warnings)special)cython_specialTF)i   
   )g      $g      g      ?g      $@c                     g | ]}t          | S  )complex).0tups     f/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/scipy/special/tests/test_cython_special.py
<listcomp>r      s    JJJC'3-JJJ       )repeatbintfloatdoublezlong doublezfloat complexzdouble complexzlong double complexintlong)	bfdgFDGil)dd)r   r!   )dldddd)r'   )r   )r%   DD)r'   DDD)ddddDDDD)r%   dDldzd and l differ for negative int)r'   ddDldd)r-   )r*   dddDlddd)r   r   r   )r-   r%   )r,   )r%   r,   )r'   r.   )r*   r0   )r!   )lldr'   )r*   )dddddzsee gh-6211)r%   r%   )r-   ldblDlDb)llddr*   z<list[tuple[Callable, Callable, tuple[str, ...], str | None]]PARAMSc                (    g | ]}|d          j         S )r   )__name__r   xs     r   r   r   .  s    %%%qt}%%%r   c                d    t          d | D                       }t          t          |           }|S )Nc              3  0   K   | ]}t           |         V  d S N)TEST_POINTSr;   s     r   	<genexpr>z(_generate_test_points.<locals>.<genexpr>2  s&      33AQ333333r   )tuplelistr   )	typecodesaxesptss      r   _generate_test_pointsrG   1  s4    3333333D
w~

CJr   c                     t          t                    D ]b} t          t          |           }t          |          r<|                     d          s't
          D ]\  }}}}||u r nt          |  d          cd S )N_z missing from tests!)dirr	   getattrcallable
startswithr8   RuntimeError)namefuncrI   cyfuns       r   test_cython_api_completenessrR   7  s    N## B B~t,,D>> 	B$//#"6"6 	B"( B B5!QD==E ! #d#@#@#@AAAB Br      param)idsc                ~   | \  }}}}|rt          j        |           t          d |D                       }d t          |          D             }|D ]2}t	          |          D ] \  }}	||                             |	           !3t                      }
dgt          |          z  t	          |          D ]Q\  }}	t          t          |	                    }||
v r&t          |	          dk    |<   |
                    |           R|D ]}fdt	          |          D             }|r|t          |                   }nd }|}t          |          }|D ]f}t                      5 }|                    t                      || } || }d d d            n# 1 swxY w Y   t          ||| d| d|            gd S )	N)reasonc              3  4   K   | ]}t          |          V  d S r?   )len)r   specs     r   rA   z"test_cython_api.<locals>.<genexpr>K  s(      ;;4SYY;;;;;;r   c                *    g | ]}t                      S r   )set)r   rI   s     r   r   z#test_cython_api.<locals>.<listcomp>L  s    ///cee///r   Fr   c                @    g | ]\  }}|         t           |         S r   )CYTHON_SIGNATURE_MAP)r   jcodeis_fused_codes      r   r   z#test_cython_api.<locals>.<listcomp>\  s=     * * * D%a(*)$/ * * *r    )err_msg)pytestxfailmaxrange	enumerateaddr\   rY   rB   sortedrG   r   filterDeprecationWarningr   )rT   pyfunccyfuncspecializationsknownfailure
max_paramsvaluesrD   r_   vseenvv	signaturecy_spec_funcrF   ptsuppyvalcyvalra   s                      @r   test_cython_apir|   C  s~    5:1FFO\ *L)))) ;;?;;;;;J//U:..///F$  	i(( 	 	DAq1IMM!	55DGc&kk)M&!!  16!99::FFQJa % S S	* * * *$-i$8$8* * *	  	"!%	"2"23LLI!L $I.. 	S 	SB"$$ *

-...$b)* * * * * * * * * * * * * * * E5R2Q2Q)2Q2Qi2Q2QRRRRR	SS Ss   %%FFF(-  
__future__r   typingr   rd   	itertoolsr   numpy.testingr   r   scipyr   scipy.specialr	   bint_points
int_pointsreal_pointscomplex_pointsr^   r@   agmairy_airy_pywrapairye_airye_pywrapbdtrbdtrcbdtribdtrikbdtrinbeibeipberberp
besselpolybetabetaincbetaincc
betaincinvbetainccinvbetalnbinomboxcoxboxcox1pbtdtrbtdtribtdtriabtdtribcbrtchdtrchdtrcchdtrichdtrivchndtr	chndtridf	chndtrincchndtrixcosdgcosm1cotdgdawsnellipe	ellipeincellipj_ellipj_pywrap	ellipkincellipkm1ellipkelliprcelliprdelliprfelliprgelliprjentrerferfcerfcxerfierfinverfcinveval_chebyceval_chebyseval_chebyteval_chebyueval_gegenbauereval_genlaguerreeval_hermiteeval_hermitenormeval_jacobieval_laguerreeval_legendreeval_sh_chebyteval_sh_chebyueval_sh_jacobieval_sh_legendreexp1exp10exp2expiexpitexpm1expnexprelfdtrfdtrcfdtrifdtridfdfresnel_fresnel_pywrapgammagammainc	gammainccgammainccinvgammaincinvgammalngammasgngdtrgdtrcgdtriagdtribgdtrixhankel1hankel1ehankel2hankel2ehuberhyp0f1hyp1f1hyp2f1hyperui0i0ei1i1e
inv_boxcoxinv_boxcox1pit2i0k0_it2i0k0_pywrapit2j0y0_it2j0y0_pywrap
it2struve0itairy_itairy_pywrapiti0k0_iti0k0_pywrapitj0y0_itj0y0_pywrapitmodstruve0	itstruve0ivivej0j1jvjvek0k0ek1k1ekeikeipkelvin_kelvin_pywrapkerkerpkl_divknkolmogi
kolmogorovkvkvelog1p	log_expitlog_ndtrlog_wright_bessel	ndtri_exploggammalogitlpmv	mathieu_a	mathieu_bmathieu_cem_mathieu_cem_pywrapmathieu_modcem1_mathieu_modcem1_pywrapmathieu_modcem2_mathieu_modcem2_pywrapmathieu_modsem1_mathieu_modsem1_pywrapmathieu_modsem2_mathieu_modsem2_pywrapmathieu_sem_mathieu_sem_pywrapmodfresnelm_modfresnelm_pywrapmodfresnelp_modfresnelp_pywrap	modstruvenbdtrnbdtrcnbdtrinbdtriknbdtrinncfdtrncfdtri
ncfdtridfd
ncfdtridfn	ncfdtrincnctdtr	nctdtridf	nctdtrincnctdtritndtrndtrinrdtrimnnrdtrisdobl_ang1_obl_ang1_pywrapobl_ang1_cv_obl_ang1_cv_pywrapobl_cvobl_rad1_obl_rad1_pywrapobl_rad1_cv_obl_rad1_cv_pywrapobl_rad2_obl_rad2_pywrapobl_rad2_cv_obl_rad2_cv_pywrappbdv_pbdv_pywrappbvv_pbvv_pywrappbwa_pbwa_pywrappdtrpdtrcpdtripdtrikpochpowm1pro_ang1_pro_ang1_pywrappro_ang1_cv_pro_ang1_cv_pywrappro_cvpro_rad1_pro_rad1_pywrappro_rad1_cv_pro_rad1_cv_pywrappro_rad2_pro_rad2_pywrappro_rad2_cv_pro_rad2_cv_pywrappseudo_huberpsiradianrel_entrrgammaroundspherical_jnspherical_ynspherical_inspherical_knshichi_shichi_pywrapsici_sici_pywrapsindgsmirnovsmirnovispencesph_harmstdtrstdtridfstdtritstruvetandgtklmbdavoigt_profilewofzwright_besselwrightomegaxlog1pyxlogyy0y1ynyvyvezetacowens_tr8   __annotations__IDSrG   rR   mark	fail_slowparametrizer|   r   r   r   <module>r     s   " " " " " " "              < < < < < < < <       ( ( ( ( ( ( Um
&&&JJ77;q+I+I+IJJJ 
								
 
  
								
 
@H[.$gt4@H\>.
DA@H ]N0*dC@H \>&=	@H
 ]N(.$?@H ]N(.$?@H ^^*Hd;@H ^^*Hd;@H [.$fd3@H \>&5@H [.$fd3@H \>&5@H 2HdC@H \>&6@H _n,h=@H  ~.$?!@H" 2HdC#@H$ .4hE%@H& ^^*GT:'@H( ]N('48)@H* ^^*GT:+@H, ~.>-@H. ]N((D9/@H0 ^^*Hd;1@H2 _n,h=3@H4 _n,h=5@H6 \>&57@H8 ]N('489@H: ^^*GT:;@H< ^^*GT:=@H> _n,gt<?@H@ ^^*Hd;A@HB 0(DAC@HD 0(DAE@HF ~.$?G@HH ]N(&$7I@HJ ]N(&$7K@HL ]N(&$7M@HN ]N(*d;O@HP ^^*FD9Q@HR 0'4@S@HT ^^2GTBU@HV 0'4@W@HX ~.=Y@HZ ^^*FD9[@H\ _n,lDA]@H^ _n,ndC_@H` _n,ndCa@Hb _n,ndCc@Hd _n,.>Ee@Hf \>&5g@Hh [.$j$7i@Hj \>&
D9k@Hl ]N(*d;m@Hn \>&
D9o@Hp ^^*FD9q@Hr _n,fd;s@Ht .46H$Ou@Hv .46H&(w@Hz .46H&({@H~ .46H&(@HB n<>S&(C@HF ~>@U&(G@HJ >6FK@HL ~>NM@HN .46N&(O@HR N8:L&(S@HV N8:LdSW@HX ^:<NPTUY@HZ ^:<N&([@H^ ^:<T&(_@Hb ~>@R	c@Hf \>&
D9g@Hh ]N(&$7i@Hj \>&5k@Hl \>&
D9m@Hn ]N(/4@o@Hp ]N(*d;q@Hr \>&d;s@Ht ^^*FD9u@Hv \>&$7w@Hx ]N((D9y@Hz ]N((D9{@H| ~.$?}@H~ _n4j$G@H@ ]N(*d;A@HB ~.>C@HD 0'4@E@HF >6FG@HH .4gtDI@HJ _n,fd;K@HL ~.=M@HN \>&$7O@HP ]N((D9Q@HR ^^*Hd;S@HT ^^*Hd;U@HV ^^*Hd;W@HX _n,gt<Y@HZ ~.>[@H\ _n,gt<]@H^ ~.>_@H` ]N('48a@Hb ^^*L$?c@Hd ^^*NDAe@Hf ^^*,<dCg@Hh ^^*Hd;i@Hj Z"FD1k@Hl [.$fd3m@Hn Z"FD1o@Hp [.$fd3q@Hr 2GTBs@Ht >6Fu@Hv _n4fdCw@Hx _n4fdCy@Hz 2FDA{@H| ^^2FDA}@H~ ^^2FDA@H@ ^^2FDAA@HB >6EC@HD 0&$?E@HF Z"L$7G@HH [.$lD9I@HJ Z"FD1K@HL Z"FD1M@HN Z"L$7O@HP [.$lD9Q@HR Z"FD1S@HT [.$fd3U@HV Z"FD1W@HX [.$fd3Y@HZ [.$fd3[@H\ \>&5]@H^ ^^2FDA_@H` [.$fd3a@Hb \>&5c@Hd ^^*GT:e@Hf Z"L$7g@Hh _n,fd;i@Hj 2FDAk@Hl Z"L$7m@Hn [.$lD9o@Hp ]N(*d;q@Hr 0/4Hs@Ht ~.
DAu@Hv  @(DQw@Hx 0&$?y@Hz ~.={@H| ]N(/4@}@H~ \>&$7@H@ 0'4@A@HB 0'4@C@HD .<hME@HF nDhPTUG@HH nDhPTUI@HJ nDhPTUK@HL nDhPTUM@HN .<hMO@HP .<fdKQ@HR .<fdKS@HT 0'4@U@HV ]N(.$?W@HX ^^*NDAY@HZ ^^*NDA[@H\ _n,h=]@H^ _n,h=_@H` ^^*It<a@Hb _n,i>c@Hd 2ItDe@Hf 2ItDg@Hh 0)TBi@Hj ^^*Hd;k@Hl 0(DAm@Hn 0(DAo@Hp ~.$?q@Hr \>&
D9s@Ht ]N(&$7u@Hv ~.$?w@Hx ~.$?y@Hz ~6	4H{@H| .<j$O}@H~ ^^*Hd;@H@ ~6	=QA@HB .<jC@HF ~6	=QG@HH .<jI@HL \>.>M@HN \>.>O@HP \>.>Q@HR \>&d;S@HT ]N(,=U@HV ]N(,=W@HX ^^*GT:Y@HZ \>&6[@H\ ]N('48]@H^ ~6	4H_@H` .<j$Oa@Hb ^^*Hd;c@Hd ~6	=Qe@Hf .<jg@Hj ~6	=Qk@Hl .<jm@Hp >6Fq@Hr [.$j$7s@Ht ^^*Hd;u@Hv ~.>w@Hx ^^*J=y@Hz ]N(&$7{@H| >68R	}@H@ >68R	A@HD >68R	E@HH >68R	I@HL ^^2JEM@HN \>.
DAO@HP ]N(&$7Q@HR _n,lDAS@HT ~.dCU@HV ^^*J=W@HX ~.0@$GY@HZ ]N('48[@H\ ~.>]@H^ _n,gt<_@H` ^^*GT:a@Hb ]N(&$7c@Hd _n,gt<e@Hf N8(DIg@Hh \>&5i@Hj N8(DIk@Hl .4fdCm@Hn _n,lDAo@Hp ]N(,=q@Hr Z"FD1s@Ht Z"FD1u@Hv Z"L$7w@Hx Z"L$7y@Hz [.$lD9{@H| ]N(&$7}@H~ _n,gt<@H @ @ @ @F &%f%%%  	B 	B 	B q&c22(S (S 32 (S (S (Sr   