a
    <bz                    @   s  d dl Z d dlZd dlT dd Zdd Zdd Zd	d
 Zdd Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& Zd'd( Zd)d* Zd+d, Zd-d. Zd/d0 Zd1d2 Zd3d4 Zd5d6 Zd7d8 Zd9d: Zd;d< Zd=d> Z d?d@ Z!dAdB Z"dCdD Z#dEdF Z$dGdH Z%dIdJ Z&dKdL Z'dMdN Z(dOdP Z)dQdR Z*dSdT Z+dUdV Z,dWdX Z-dYdZ Z.d[d\ Z/d]Z0d]Z1g d^g d_g d`g dag dbg dcg ddg deg dfg dgg dhg dig djg dkg dlgZ2g dmg dng dog dpg dqg drg dsg dtg dug dvg dwg dxg dyg dzg d{gZ3g d|g d}g d~g dg dg dg dg dg dg dg dg dg dg dg dgZ4g d}g dg dg dg dg dg dg dg dg dg dg dg dg dg dgZ5ej6j7dd Z8dS )    N)*c                  C   s  dt _tddsJ ttds*J tdds<J tddsNJ tdd	s`J ttd
srJ tddsJ tddsJ tdddsJ tdddsJ tdtdsJ tdddsJ tdddsJ tdddsJ tddds&J tddds<J tdddsRJ tddd shJ tdd!d" d#sJ td$d%d%ksJ td&d%t ksJ td'd%t ksJ td%d%t ksJ td(d%t ksJ td)d%tksJ td*d%tksJ td+d%tks*J td,d%t ks@J td*d%tksTJ td-d%t ksjJ tdd%tks~J td&d%t ksJ tdd%t ksJ td'd%t ksJ tdd%t ksJ td.d%t ksJ tdd%t ksJ td%d&d/sJ tdd&d0s.J td*d&d1sDJ td2d&d3sZJ td%dd4spJ td%t	d5sJ tdd!d" d6sJ t
d%d%dksJ t
dd%d%ksJ t
dd%d%ksJ t
d*d%d%ksJ t
d-d%d%ksJ t
d%d&d7sJ t
dd&d8s0J t
d*d&d8sFJ t
d2d&d9s\J t
d%dd:srJ t
d%t	td%dsJ t
dd!td;d<  d=sJ td%d%tksJ tdd%tksJ tdd%tksJ td*d%tks J td-d%tksJ td%d&d>s*J tdd&d?s@J td*d&d?sVJ td2d&d@slJ td%ddAsJ td%t	dBsJ tdd!td;dC  dDsJ td;dEd;D ]"} | t _t
dFdGdHsJ qd S )IN      g|?g.xӿ  g<{Ya?igܝ?gl)?gfE#7?g܋]s?g?z?   gv~H=^0?y      @        gcQC??gHqgt?g3e?   g)_6gg?   y      @       @y	.?Ks?      ?   g<|H׿y      ?       @      @      @yqČn?/G_m    d(	 順 g\zr?      r         ?      ?gٿg333333gffffffg      @grܿgķ&gķ&?      @g[ay^Fk@ĀE!y&q'ѿ-l8KA?gh?g Ȓ#?gVW?g-rPF?y&5#Ȁ#.
   l- gg2@gMה?gbgȀ?gۊv~i@y}.v}^ME%?yhRv俾D;l   8 g
;?d   g     V@g&S8@z}4.00830632138673963619656140653537080438462342928377020695738635559218797348548092636896796324190271316137982810144874264e-41)mpdpsZj0aepiZj1ZbesseljZbesselyinfjZbesselimpfbesselkrange)n r#   l/Users/vegardjervell/Documents/master/model/venv/lib/python3.9/site-packages/mpmath/tests/test_functions2.pytest_bessel   s    ""r%   c                   C   s   dt _tdddsJ tddds.J tdddsBJ td	dd
sVJ tdddsjJ tddddsJ tdddsJ tdddsJ tdddsJ td	ddsJ tdddsJ tddddsJ d S )Nr   r   r   @.=@r   O@2   gE`ߚc@r   ast,@r   r
   g!3|"@Go@Ը.?iQX@g{ƶVc@|B(@g^8U)zj@Z@)r   r   besseljzeror   besselyzeror#   r#   r#   r$   test_bessel_zerosP   s    r1   c                   C   s   dt _tdddsJ tddds.J tdddsBJ td	dd
sVJ td	ddsjJ tddds~J tdddsJ tdddsJ td	ddsJ td	ddsJ d S )Nr   r   r   y4?L?rܿr   ypH?ķ&r   ypHϿķ&?r   y98y?fh!+r   yXN*5]{?&=ny4?L?r?ypH?ķ&?ypHϿķ&y98y?fh!+@y"'*-@Ay)r   r   Zhankel1r   Zhankel2r#   r#   r#   r$   test_hankel_   s    r2   c                   C   sZ   dt _tdddsJ tddds.J tdddsBJ tdddsVJ d S )	Nr   r   r
   gb	h?      gVi?g߳g?gg]>?)r   r   Zstruvehr   Zstruvelr#   r#   r#   r$   test_struvel   s
    r4   c                   C   s6   dt _tddddsJ tdddds2J d S )Nr   r   r
   r   g/GzH@g$+9,@)r   r   Zwhitmr   Zwhitwr#   r#   r#   r$   test_whittakers   s    r5   c                   C   s   dt _tdddsJ tddds.J tdddsBJ tddd	sVJ tddd
sjJ tddds~J tdddsJ tdddsJ tdddsJ tdddsJ tdddsJ d S )Nr   r   r
   g`'?r   gSҿr   gHtá굿g+
