
    geH              
      "   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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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!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     Glib/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>&  s&      33AQ333333r   )tuplelistr   )	typecodesaxesptss      r   _generate_test_pointsrG   %  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   +  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>>  s(      ;;4SYY;;;;;;r   c                *    g | ]}t                      S r   )set)r   rI   s     r   r   z#test_cython_api.<locals>.<listcomp>?  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>O  s=     * * * D%a(*)$/ * * *r    )err_msg)pytestxfailmaxrange	enumerateaddr[   rX   rB   sortedrG   r   filterDeprecationWarningr   )rS   pyfunccyfuncspecializationsknownfailure
max_paramsvaluesrD   r^   vseenvv	signaturecy_spec_funcrF   ptsuppyvalcyvalr`   s                      @r   test_cython_apir{   7  s|   49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   rc   	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
betaincinv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	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parametrizer{   r   r   r   <module>r     s   " " " " " " "              < < < < < < < <       ( ( ( ( ( ( Um
&&&JJ77;q+I+I+IJJJ 
								
 
  
								
 
tH[.$gt4tH\>.
DAtH ]N0*dCtH \>&=	tH
 ]N(.$?tH ]N(.$?tH ^^*Hd;tH ^^*Hd;tH [.$fd3tH \>&5tH [.$fd3tH \>&5tH 2HdCtH \>&6tH _n,h=tH  2HdC!tH" ^^*GT:#tH$ ]N('48%tH& ^^*GT:'tH( ~.>)tH* ]N((D9+tH, ^^*Hd;-tH. _n,h=/tH0 _n,h=1tH2 \>&53tH4 ]N('485tH6 ^^*GT:7tH8 ^^*GT:9tH: _n,gt<;tH< ^^*Hd;=tH> 0(DA?tH@ 0(DAAtHB ~.$?CtHD ]N(&$7EtHF ]N(&$7GtHH ]N(&$7ItHJ ]N(*d;KtHL ^^*FD9MtHN 0'4@OtHP ^^2GTBQtHR 0'4@StHT ~.=UtHV ^^*FD9WtHX _n,lDAYtHZ _n,ndC[tH\ _n,ndC]tH^ _n,ndC_tH` _n,.>EatHb \>&5ctHd [.$j$7etHf \>&
D9gtHh ]N(*d;itHj \>&
D9ktHl ^^*FD9mtHn _n,fd;otHp .46H$OqtHr .46H&(stHv .46H&(wtHz .46H&({tH~ n<>S&(tHB ~>@U&(CtHF >6FGtHH ~>NItHJ .46N&(KtHN N8:L&(OtHR N8:LdSStHT ^:<NPTUUtHV ^:<N&(WtHZ ^:<T&([tH^ ~>@RTXY_tH` \>&
D9atHb ]N(&$7ctHd \>&5etHf \>&
D9gtHh ]N(/4@itHj ]N(*d;ktHl \>&d;mtHn ^^*FD9otHp \>&$7qtHr ]N((D9stHt ]N((D9utHv ~.$?wtHx _n4j$GytHz ]N(*d;{tH| ~.>}tH~ 0'4@tH@ >6FAtHB .4gtDCtHD _n,fd;EtHF ~.=GtHH \>&$7ItHJ ]N((D9KtHL ^^*Hd;MtHN ^^*Hd;OtHP ^^*Hd;QtHR _n,gt<StHT ~.>UtHV _n,gt<WtHX ~.>YtHZ ]N('48[tH\ ^^*L$?]tH^ ^^*NDA_tH` ^^*,<dCatHb ^^*Hd;ctHd Z"FD1etHf [.$fd3gtHh Z"FD1itHj [.$fd3ktHl 2GTBmtHn >6FotHp _n4fdCqtHr _n4fdCstHt 2FDAutHv ^^2FDAwtHx ^^2FDAytHz ^^2FDA{tH| >6E}tH~ 0&$?tH@ Z"L$7AtHB [.$lD9CtHD Z"FD1EtHF Z"FD1GtHH Z"L$7ItHJ [.$lD9KtHL Z"FD1MtHN [.$fd3OtHP Z"FD1QtHR [.$fd3StHT [.$fd3UtHV \>&5WtHX ^^2FDAYtHZ [.$fd3[tH\ \>&5]tH^ ^^*GT:_tH` Z"L$7atHb _n,fd;ctHd 2FDAetHf Z"L$7gtHh [.$lD9itHj ]N(*d;ktHl 0/4HmtHn ~.
DAotHp 0&$?qtHr ~.=stHt ]N(/4@utHv \>&$7wtHx 0'4@ytHz 0'4@{tH| .<hM}tH~ nDhPTUtH@ nDhPTUAtHB nDhPTUCtHD nDhPTUEtHF .<hMGtHH .<fdKItHJ .<fdKKtHL 0'4@MtHN ]N(.$?OtHP ^^*NDAQtHR ^^*NDAStHT _n,h=UtHV _n,h=WtHX ^^*It<YtHZ _n,i>[tH\ 2ItD]tH^ 2ItD_tH` 0)TBatHb ^^*Hd;ctHd 0(DAetHf 0(DAgtHh ~.$?itHj \>&
D9ktHl ]N(&$7mtHn ~.$?otHp ~.$?qtHr ~6	4HstHt .<j$OutHv ^^*Hd;wtHx ~6	=QytHz .<j-X{tH| ~6	=Q}tH~ .<j-XtH@ \>.>AtHB \>.>CtHD \>.>EtHF \>&d;GtHH ]N(,=ItHJ ]N(,=KtHL ^^*GT:MtHN \>&6OtHP ]N('48QtHR ~6	4HStHT .<j$OUtHV ^^*Hd;WtHX ~6	=QYtHZ .<j-X[tH\ ~6	=Q]tH^ .<j-X_tH` >6FatHb [.$j$7ctHd ^^*Hd;etHf ~.>gtHh ^^*J=itHj ]N(&$7ktHl >68RTXYmtHn >68RTXYotHp >68RTXYqtHr >68RTXYstHt ^^2JEutHv \>.
DAwtHx ]N(&$7ytHz _n,lDA{tH| ~.dC}tH~ ^^*J=tH@ ~.0@$GAtHB ]N('48CtHD ~.>EtHF _n,gt<GtHH ^^*GT:ItHJ ]N(&$7KtHL _n,gt<MtHN N8(DIOtHP \>&5QtHR N8(DIStHT .4fdCUtHV _n,lDAWtHX ]N(,=YtHZ Z"FD1[tH\ Z"FD1]tH^ Z"L$7_tH` Z"L$7atHb [.$lD9ctHd ]N(&$7etHf _n,gt<gtH t t t tn &%f%%%  	B 	B 	B &c22(S (S 32(S (S (Sr   