
    tKgJ              
      4   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 eed      D  cg c]  }  e|  	 c} 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j0                  ej2                  ddfej4                  ej4                  ddfej6                  ej6                  ddfej8                  ej8                  ddfej:                  ej:                  ddfej<                  ej<                  ddfej>                  ej>                  ddfej@                  ej@                  ddfejB                  ejB                  ddfejD                  ejD                  ddfejF                  ejF                  ddfejH                  ejH                  ddfejJ                  ejJ                  ddfejL                  ejL                  ddfejN                  ejN                  ddfejP                  ejP                  ddfejR                  ejR                  ddfejT                  ejT                  ddfejV                  ejV                  ddfejX                  ejX                  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jb                  ejb                  ddfejd                  ejd                  ddfejf                  ejf                  ddfejh                  ejh                  ddfejj                  ejj                  ddfejl                  ejl                  ddfejn                  ejn                  ddfejp                  ejp                  ddfejr                  ejr                  ddfejt                  ejt                  ddfejv                  ejv                  ddfejx                  ejx                  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(dfej0                  ej0                  ddfej2                  ej2                  ddfej4                  ej4                  d(dfej6                  ej6                  d(dfej8                  ej8                  ddfej:                  ej:                  ddfej<                  ej<                  ddfej>                  ej>                  ddfej@                  ej@                  ddfejB                  ejB                  ddfejD                  ejF                  ddfejH                  ejH                  ddfejJ                  ejJ                  ddfejL                  ejL                  ddfejN                  ejN                  d&dfejP                  ejP                  ddfejR                  ejR                  ddfejT                  ejT                  d(dfejV                  ejV                  d(dfejX                  ejX                  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jb                  ejb                  d+dfejd                  ejd                  d%dfejf                  ejf                  ddfejh                  ejh                  ddfejj                  ejj                  ddfejl                  ejn                  ddfejp                  ejr                  ddfejt                  ejv                  ddfejx                  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                  d0dfej                  ej                  d0dfej                  ej                  d&dfej                  ej                  ddfej                  ej                  ddfej                  ej                  ddfej                  ej                  d-dfej                  ej                  d.dfej                  ej                  ddfej                  ej                  d-d/fej                  ej                  d.d/fej                  ej                  d-d/fej                  ej                  d.d/fej                  ej                  ddfej                   ej                   ddfej                  ej                  ddfe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                  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"                  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j0                  ej0                  ddfej2                  ej2                  d+dfej4                  ej4                  ddfej6                  ej6                  d+dfej8                  ej8                  ddfej:                  ej:                  ddfej<                  ej<                  ddfej>                  ej>                  ddfej@                  ej@                  d&dfejB                  ejB                  d(dfejD                  ejD                  d(dfejF                  ejF                  ddfejH                  ejH                  ddfZ%d3e&d4<   e%D cg c]  }|d    jN                   c}Z(d5 Z)d6 Z*ejV                  jY                  d7      ejV                  j[                  d8e%e(9      d:               Z.yc c} w c c}w );    )annotations)CallableN)product)assert_allclosesuppress_warnings)special)cython_specialTF)i   
   )g      $g      g      ?g      $@   )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"   r(   )r   )lldr   )r"   )dddddzsee gh-6211)r   r   )r%   ldblDlDb)llddr"   z<list[tuple[Callable, Callable, tuple[str, ...], str | None]]PARAMSc                L    t        d | D              }t        t        |       }|S )Nc              3  .   K   | ]  }t         |     y wN)TEST_POINTS).0xs     k/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/scipy/special/tests/test_cython_special.py	<genexpr>z(_generate_test_points.<locals>.<genexpr>2  s     3AQs   )tuplelistr   )	typecodesaxesptss      r7   _generate_test_pointsr>   1  s%    333D
w~
CJ    c                     t        t              D ]S  } t        t        |       }t        |      s| j	                  d      r1t
        D ]  \  }}}}||u s F t        |  d       y )N_z missing from tests!)dirr	   getattrcallable