UAg_xu¿g=V o?guӿr   gkN:gF0آ?g|[)`?gݣ?)r   r   Zberr   ZbeiZkerZkeir#   r#   r#   r$   test_kelvinx   s    r6   c                  C   s  dt _tdddksJ tddddks,J tdddddksBJ tdddddksXJ tddddddkspJ tdddddddksJ tg g ddksJ tg g d	t
dsJ tdgg d	dksJ td
ddtdd 	dsJ tdddtdd 	dsJ tddddt d 	ds2J dt _tdd} tddt dgddtd gtdd td  	| s~J dt _d S )Nr   r   r   r   r
   r   r   r   r   r   r
   r   r
   r             g?)r   r   r   r   r
   r   P   Q   g?)r   r   r
   r   y0[Ǒ=?u)"?   z1.2282306665029814734863026z-0.1225033830118305184672133   )r   r   hyp0f1hyp1f1hyp1f2hyp2f1hyp2f2hyp2f3hyperr   expr   r   mpcvr#   r#   r$   test_hyper_misc   s"     ""
<rO   c                  C   sz  dt _tdtd sJ tdtdd dtt  sBJ tdtksRJ tdtksbJ td	d
stJ tddsJ ttdt	sJ tt
dt	sJ tddsJ dt _tdd
 } tdd
 }dt _t| dsJ t|tddsJ t
| ds J t
|}|jds:J |jd dsPJ tdtd
dsjJ tdtddsJ tdtdd sJ td!tdd"sJ td#td$d%sJ td&td$d'sJ tttsJ tt
tsJ ttdks"J tttts6J tt dksJJ tdtks\J t
dtd stJ t
dtt	d(d  tdd  tdd d)tt   sJ t
ddksJ t
ddksJ t
ttdtksJ t
t tksJ t
dd*sJ t
d!d+s0J t
d#d,sDJ t
d&d-sXJ t
dd.slJ t
d/td sJ td/td sJ t
t d0sJ dt _tdt d1sJ t
dt d2sJ td3t d4s J t
d3t d5sJ tt}|jd6s2J |jd7sDJ t
t}|jd8s^J |jd9spJ dt _d S ):Nr   r   r   r   r   r   r         ?        r   z1.3110287771460599052r   z1.1714200841467698589z0.47103424540873331679   i r   i z7.1427724505817781901z7.1427417367963090109z-1.5707923998261688019z1.0000332138990829170z0.999966786328145474069137@B z7.853952181727432z-1.3110287771460599052r(   z0.22326753950210985451z-0.47434723226254522087r   z0.91119556380496500866z0.63133428324134524388y      @      z-0.63133428324134524388y            @z0.95357894880405122483z0.23093044503746114444            z-0.23093044503746114444r
   rC   y*0+?{ >y*0+?{ >?y$9@39Zy$9@39Z?`C+?`C+?z1e-1000000000g@z81.724756270009501831744438120951614673874904182624739673z81.437129808135123030101542922290970050337425479058225712z90.5519067523886233967683646782286965823151896970015484512z85.926192483740483797854383268707108012328213431657645509z80.973089521698042334840454592642137667227167622330325225z9-1.156151296372835303836814390793087600271609993858798016z90.4632848917264710404078033487934663562998345622611263332z91.0637961621753130852473300451583414489944099504180510966)r   r   Zellipkr   r   gammasqrtr   
isinstancer   ZellipefractionrL   realimagisnannan)Zn1Zn2rN   r#   r#   r$   test_elliptic_integrals   st    &Dr_   c                  C   sR  dt _t
 } ttdt  }t| ds.J t| ds@J t| dsRJ t	| dsdJ t
| dsvJ t| dsJ t| d	sJ t| d
sJ t| dsJ t| dsJ t|dsJ t|dsJ t|dsJ t	|dsJ t
|ds0J t|dsDJ t|d ds\J t|d dstJ t|dsJ t|dsJ tddksJ tdt ksJ tttksJ ttdtsJ tttd s J tt t d sJ t	tdks.J t	dt ksBJ ttdtsVJ ttdkshJ tttkszJ tt dksJ tt dksJ ttdksJ ttdksJ tt dksJ tt dksJ t
ddks J t
ttksJ t
t t ks(J tdt ks<J tttksNJ d S )Nr   r
   gQal @g	5gR?gc"?g<b?gsu@gU<b@gosf?gl?g8?g!@y?9q@Z:W^@yrʀK@p,?yoO@'<?yҭo*?@Voy6ʺ?_$&P@yH?UPNl@yذ~?	D'?y -l<p/?5?y$67]yb^IcG @r           r   ffffff?r   gffffffr   r   )r   r   erX   r   eir   lisicishichiZfresnelsZfresnelcairyaiairybir   rY   r   r   )xzr#   r#   r$   test_exp_integrals   sZ    rm   c                  C   s  dt _tdt ksJ tttks(J tt dks:J tddsLJ dt _td} d}t| |ksnJ td	} d
}t| |ksJ tddt  } d}d}t| j|krt| j|ksJ dt _t	ddsJ t
ddsJ dt _tddsJ tddsJ ttdtdd}|jjdddt dsHJ |jtsZJ tddsnJ tddsJ ttdtdd}|jjdddt dsJ |jt sJ td d!sJ td"}|jjd#ddt dsJ |jd$sJ d S )%Nr   r   g       y      4@     Q@y;;IWA2,wDr(   i N  z93.8781962825045010930273870085501819470698476975019e+8681i8z8-6.8852261063076355977108174824557929738368086933303e-90r   z9-3.255138234032069402493850638874410725961401274106e+8681z:-2.1081929993474403520785942429469187647767369645423e+8681y    .      Y@z>1.3077239389562548386e+434288 + 7.6808956999707408158e+434287jz?-1.3077239389562548386e+434288 - 7.6808956999707408158e+434287j              $@y$=KFvhI	@              Y@yt9u9m	@      Fx:^V Texactgn xrC   Zabs_epsZrel_eps             $y$=KFvhI	             Yyt9u9m	   Fx:^V y      $@      $@yl	L,N{@y      $      $@gC_d>gJM!	@)r   r   rc   r   r   strr   r[   r\   rh   rg   fmulepsr   )rsZsresimur#   r#   r$   test_ei  sD     r~   c                   C   s   dt _tdtksJ ttdks&J tt tt t ksBJ tddsTJ tddsfJ ttdtdd	jd
ddt	 dsJ tddsJ tddsJ ttdtdd	jdddt	 dsJ d S )Nr   r   rn   y$=KF?v0Oi?ro   yt9u?Wrp   Trq   yn x;	»rC   rs   rt   y$=KF?v0Oiru   yt9u?W?rv   yn x;	;)
r   r   e1r   rL   r   r   rx   r   ry   r#   r#   r#   r$   test_e1.  s    &r   c                   C   s  dt _tddtksJ tdddt s0J tdddtd d sPJ tddtd sjJ tddds~J tdddsJ td	dd
sJ tdddtt sJ tdddksJ tddt sJ tdddsJ tdddsJ tdd	t	 ds.J tdddsDJ tdddsZJ tdddtd td sJ tddd dsJ tdtdksJ tdtdksJ tdtdksJ tdd d!sJ tddd"sJ tddtd t
t	  s&J tdd#d$s<J td%dd&sRJ tddd'shJ tddd(s~J td)dtksJ d S )*Nr   r   r   r   r   r
   r   r   r   UUUUUU?r            @gqq?gW   @gH?       @      @yt|*8c??A`?z1.011e-1000g3X@z1.000000000001r   gɫ|?r   r      r   gA8?g	@y	@       @y              @y&
J`e? ǅ?yJmx-DT!	rS   g/ư>y>ʞư禜?y*oBu|?      )r   r   expintr   r   rb   rK   rc   rX   r   r   r#   r#   r#   r$   test_expint:  s:     &$r   c                  C   s@  dt _ttdd ds J ttdd ds:J tddsLJ tdds^J td	d
 td sxJ td	d
 d	d
  dsJ tdtd ksJ tdtdtt  sJ dt _t ddsJ t ddsJ t ddsJ t dds$J t dds:J t ddsPJ t ddsfJ t dds|J t d d!sJ t d"d#sJ t dd$sJ t dd%sJ t dd&sJ t dd's J t dd(sJ t dd)s,J t dd*sBJ t dd+sXJ t d d,snJ t d"d-sJ t d.d/sJ t d0d1sJ t d2d3sJ t d4d5sJ t d6d7sJ t d8d9sJ t d:d;sJ t d<d=s4J t d>d?sJJ t d@dAs`J t 	d.dBsvJ t 	d0dCsJ t 	d2dDsJ t 	d4dEsJ t 	d6dFsJ t 	d8dGsJ t 	d:dHsJ t 	d<d=sJ t 	d>d?s&J t 	d@dIs<J dOdKdL} t
