
    e!hJ              
       3   U 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	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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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	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	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jf                  ddfe	jh                  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                  d%dfe	j                  ej                  ddfe	j                  ej                  ddfe	j                  ej                  ddfe	j                  ej                  d,dfe	j                  ej                  d-dfe	j                  ej                  ddfe	j                  ej                  d,d.fe	j                  ej                  d-d.fe	j                  ej                  d,d.fe	j                  ej                  d-d.fe	j                  ej                  ddfe	j                  ej                  ddfe	j                  ej                  ddfe	j                  ej                  ddfe	j                  ej                  ddfe	j                   ej                   ddfe	j                  ej                  d0d1fe	j                  ej                  d0d1fe	j                  ej                  d0d1fe	j                  ej                  d0d1fe	j
                  ej                  ddfe	j                  ej                  ddfe	j                  ej                  ddfe	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	j(                  ej(                  d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Z!e"e#eee#e$d3f   e$dz  f      e%d4<   e!D cg c]  }|d    jL                   c}Z'd5 Z(d6 Z)ejT                  jV                  ejT                  jY                  d7      ejT                  j[                  d8e!e'9      d:                      Z.yc c} w c c}w );    )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lDbzMPython version supports negative reals; Cython version doesn't - see gh-21629)llddr!   .PARAMSc                 L    t        d | D              }t        t        |       }|S )Nc              3   .   K   | ]  }t         |     y wN)TEST_POINTS).0xs     o/var/www/html/diagnosisapp-backend/venv/lib/python3.12/site-packages/scipy/special/tests/test_cython_special.py	<genexpr>z(_generate_test_points.<locals>.<genexpr>/  s     3AQ3s   )tuplelistr   )	typecodesaxesptss      r6   _generate_test_pointsr=   .  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
startswithr/   RuntimeError)namefuncr@   cyfuns       r6   test_cython_api_completenessrI   4  sn    N# B~t,D>$//#"6"( B5!QD=B #dV+?#@AAB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r2   )len)r4   specs     r6   r7   z"test_cython_api.<locals>.<genexpr>I  s     ;4SY;s   Fr
    )err_msg)pytestxfailmaxrangeset	enumerateaddrP   r8   sortedCYTHON_SIGNATURE_MAPr=   r   filterDeprecationWarningr   )rK   pyfunccyfuncspecializationsknownfailure
max_paramsr@   valuesr:   jvseenis_fused_codevvcode	signaturecy_spec_funcr<   ptsuppyvalcyvals                         r6   test_cython_apirq   @  s    5:1FFO\L) ;?;;J":./ce/F/$ 	i( 	DAq1IMM!	 5DGc&k)M&! 16!9:FQJa % S	 %.i$8* D%a( *$/ *	 * !%	"23LI!L $I. 	SB"$ *