startswithr0   RuntimeError)namefuncrA   cyfuns       r7   test_cython_api_completenessrJ   7  s`    N#~t,D>$//#"6"(5!QD= #) #dV+?#@AA $r?      param)idsc                <   | \  }}}}|rt        j                  |       t        d |D              }t        |      D cg c]  }t	                }}|D ])  }t        |      D ]  \  }	}
||	   j                  |
        + t	               }dgt        |      z  }t        |      D ]@  \  }	}
t        t        |
            }||v rt        |
      dkD  ||	<   |j                  |       B |D ]  }t        |      D 	cg c]  \  }	}||	   r	t        |    }}	}|r|t        |         }nd }|}t        |      }|D ]J  }t               5 }|j                  t                || } || }d d d        t        | d| d|        L  y c c}w c c}}	w # 1 sw Y   /xY w)N)reasonc              3  2   K   | ]  }t        |        y wr3   )len)r5   specs     r7   r8   z"test_cython_api.<locals>.<genexpr>K  s     ;?4SY?s   Fr    )err_msg)pytestxfailmaxrangeset	enumerateaddrQ   r9   sortedCYTHON_SIGNATURE_MAPr>   r   filterDeprecationWarningr   )rL   pyfunccyfuncspecializationsknownfailure
max_paramsrA   valuesr;   jvseenis_fused_codevvcode	signaturecy_spec_funcr=   ptsuppyvalcyvals                         r7   test_cython_apirr   C  s    5:1FFO\L) ;?;;J":./.ce.F/$	i(DAq1IMM! ) % 5DGc&k)M&!16!9:FQJa " %	 %.i$8*$8D%a( *$/$8 	 * !%	"23LI!L $I.B"$

-.$b) % E5RD)Ai[2QR  % 0 * %$s   F:F FF(/  
__future__r   typingr   rU   	itertoolsr   numpy.testingr   r   scipyr   scipy.specialr	   bint_points
int_pointsreal_pointscomplexcomplex_pointsr]   r4   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_tr0   __annotations____name__IDSr>   rJ   mark	fail_slowparametrizerr   )tupr6   s   00r7   <module>r     so    "    <  ( Um
&+2;q+IJ+IC'3-+IJ 
								
  
								
@H[[.$$gt4@H\\>..
DA@H ]]N00*dC@H \\>&&=	@H
 ]]N((.$?@H ]]N((.$?@H ^^^**Hd;@H ^^^**Hd;@H [[.$$fd3@H \\>&&5@H [[.$$fd3@H \\>&&5@H 22HdC@H \\>&&6@H __n,,h=@H  ~..$?!@H" 22HdC#@H$ .4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0(DAC@HD 0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0'4@S@HT ^^^22GTBU@HV 0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 .446H$Ou@Hv .446H&(w@Hz .446H&({@H~ .446H&(@HB n<<>S&(C@HF ~>>@U&(G@HJ >66FK@HL ~>>NM@HN .446N&(O@HR N88:L&(S@HV N8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44j$G@H@ ]]N((*d;A@HB ~..>C@HD 00'4@E@HF >66FG@HH .4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 ZZ""FD1k@Hl [[.$$fd3m@Hn ZZ""FD1o@Hp [[.$$fd3q@Hr 22GTBs@Ht >66Fu@Hv __n44fdCw@Hx __n44fdCy@Hz 22FDA{@H| ^^^22FDA}@H~ ^^^22FDA@H@ ^^^22FDAA@HB >66EC@HD 00&$?E@HF ZZ""L$7G@HH [[.$$lD9I@HJ ZZ""FD1K@HL ZZ""FD1M@HN ZZ""L$7O@HP [[.$$lD9Q@HR ZZ""FD1S@HT [[.$$fd3U@HV ZZ""FD1W@HX [[.$$fd3Y@HZ [[.$$fd3[@H\ \\>&&5]@H^ ^^^22FDA_@H` [[.$$fd3a@Hb \\>&&5c@Hd ^^^**GT:e@Hf ZZ""L$7g@Hh __n,,fd;i@Hj 22FDAk@Hl ZZ""L$7m@Hn [[.$$lD9o@Hp ]]N((*d;q@Hr 00/4Hs@Ht ~..
DAu@Hv  @ @(DQw@Hx 00&$?y@Hz ~..={@H| ]]N((/4@}@H~ \\>&&$7@H@ 00'4@A@HB 00'4@C@HD .<<hME@HF nDDhPTUG@HH nDDhPTUI@HJ nDDhPTUK@HL nDDhPTUM@HN .<<hMO@HP .<<fdKQ@HR .<<fdKS@HT 0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 22ItDe@Hf 22ItDg@Hh 00)TBi@Hj ^^^**Hd;k@Hl 00(DAm@Hn 00(DAo@Hp ~..$?q@Hr \\>&&
D9s@Ht ]]N((&$7u@Hv ~..$?w@Hx ~..$?y@Hz ~66	4H{@H| .<<j$O}@H~ ^^^**Hd;@H@ ~66	=QA@HB .<<jC@HF ~6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6	4H_@H` .<<j$Oa@Hb ^^^**Hd;c@Hd ~66	=Qe@Hf .<<jg@Hj ~66	=Qk@Hl .<<jm@Hp >66Fq@Hr [[.$$j$7s@Ht ^^^**Hd;u@Hv ~..>w@Hx ^^^**J=y@Hz ]]N((&$7{@H| >668R	}@H@ >668R	A@HD >668R	E@HH >668R	I@HL ^^^2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8(DIg@Hh \\>&&5i@Hj N88(DIk@Hl .44fdCm@Hn __n,,lDAo@Hp ]]N((,=q@Hr ZZ""FD1s@Ht ZZ""FD1u@Hv ZZ""L$7w@Hx ZZ""L$7y@Hz [[.$$lD9{@H| ]]N((&$7}@H~ __n,,gt<@HD @F %%fqt}}f%	B q&c2(S 3 (So	 K@	 &s   AhfAh	