t
jdMks\J | t
t
jt
jdN szJ | t
t
jt
jd sJ | t
t
jt
j d sJ t
dMdMksJ | t
ddsJ | t
ddsJ | t
ddsJ | t
dds$J | t
dds:J | t
ddsPJ | t
ddsfJ | t
dds|J | t
d d!sJ | t
d"d#sJ | t
dd$sJ | t
dd%sJ | t
dd&sJ | t
dd's J | t
dd(sJ | t
dd)s,J | t
dd*sBJ | t
dd+sXJ | t
d d,snJ | t
d"d-sJ | t
d.d/sJ | t
d0d1sJ | t
d2d3sJ | t
d4d5sJ | t
d6d7sJ | t
d8d9sJ | t
d:d;sJ | t
d<d=s4J | t
d>d?sJJ | t
d@dAs`J | t
	d.dBsvJ | t
	d0dCsJ | t
	d2dDsJ | t
	d4dEsJ | t
	d6dFsJ | t
	d8dGsJ | t
	d:dHsJ | t
	d<d=sJ | t
	d>d?s&J | t
	d@dIs<J d S )PNrR   r   rS   z&0.000000999999999999944444444444446111z -13.2382948930629912435014366276r   z$1.5707963267075846569685111517747537z$-4.87506025174822653785729773959e-11r   r   r   z!-0.372376123661276688262086695553r   r
   r   r(   gdswy      I@       @yRװђA?y              4@yJmhA(-DT!?y             4@y*mbN9<gAy      I       @yRװђ172@rQ   ydsw-DT!	@y      I       yRװђ172y             4y*mbN9<gy             4yJmhA(-DT!y      I@       yRװђAgcll?y$ȥU??ty        JmhAy	g*mbNy$ȥU?tgclly$ȥU?t?y	g*mbNAy       Jmhy$ȥU??t?              I@ydsw-DT!?y             I@yRװђx^%B?r   yJmhA(-DT!	@y      4       y*mbNngAy             IyRװђx^%By             Iydsw-DT!y       @      IyRװђI)y      4@       y*mbN	gr   gJmhAy       @      I@yRװђI)?y        cll?y?t?$ȥU?gJmhy*mbNA	gy?t?$ȥUy       clly?t$ȥUy?t$ȥU?-q=c                 S   s   t | | t || kS )N)abs)rk   yZtolr#   r#   r$   r     s    ztest_trig_integrals.<locals>.aer                 ?)r   )r   r   re   r   r   rf   r   r   rh   rg   fpr   Zninf)r   r#   r#   r$   test_trig_integralsZ  s    
 r   c                   C   s   dt _tdd dsJ tdd ds2J tddd  d	sLJ tddd
  dsfJ tddsxJ tddsJ tddd  dsJ tddd  dsJ d S )Nr   r   r   gٿ?i ʚ;gL9)?r   i#  g՘T&"@i#  g!#^6@ig4+Y?gP      Y@      Y@   ya0G@N_;@   yݖƻV?i"	)r   r   ri   r   rj   r#   r#   r#   r$   	test_airy  s    r   c                  C   s   dt _d} tg dgd| s"J tg dgd| s:J tdd| sNJ tdd| sbJ tdddsvJ tdd	d
sJ d S )Nr   gj	ך9G!@r7   r   r   r
   g    eAz4.9679055380347771271e+27455y            eAz=-2.1222788784457702157e+19410 + 5.0840597555401854116e+19410j)r   r   rJ   r   rD   rM   r#   r#   r$   test_hyper_0f1  s    r   c                  C   s  dt _d} tdgdgd| s$J tdgdgd| s>J tdgdgd| sXJ tdgdgd| srJ tdgdgd| sJ tdgdgd| sJ tdgd	gd| sJ td
gdgd| sJ td
gd	gd| sJ tddd| sJ tddd| s$J tdddds<J tdddd dsXJ tddddspJ tdtddddsJ d S )Nr   g[V?r=   rA   ra   yffffff?        r   r         ?              ?        r   r
   g    _Bz!2.1555012157015796988e+4342944809y            _Br   y!xL3\F#r   r   '  iar   y(\?KoQyTO9@#y/@)r   r   rJ   r   rE   rZ   rM   r#   r#   r$   test_hyper_1f1  s"    r   c                  C   s  dt _d} tddgdgd| s&J tddgdgd| sBJ tddgd	gd| s^J tddgd	gd
| szJ tddgd	gd
| sJ tddgd	gd| sJ tddgdgd| sJ tddgdgd
| sJ d} tddt gdgd| sJ tddt gd	gd| s2J tddt gd	gd| sTJ tddt gdgd| svJ d} tddgdgdtd  | sJ tddgdgdtd  | sJ tddgdgdtd  | sJ tddgdgdtd  | sJ d} tddgdgd| s4J tddgdgd| sRJ tddgdgd| spJ d } tddgdgd!| sJ tddgdgd!| sJ tddgdgd!| sJ d S )"Nr   g[$?r=   r>   r   333333?      ?r   g       @y333333?        r          @        y      ?        yO@z?r(,?y?      rA   r   r   皙?r
   r               @        r                 y+xV?;CF )r   r   r
   r   )r   r   g?y?        y}?F"?y      @       @)r   r   rJ   r   r   rM   r#   r#   r$   test_hyper_2f1  s8    """"&&&&r   c                  C   s:  dt _tdddddsJ tddddddds:J tdd	d	dd
sRJ tdd	d	ddddsnJ tdd	dddksJ tddd	dtksJ tdddddksJ tdddddksJ tdddddksJ tdddddksJ ttdddds
J tddddds$J tddddddddt  sJJ tdddddsdJ tdddddddsJ tdd	dddksJ tddddtksJ td	d	dddksJ tdd	dddsJ tdd dddksJ tdddddksJ tdddddks,J tdddddddksHJ tddddtks`J tdd ddtksxJ td!d"d#ddksJ td!dd	dd$sJ tdd"d#dtksJ tdd%d#dt ksJ ttt d } t	ddd ttt d&  t	ddd  }td'd(d)| |s2J td'd(d)| 
 |
 sTJ tdd*dd+d,snJ tdd*dd-d.sJ tdd*ddd/sJ tdd*dtd0sJ tddd1d2d3sJ td4d"dd2d5sJ tddd1d6d7s
J td8d9 tddD d:s.J td;d9 tddD d<sRJ td=d9 tddD d>svJ tdd?d@dAdBsJ tddddCdDsJ tddddEdFsJ tddddGdHsJ tdddddIsJ tdddddJsJ tdKdLdMdNjdOdtdP dQs6J d S )RNr   r   r   r
      T)Zeliminate_allr   r   "   r      r   r   r   y      ?      ?y??F)Z	eliminateg     `?g     @?gx&?r   g%α?g]?r   r   r:   r	   g?gr   g      gr      z1/2z1/61/3r7   z0.999gQՂ?z1.001yH?1-.MVgN~?yɸa?>eV?r   z0.99gv;@rA   gV?r   yN?Q{?c              
   S   s&   g | ]}t d dddtt|  qS )r   r   r8   r   r   ffffff?rG   rK   r   .0kr#   r#   r$   
<listcomp>4      z'test_hyper_2f1_hard.<locals>.<listcomp>ylJ@ۢ%@c              
   S   s&   g | ]}t d dddtt|  qS )r   r8   r   g?r   r   r#   r#   r$   r   5  r   yIK@K@J> c              	   S   s"   g | ]}t d ddtt| qS )r   r8   r   r   r   r#   r#   r$   r   6  r   ygObK@v7?r   g      
g+?gSOfEg)\(?yR=@n>jGy)\(??yQ@1~?r   y[N?Sr?yzѿ-DT!g3A?p   )3   r   )r   gwJgUUj   rs   )r   r   rG   r   r   r]   r   rK   r   Znthroot	conjugatefsumr!   ry   )rl   wr#   r#   r$   test_hyper_2f1_hard  sf    &,"$$$r   c                   C   s2  t g dddgddsJ t g dg ddds<J t g dd	d
gddsZJ t g dg dd
dsxJ t g dg dddsJ t g dg dddsJ t g dg dd
dsJ t g dg dd
dsJ t g dddgdtksJ t g dddgdds.J d S )N)r   r   r
   r   rC   r   gLEy?)r   r   r
   r   )r   r:   r   g_g?      ?r   r   g%<@y@CN?mr)r   r   r
   r   r   )r:   r   rC   	   g?g-?yFo?K:ZI)r   gRQ@gp=
ף@g{Gz@)g@gffffff@g333333@ys?+e)r   r   r   r   )e   r   g	Y@)rJ   r   r   r#   r#   r#   r$   test_hyper_3f2_etcB  s    r   c                   C   s`  dt _tddddsJ tdddds2J tddddksFJ td	d
ddksZJ td	ddtksnJ td	dddksJ tddddsJ tddddsJ tddddsJ tddddksJ tddddksJ tddddtd sJ tddtds$J tddd d! d"s@J td#d$d%d& d's\J d S )(Nr   r   r   r   g?      g[R֯?r   r   r   ir   r   r
   gDo7>#?r   gQ2=?r   gMb?      ?   r   y      ?      ?y            ?r   g      @   r:   g?rA   rC   y      Y@      i@r   yiMؿcf)r   r   r   xr   y       yk9)r   r   Zhyperur   r   rX   r   r#   r#   r#   r$   test_hyper_uP  s      r   c                  C   s`  dt _tddgg dtdddks&J tdddds<J tddddksPJ tddddksdJ tddddszJ td	dd
dsJ td	dddsJ td	dddsJ tddddsJ tddddsJ tddddsJ tddddddksJ tddddddks2J dD ]$} | t _td
ddd s6J q6d S )!Nr   r   r   r
   r   yehǇ?[2222~r   r   r	   r   g     @O@r(   i)g-C6?gd?r   r   gMbP?g\1 ?r   y)`?0?)r   r:   r9   gWuJIgٍ=,?r   y      ?      ?   zeroprec)r   r(   r?   g;On?z1.006867007239309717945323585695344927904000945829843527398772456281301440034218290443367270629519483 + 1.238277162240704919639384945859073461954721356062919829456053965502443570466701567100438048602352623e-46j)r   r   rJ   Zhyp2f0r   )dr#   r#   r$   test_hyper_2f0f  s"     r   c                  C   s   dt _tdgddgdtddddks*J d\} }}t| ||ddsLJ t| ||d	d
sdJ t| ||dds|J t| ||ddsJ t| ||ddsJ t| ||ddsJ t| ||ddsJ t| ||ddsJ t| ||ddsJ t| ||dt ds,J t| ||d	t dsJJ t| ||dt dshJ t| ||dt dsJ t| ||dt dsJ t| ||dt dsJ t| ||dt dsJ t| ||dt d sJ t| ||dt d!sJ d S )"Nr   r   r   r
   r   )r   r   r8   r   r   gԢr@r   g߷Ar   guT>*Er   gcQr   ga&j۪xrS   z9.8851796978960318255e+867逖 z1.1505659189516303646e+2746 z1.4672005404314334081e+8685rp   z!3.6888217332150976493e+8685889636y9)0i#))Fym5,D>@pJs#AyUClsCy6X̝y1RLy(ҾD$hE{B"hz83.5999042951925965458e+613 + 1.5026014707128947992e+613jz;-8.3208715051623234801e+1939 - 3.6752883490851869429e+1941jz:2.0724195707891484454e+6140 - 1.3276619482724266387e+6141jzG-1.1734497974795488504e+6141851462 + 1.1498106965385471542e+6141851462j)r   r   rJ   rF   r   r   )a1b1b2r#   r#   r$   test_hyper_1f2|  s*    $
r   c                  C   sX  dt _tddgg ddtddddddks0J d	\} }}}}t| ||||d
dsZJ t| ||||ddsvJ t| ||||ddsJ t| ||||ddsJ t| ||||ddsJ t| ||||ddsJ t| ||||ddsJ t| ||||dds"J t| ||||d
t dsDJ t| ||||dt dsfJ t| ||||dt dsJ t| ||||dt dsJ t| ||||dt dsJ t| ||||dt d sJ t| ||||dt d!sJ t| ||||dt d"s2J t| ||||dt d#sTJ d S )$Nr   r   r   )r
   r   r   r:   r
   r   r   )r   r8   r   r   r   r   gJo!m`@r   gb3lKEr   g)&uLQr   g>dxrS   z2.0291718386574980641e865r   z7.7639836665710030977e2742r   z3.2537462584071268759e8681rp   z!1.2966030542911614163e+8685889627y*52x!1*r   y V2@(\;-@y.]9ʖC5:4 ly]!2̣!Z3Ly徰gKV7Wgz87.4859161049322370311e+610 - 2.8467477015940090189e+610jz;-1.7477645579418800826e+1938 - 1.7606522995808116405e+1938jz;-1.6932731942958401784e+6137 - 2.4521909113114629368e+6137jzG-2.0988815677627225449e+6141851451 + 5.7708223542739208681e+6141851452j)r   r   rJ   rI   r   r   )r   a2r   r   Zb3r#   r#   r$   test_hyper_2f3  s(    *""""""""r   c                  C   s   dt _tddgddgdtdddddks.J d\} }}}t| |||dd	sTJ t| |||d