-.$b)* E5RD)Ai[2QR	SS 0 ** *s   F:F FF(/  collections.abcr   rT   	itertoolsr   numpy.testingr   r   scipyr   scipy.specialr   bint_points
int_pointsreal_pointscomplexcomplex_pointsr\   r3   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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_tr/   r9   r8   str__annotations____name__IDSr=   rI   markthread_unsafe	fail_slowparametrizerq   )tupr5   s   00r6   <module>r     sT    $   <  ( Um
&+2;q+IJC'3-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,,h=/~H0 __n,,h=1~H2 \\>&&53~H4 ]]N(('485~H6 ^^^**GT:7~H8 ^^^**GT:9~H: __n,,gt<;~H< ^^^**Hd;=~H> 00(DA?~H@ 00(DAA~HB ~..$?C~HD ]]N((&$7E~HF ]]N((&$7G~HH ]]N((&$7I~HJ ]]N((*d;K~HL ^^^**FD9M~HN 00'4@O~HP ^^^22GTBQ~HR 00'4@S~HT ~..=U~HV ^^^**FD9W~HX __n,,lDAY~HZ __n,,ndC[~H\ __n,,ndC]~H^ __n,,ndC_~H` __n,,.>Ea~Hb \\>&&5c~Hd [[.$$j$7e~Hf \\>&&
D9g~Hh ]]N((*d;i~Hj \\>&&
D9k~Hl ^^^**FD9m~Hn __n,,fd;o~Hp .446H$Oq~Hr .446H&(s~Hv .446H&(w~Hz .446H&({~H~ n<<>S&(~HB ~>>@U&(C~HF >66FG~HH ~>>NI~HJ .446N&(K~HN N88:L&(O~HR N88:LdSS~HT ^::<NPTUU~HV ^::<N&(W~HZ ^::<T&([~H^ ~>>@R	_~Hb \\>&&
D9c~Hd ]]N((&$7e~Hf \\>&&5g~Hh \\>&&
D9i~Hj ]]N((/4@k~Hl ]]N((*d;m~Hn \\>&&d;o~Hp ^^^**FD9q~Hr \\>&&$7s~Ht ]]N(((D9u~Hv ]]N(((D9w~Hx ~..$?y~Hz __n44j$G{~H| ]]N((*d;}~H~ ~..>~H@ 00'4@A~HB >66FC~HD .44gtDE~HF __n,,fd;G~HH ~..=I~HJ \\>&&$7K~HL ]]N(((D9M~HN ^^^**Hd;O~HP ^^^**Hd;Q~HR ^^^**Hd;S~HT __n,,gt<U~HV ~..>W~HX __n,,gt<Y~HZ ~..>[~H\ ]]N(('48]~H^ ^^^**L$?_~H` ^^^**NDAa~Hb ^^^**,<dCc~Hd ^^^**Hd;e~Hf ZZ""FD1g~Hh [[.$$fd3i~Hj ZZ""FD1k~Hl [[.$$fd3m~Hn 22GTBo~Hp >66Fq~Hr __n44fdCs~Ht __n44fdCu~Hv 22FDAw~Hx ^^^22FDAy~Hz ^^^22FDA{~H| ^^^22FDA}~H~ >66E~H@ 00&$?A~HB ZZ""L$7C~HD [[.$$lD9E~HF ZZ""FD1G~HH ZZ""FD1I~HJ ZZ""L$7K~HL [[.$$lD9M~HN ZZ""FD1O~HP [[.$$fd3Q~HR ZZ""FD1S~HT [[.$$fd3U~HV [[.$$fd3W~HX \\>&&5Y~HZ ^^^22FDA[~H\ [[.$$fd3]~H^ \\>&&5_~H` ^^^**GT:a~Hb ZZ""L$7c~Hd __n,,fd;e~Hf 22FDAg~Hh ZZ""L$7i~Hj [[.$$lD9k~Hl ]]N((*d;m~Hn 00/4Ho~Hp ~..
DAq~Hr  @ @(DQs~Ht 00&$?u~Hv ~..=w~Hx ]]N((/4@y~Hz \\>&&$7{~H| 00'4@}~H~ 00'4@~H@ .<<hMA~HB nDDhPTUC~HD nDDhPTUE~HF nDDhPTUG~HH nDDhPTUI~HJ .<<hMK~HL .<<fdKM~HN .<<fdKO~HP 00'4@Q~HR ]]N((.$?S~HT ^^^**NDAU~HV ^^^**NDAW~HX __n,,h=Y~HZ __n,,h=[~H\ ^^^**It<]~H^ __n,,i>_~H` 22ItDa~Hb 22ItDc~Hd 00)TBe~Hf ^^^**Hd;g~Hh 00(DAi~Hj 00(DAk~Hl ~..$?m~Hn \\>&&
D9o~Hp ]]N((&$7q~Hr ~..$?s~Ht ~..$?u~Hv ~66	4Hw~Hx .<<j$Oy~Hz ^^^**Hd;{~H| ~66	=Q}~H~ .<<j~HB ~66	=QC~HD .<<jE~HH \\>..>I~HJ \\>..>K~HL \\>..>M~HN \\>&&d;O~HP ]]N((,=Q~HR ]]N((,=S~HT ^^^**GT:U~HV \\>&&6W~HX ]]N(('48Y~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 >66Fm~Hn [[.$$j$7o~Hp ^^^**Hd;q~Hr ~..>s~Ht ^^^**J=u~Hv ]]N((&$7w~Hx >668RTVy~H| >668RTV}~H@ >668RTVA~HD >668RTVE~HH ^^^22JEI~HJ \\>..
DAK~HL ]]N((&$7M~HN __n,,lDAO~HP ~..dCQ~HR ^^^**J=S~HT ~..0@$GU~HV ]]N(('48W~HX ~..>Y~HZ __n,,gt<[~H\ ^^^**GT:]~H^ ]]N((&$7_~H` __n,,gt<a~Hb N88(DIc~Hd \\>&&5e~Hf N88(DIg~Hh .44fdCi~Hj __n,,lDAk~Hl ]]N((,=m~Hn ZZ""FD1o~Hp ZZ""FD1q~Hr ZZ""L$7s~Ht ZZ""L$7u~Hv [[.$$lD9w~Hx ]]N((&$7y~Hz __n,,gt<{~HU8XuS#Xd
BCD ~B %%qt}}%	B r&c2(S 3  (Sm	 K| &s   Ag4e,Ag9