dsnJ t| |||ddsJ t| |||ddsJ d S )Nr   r   r   r
   r   r   )r   r   r=   r   r   g(wVbAr   z1.2012553712966636711e+4358igirp   z+1.1148680024303263661e+43429448190325182840)r   r   rJ   rH   r   )r   r   r   r   r#   r#   r$   test_hyper_2f2  s    (r   c                   C   s   dt _tdddddsJ tddddd	ks4J td
ddddsLJ tdddddsdJ tddddds|J tdddksJ tdddsJ tdddksJ tdddksJ tdddksJ tdddksJ tdddksJ tdddksJ tdd
ds&J ttt ds>J tdddksRJ tdddksfJ tddtkszJ tddt ksJ td dt	ttksJ td!dt	t t ksJ t
dddd"sJ t
ddt dd#sJ d S )$Nr   r	   r   r
   ra   g¹ @r   r   g     %@r   g?r   gVj+\r   r   g{GzĿr   r   g     LA@r   r   iW r   gZb`B?rC   g   `{}@y@/#,?r:   r   r         @y      @      ?y      @      ?g      yUUUUUU?UUUUUU@)r   r   Zjacobir   legendrer   ZchebyuZchebytr   rL   Zlaguerrer#   r#   r#   r$   test_orthpoly  s0    r   c                   C   sl  dt _tdddsJ tddds.J tdddsBJ tdddksTJ tdddshJ tddds|J tddd	sJ tddd
sJ tdddsJ tdddsJ tdddksJ td	d	dsJ tdd	dsJ td
d	dsJ tdd	ds4J tdddsJJ tddds`J tdddsvJ tdddsJ tdddsJ tdddsJ td dd!sJ td dd"sJ td djd#dtd$s J td dd%sJ td djd&dtd$s2J td djd'dtd$sNJ td(dt d)shJ d S )*Nr   r   r   r   r   gkﴑ[?r   r   r   r	   r   ge?r   i  r
   i  gj!i(?r   gb7s[?y              @y           jAy             y          jr   l   d/C'%ld/C'%ro   y        M9;Dru   y       M9;g      #y:fTȾQk>y:fTȾQkgyQrd;rs   z1.3106082028470671626e4355yRd]Rd]yRd]Rd];r   y@o׿a)r   r   Zhermiter   ry   r   r#   r#   r#   r$   test_hermite  s:    r   c                   C   s   dt _tddddsJ tdddds2J tddddksFJ tdd	ddksZJ td
dddspJ tddddsJ tddddsJ tddddsJ tddddsJ tddt ddsJ d S )Nr   r   r   r
   r   r   i}  r   r   ir   i#  r   r   r   r   gg:(Zr   r   y(.?-@:4@)r   r   Z
gegenbauerr   r   r#   r#   r#   r$   test_gegenbauer  s    r   c                   C   s  dt _tdddtddks J tdddds6J tdddd	d
dsPJ tddddsfJ tdt dt dsJ tdt dt d	d
dsJ tddd	dsJ tddd	d	d
dsJ tddddsJ tdddd	d
dsJ td	dd	dsJ td	d	d	ds4J td	dd	dsLJ tddddsdJ tdddds|J tddddsJ tddddsJ d S )Nr   r   r   r   r   r   r   gLXz?r
   typey        LXz?r   gLXzr   yI:r AEZ;Aytp@&xsog9B.y        9B.?iy        H6u@yjA?jAr   y}$!}f?}$!}f?yb`3?b`3gFo)r   r   legenpr   r   r   r#   r#   r#   r$   test_legenp  s$     r   c                  C   s   dt _t} t| dddsJ t| ddds2J t| dddddsJJ t| dddddsbJ | dddddds|J | ddddd	d
dsJ | ddddddsJ | dddddtsJ | ddddd	d
dsJ | ddddddsJ | ddddsJ | dddds4J | dddd	ddsPJ | ddddshJ | ddddsJ | ddddddsJ | ddddddsJ | ddddddsJ | ddddddsJ | ddddddsJ | dddds$J | dddds<J | ddddsTJ | ddddslJ | ddddsJ | ddddsJ | ddddsJ | dddd	ddsJ | ddddsJ | dddd s J | dddddd!sJ | dddddd"s8J | dddddd#sTJ | dddddd$spJ | dddddd!sJ | dddddd%sJ | dddddd#sJ | dddddd$sJ | d&d'dddd(sJ | d&d'dddd)sJ | d*ddd+s0J | d*ddd,sHJ | d*ddd-s`J | d*ddd.sxJ | d*ddd/sJ | d*ddddd0sJ | d*ddddd1sJ | d*ddddd2sJ | d*ddddd3s J | d*ddddd4sJ d S )5Nr   r
   r   r   r   r   r   r   r   )r   r   r   g
Zy
Z@
Zr   y3A-DT!?r   gzr   r   gz?y3A?-DT!g3Ayz-DT!y       -DT!yz?-DT!g3A?y5Oϋ?!3|g{~
6yWFEi l@gaUO}2?gaUO}2yWFE?i ly       WfѷgWfѷg&D\4(y       &D\4(gWfѷ@r   r   yuFhZ?ǒsICy:QN?}U@x$?r3   y        <@gJj?gfFU?g 6Կy<P0(?y        P0(?y 6ԿJjyfFU?fFUyJj? 6?gP0(ӿ)r   r   Zlegenqr]   r   r   )fr#   r#   r$   test_legenq  sh    r   c                   C   s   dt _tdddksJ tdddks*J tdddks<J tdddksNJ ttttks`J dtdtd ds|J tdddsJ tddd	sJ tdtd
sJ tdtddksJ tdddsJ d S )Nr   r   r   r   r   gDSYC?g=O?r
   gN_?rU   r   r   yk7WO?>I?)r   r   Zagmr   rX   r   r#   r#   r#   r$   test_agmK  s    r   c                   C   s8  dt _tdddtd s"J tdddddtd  sDJ tdddd	td d
td  snJ tdddsJ tddd
dsJ tdddsJ tddt dt dsJ tddt dsJ tdd
dddsJ tddttdsJ tddds,J tdddsBJ tdddsXJ tdddsnJ tdddtksJ tddd d!sJ tddddksJ tddt dt d"sJ td#dd$sJ td%d%d&sJ td'd%d(sJ tdd%d)s*J td*d%d+s@J ttdddd,sXJ td%ddd,tkspJ tdddd,dksJ tdddd,dksJ tdd-dd,dksJ tdd.dd,dksJ tdd/dd,dksJ td%ddd,dks J td%d.dd,dksJ td%d/dd,dks0J td%ddd,dksHJ td%d0dd,dks`J td%d1dd,dksxJ td%d2dd,dksJ tdddd,tdsJ tdd.dd,td0sJ tdd/dd,td1sJ tdd2dd,td3sJ td4djd5dd6t	 d7s(J td4ddd,dks@J td4d2jd8dd6t	 d7s`J td4d2dd,dksxJ td-d9dd,d:sJ td;d;dd,d<sJ tdd
dtddd
 ksJ td
ddd=sJ td
dddd,d>s J tdddd?sJ tddddd,dks2J td%ddd@sJJ td%dddd,dksdJ tdddd?s|J tddddd,dksJ tddAdBjdCdd6t	 d7sJ tdAdddDsJ tddEdksJ tddFdksJ tdd%dksJ tddGdks J tdHd%dks4J d S )INr   r   r   r:   r   r   r   r
   r   r   r   r3   r   y!?03Dg66?r   yr?̿yt2?c:?Tg\$?r   g     b  z6.9825435345798951153e-627i   z4.6885137549474089431e-788r   g     4y
 I?Byg     iy
 I?licp)bgdT:?y       Ƿҿr   g8,6V@r   yC\W-DT!	@r   yN(T?-DT!yGfs-8R?r	   y}?fs-8R)Zregularizedr   i  l       73Me'r   l    73Me'r   rT   z1.3669297209397347754e-301037rC   rs   z>-1.322575609404222361e-698979 - 4.9274570591854533273e-698978jy      @      @y]y7޵?WHy             @@yK!:#H? \h?gٕK&?g|"?g]5[?g +?r   i.  z1.1359381951461801687e-4327z8.1244514125995785934e4765y            y            ?r   r   )
r   r   gammaincr   rK   r   r   rW   r]   ry   r#   r#   r#   r$   test_gammaincY  s    "*    "r   c                  C   s	  dt _tdddsJ tddds.J tdddsBJ td	dd
sVJ tdddsjJ tddds~J tdddsJ tdddsJ tdddsJ tdddsJ td	ddsJ tdddsJ tdddsJ tddds"J tddjdd	dt dsBJ tddjdd	dt dsbJ tddjdd	dt dsJ td	djdd	dt dsJ tddjd d	dt dsJ tddjd!d	dt dsJ tddjd"d	dt dsJ tdd#d$sJ tdd#d%s.J tdd#d&sDJ td	d#d'sZJ tdd#} | d(stJ | jd)sJ tdd#} | d*sJ | jd+sJ tdd#} | d,sJ | jd-sJ tdd.jd/d	dt dsJ tdd.jd/d	dt dsJ tdd.jd/d	dt ds>J td	d.jd/d	dt ds^J tdd.jd/d	dt ds~J tdd.jd/d	dt dsJ tdd.jd/d	dt dsJ tdd0d1sJ tdd0d1sJ tdd0d1s J td	d0d1sJ tdd0} | d1s0J | jd)sBJ tdd0} | jd2s^J | d1snJ tdd0} | jd3sJ | d1sJ tddd4sJ tddd5sJ tddd6sJ td	ddsJ tddd7sJ tddd8sJ tddd9s4J tddd:sJJ tddd;s`J tddd<svJ td	ddsJ tddd=sJ tddd>sJ tddd?sJ tddjd@d	dt dsJ tddjdAd	dt dsJ tddjdBd	dt ds.J td	djd d	dt dsNJ tddjdCd	dt dsnJ tddjdDd	dt dsJ tddjdEd	dt dsJ tdd#} | dFsJ | jdGsJ tdd#} | dHsJ | jdIsJ tdd#} | dJs J | jdKs2J td	d#} | d(sLJ | jd)s^J tdd#} | dLsxJ | jd	ksJ tdd#} | dMsJ | jd	ksJ tdd#} | dNsJ | jd	ksJ tdd.jdOd	dt dsJ tdd.jdPd	dt dsJ tdd.jdQd	dt ds<J td	d.jd/d	dt ds\J tdd.jdRd	dt ds|J tdd.jdSd	dt dsJ tdd.jdTd	dt dsJ tdd0} | dUsJ | jdGsJ tdd0} | dV	sJ | jdI	sJ tdd0} | dW	s.J | jdK	s@J td	d0} | d1	sZJ | jd)	slJ tdd0dX	sJ tdd0dY	sJ tdd0dZ	sJ d S )[Nr   r   r   gb?r   gkӦ?r   gzCⷆ?r   g_mv?r   g/ɫ|?r   gslR
w?r
   gAt?r   g_gʩPfgLX!tghĊJQ"yʹ+-DT!	y[!z?/u%y.%2l>3i^  gԇqirC   rs   g+{gգ; jg{/1XgK];@}Fg.H4go:ɴ`#igptOgc_g8>VpgYògoZg-DT!	gTk gԚ:.gF@g_wf4}l     =RM!	 z/2.1592908471792544286e-152003068666138139677919l  =RM!	 z0-3.7805306852415755699e+152003068666138139677871ggתECgE{D?g>EӦu:?g:([?gf?g d?g?yVR!i?fs-8R?y+B\*-DT!yTj@-DT!	@gk9!ǎ@@gƇxTg~8n@g9blBg1*jg/nQgJ` g_A g?Ho!ga]gfs-8R?g&\Ig-DT!g`VAGp^g-DT!	@gj<~_g/p8gK`z/5.0362468738874738859e-152003068666138139677990z/1.7626864058606158601e-152003068666138139677966z/6.1694024205121555102e-152003068666138139677943z,7.5575179651273905e-152003068666138139677896z.2.645131287794586675e-152003068666138139677872z/9.2579595072810533625e-152003068666138139677849z/8.8175642804468234866e+152003068666138139677800z0-3.0861474981563882203e+152003068666138139677824z/1.0801516243547358771e+152003068666138139677848z/1.3231857398345514495e+152003068666138139677895z0-4.6311500894209300731e+152003068666138139677918z/1.6209025312973255256e+152003068666138139677942)r   r   r   r   ry   r\   r   )r}   r#   r#   r$   test_gammainc_expint_n  s           


       


       






       



r   c                   C   sR   dt _tdddddsJ tddd	d
ds6J tdddd
dsNJ d S )Nr   r   r   r   r   gO@r   y      ?       @r   r:   y	?f,?r   r   r   gX|W'@)r   r   betaincr   r#   r#   r#   r$   test_incomplete_beta$  s    r   c                  C   sv  dt _tddksJ tdds(J tdds:J tddsLJ ttd	s^J td
dspJ tddsJ ttdtsJ ttdtsJ ttdtsJ ttdtsJ ttdksJ tt dksJ t	ddksJ t	dt dsJ t	ttks&J t	t t ks<J tdtdksRJ t
dt
dkshJ tddt
d sJ t
ddksJ t
ddtd sJ t
ddtd sJ t
dt dtdt  sJ t
ddksJ t
ddksJ t
t dks*J t
tdks<J tt
tsNJ t
dtdd  dsnJ tddsJ t
ddsJ t
ddsJ dt _t
ddd   d!sJ t
ddd"  d#sJ dt _tt
dd d$ksJ tddksJ td%d&s.J td'd(sBJ tdtksTJ tdt kshJ ttd)d)sJ ttd*d*sJ ttd+d+sJ dt _ttd,d,sJ ttd-d-sJ ttd.d.sJ dt _t
d/} | jdksJ | jd0s.J t
d1dsBJ t
d2dd3  d4s^J t
d5d6srJ d S )7Nr   r   r   gAg?r   y^u;y            yxGDY$W
?g|b?r   y        .($h?             y       .($hr                   gL:?rP   y?      ?rV   r   r   r   r   iMz3.63998738656420y       @      "@y%?@[09Ay%?@[0A9y             "y%?@[09Ar(   -   z32.0884875837625447570007862949577886115608181193212i@  z32.0709207788416560484484478751657887929322509209954zv3.66744826532555e-4342944819032518276511289189166050822943970058036665661144537831658646492088707747292249493384317534r   g
$?r   g
$޿r   gP?gPz"0.99999999999999999999999999999995z#0.999999999999999999999999999999995z$-0.999999999999999999999999999999995r   z-6.1481820666053078736e+1083y      Y      @y      Y@      @i  y?}d-@OB+xr   yWMYA`E?m<p)r   r   erfr   r   rY   r   rL   r   Zerfierfcr]   r^   rw   Zerfinvr[   r\   rM   r#   r#   r$   test_erf*  st    $ r   c                   C   s   dt _tt dksJ ttdks(J tdddtdddsFJ tdd t tgd	ksbJ tdd
ksrJ tddd
ksJ tt dksJ ttd	ksJ tdd	ksJ tdd dsJ d S )Nr   r   r   r   r   r   c                 S   s   t | ddS )Nr   g?)npdfrk   r#   r#   r$   <lambda>n  r   ztest_pdf.<locals>.<lambda>r   r   r
   r   rV         B3v^!< gwbLz@)r   r   r   r   r   ZquadtsZncdfr#   r#   r#   r$   test_pdfi  s    r   c                  C   s  dt _tddksJ tddks&J tttks6J tttsFJ ttdjtksZJ ttdjdt	 stJ tt djtksJ tt djdt	 sJ tddt ksJ tddt ksJ tddt ksJ tt
dsJ tddsJ tt	 d tt	 d s*J ttd d td sNJ td	d
sbJ tddsvJ tdddsJ tdddsJ td	ddsJ tdddsJ td	ddsJ tdddsJ tddsJ tddds$J tddds:J tddsNJ tdddsdJ tdddszJ tdddsJ tddsJ tdd sJ tddd!sJ tddd"sJ td#dd$sJ tddd%sJ tddd&s&J tdd'd(s<J td)d*d+sRJ td)dd,shJ tdt d- d.sJ tdt d- dd/sJ tdt d- dd0sJ tdt d- d*d1sJ tdt  d- d2sJ tdt  d- dd3sJ tdt  d- dd4s<J tdt  d- d*d5s\J d6t _tt	d7svJ dt _td8d9sJ td:d;sJ td<d=sJ td>d?sJ td@dAsJ tddB} | jdCsJ | jdDsJ d S )ENr   r   r   r   r   r
   r   gW	&?r   g{?g      пgֿg-C6g"{,7gѤX9yHgtm3]NyHgtm3]N@y}&@r	   yӸ?~dY?yg[忼@yӸ?~dYr   gr6@yAj@T'>@yAj@T'>r   y(o-@n!=@r   yAF?Z|?yٿ?y)u%+?y(tmȻy@yO^?"r   y~}?hey:㢥'%K8@g8	U'r   y:㢥'%K8gh㈵r   yk)j^-xe/:@yb/.>ꮺF@@r   y0j;?"B`?ym.[	<?@ysqM1mPyE&\57@y#u*Ϳ-pFſy>M|Wn2?yǁc'FyEyfI3I5fԪ4@r(   z81.073658194796149172092178407024821347547745350410314531y      Mb`?y7W@;ūԎ?y      Mb`y7W@;ūԎyy&1ܿ?y)!faYNJuM?yy&1ܿٿy)!faYNJuMyʡE-C6?yQW
㿘"1k?rp   gQGg[[AD)r   r   lambertwr   r]   r^   r[   r\   r   r   rb   r   log)r   r#   r#   r$   test_lambertww  sx    "$   
r   c                  C   s	  dd } dt _| tdds J | tdds2J | tdd	sDJ | td
dsVJ | tdddsjJ | tddds~J | tdddsJ | td
ddsJ | tdddsJ | tdddsJ | tdddsJ | td
ddsJ dd }dd }dd }dd }dt _dt dt  }td}td}td}td }	td!}
td"}td#}dt _| t|||d$sJ | t|||d%sJ | t|||d&sJ t|||	dksJ t|||
dksJ t|||dks J t|||dksJ | t|||d's2J | t|||d(sLJ | t|||d)sfJ | t|||	d*sJ | t|||
d+sJ | t|||d,sJ | t|||tdd-sJ | t|||d.sJ | t|||d/sJ | t|||d0s"J | t|||	d1s<J | t|||
d2sVJ | t|||d3spJ | t|||td4d5sJ | t|||d6sJ | t|||d7sJ | t|||d8sJ | t|||	d9sJ | t|||
d:sJ | t|||d;s,J | t|||td4d<sLJ | t|||dd=shJ | t|||
dd>sJ | t|||dd>sJ | t|||dd>sJ | t|||dd?sJ | t|||dd@sJ | t|||ddAsJ | t|||	dd1s,J | t|||
dd2sHJ | t|||dd3sdJ | t|||dtd4d5sJ | t|||ddBsJ | t|||ddCsJ | t|||ddDsJ t|||	ddksJ t|||
ddksJ t|||ddks(J t|||ddksBJ | t|||ddEs^J | t|||ddFszJ | t|||ddGsJ | t|||	ddHsJ | t|||
ddIsJ | t|||ddJsJ | t|||dtddKsJ | t|||ddLs(J | t|||ddMsDJ | t|||ddNs`J | t|||	dd9s|J | t|||
dd:sJ | t|||dd;sJ | t|||dtd4d<sJ | t|||ddOsJ | t|||ddPsJ | t|||ddQs*J | t|||	ddQsFJ | t|||
ddQsbJ | t|||ddQs~J | t|||ddQsJ dRt _dt tdS }dT}dt _t||sJ dUt _t||sJ dVt _t||	sJ d S )WNc                 S   sl   t |}d}t|tr t| t}t| j|j t|jd t k}t| j|j t|jd t k}|oj|S )NTrC   )convertrY   r   r   r[   ry   r\   )rk   r   Ztype_okZreal_okZimag_okr#   r#   r$   check  s    

""z!test_lambertw_hard.<locals>.checkr   绽|=gj|=g|۽g|۽y        |=y#B;|=y       |۽y#B;|۽r   yM:
@y6S:8@y",KP:(*3@y.5L:(vf?r   yM:
g,qŔK:y.5L:(vfy",KP:(*3c                 S   s   t | |ddS NTrq   )faddrk   r   r#   r#   r$   r     r   z$test_lambertw_hard.<locals>.<lambda>c                 S   s   t | |ddS r   )Zfsubr   r#   r#   r$   r     r   c                 S   s   t | t|dddddS )Nr   Trq   r   rx   r   r#   r#   r$   r     r   c                 S   s   t | t|dddddS )Nr   Trq   r   r   r#   r#   r$   r     r     r   z1e-3z1e-10z1e-20z1e-40z1e-80z1e-300r   gmPPWg-gByejZ~,F2)ܲ?yr>y      a>=y      &;y      _}eO7y       z2.33164398159712420336e-500yʁ:UY 8ɩ?yu~l|H-I>yWѨ=y      {Kv;y      {S犹7y      ^{=o r   z1.64872127070012814684865e-500yʁ:UY 8ɩyu~l|H-IyWѨy      {Kvӻy      {S犹y      ^{=oՠz-1.64872127070012814684865e-500y,+@/c@yIS[@yQ}]t餫?yEI <ZI>yvT   =gj蚸5g4s g   yejZ~,F2)ܲyry      a>y      &ۻy      _}eOy      ޠz-2.33164398159712420336e-500yQ}]t餫yEI <ZIyvT   y,+@/cy SwyIS[r   z1e-13z-0.99999926266961377166355784455394913638782494543377383744978844374498153493943725364881490261187530235150668593869563168276697689459394902153960200361935311512317183678882r(      )r   r   r   rb   ry   r   rL   r   )r   addsubZaddjZsubjaZd3Zd10Zd20Zd40Zd80Zd300Zd1000rk   Zansr#   r#   r$   test_lambertw_hard  s    
   """r  c                  C   s  dt _tddgdggddgddggdds2J tg dt ggdgdggd	d
sZJ tdgdggdgdggddks~J tdgg gg dg gddsJ tdgdggdgdggddsJ tdgdggdgdggddsJ tdgdggdgdggdtd  dt  s$J d} d}tdtdfD ]}t| ||}t|t|  td|  gg gdgd| gg|  }t|t|  tdgdd|  ggdd|   gg gd|  }||sJ ||s<J q<d S )Nr   r   r
   r   r   r   r   g%WV@r   yc2hp@'4Dr   r   )r   r   r   z2/3z2/27gmD@r   r   r   r3   gyhr   r   g       r   )	r   r   meijergr   r   r   r   rE   rW   )r  r   rl   x1Zx2Zx3r#   r#   r$   test_meijerg:  s     ,($$&&64>r  c                   C   s   dt _tddddddds"J tddddddds>J tdddddd	d
sZJ tdddddddsvJ tdddddddsJ d S )Nr   r   r   r   r
   g      ir   r   r      r   g      ?gk?)r   r   Zappellf1r   r#   r#   r#   r$   test_appellf1M  s    r
  c                   C   s&   dt _ttddddds"J d S )Nr   r   r   r   r
   gpu4@)r   r   ZcoulombgrL   r   r#   r#   r#   r$   test_coulombU  s    r  c                  C   sV  dt _dd tddD } dd tddD }t| |dd	sDJ td
dddsZJ tdddd dstJ tddddd dsJ tdddddd  dsJ tdddd
dddksJ td dddd!  d"sJ tdddd#d$d%dd&  d'sJ td(dddks$J t	t
d)d*  td+d* dgd,d-tksRJ tg g gg d.g gd/d0svJ td1d1dd2  d3sJ d4t _td5d6ddd7  d8 td9d6ddd7  d: dt _td5d6ddd7  d8 td9d6ddd7  d: ttd;d<d=d>dd?s(J td;dd  d dd fdd?sRJ d S )@Nr   c                 S   s   g | ]}|d  qS r   r#   r   r"   r#   r#   r$   r   ]  r   z-test_hyper_param_accuracy.<locals>.<listcomp>r   r   c                 S   s   g | ]}|d  qS r  r#   r  r#   r#   r$   r   ^  r   ir   gũܘ8Vr   r   r   gN*r   r   r   r   gP+(	@i|g      %@gGz?gS?r   r   r     g_?r
   r   r   r   ii  g{<      r   )Zmaxterms   g~bf86r   c                   S   s   t dd dgS )Nc                 S   s   g g g g | g|  gdfgS Nr   r#   r  r#   r#   r$   r   h  r   z=test_hyper_param_accuracy.<locals>.<lambda>.<locals>.<lambda>r
   )	hypercombr#   r#   r#   r$   r   h  r   z+test_hyper_param_accuracy.<locals>.<lambda>c                 S   s   g g g g | g|  gdfgS r  r#   r  r#   r#   r$   r   i  r   r   )Zinfprec)r   r   r   r   r   giաe?i  ^   gL?r   g    r   r   g{	!@r   gL`L"@r   z1e-100Trq   g;.ɂQ)J)r   r   r!   rJ   r   r   rE   rG   pytestraises
ValueErrorr  r   r  r    rD   r   )ZAsZBsr#   r#   r$   test_hyper_param_accuracy[  s0     &$ r  c                   C   s@   t dd dgdksJ tdgg gdgdggdds<J d S )Nc                 S   s   dg| gg g g g dffS )Nr   r#   r  r#   r#   r$   r   w  r   z)test_hypercomb_zero_pow.<locals>.<lambda>r   r   r   r  g2}$?)r  r  r   r#   r#   r#   r$   test_hypercomb_zero_powu  s    r  c                  C   s  dt _d} d}tdd| |ds&J tdd| |ds>J tdd| |d	sVJ tdd| |d
snJ tdd| |dsJ tdd| |dsJ tdd| |dsJ tdd| |dsJ tdd| |dsJ tdd| |dsJ tdd| |dsJ tdd| |ds2J tdd| |dsLJ tdd| |dsfJ tdd| |dsJ tdd| |dsJ tdd| |dksJ tdd| |dksJ tdd| |dksJ tdd| |dksJ tdd| |dksJ tdd| |dks*J tdd| |dksBJ tdd| |dksZJ tdd| |dksrJ tdd| |dksJ tdd| |dksJ tdd| |dksJ tdddddsJ tddt dt d d!sJ td"d#| |d$sJ td%dddd&s*J tdddddksBJ td"dddd's\J td"d(ddd)svJ tddddd*sJ tdddddksJ tddddd+sJ d S ),Nr   r   r   r   gmBP?r   r   yGL?bD:Ig9^Gq?yGLĿbD:Ir   r   yi'K?vm)˥y4f'?=!gzߚs?y4f'Կ=!yi'K?vm)˥?r
   r   yf K9?hWyC(?6tMyHc?x+̣g'?yHcۿx+̣yC(?6tM?yf K9hWr   r	   r   y6x0%@r   r   y@%DMjtr   r   y̝4?d[v/?r   yJ)?yE6鏿yo@-ſ?Tpkÿr   yN}}?z?gh?yەĿ  ֿ)r   r   Z	spherharmr   r   )trz   r#   r#   r$   test_spherharmz  sP    "r  c                   C   s    dt _tddddsJ d S )Nr   r   r
   r   z2.7291482267247332183e2391)r   r   Zqpr   r#   r#   r#   r$   test_qfunctions  s    r  c                  C   sD   dt _tdd} tdddddd	s*J d
t _ttdd  d S )Nr  l   L33F i   r  r   g?r   z40.99999999999999999999996570910644857895771110649954r   c                   S   s   t ddddS )Nr   r   r   )rG   r#   r#   r#   r$   r     r   z test_issue_239.<locals>.<lambda>)	r   precldexpr   r   r   r  r  r  r   r#   r#   r$   test_issue_239  s
    
r   r   )r&   gE.,[@glN!@gr D'@gq>-@g?12@gs-65@gV;Z8@g_T~;@gҾˑu>@goN@@gzcuB@g:)~zD@g]ƒE@g+G@)	ouU@Pr@)X$@*@6{x0@lA稝3@6@W9@q=@+knG@@|A@i#<C@bKsD@?k]1aF@gՊcG@)r'   g" @gd0v[='@g}-@g4	1@guԄ5@g&E8@gJk;@gb>@g[I@@gdrnB@g VD@gƗ_E@gMO$&G@gKd՘H@)g((I@gҤ#@g$c*@gT
590@goh3@g@-6@gmQڇ9@gZA<@gkM@@gvgA@g߬k/C@gc1D@gKw$UF@g"3G@gh{I@)g+lpvZ@g!!!&@gQj ,@g[w1@gV#4@gv8@gUsj2;@gv[^>@g۴@@guxYB@g?C@gC`(E@gCR9|G@g4|7H@gQa[<J@)g=!@gUф](@g7}f/@gy2@g76@gh*n9@gj<@gfϪ?@gb~A@gXvC@g?-ƩD@gO>F@gsiG@gѰz0QgI@gJtDJ@)gh_I#@gWp-+@gYdS 1@g~-=R4@gF+	7@gdz:@gv>@gOԝ@@g,6B@g6C@gWIcE@g|1[yF@gdюH@g`Z@%#J@gL'ReK@)gj8,&@gU}-@gjfLI2@gJC<5@goW8@g\0<@g+|=<l?@g@$QA@gX[B@gwodD@gMF@grtG@gFHI@g1rJ@gf S;sL@)gK?s(@g~	0@g{3@gu6@gMD:@gU)Z=@gDe@@giͺZGB@gƞC@gC:FP8E@gnF@g4iH@gv J@g
ҥK@gN-M@)gxGf*@g_u=1@g24@g};8@gsp;@g.2>@gLA@gJy6B@g]rtPD@giUXE@ge;G@gfI@gJ@gJgNOL@gNOM@)r)   g.yn2@gĜ;6@g$Yk9@g4&+<@gK@@gh\A@gqaC@g@N E@gK`8F@goWA<9H@g7j+I@gmK@g#!JM@g	 wN@)gó ./@g3@gǌYF7@g9bw:@g;->@g8_@@g%):wjB@gו9PD@gZ]s&E@gkJMG@gRH@gvJ@g&[0 L@gmM@gud[SO@)gO0@gwpM74@gFɰ~8@gŜv<@gr(u?@gv=jA@g7-C@g	dD@g<ah\F@gG@g8!I@g	8K@gY/L@geOnN@gj^,P@)g|6*1@gYFi5@g<9@g'a	HE=@gs$']@@gB@g C@gocE@g7iG@gC2 WH@g.ai5JJ@gGiK@gS=M@gYz O@gJ6F
]P@)gpYDf2@g	W7@gnNUI:@gV/>@gA @@gK	i?B@g<bD@g1&F@g:>G@gwVI@g6&J@gL@gB85N@gIqrO@gF2P@)r`   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r.  )g:}u?gg$eS@g!@g~yyi'@gYJ(-@g'eN2@g$*5@g5O8@gMQ'Du;@g*S>@g2N@@gCqB@gGD@g'ǛE@gɏ(G@)r*   gV~@g^%^#@gM:W*@gy8X0@g|@N3@gYau6@g?+w9@g2JH<@gYv@L@@gVƇDA@g"s6C@g'D@gY{}v[F@gMxG@)gCKy@g:tg @g&@g{N+-@gQa1@g/?4@g%8@g_O;@gXWcx>@g.?@@gGOI|cB@gwpC@gd!E@gaG@gXqΰH@)g,E@g?>"@g+ x#])@g	p/@gH.23@gp]f6@g/}9@gݏ<@g|?D?@gO[E$MA@gN3!C@gY-:D@gA{I1JF@gBG@g?©mqI@)g"BV@gV4+
%@gp+@gCqP1@gӺoT4@g\7@gӉ;@g?3>@g9V@@g$0GB@gzC@gپ:rE@g=ςG@ggQ%H@gb0J@)g
K@g0uIx'@g#O.@gw/2@g5@g/9@gh<@gY-?@g9-BhA@g5;B@g!D@gԠP!-F@g{G@g-i
XI@gwDJ@)gȃ3/'!@ga)@gaȅ0@g^M3@g|D7@g͠8:@g0n=@g&_@@gswB@g<C@g`[FNE@g0ǡF@gAL|H@gnNfJ@gM 
K@)gzK#@g<VK%;,@g%1@g٣:5@g!R8@gVfF);@gw/{'?@g v2A@ge^B@g!KCjD@g`F@g.bG@gvWC4I@g"J@g?GӜaL@)gAl%@gsGϒ.@gQ@
-3@gý[6@g)c*9@g$S7=@gk@@@g.yA@gY>C@gKE@g"轷F@geQH@gW WI@gSS\K@g,ۣM@)g]X'@gX,Lzr0@gr/94@gMF7@gsz.;@gTMՈ>@gGֈ@@gjGLB@g]|//D@gxE@g?ZWjG@g,I@gDZ3!J@go-8L@g<vM@)gR))@g51@gϝvLn5@g%H.9@g= u<@g0=?@gVA@gꠀ:C@g!@9CD@gRN}F@gxH@g[~oI@g:^גRK@gn&L@g_0N@)gU+@gC@G2@g
6@gZ>:@g2P=@gT!ZӐ@@gU=B@ga@P^C@g-E@g@<+G@g:+ۻH@g
mhhJ@gdNL@g+@$M@gg-:O@)grS-@g3@gg{7@guTny;@g>@gv5A@guσfB@g3ՒD@gGO4F@guTG@g化yI@gBH՝+K@gD[xL@gtޛERN@gw~!LO@)g"l/@g*5@gH4 9@gE»<@g~xU@@gYx6"A@g	ϜC@g#e6E@g7s%F@g˃H@gGDP&J@g-K@geM@g]jO@g~̫OP@)r+   gVMS@g!X@gX}5q$@gI*@g2 t<0@g_,3@gw26@gFF9@gOlaId=@g D@@gyBXA@g!\n>C@g~D@g!NbF@)gCԾ@g.N@gia'1!@g28'@gވ}-@g;_i2@g͈!I%05@g 80T8@g}y;@g<(H>@gVi@@gzZsB@gD@ghևE@g~1̅J*G@)r,   g9s,@gCN$@g`k*@ga0@g$Y3@gz6@gR$z9@gI5<@gM@@gbU,A@gf7C@ga^D@g9C\F@g6.`G@)gJOZ@g,1 @g1A&@g?-@g:H1@g,	N4@g:m*8@g|k:,T;@gY|>@gdۚ.@@gbeB@grvC@g 5E@gG7G@g~bH@)gNK@gXV&"@g%u)@g/@g -t93@g0cl6@gh2v:9@gϥS0<@gXf?@g+A@gw]e#C@gVӎͷD@gН6|KF@gDG@gJ?rI@)gW@g%1%@g N,@gpcX1@g	W4@gݗ7@grzY;@g
g8>@gؼmW@@g -ͲIB@g@܌1/C@gmzAtE@gVn>G@gJt@H@g[Q1J@)gY@gzA@'@gw!+).@gR2@g6_R5@g2`49@g`m<@gv?@gjA@gbC@g06D@g]S|.F@gg3G@gi VYI@gqJ@)gs!@g*@g0@gnn3@gAK7@g":@gt==@gfn@@g$CB@gTmǷC@gW`!POE@gXF@g%P}H@g<CJ@gQ$'[<K@)gqoi?#@g'	wa,@ga1@gćuB5@gS3ќ8@gݦ(;@g>w,?@g4A@g6+<B@gmkD@g^+eF@g89ҝG@gz~6o5I@gBUTnbJ@ga8bL@)g{J#p &@gQ]}.@gmF3@gwPc6@gh9@guJ==@g3B@@gbA@gKjxC@gPjE@gv`~hDF@g RH@gI@gS[գK@gSM@)r-   gmn0@gmD4@g#Jݪ7@g&4;@g>@g,
@@groB@gAEK1D@gU2LE@g^JkG@gŦ"I@g{gzlJ@gҀb9L@gW]ԙM@)gui3a*@g$Ӭs1@gd6y5@g^|
9@gj\J.|<@g?@gJA@gMw<C@gD@gܰy~F@gH@gM͸I@gރoSK@g}L@gFlN@)g\T~,@gEj2@gW6@g6F:@g-=@g}a@@g+?B@g}+PC@gUhE@g5/),G@gVj!H@g!h6iJ@gN_L@gUVM@g|2H;O@)g8'Ơ.@gݭ23@gFnÑ7@gM";@gԂ?@g_wk7A@gb%͓B@gw&sD@gS6F@gkEjG@gSezI@g*K@g~jL@gg	6SN@g:a8TcO@)gZ0@gh5@g9F9@gDb<@gH[)W!@@g~A@gzsCC@gFWh8E@g;sF@gWH@g.cu'J@gH?K@g;"fM@gqmb5O@g5PP@)guv@gSX@g~.?$@g,N*@g=p0@guq3@g6@g_qb9@gG=@gI@@g6BA@g1^7;C@grD@g[_F@gg)ÿG@)r.   g$0 @g>%'@gĒ畅-@g<]h1@gLn*5@g]?8@gf;@g;FT~>@gƽ5@@g1|lB@gz<yC@gD;'E@g!bS$G@gaLH@)g~l@gse#@gk)@go%00@g5a3@g"N6@g.l9@g9<@gRE@@g)}h%A@g8g-C@gRĵ6D@g6LHTF@g^GSG@geBzI@)gIq@g⇥&@g#Dש,@gL1@gxk4@g؅;7@g.;@g&Е)Z>@gP?@@gіVWB@gA0FJ#C@g>E@g
HG@g%H@ga%;J@)g$/ϢL!@gΏ(@gpTITR/@gI%"2@g˰^16@gމh9@gecv<@g٨3?@g r|A@g84'!C@gB.D@gbG(=F@g1G@gQdfI@gJ@)g-#@gڷ+@g0,0@gJ4@gQ:֏7@ge:@g*>@g*ś@@g>.)4B@g蝗C@gbE@gTF@gSyH@gkCX"J@g.,6K@)gE^j(%@g--@g*(@2@g/ݜ5@gʦK8@g#+<@gg?@gUOA@gB@gɗHD@gpiF@g:~I
G@gh	iGI@g'fEJ@girL@)g?~5(@gBQ6/@g 3@gn6@g2-c>:@gMIR=@gic@@gkN@PB@gD]a C@glW`27E@g(s:F@g%UhH@goI@g'GpK@gׇ*,M@)g#ʡv*@g[G/1@g[P4@g@)h48@gFe˗;@gկ>@gU՘A@gǶHB@gKND@gojE@gڢĄG@g4P\
I@g	pJ@g&NL@gN0M@)g}u7,@g-?a2@g66@g_Dk{9@gLws<@gNo@@gS1ܽA@g
;A_C@gCD@gvF@gLV7H@g-&fGI@g
HkK@gfhM@g';\N@)gV.@g}W3@gyX=7@g:@gB3(>@gT^q@@gmhB@g`rD@g/vE@gpMLG@gjH@g6p%J@gZ]L@gIӆfM@gDRO@)g	$p0@g&G=#v4@gXlu8@gǕ;@gs.p?@g5gA@g@~C@g.	D@g>gNZF@g2`1G@gsII@gf6K@g2ZzL@g!|6,mN@g>}P@)gdGr<1@gt5@gNo퉫9@gA>=@gsZ@@g;ʋ}B@gGC@g@$bE@gQrfG@gbרH@ge2hHJ@g17[!K@g70D
M@gljO@g8k}mI]P@)g[@2@g\7@g ]:@gLAZz>@g:w4f@@g%jB@g`D@gBF@g@rɟG@g|UUI@g4J@gy8fL@gTPm4N@g ^.VO@gEP@c                  C   sJ  dt _ttD ]4} tdtd D ]}t| |dtt t| |t|  |d  sXJ t| |t|  |d  sxJ t| |dt	|  |d  sJ t| |dt	|  |d  sJ t
| |t|  |d  sJ t
| |t|  |d  sJ t
| |dt|  |d  s J t
| |dt|  |d  s"J q"qd S )Nr   r   Zof)r   r   r!   VMprintr/   r   jn_small_zerosjnp_small_zerosr0   yn_small_zerosynp_small_zeros)rN   mr#   r#   r$   test_bessel_zeros_extraB	  s      ""  $r7  )9mathr  Zmpmathr%   r1   r2   r4   r5   r6   rO   r_   rm   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r
  r  r  r  r  r  r   r/  r0  r2  r3  r4  r5  markZslowr7  r#   r#   r#   r$   <module>   s  K</' d:	<H ?@ *  e  e  e  d