
    gz                       d dl Z d dlZd dlT d Zd Zd Zd Zd Zd Zd	 Z	d
 Z
d Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd  Z d! Z!d" Z"d# Z#d$ Z$d% Z%d& Z&d' Z'd( Z(d) Z)d* Z*d+ Z+d, Z,d- Z-d. Z.d/ Z/d0Z0d0Z1g d1g d2g d3g d4g d5g d6g d7g d8g d9g d:g d;g d<g d=g d>g d?gZ2g 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 dMg dNgZ3g 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 d\g d]gZ4g dPg 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Z5ej6        j7        dl             Z8dS )m    N)*c                     dt           _        t          d                              d          sJ t          t                                        d          sJ t          d                              d          sJ t          d                              d          sJ t          d                              d	          sJ t          t                                        d
          sJ t          d                              d          sJ t          d                              d          sJ t          dd                              d          sJ t          dd                              d          sJ t          dt                                        d          sJ t          dd                              d          sJ t          dd                              d          sJ t          dd                              d          sJ t          dd                              d          sJ t          dd                              d          sJ t          dd                              d          sJ t          dd                              d           sJ t          dd!          d"z                      d#          sJ t          d$d%          d%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    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    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    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    sJ t          dd%          t           k    sJ t          d%d&                              d/          sJ t          dd&                              d0          sJ t          d*d&                              d1          sJ t          d2d&                              d3          sJ t          d%d                              d4          sJ t          d%t                                        d5          sJ t          dd!          d"z                      d6          sJ 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    sJ t          d-d%          d%k    sJ t          d%d&                              d7          sJ t          dd&                              d8          sJ t          d*d&                              d8          sJ t          d2d&                              d9          sJ t          d%d                              d:          sJ t          d%t                                        t          d%d                    sJ t          dd!          t          d;          d<z  z                      d=          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    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?          sJ t          d2d&                              d@          sJ t          d%d                              dA          sJ t          d%t                                        dB          sJ t          dd!          t          d;          dCz  z                      dD          sJ t          d;dEd;          D ]3} | t           _        t          dFdG                              dH          sJ 4d 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dpsj0aepij1besseljbesselyinfjbesselimpfbesselkrange)ns    X/var/www/html/ai-engine/env/lib/python3.11/site-packages/mpmath/tests/test_functions2.pytest_besselr+      s   BFa5588()))))b6699*+++++d88;;,-----c77::+,,,,,a5588()))))b6699)*****d88;;-.....c77::*+++++1Q<<??2333334??5666661R==1222221T??4555551S>>2333332a==1222222a==1222221T??PQQQQQ4??3444444  !MNNNNNAv&**+ABBBBB4q    3??sd""""3??sd""""1Q<<C44t####4s""""2q>>S    4s""""4t####2q>>S    2q>>cT!!!!2q>>S    3??sd""""1a==SD    3??sd""""1a==SD    3??sd""""1a==SD    1S>>4555551S>>3444442c??3444443s5666661T??JKKKKK1Q<<??JKKKKKAv&**+ABBBBB1Q<<11Q<<11Q<<12a==A2a==A1S>>2333331S>>3444442c??4555553s8999991T??KLLLLL1Q<<??71Q<<(((((AvR;!77;;<QRRRRR1Q<<31Q<<31Q<<32a==C2a==C1S>>3444441S>>2333332c??3444443s4555551T??OPPPPP1Q<<??JKKKKKAvR*!44889NOOOOO2c" i itG$$''  )h  i  i  	i  	i  	i  	ii i    c                     dt           _        t          dd                              d          sJ t          dd                              d          sJ t          dd                              d          sJ t          d	d                              d
          sJ t          dd                              d          sJ t          ddd                              d          sJ t	          dd                              d          sJ t	          dd                              d          sJ t	          dd                              d          sJ t	          d	d                              d          sJ t	          dd                              d          sJ t	          ddd                              d          sJ 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   besselyzero r,   r*   test_bessel_zerosr:   P   s   BFq566666q455555q 566666r! 566666s1  !677777q1  !677777q566666q455555q 566666r! 566666s1  !677777q1  !67777777r,   c                     dt           _        t          dd                              d          sJ t          dd                              d          sJ t          dd                              d          sJ t          d	d                              d
          sJ t          d	d                              d          sJ t	          dd                              d          sJ t	          dd                              d          sJ t	          dd                              d          sJ t	          d	d                              d          sJ t	          d	d                              d          sJ 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   hankel1r   hankel2r9   r,   r*   test_hankelr>   _   su   BF1S>>KLLLLL1S>>IJJJJJ2c??KLLLLL3sKLLLLL3t RSSSSS1S>>KLLLLL1S>>IJJJJJ2c??KLLLLL3sKLLLLL3t KLLLLLLLr,   c                  F   dt           _        t          dd                              d          sJ t          dd                              d          sJ t	          dd                              d          sJ t	          dd                              d          sJ d S )	Nr   r
   r   gb	h?      gVi?g߳g?gg]>?)r   r   struvehr   struvelr9   r,   r*   test_struverC   l   s    BF1Q<<??1222224??4555551Q<<??0111114??34444444r,   c                      dt           _        t          ddd                              d          sJ t	          ddd                              d          sJ d S )Nr   r
   r   r   g/GzH@g$+9,@)r   r   whitmr   whitwr9   r,   r*   test_whittakerrG   s   sU    BF1Q<<??0111111Q<<??01111111r,   c                  L   dt           _        t          dd                              d          sJ t          dd                              d          sJ t          dd                              d          sJ t	          dd                              d	          sJ t	          dd                              d
          sJ t          dd                              d          sJ t          dd                              d          sJ t          dd                              d          sJ t          dd                              d          sJ t          dd                              d          sJ t          dd                              d          sJ 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   berr   beikerkeir9   r,   r*   test_kelvinrM   x   sz   BFq88;;-.....q88;;./////r!99<<011111q88;;./////r!99<</00000q88;;-.....r!99<</00000s1::==122222q88;;./////r!99<<./////s1::==01111111r,   c                  @   dt           _        t          dd          dk    sJ t          ddd          dk    sJ 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k    sJ t          dddddd          dk    sJ t          g g d          dk    sJ t          g g d          	                    t          d                    sJ t          dgg d	          dk    sJ t          d
ddt          d          dz            	                    d          sJ t          dddt          d          dz            	                    d          sJ t          ddddt          z   dz            	                    d          sJ dt           _        t          dd          } t          ddt          z   dgddt          dz  gt          d          dz  t          dz  z             	                    |           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vs    r*   test_hyper_miscrg      s#   BF!A;;!!Aa==A!Aa??a!Aa??a!Aa!!!!!!Aa!A!####Bq>>QBr??c"gg&&&&&!R!!!!%eCGGBJ//22377777%eCGGBJ//22377777%eQqS!G,,//0Z[[[[[BF)+IJJA%!A!AaCyQ!A#6699!<<<<<BFFFr,   c                     dt           _        t          d                              t          dz            sJ t          d                              t          d          dz  dt          t                    z  z            sJ t          d          t          k    sJ t          d          t          k    sJ t          d	                              d
          sJ t          d                              d          sJ t          t          d          t                    sJ t          t          d          t                    sJ t          d                              d          sJ dt           _        t          dd          
 } t          dd          
 }dt           _        t          |                               d          sJ t          |                              t          dd                    sJ t          |                               d          sJ t          |          }|j                            d          sJ |j        dz                      d          sJ t          d                              t          d
d                    sJ t          d                              t          dd                    sJ t          d                              t          dd                     sJ t          d!                              t          dd"                    sJ t          d#                              t          d$d%                    sJ t          d&                              t          d$d'                    sJ t          t          t                               sJ t          t          t                               sJ t          t                    dk    sJ t          t          t                    t                    sJ t          t                     dk    sJ t          d          t          k    sJ t          d                              t          dz            sJ t          d                              t          t          d(          dz  z  t          d          dz  z  t          d          dz  d)t          t                    z  z  z             sJ t          d          dk    sJ t          d          dk    sJ t          t                    t          dt                    k    sJ t          t                     t          k    sJ t          d                              d*          sJ t          d!                              d+          sJ t          d#                              d,          sJ t          d&                              d-          sJ t          d                              d.          sJ t          d/                              t          dz            sJ t          d/                              t          dz            sJ t          t                                         d0          sJ dt           _        t          dt          z                                d1          sJ t          dt          z                                d2          sJ t          d3t          z                                d4          sJ t          d3t          z                                d5          sJ t          t                    }|j                            d6          sJ |j                            d7          sJ t          t                    }|j                            d8          sJ |j                            d9          sJ 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.3110287771460599052r0   z0.22326753950210985451z-0.47434723226254522087r   z0.91119556380496500866z0.63133428324134524388y      @      z-0.63133428324134524388y            @z0.95357894880405122483z0.23093044503746114444            z-0.23093044503746114444r   r[   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   ellipkr   r   gammasqrtr#   
isinstancer&   ellipefractionrd   realimagisnannan)n1n2rf   s      r*   test_elliptic_integralsr|      s   BF!99<<1#;;>>%++q.!DHH*566666!99$<<3"::==011111"::==011111fRjj#&&&&&fRjj#&&&&&#;;>>233333BF
5
 
 	 B
6&
!
!	!BBF"::==011111"::==46NOOPPPPP"::==011111r

A699122222F5L011111!99<<35MNNOOOOO"::==57PQQRRRRR$<<??379QRRSSSSS$<<??379RSSTTTTT%==C 8:RSSTTTTT%==C 8:STTUUUUU#;;!fSkk3'''''3$<<1$<<3!99<<1#;;>>"s1vvax.ta7ta4PR889TTUUUUU!99>>>>$<<1#;;#a**$$$$3$<<3$<<??GHHHHH$<<??GHHHHH%==HIIIII%==HIIIII!99<<FGGGGG/""%%bd+++++/""%%bd+++++2#;;>>,-----BF!B$<<??UVVVVV!B$<<??UVVVVV#b&>>XYYYYY#b&>>WXXXXXr

A699OPPPPP699PQQQQQr

A699PQQQQQ699PQQQQQBFFFr,   c                  H   dt           _        t          
 } t          t          d          t          z  z   }t          |                               d          sJ t          |                               d          sJ t          |                               d          sJ t          |                               d          sJ t          |                               d          sJ t          |                               d          sJ t          |                               d	          sJ t          |                               d
          sJ t          |                               d          sJ t          |                               d          sJ t          |                              d          sJ t          |                              d          sJ t          |                              d          sJ t          |                              d          sJ t          |                              d          sJ t          |                              d          sJ t          |dz                                d          sJ t          |dz                                d          sJ t          |                              d          sJ t          |                              d          sJ t          d          dk    sJ t          d          t            k    sJ t          t                     t           k    sJ t#          t          d          t$                    sJ t          t                                         t&          dz            sJ t          t                                          t&           dz            sJ t          t                     dk    sJ t          d          t            k    sJ t#          t          d          t$                    sJ t          t                     dk    sJ t          t                     t           k    sJ t          t                      dk    sJ t          t                      dk    sJ t          t                     dk    sJ t          t                     dk    sJ t          t                      dk    sJ t          t                      dk    sJ 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    sJ 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   err   r$   eir   lisicishichifresnelsfresnelcairyaiairybir#   rs   r&   r   )xzs     r*   test_exp_integralsr      s   BF	
A	DGGAIAa5588'(((((a5588'(((((a5588'(((((a5588()))))q6699()))))q6699()))))A;;>>./////A;;>>./////!99<<-.....!99<<+,,,,,a5588>?????a5588>?????a5588>?????a5588@AAAAAq6699?@@@@@q6699?@@@@@AaC==HIIIIIAaC==HIIIII!99<<GHHHHH!99<<CDDDDDa55C<<<<a55SD====c77c>>>>bggs#####c77::bdsd88;;s1uc77a<<<<a55SD====bhh$$$$$#;;!#;;#3$<<13$<<1C==CC==CSD>>T!!!!SD>>T!!!!q66Q;;;;s88s????t99q66cT>>>>s88s??????r,   c                     dt           _        t          d          t           k    sJ t          t                    t          k    sJ t          t                     dk    sJ t          d                              d          sJ dt           _        t          d          } d}t          |           |k    sJ t          d	          } d
}t          |           |k    sJ t          ddt          z  z             } d}d}t          | j                  |k    rt          | j                  |k    sJ dt           _        t          d                              d          sJ t          d                              d          sJ dt           _        t          d                              d          sJ t          d                              d          sJ t          t          dt          d                    }|j                            dddt          z            sJ |j                            t                    sJ t          d                              d          sJ t          d                              d          sJ t          t          dt          d                    }|j                            dddt          z            sJ |j                            t                     sJ t          d                               d!          sJ t          d"          }|j                            d#ddt          z            sJ |j                            d$          sJ d S )%Nr   r   g       y      4@     Q@y;;IWA2,wDr0   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 xr[   abs_epsrel_eps             $y$=KFvhI	             Yyt9u9m	   Fx:^V y      $@      $@yl	L,N{@y      $      $@gC_d>gJM!	@)r   r   r   r#   r   strr$   rv   rw   r   r   fmulepsr   )rssresimus        r*   test_eir     s   BFa55SD====c77c>>>>sd88tf::==KLLLLL BF
5		ACAq66Q;;;;
4ABAq66Q;;;;	%"Q$,A
EC
FCqv;;##af++"4"4"4"4BF{_`````{`aaaaaBFc77::CDDDDDd88;;DEEEEE
4&&&''A6992Aqu9MMMMM699R==d88;;DEEEEEe99<<EFFFFF
4$'''((A6992Aqu9MMMMM699bS>>f::==EFFFFF
7A6990!QsU9KKKKK699,-------r,   c                      dt           _        t          d          t          k    sJ t          t                    dk    sJ t          t                     t	          t           t
                     k    sJ t          d                              d          sJ t          d                              d          sJ t          t          dt          d	                                        d
ddt          z            sJ t          d                              d          sJ t          d                              d          sJ t          t          dt          d	                                        dddt          z            sJ d S )Nr   r   r   y$=KF?v0Oi?r   yt9u?Wr   Tr   yn x;	»r[   r   r   y$=KF?v0Oir   yt9u?W?r   yn x;	;)
r   r   e1r#   rd   r   r   r   r$   r   r9   r,   r*   test_e1r   .  sm   BFa55C<<<<c77a<<<<sd88sC4"~~%%%%c77::HIIIIId88;;KLLLLLd61D)))**--.dnoyz{~y~-d88;;IJJJJJe99<<LMMMMMd7AT***++../eopz{|z.  A  A  A  A  A  A  Ar,   c                     dt           _        t          dd          t          k    sJ t          dd                              dt
          z            sJ t          dd                              dt          d          z  dz            sJ t          dd                              t          d                     sJ t          dd                              d          sJ t          dd                              d          sJ t          d	d                              d
          sJ t          dd                              dt          t
                    z            sJ t          dd          dk    sJ t          dd                              t
                     sJ t          dd                              d          sJ t          dd                              d          sJ t          dd	t          z
                                d          sJ t          dd                              d          sJ t          dd                              d          sJ t          dd                              dt          d          z  t          d          z             sJ t          dd          dz                      d          sJ t          dt                    dk    sJ t          dt                    dk    sJ t          dt                    dk    sJ t          dd                               d!          sJ t          dd                              d"          sJ t          dd                              t          d           t          t          z  z
            sJ t          dd#                              d$          sJ t          d%d                              d&          sJ t          dd                              d'          sJ t          dd                              d(          sJ t          d)d          t          k    sJ 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!	rl   g/ư>y>ʞư禜?y*oBu|?      )r   r   expintr#   r   r   rc   r   rr   r$   r   r9   r,   r*   test_expintr   :  s   BF!A;;#!A;;>>!A#!C==Ac#hhJqL)))))!A;;>>2b66'"""""!A;;>>!!A;;>>$!A;;>>$"c??baj)))))"R==A"R==QB#q>>T"""""*Q""#788888$qsQRRRRR&)$$''(;<<<<<"C((++,EFFFFF!A;;>>!BrFF(3r77*+++++2bMM& $$%9:::::!C==A#c??a&""""!B<<??LMMMMM!A;;>>122222!B<<??BqEE6"Q$;'''''!C==JKKKKK'!	*****!D>>PQQQQQ"T??QRRRRR$q>>S      r,   c                     dt           _        t          t          d          dz                                d          sJ t          t          d          dz                                d          sJ t          d                              d          sJ t          d                              d          sJ t          d	d
z                                t          dz            sJ t          d	d
z            d	d
z  z                      d          sJ t          d          t          d           k    sJ t          d                              t          d          t          t          z  z             sJ dt           _        t                               d                              d          sJ t                               d                              d          sJ t                               d                              d          sJ t                               d                              d          sJ t                               d                              d          sJ t                               d                              d          sJ t                               d                              d          sJ t                               d                              d          sJ t                               d                               d!          sJ t                               d"                              d#          sJ t                               d                              d$          sJ t                               d                              d%          sJ t                               d                              d&          sJ t                               d                              d'          sJ t                               d                              d(          sJ t                               d                              d)          sJ t                               d                              d*          sJ t                               d                              d+          sJ t                               d                               d,          sJ t                               d"                              d-          sJ t                               d.                              d/          sJ t                               d0                              d1          sJ t                               d2                              d3          sJ t                               d4                              d5          sJ t                               d6                              d7          sJ t                               d8                              d9          sJ t                               d:                              d;          sJ t                               d<                              d=          sJ t                               d>                              d?          sJ t                               d@                              dA          sJ t           	                    d.                              dB          sJ t           	                    d0                              dC          sJ t           	                    d2                              dD          sJ t           	                    d4                              dE          sJ t           	                    d6                              dF          sJ t           	                    d8                              dG          sJ t           	                    d:                              dH          sJ t           	                    d<                              d=          sJ t           	                    d>                              d?          sJ t           	                    d@                              dI          sJ dNdK} t                              t          j                  dLk    sJ  | t                              t          j                  t          j        dMz            sJ  | t                              t          j                  t          j        dz            sJ  | t                              t          j                  t          j         dz            sJ t                              dL          dLk    sJ  | t                              d          d          sJ  | t                              d          d          sJ  | t                              d          d          sJ  | t                              d          d          sJ  | t                              d          d          sJ  | t                              d          d          sJ  | t                              d          d          sJ  | t                              d          d          sJ  | t                              d           d!          sJ  | t                              d"          d#          sJ  | t                              d          d$          sJ  | t                              d          d%          sJ  | t                              d          d&          sJ  | t                              d          d'          sJ  | t                              d          d(          sJ  | t                              d          d)          sJ  | t                              d          d*          sJ  | t                              d          d+          sJ  | t                              d           d,          sJ  | t                              d"          d-          sJ  | t                              d.          d/          sJ  | t                              d0          d1          sJ  | t                              d2          d3          sJ  | t                              d4          d5          sJ  | t                              d6          d7          sJ  | t                              d8          d9          sJ  | t                              d:          d;          sJ  | t                              d<          d=          sJ  | t                              d>          d?          sJ  | t                              d@          dA          sJ  | t          	                    d.          dB          sJ  | t          	                    d0          dC          sJ  | t          	                    d2          dD          sJ  | t          	                    d4          dE          sJ  | t          	                    d6          dF          sJ  | t          	                    d8          dG          sJ  | t          	                    d:          dH          sJ  | t          	                    d<          d=          sJ  | t          	                    d>          d?          sJ  | t          	                    d@          dI          sJ d S )ONrk   r   rl   z&0.000000999999999999944444444444446111z -13.2382948930629912435014366276r   z$1.5707963267075846569685111517747537z$-4.87506025174822653785729773959e-11r   r   r
   z!-0.372376123661276688262086695553r	   r   r   r0   gdswy      I@       @yRװђA?y              4@yJmhA(-DT!?y             4@y*mbN9<gAy      I       @yRװђ172@rj   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                 N    t          | |z
            t          |          |z  k    S )N)abs)r   ytols      r*   r   ztest_trig_integrals.<locals>.ae  s!    1Q3xx3q66#:%%r,   r                 ?)r   )r   r   r   r&   r   r   r   r$   r   r   fpr#   ninf)r   s    r*   test_trig_integralsr   Z  s-   BFc!ffWn  !IJJJJJc!ffWn  !CDDDDDf::==?@@@@@f::==?@@@@@b#g;;>>"Q$r3wKKC##$GHHHHHb66beeVb6699RUURT\"""""BF5599<<12222255<<??LMMMMM55::==BCCCCC55==KLLLLL55==IJJJJJ55::==FGGGGG55==IJJJJJ55==KLLLLL55;;>>CDDDDD55<<??LMMMMM5599<<-.....55<<??EFFFFF55::==12222255==MNNNNN55==GHHHHH55::==/0000055==GHHHHH55==MNNNNN55;;>>34444455<<??EFFFFF66#;;>>GHHHHH66&>>JKKKKK66#;;>>CDDDDD66&>>NOOOOO66&>>JKKKKK66$<<??HIIIII66%==HIIIII66%==MNNNNN66"::==01111166%==HIIIII66#;;>>01111166&>>GHHHHH66#;;>>23333366&>>MNNNNN66&>>GHHHHH66$<<??23333366%==GHHHHH66%==MNNNNN66"::==01111166%==GHHHHH& & & &55==A2beeBGnnbeBh'''''2beeBFmmRU1W%%%%%2beeBGnnrufQh'''''5588q====2beeBii2333332beeEllMNNNNN2beeCjjCDDDDD2beeFmmLMMMMM2beeFmmJKKKKK2beeCjjGHHHHH2beeFmmJKKKKK2beeFmmLMMMMM2beeDkkDEEEEE2beeEllMNNNNN2beeBii./////2beeEllFGGGGG2beeCjj2333332beeFmmNOOOOO2beeFmmHIIIII2beeCjj0111112beeFmmHIIIII2beeFmmNOOOOO2beeDkk4555552beeEllFGGGGG2bffSkkHIIIII2bffVnnKLLLLL2bffSkkDEEEEE2bffVnnOPPPPP2bffVnnKLLLLL2bffTllIJJJJJ2bffUmmIJJJJJ2bffUmmNOOOOO2bffRjj1222222bffUmmIJJJJJ2bffSkk1222222bffVnnHIIIII2bffSkk3444442bffVnnNOOOOO2bffVnnHIIIII2bffTll3444442bffUmmHIIIII2bffUmmNOOOOO2bffRjj1222222bffUmmHIIIIIIIr,   c                     dt           _        t          d          dz                      d          sJ t	          d          dz                      d          sJ t          d          ddz  z                      d	          sJ t	          d          dd
z  z                      d          sJ t          d                              d          sJ t	          d                              d          sJ t          d          ddz  z                      d          sJ t	          d          ddz  z                      d          sJ 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   r   r   r   r9   r,   r*   	test_airyr     sI   BF2JJv!!"4555552JJu  !4555554LLT!%%&:;;;;;4LLT!%%&;<<<<<%==344444%==4555558RW$(()VWWWWW8RW$(()WXXXXXXXr,   c                     dt           _        d} t          g dgd                              |           sJ t          g dgd                              |           sJ t	          dd                              |           sJ t	          dd                              |           sJ t	          dd                              d          sJ t	          dd	                              d
          sJ d S )Nr   gj	ך9G!@rO   r   r   r   g    eAz4.9679055380347771271e+27455y            eAz=-2.1222788784457702157e+19410 + 5.0840597555401854116e+19410j)r   r   rb   r   r\   re   s    r*   test_hyper_0f1r     s    BFAUGC  ##A&&&&&TF3""1%%%%%$sq!!!!!%"""""!C==:;;;;;!D>>\]]]]]]]r,   c                     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                              |           sJ t          dgdgd                              |           sJ t          dgdgd                              |           sJ t          dgdgd                              |           sJ t          dgd	gd                              |           sJ t          d
gdgd                              |           sJ t          d
gd	gd                              |           sJ t	          ddd                              |           sJ t	          ddd                              |           sJ t	          ddd                              d          sJ t	          ddd          dz                      d          sJ t	          ddd                              d          sJ t	          dt          dd          d                              d          sJ d S )Nr   g[V?rU   rY   r   yffffff?        r   r         ?              ?        r
   r   g    _Bz!2.1555012157015796988e+4342944809y            _Br   y!xL3\F#r   r   '  iar   y(\?KoQyTO9@#y/@)r   r   rb   r   r]   ru   re   s    r*   test_hyper_1f1r     s   BFA%%%%((+++++%%((++A.....#ws##&&q)))))#uS!!$$Q'''''#wv&&))!,,,,,#uV$$''*****%&#&&))!,,,,,&3%$$''*****&6(6**--a00000#c#!!!$$$$$%C  ##A&&&&&!AdBCCCCC1Quf$(()YZZZZZ"a""8,,,,,"Xa]]=11445cdddddddr,   c                     dt           _        d} t          ddgdgd                              |           sJ t          ddgdgd                              |           sJ t          ddgd	gd                              |           sJ t          ddgd	gd
                              |           sJ t          ddgd	gd
                              |           sJ t          ddgd	gd                              |           sJ t          ddgdgd                              |           sJ t          ddgdgd
                              |           sJ d} t          ddt          z   gdgd                              |           sJ t          ddt          z   gd	gd                              |           sJ t          ddt          z   gd	gd                              |           sJ t          ddt          z   gdgd                              |           sJ d} t          ddgdgdt          dz  z                                 |           sJ t          ddgdgdt          dz  z                                 |           sJ t          ddgdgdt          dz  z                                 |           sJ t          ddgdgdt          dz  z                                 |           sJ d} t          ddgdgd                              |           sJ t          ddgdgd                              |           sJ t          ddgdgd                              |           sJ d } t          ddgdgd!                              |           sJ t          ddgdgd!                              |           sJ t          ddgdgd!                              |           sJ d S )"Nr   g[$?rU   rV   r
   333333?      ?r   g       @y333333?        r          @        y      ?        yO@z?r(,?y?      rY   r   r   皙?r   r               @        r                 y+xV?;CF )r
   r   r   r   )r   r   g?y?        y}?F"?y      @       @)r   r   rb   r   r$   re   s    r*   test_hyper_2f1r     s"   BFA%!c**--a00000%S)),,Q/////#tseS)),,Q/////#tseV,,//22222&%3%0033A66666&%3%--0033333#ux--0033333&'"VHf5588;;;;;8A%Q!c**--a00000#d1fuc**--a00000#d1fuf--0033333#d1fx0033A66666A%QCQqS)),,Q/////#dQCQqS)),,Q/////#dTFC!G,,//22222&!4&#ac'2255a888888A&&#..11!44444#fvhs++..q11111#fvhv..11!444448A&&$//22155555#fvht,,//22222#fvht,,//2222222r,   c                     dt           _        t          dddd                              d          sJ t          ddddd                              d          sJ t          dd	d	d                              d
          sJ t          dd	d	dd                              d          sJ t          dd	dd          dk    sJ t          ddd	d          t          k    sJ 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    sJ t          dddd          dk    sJ t          t          dddd                    sJ t          dddd                              d          sJ t          ddddd                              ddt          z  z             sJ t          dddd                              d          sJ t          ddddd                              d          sJ t          dd	dd          dk    sJ t          dddd          t          k    sJ t          d	d	dd          dk    sJ t          dd	dd                              d          sJ 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    sJ t          ddddd          dk    sJ t          dddd          t          k    sJ t          dd dd          t          k    sJ t          d!d"d#d          dk    sJ t          d!dd	d                              d$          sJ t          dd"d#d          t          k    sJ t          dd%d#d          t           k    sJ t          t          t          z  dz            } t          dd          dz   t          t          t          z  d&z            z  t          dd          dz  z  }t          d'd(d)|                               |          sJ t          d'd(d)| 
                                                              |
                                          sJ t          dd*dd+                              d,          sJ t          dd*dd-                              d.          sJ t          dd*dd                              d/          sJ t          dd*dt                                        d0          sJ t          ddd1d2                              d3          sJ t          d4d"dd2                              d5          sJ t          ddd1d6                              d7          sJ t          d8 t          dd          D                                           d9          sJ t          d: t          dd          D                                           d;          sJ t          d< t          dd          D                                           d=          sJ t          dd>d?d@                              dA          sJ t          ddddB                              dC          sJ t          ddddD                              dE          sJ t          ddddF                              dG          sJ t          dddd                              dH          sJ t          dddd                              dI          sJ t          dJdKdLdM                              dNdt          dOz  P          sJ d S )QNr   r
   r   r      T)eliminate_allr   r   "   r	      r   r   r   y      ?      ?y??F)	eliminateg     `?g     @?gx&?r   g%α?g]?r   r   rR   r   g?gr   g      gr      z1/2z1/61/3rO   z0.999gQՂ?z1.001yH?1-.MVgN~?yɸa?>eV?r   z0.99gv;@rY   gV?r   yN?Q{?c                 b    g | ],}t          d dddt          t          |z            z            -S )r   r   rP   r   r
   ffffff?r_   rc   r$   .0ks     r*   
<listcomp>z'test_hyper_2f1_hard.<locals>.<listcomp>4  4    QQQuVT#ac((];;QQQr,   ylJ@ۢ%@c                 b    g | ],}t          d dddt          t          |z            z            -S )r   rP   r   g?r   r   s     r*   r   z'test_hyper_2f1_hard.<locals>.<listcomp>5  r   r,   yIK@K@J> c                 \    g | ])}t          d ddt          t          |z                      *S )r   rP   r   r   r   s     r*   r   z'test_hyper_2f1_hard.<locals>.<listcomp>6  s0    LLL1uVS1XX66LLLr,   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   r   )r   r   r_   r   r#   rx   r$   rc   r   nthroot	conjugatefsumr(   r   )r   ws     r*   test_hyper_2f1_hardr     s   BF!Br!"""""!Br!$///22488888!Br!#####!Br!$///22488888!Br!""""!Br!####!Da  D((((!Aa??a!Aa??a!Aa??a!Aa!!!!!!Br:&&))(33333!Br:777::8hqj;PQQQQQ&"b#&&))'22222&"b#777::;PQQQQQ"R!####!Abs"""""R!!!!!!Br!%%%%%!Br!!!!!!Br!!!!!!Aa??a!AaE***a////!Aa??c!!!!!Br!####$tD##q(((($r"Q""4(((((!Dq!!S((((!Ca  SD((((AbDFA	1aQrT"W%gallAo5A%eQ''**1-----%eQ[[]]3366q{{}}EEEEE$q'**--.ABBBBB$q'**--.\]]]]]$q"%%(()?@@@@@$q!$$''(VWWWWW!Aa""#899999%Qv&&))*@AAAAA!AaMNNNNNQQU1R[[QQQRRUU  WB  C  C  C  C  CQQU1R[[QQQRRUU  WB  C  C  C  C  CLLaLLLMMPPQ|}}}}}!Ce$$''(FGGGGG!Aa  !MNNNNN!Aa	""%%&RSSSSS!Aa  !OPPPPP!Aa??OPPPPP!Aa566666 #w22556PZ[ehikek5lllllllr,   c                  :   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          sJ t          g dg dd
                              d          sJ t          g dg dd                              d          sJ t          g dg dd                              d          sJ t          g dg dd
                              d          sJ t          g dg dd
                              d          sJ 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   r[   r   gLEy?)r   r
   r   r   )r   rR   r   g_g?      ?r   r   g%<@y@CN?mr)r   r
   r   r   r   )rR   r   r[   	   g?g-?yFo?K:ZI)r   gRQ@gp=
ף@g{Gz@)g@gffffff@g333333@ys?+e)r   r   r   r
   )e   r   g	Y@)rb   r   r#   r9   r,   r*   test_hyper_3f2_etcr   B  s   #a$$''(>?????777B''**+ABBBBB$q1%%(()>?????7771%%(()UVVVVVYYYr**--.DEEEEEYYYq)),,-BCCCCCYYYq)),,-[\\\\\###MMM!44778deeeee!Aq!!S((((!Iq)),,-BCCCCCCCr,   c                     dt           _        t          ddd                              d          sJ t          ddd                              d          sJ t          ddd          dk    sJ t          d	d
d          dk    sJ t          d	dd          t          k    sJ t          d	dd          dk    sJ t          ddd                              d          sJ t          ddd                              d          sJ t          ddd                              d          sJ t          ddd          dk    sJ t          ddd          dk    sJ t          ddd                              dt          d          z            sJ t          ddt                                        d          sJ t          ddd           d!z                      d"          sJ t          d#d$d%          d&z                      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      @   rR   g?rY   r[   y      Y@      i@r   yiMؿcf)r   r
   r   xr   y       yk9)r   r   hyperur   r#   rr   r   r9   r,   r*   test_hyper_ur   P  s   BF!Bq>>T"""""!Du%%%%%!Aa==C"Qq>>T!!!!"Qq>>S    "R??a!Aa==566666!Bq>>455555!Aa==F#####!Af$$$$"Qy!!Z////#c$""1T"XX:.....!Ab>>34444458$$U*../^_____5&&v-112IJJJJJJJr,   c                     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    sJ t          ddd          dk    sJ t          ddd                              d          sJ t          d	dd
                              d          sJ t          d	dd                              d          sJ t          d	dd                              d          sJ t          ddd                              d          sJ t          ddd                              d          sJ t          ddd                              d          sJ t          dddd          dk    sJ t          dddd          dk    sJ dD ]4} | t           _        t          d
dd                              d           sJ 5d S )!Nr   r   r
   r   r   yehǇ?[2222~r   r   r   r   g     @O@r0   i)g-C6?gd?r   r   gMbP?g\1 ?r   y)`?0?)r   rR   rQ   gWuJIgٍ=,?r   y      ?      ?   zeroprec)r   r0   rW   g;On?z1.006867007239309717945323585695344927904000945829843527398772456281301440034218290443367270629519483 + 1.238277162240704919639384945859073461954721356062919829456053965502443570466701567100438048602352623e-46j)r   r   rb   hyp2f0r   )ds    r*   test_hyper_2f0r  f  sA   BF!Ar!q1----!Aa==PQQQQQ!Aa==A!Aa==A"R??a     "Qst$$$$$"Qr??i((((("Qv!!"899999#d5!!$$%:;;;;;#d4  ##$TUUUUU%56699:NOOOOO"Qx---2222!Bx---2222 @ @c3&&))  +  @  @  	@  	@  	@  	@@ @r,   c                     dt           _        t          dgddgd          t          dddd          k    sJ d\  } }}t          | ||d                              d          sJ t          | ||d	                              d
          sJ t          | ||d                              d          sJ t          | ||d                              d          sJ t          | ||d                              d          sJ t          | ||d                              d          sJ t          | ||d                              d          sJ t          | ||d                              d          sJ t          | ||d                              d          sJ t          | ||dt
          z                                d          sJ t          | ||d	t
          z                                d          sJ t          | ||dt
          z                                d          sJ t          | ||dt
          z                                d          sJ t          | ||dt
          z                                d          sJ t          | ||dt
          z                                d          sJ t          | ||dt
          z                                d          sJ t          | ||dt
          z                                d           sJ t          | ||dt
          z                                d!          sJ d S )"Nr   r   r
   r   r   )r   r   rP   r   r   gԢr@r   g߷Ar   guT>*Er   gcQr   ga&j۪xrl   z9.8851796978960318255e+867逖 z1.1505659189516303646e+2746 z1.4672005404314334081e+8685r   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   rb   r^   r   r$   )a1b1b2s      r*   test_hyper_1f2r  |  sO   BF!aU1!Aa0000!HBr""R2!!"677777"R3""#899999"R4  ##$=>>>>>"R5!!$$%>?????"R6""%%&@AAAAA"R7##&&'CDDDDD"R5!!$$%BCCCCC"R5!!$$%BCCCCC"R6""%%&IJJJJJ"R2a4  ##$STTTTT"R3q5!!$$%STTTTT"R46""%%&TUUUUU"R57##&&'^_____"R6!8$$''(`aaaaa"R719%%(()cddddd"R57##&&'deeeee"R57##&&'cddddd"R6!8$$''(qrrrrrrrr,   c            	         dt           _        t          ddgg dd          t          dddddd          k    sJ d	\  } }}}}t          | ||||d
                              d          sJ t          | ||||d                              d          sJ t          | ||||d                              d          sJ t          | ||||d                              d          sJ t          | ||||d                              d          sJ t          | ||||d                              d          sJ t          | ||||d                              d          sJ t          | ||||d                              d          sJ t          | ||||d
t
          z                                d          sJ t          | ||||dt
          z                                d          sJ t          | ||||dt
          z                                d          sJ t          | ||||dt
          z                                d          sJ t          | ||||dt
          z                                d          sJ t          | ||||dt
          z                                d           sJ t          | ||||dt
          z                                d!          sJ t          | ||||dt
          z                                d"          sJ t          | ||||dt
          z                                d#          sJ d S )$Nr   r   r
   )r   r   r   rR   r   r   r   )r  rP   r   r
   r   r   gJo!m`@r   gb3lKEr   g)&uLQr   g>dxrl   z2.0291718386574980641e865r  z7.7639836665710030977e2742r	  z3.2537462584071268759e8681r   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   rb   ra   r   r$   )r
  a2r  r  b3s        r*   test_hyper_2f3r    sv   BF!Awwwq!!VAa!Aa%8%888882NBr"R"R2b$$''(=>>>>>"R2b&&))*BCCCCC"R2b''**+CDDDDD"R2b((++,EFFFFF"R2b''**+FGGGGG"R2b''**+GHHHHH"R2b''**+GHHHHH"R2b((++,OPPPPP"R2bA&&))*YZZZZZ"R2bQ''**+YZZZZZ"R2ba((++,Z[[[[["R2bq)),,-deeeee"R2b**--.fggggg"R2b++../ijjjjj"R2bq)),,-jkkkkk"R2bq)),,-jkkkkk"R2b**--.wxxxxxxxr,   c                     dt           _        t          ddgddgd          t          ddddd          k    sJ d\  } }}}t          | |||d                              d	          sJ t          | |||d
                              d          sJ t          | |||d                              d          sJ t          | |||d                              d          sJ d S )Nr   r   r
   r   r   r   )r   r   rU   r   r   g(wVbAr   z1.2012553712966636711e+4358igir   z+1.1148680024303263661e+43429448190325182840)r   r   rb   r`   r   )r
  r  r  r  s       r*   test_hyper_2f2r    s    BF!A!uQ6!Aa!#4#44444&KBr"R"R2b!!$$%9:::::"R2e$$''(EFFFFF"R2f%%(()@AAAAA"R2f%%(()VWWWWWWWr,   c                     dt           _        t          dddd                              d          sJ t          dddd          d	k    sJ t          d
ddd                              d          sJ t          dddd                              d          sJ t          dddd                              d          sJ t	          dd          dk    sJ t	          dd                              d          sJ 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    sJ t	          dd          dk    sJ t	          dd          dk    sJ t	          dd
                              d          sJ t	          t
          t
                                         d          sJ t          dd          dk    sJ t          dd          dk    sJ t	          dd          t          k    sJ t	          dd          t           k    sJ t	          d d          t          t          t                    k    sJ t	          d!d          t          t           t                     k    sJ t          ddd                              d"          sJ t          ddt
          z   d                              d#          sJ d S )$Nr   r   r
   r   r   g¹ @r   r   g     %@r   g?r   gVj+\r   r   g{GzĿr   r   g     LA@r   r   iW r   gZb`B?r[   g   `{}@y@/#,?rR   r   r         @y      @      ?y      @      ?g      yUUUUUU?UUUUUU@)r   r   jacobir   legendrer$   chebyuchebytr#   rd   laguerrer9   r,   r*   test_orthpolyr    s   BF"Qq  -----!Aa((((#d1Q""#9:::::"aA!!%(((((!Ra  ##H-----Aq>>V####C??455555Br??aAb>>QAq>>QAr??b    Aq>>QAr??b    Ac??o.....Aqb>>KLLLLL!A;;!!A;;"Cs""""Ct####F2#c#,,....F2#sdC4..0000Ar1  (((((AqsC  ##$RSSSSSSSr,   c                  :   dt           _        t          dd                              d          sJ t          dd                              d          sJ t          dd                              d          sJ t          dd          dk    sJ t          dd                              d          sJ t          dd                              d          sJ t          dd                              d	          sJ t          dd                              d
          sJ t          dd                              d          sJ t          dd                              d          sJ t          dd          dk    sJ t          d	d	                              d          sJ t          dd	                              d          sJ t          d
d	                              d          sJ t          dd	                              d          sJ t          dd                              d          sJ t          dd                              d          sJ t          dd                              d          sJ t          dd                              d          sJ t          dd                              d          sJ t          dd                              d          sJ t          d d                              d!          sJ t          d d                              d"          sJ t          d d                              d#dt          $          sJ t          d d                              d%          sJ t          d d                              d&dt          $          sJ t          d d                              d'dt          $          sJ t          d(dt
          z
                                d)          sJ 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'%r   y        M9;Dr   y       M9;g      #y:fTȾQk>y:fTȾQkgyQrd;r   z1.3106082028470671626e4355yRd]Rd]yRd]Rd];r   y@o׿a)r   r   hermiter   r   r$   r9   r,   r*   test_hermiter    s   BF2q>>S!!!!!2q>>3444441a==A1a==A1a==B1a==A1a==A1b>>R     1b>>R     3??4555551a==A1Q<<??4     1Q<<??32a==5666662a==4555551dy)))))1e
+++++1c??3444441d5666661d5666661e 7888884!!"WXXXXX4""#XYYYYY4  !:As SSSSS4!!">?????4!!"Ycdnq!rrrrr4""#Zdeor"sssss4A!!"OPPPPPPPr,   c                     dt           _        t          ddd                              d          sJ t          ddd                              d          sJ t          ddd          dk    sJ t          dd	d          dk    sJ t          d
dd                              d          sJ t          ddd                              d          sJ t          ddd                              d          sJ t          ddd                              d          sJ t          ddd                              d          sJ t          ddt          z
  d                              d          sJ 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   
gegenbauerr   r$   r9   r,   r*   test_gegenbauerr"    s   BFa!#####a!$$$$$a!!!!!a1""""b#q!!$$T*****aq!!$$R(((((aq!!$$R(((((aq!!$$R(((((dD!$$''(>?????dAaC&&))*XYYYYYYYr,   c                  p   dt           _        t          ddd          t          dd          k    sJ t          ddd                              d          sJ t          dddd	
                              d          sJ t          ddd                              d          sJ t          dt
          z   dt
                                         d          sJ t          dt
          z   dt
           d	
                              d          sJ t          ddd	                              d          sJ t          ddd	d	
                              d          sJ t          ddd                              d          sJ t          dddd	
                              d          sJ t          d	dd	                              d          sJ t          d	d	d	                              d          sJ t          d	dd	                              d          sJ t          ddd                              d          sJ t          ddd                              d          sJ t          ddd                              d          sJ t          ddd                              d          sJ 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$   r9   r,   r*   test_legenpr'    s   BF!Aa==HQqMM))))"b#!!"899999"b#A&&&))*ABBBBB"a  !899999!A#taR  ##$RSSSSS!A#taRa(((++,Z[[[[[!Aa==A!AaQ""1%%%%%!Ac??455555!Acq!!!$$%;<<<<<!Aa==D!!!!!!Aa==K(((((!Aa==A!C??NOOOOO"T! PQQQQQ"SMNNNNN"S!!"9:::::::r,   c                     dt           _        t          } t           | ddd                    sJ t           | ddd                    sJ t           | dddd                    sJ t           | dddd                    sJ  | dddd                              d          sJ  | ddddd	
                              d          sJ  | dddd                              d          sJ  | dddd                              t
                    sJ  | ddddd	
                              d          sJ  | dddd                              d          sJ  | ddd                              d          sJ  | ddd                              d          sJ  | dddd	                              d          sJ  | ddd                              d          sJ  | ddd                              d          sJ  | dddd                              d          sJ  | dddd                              d          sJ  | dddd                              d          sJ  | dddd                              d          sJ  | dddd                              d          sJ  | ddd                              d          sJ  | ddd                              d          sJ  | ddd                              d          sJ  | ddd                              d          sJ  | ddd                              d          sJ  | ddd                              d          sJ  | ddd                              d          sJ  | dddd	                              d          sJ  | ddd                              d          sJ  | ddd                              d           sJ  | dddd                              d!          sJ  | dddd                              d"          sJ  | dddd                              d#          sJ  | dddd                              d$          sJ  | dddd                              d!          sJ  | dddd                              d%          sJ  | dddd                              d#          sJ  | dddd                              d$          sJ  | d&d'dd                              d(          sJ  | d&d'dd                              d)          sJ  | d*dd                              d+          sJ  | d*dd                              d,          sJ  | d*dd                              d-          sJ  | d*dd                              d.          sJ  | d*dd                              d/          sJ  | d*ddd                              d0          sJ  | d*ddd                              d1          sJ  | d*ddd                              d2          sJ  | d*ddd                              d3          sJ  | 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$?r@   y        <@gJj?gfFU?g 6Կy<P0(?y        P0(?y 6ԿJjyfFU?fFUyJj? 6?gP0(ӿ)r   r   legenqrx   r   r$   )fs    r*   test_legenqr+    s9   BFA1Qq??1Qr1Qqa!!!!!1Qrq!!!"""""1Qq???b!!!!!1R!C(((++A.....1S1! 6777771Qq???a     1R!C(((++A.....1S1! <=====1Qq;;>>IJJJJJ1Qq;;>>1222221QqC   ##A&&&&&1Qq::==/000001Qq::==GHHHHH1Qq1  !8999991Qq1  !PQQQQQ1Qq???5666661Qq! NOOOOO1Qq! 6777771Qq;;>>HIIIII1Qq;;>>1222221Qq88;;r??1Qq::==0111111Qq::==GHHHHH1Qq;;>>IJJJJJ1Qq;;>>0111111QqC   ##A&&&&&1Qq::==0111111Qq::==GHHHHH1Qq! 7888881Qq! 6777771Qq! 6777771Qq! 7888881Qq1  !8999991Qq1  !6777771Qq1  !7888881Qq1  !8999991T41%%%(()]^^^^^1T4A&&&))*\]]]]]1T!D>>3444441T!D>>2333331T!A;;>>/000001T!C==3444441T!C==KLLLLL1T!Da   ##$;<<<<<1T!Da   ##$STTTTT1T!A1  !OPPPPP1T!CQ""#QRRRRR1T!CQ""#:;;;;;;;r,   c                     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    sJ t          t          t                    t          k    sJ dt          dt	          d                    z                      d          sJ t          dd                              d          sJ t          dd                              d	          sJ t          dt                                        d
          sJ t          d          t          dd          k    sJ t          dd                              d          sJ d S )Nr   r   r   r   r
   gDSYC?g=O?r   gN_?rn   r	   r   yk7WO?>I?)r   r   agmr$   rr   r   r9   r,   r*   test_agmr.  K  sI   BFq88q====q88q====q88q====q88q====q88q====c!DGGnn  !566666q88;;,-----q88;;,-----q88;;ABBBBBq66S1XXr!99<<?@@@@@@@r,   c                     dt           _        t          dd                              dt	          d          z            sJ t          ddd                              ddt	          d          z  z
            sJ t          ddd                              d	t	          d          z  d
t	          d          z  z             sJ t          dd                              d          sJ t          ddd
                              d          sJ t          dd                              d          sJ t          ddt
          z   dt
          z
                                d          sJ t          ddt
          z
                                d          sJ t          dd
dd                              d          sJ t          ddt                                        t          d                    sJ t          dd                              d          sJ t          dd                              d          sJ t          dd                              d          sJ t          dd                              d          sJ t          ddd          t          k    sJ t          dd                               d!          sJ t          ddd          dk    sJ t          ddt
          z   dt
          z
                                d"          sJ t          d#d                              d$          sJ t          d%d%                              d&          sJ t          d'd%                              d(          sJ t          dd%                              d)          sJ t          d*d%                              d+          sJ t          t          ddd,                    sJ t          d%dd,          t          k    sJ t          ddd,          dk    sJ t          ddd,          dk    sJ t          dd-d,          dk    sJ t          dd.d,          dk    sJ t          dd/d,          dk    sJ t          d%dd,          dk    sJ t          d%d.d,          dk    sJ t          d%d/d,          dk    sJ t          d%dd,          dk    sJ t          d%d0d,          dk    sJ t          d%d1d,          dk    sJ t          d%d2d,          dk    sJ t          ddd,                              t	          d                    sJ t          dd.d,                              t	          d0                    sJ t          dd/d,                              t	          d1                    sJ t          dd2d,                              t	          d3                    sJ t          d4d                              d5dd6t          z  7          sJ t          d4dd,          dk    sJ t          d4d2                              d8dd6t          z  7          sJ t          d4d2d,          dk    sJ t          d-d9d,                              d:          sJ t          d;d;d,                              d<          sJ t          dd
d          t          ddd
           k    sJ t          d
dd                              d=          sJ t          d
ddd,                              d>          sJ t          ddd                              d?          sJ t          dddd,          dk    sJ t          d%dd                              d@          sJ t          d%ddd,          dk    sJ t          ddd                              d?          sJ t          dddd,          dk    sJ t          ddAdB                              dCdd6t          z  7          sJ t          dAdd                              dD          sJ t          ddE          dk    sJ t          ddF          dk    sJ t          dd%          dk    sJ t          ddG          dk    sJ t          dHd%          dk    sJ d S )INr   r
   r   rR   r   r   r   r   r   r   r	   r@   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)regularizedr   i  l       73Me'r   l    73Me'r   rm   z1.3669297209397347754e-301037r[   r   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   rc   r$   r#   rq   rx   r   r9   r,   r*   test_gammaincr5  Y  sY	   BFAa==Ac"ggI&&&&&Aa??a#b''	k*****Aa??bRj3r77233333D!!"OPPPPPAa??566666Aa==344444Aac!A#!!"PQQQQQAac??LMMMMMAa$""#9:::::C#!!%**-----F3""#?@@@@@F3""#?@@@@@D%  ##$QRRRRRD&!!$$%TUUUUUAa??c!!!!A???344444Aa??aAac!A#!!":;;;;;D455555Br??MNNNNNBr??LMMMMMBr??MNNNNNBr??NOOOOO!QD11122222Bt,,,3333Aqd+++q0000Aqd+++q0000At...!3333At...!3333Av4000A5555Bt,,,1111B$///14444BD111Q6666B---2222B4000A5555BT222a7777B$///14444Aqd+++..s2ww77777At...11#e**=====Av400033CLLAAAAAAt...11#e**=====HQ""#BAWXY\W\"]]]]]HQ4000A5555HT""%%&fpq{|  ~A  |A%  B  B  B  B  BHTd333q8888D$D111445efffffE5d333667ghhhhhAa??x!A.....Aq! 566666Aq!...112HIIIIIAq! 788888Aq!...!3333B1  !899999B1$///14444Aq! 788888Aq!...!3333Aue$$''(EqZ[\_Z_'`````E1a  ##$@AAAAAAe!!!!Ae!!!!Ab>>QAe!!!!D!!!!!!r,   c                  p   dt           _        t          dd                              d          sJ t          dd                              d          sJ t          dd                              d          sJ t          d	d                              d
          sJ t          dd                              d          sJ t          dd                              d          sJ t          dd                              d          sJ t          dd                              d          sJ t          dd                              d          sJ t          dd                              d          sJ t          d	d                              d          sJ t          dd                              d          sJ t          dd                              d          sJ t          dd                              d          sJ t          dd                              dd	dt          z            sJ t          dd                              dd	dt          z            sJ t          dd                              dd	dt          z            sJ t          d	d                              dd	dt          z            sJ t          dd                              d d	dt          z            sJ t          dd                              d!d	dt          z            sJ t          dd                              d"d	dt          z            sJ t          dd#                              d$          sJ t          dd#                              d%          sJ t          dd#                              d&          sJ t          d	d#                              d'          sJ t          dd#          } |                     d(          sJ | j                            d)          sJ t          dd#          } |                     d*          sJ | j                            d+          sJ t          dd#          } |                     d,          sJ | j                            d-          sJ t          dd.                              d/d	dt          z            sJ t          dd.                              d/d	dt          z            sJ t          dd.                              d/d	dt          z            sJ t          d	d.                              d/d	dt          z            sJ t          dd.                              d/d	dt          z            sJ t          dd.                              d/d	dt          z            sJ t          dd.                              d/d	dt          z            sJ t          dd0                              d1          sJ t          dd0                              d1          sJ t          dd0                              d1          sJ t          d	d0                              d1          sJ t          dd0          } |                     d1          sJ | j                            d)          sJ t          dd0          } | j                            d2          sJ |                     d1          sJ t          dd0          } | j                            d3          sJ |                     d1          sJ t          dd                              d4          sJ t          dd                              d5          sJ t          dd                              d6          sJ t          d	d                              d          sJ t          dd                              d7          sJ t          dd                              d8          sJ t          dd                              d9          sJ t          dd                              d:          sJ t          dd                              d;          sJ t          dd                              d<          sJ t          d	d                              d          sJ t          dd                              d=          sJ t          dd                              d>          sJ t          dd                              d?          sJ t          dd                              d@d	dt          z            sJ t          dd                              dAd	dt          z            sJ t          dd                              dBd	dt          z            sJ t          d	d                              d d	dt          z            sJ t          dd                              dCd	dt          z            sJ t          dd                              dDd	dt          z            sJ t          dd                              dEd	dt          z            sJ t          dd#          } |                     dF          sJ | j                            dG          sJ t          dd#          } |                     dH          sJ | j                            dI          sJ t          dd#          } |                     dJ          sJ | j                            dK          sJ t          d	d#          } |                     d(          sJ | j                            d)          sJ t          dd#          } |                     dL          sJ | j        d	k    sJ t          dd#          } |                     dM          sJ | j        d	k    sJ t          dd#          } |                     dN          sJ | j        d	k    sJ t          dd.                              dOd	dt          z            sJ t          dd.                              dPd	dt          z            sJ t          dd.                              dQd	dt          z            sJ t          d	d.                              d/d	dt          z            sJ t          dd.                              dRd	dt          z            sJ t          dd.                              dSd	dt          z            sJ t          dd.                              dTd	dt          z            sJ t          dd0          } |                     dU          sJ | j                            dG          sJ t          dd0          } |                     dV          sJ | j                            dI          sJ t          dd0          } |                     dW          sJ | j                            dK          sJ t          d	d0          } |                     d1          sJ | j                            d)          sJ t          dd0                              dX          sJ t          dd0                              dY          sJ t          dd0                              dZ          sJ 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r[   r   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   r   rw   r4  )r   s    r*   test_gammainc_expint_nr7    s}    BF"S>>455555"S>>455555"S>>455555!C==455555!C==455555!C==455555!C==455555"T??455555"T??455555"T??455555!D>>344444!D>>LMMMMM!D>>KLLLLL!D>>LMMMMM"S>>7AcERRRRR"S>>7AcERRRRR"S>>7AcERRRRR!C==61S5QQQQQ!C==61S5QQQQQ!C==61S5QQQQQ!C==61S5QQQQQ"T??9:::::"T??9:::::"T??9:::::!D>>899999qA44+,,,,,699+,,,,,qA44+,,,,,699+,,,,,qA44+,,,,,699+,,,,,"-..112cmnxyz}x}1~~~~~"-..112cmnxyz}x}1~~~~~"-..112cmnxyz}x}1~~~~~!,--001blmwxy|w|0}}}}}!,--001blmwxy|w|0}}}}}!,--001blmwxy|w|0}}}}}!,--001blmwxy|w|0}}}}}".//223efffff".//223efffff".//223efffff!-..112deeeeeq*++A44BCCCCC699+,,,,,q*++A699/0000044BCCCCCq*++A699/0000044BCCCCCBs899999Bs899999Bs788888Ac??677777Ac??455555Ac??455555Ac??455555Bt PQQQQQBt PQQQQQBt NOOOOOAdNOOOOOAd455555Ad566666Ad455555Bs91aPSeTTTTTBs8!QsUSSSSSBs8!QsUSSSSSAc??8!QsUSSSSSAc??8!QsUSSSSSAc??7AcERRRRRAc??8!QsUSSSSSDA44*+++++699+,,,,,DA44+,,,,,699+,,,,,DA44*+++++699*+++++4A44+,,,,,699+,,,,,4A44*+++++6Q;;;;4A44+,,,,,6Q;;;;4A44*+++++6Q;;;;B/00334eopz{|z3  A  A  A  A  AB/00334eopz{|z3  A  A  A  A  AB/00334eopz{|z3  A  A  A  A  AA.//223dnoyz{~y~2A.//223aklvwx{v{2|||||A.//223cmnxyz}x}2~~~~~A.//223dnoyz{~y~2-..A44ABBBBB699+,,,,,-..A44BCCCCC699+,,,,,-..A44ABBBBB699*+++++,--A44BCCCCC699+,,,,,A/00334efffffA/00334fgggggA/00334efffffffr,   c                     dt           _        t          dddd                              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   r   gO@r  y      ?       @r   rR   y	?f,?r   r   r   gX|W'@)r   r   betaincr   r9   r,   r*   test_incomplete_betar:  $  s    BF2bT""%%&?@@@@@3vc!$$''(bccccc1Qq9:::::::r,   c                  `   dt           _        t          d          dk    sJ t          d                              d          sJ t          d                              d          sJ t          d                              d          sJ t          t                                        d	          sJ t          d
                              d          sJ t          d                              d          sJ t          t          d          t                    sJ t          t          d          t                    sJ t          t          d          t                    sJ t          t          d          t                    sJ t          t                    dk    sJ t          t                     dk    sJ t          d          dk    sJ t          dt          z                                d          sJ t          t                    t          k    sJ t          t                     t           k    sJ t          d          t          d          k    sJ t          d          t          d          k    sJ t          d                              dt          d          z
            sJ t          d          dk    sJ t          d                              dt          d          z
            sJ t          d                              dt          d          z
            sJ t          dt          z                                dt          dt          z            z
            sJ 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                              sJ t          d          t          d          dz  z                      d          sJ t          d                              d          sJ t          d                              d          sJ t          d                              d          sJ dt           _        t          d          dd z  z                      d!          sJ t          d          dd"z  z                      d#          sJ dt           _        t          t          ddz                      d$k    sJ t          d          dk    sJ t          d%                              d&          sJ t          d'                              d(          sJ t          d          t          k    sJ t          d          t           k    sJ t          t          d)                                        d)          sJ t          t          d*                                        d*          sJ t          t          d+                                        d+          sJ dt           _        t          t          d,                                        d,          sJ t          t          d-                                        d-          sJ t          t          d.                                        d.          sJ dt           _        t          d/          } | j        dk    sJ | j                            d0          sJ t          d1                              d          sJ t          d2          dd3z  z                      d4          sJ t          d5                              d6          sJ d S )7Nr   r   r   gAg?r   y^u;y            yxGDY$W
?g|b?r   y        .($h?             y       .($hr                   gL:?ri   y?      ?ro   r
   r3  r   r   iMz3.63998738656420y       @      "@y%?@[09Ay%?@[0A9y             "y%?@[09Ar0   -   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   rs   r&   rd   r#   erfierfcrx   ry   r   erfinvrv   rw   re   s    r*   test_erfrC  *  s   BFq66Q;;;;q6699+,,,,,t99<<HIIIIIu::==JKKKKKr77::,-----r77::,-----s88;;./////c!ffc"""""c"ggs#####c!ffc"""""c"ggs#####s88q====t99????77a<<<<"::==-.....99::#t99A::a    x==AX./////77a<<<<77::aAh88;;qRy!!!!!"::==3qt99%%%%%99>>>>>>Q::????99>>>>cKKB))--.@AAAAAt99<<GHHHHH::==GHHHHH;;>>IJJJJJBFHHRVO UVVVVVHHRX!!"WXXXXXBFtBF||  !Y  Y  Y  Y  Y!99>>>>#;;>>011111$<<??233333!99"::#vd||%%%%%vn%%&&)).99999vo&&''**?;;;;;BFv:;;<<??@deeeeev;<<==@@Afgggggv<==>>AABhiiiiiBFS		A6Q;;;;699344444==ALLT!%%&TUUUUU>>RSSSSSSSr,   c                  r   dt           _        t          t                     dk    sJ t          t                    dk    sJ t          ddd                              t          ddd                    sJ t          d t           t          g          dk    sJ t          d          d	k    sJ t          d
d
          d	k    sJ t          t                     dk    sJ t          t                    dk    sJ t          d          dk    sJ t          d          dz                      d          sJ d S )Nr   r   r   r
   r   r   c                 $    t          | dd          S )Nr   g?)npdfr   s    r*   <lambda>ztest_pdf.<locals>.<lambda>n  s    D4,, r,   r   r   r   r   ro         B3v^!< gwbLz@)r   r   rF  r#   r   quadtsncdfr9   r,   r*   test_pdfrL  i  s   BF::????99>>>>!A;;>>$s1Q--(((((,,tSk::a????77c>>>>!99::????99>>>>88q====IIf  !23333333r,   c                  X   dt           _        t          d          dk    sJ t          d          dk    sJ t          t                    t          k    sJ t	          t          t
                              sJ t          t          d          j        t          k    sJ t          t          d          j                            dt          z            sJ t          t           d          j        t          k    sJ t          t           d          j                            dt          z            sJ t          dd          t           k    sJ t          dd          t           k    sJ t          dd          t           k    sJ t          t                                        d          sJ t          d                              d          sJ t          t           dz                                t          t          z  dz            sJ t          t          d           dz                                t          d                     sJ t          d	                              d
          sJ t          d                              d          sJ t          dd                              d          sJ t          dd                              d          sJ t          d	d                              d          sJ t          dd                              d          sJ t          d	d                              d          sJ t          dd                              d          sJ t          d                              d          sJ t          dd                              d          sJ t          dd                              d          sJ t          d                              d          sJ t          dd                              d          sJ t          dd                              d          sJ t          dd                              d          sJ t          d                              d          sJ t          d                              d           sJ t          dd                              d!          sJ t          dd                              d"          sJ t          d#d                              d$          sJ t          dd                              d%          sJ t          dd                              d&          sJ t          dd'                              d(          sJ t          d)d*                              d+          sJ t          d)d                              d,          sJ t          dt          z   d-z                                d.          sJ t          dt          z   d-z  d                              d/          sJ t          dt          z   d-z  d                              d0          sJ t          dt          z   d-z  d*                              d1          sJ t          dt          z    d-z                                d2          sJ t          dt          z    d-z  d                              d3          sJ t          dt          z    d-z  d                              d4          sJ t          dt          z    d-z  d*                              d5          sJ d6t           _        t          t                                        d7          sJ dt           _        t          d8                              d9          sJ t          d:                              d;          sJ t          d<                              d=          sJ t          d>                              d?          sJ t          d@                              dA          sJ t          ddB          } | j                            dC          sJ | 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@r0   z81.073658194796149172092178407024821347547745350410314531y      Mb`?y7W@;ūԎ?y      Mb`y7W@;ūԎyy&1ܿ?y)!faYNJuM?yy&1ܿٿy)!faYNJuMyʡE-C6?yQW
㿘"1k?r   gQGg[[AD)r   r   lambertwr#   rx   ry   rv   rw   r   r   r   r$   log)r   s    r*   test_lambertwrP  w  s   BFA;;!D>>QC==C#C??3&&&&C??""1R4(((((SD C''''SD ##AbD)))))Ab>>cT!!!!Aa==SD    Aa==SD    A;;>>!A;;>>./////RCE??ad1f%%%%%SVVGAI!!3q66'*****D>>122222E??344444Ia  ##$<=====E"  !566666D IJJJJJE"  !566666DHIIIIIE! IJJJJJB<<??CDDDDDBq>>FGGGGGBr??FGGGGGD>>011111DGHHHHHD HIIIIIDFGGGGGD>>GHHHHHI!!"KLLLLLDHIIIIID HIIIIID KLLLLLIa  ##$NOOOOOIb!!$$%9:::::Ib!!$$%OPPPPPJq!!$$%NOOOOOJq!!$$%TUUUUUQqS"H  !KLLLLLQqS"HQ""#LMMMMMQqS"HR  ##$MNNNNNQqS"HQ""#KLLLLLacF2I!!"MNNNNNacF2Ia  ##$MNNNNNacF2Ib!!$$%NOOOOOacF2Ia  ##$LMMMMMBFB<<??UVVVVVBFK  ##$UVVVVVK  ##$UVVVVVK  ##$UVVVVVK  ##$UVVVVV$%%(()Z[[[[[6A699+,,,,,699.///////r,   c                  d   d } dt           _         | t          d          d          sJ  | t          d          d          sJ  | t          d          d          sJ  | t          d	          d
          sJ  | t          dd          d          sJ  | t          dd          d          sJ  | t          dd          d          sJ  | t          d	d          d          sJ  | t          dd          d          sJ  | t          dd          d          sJ  | t          dd          d          sJ  | t          d	d          d          sJ d }d }d }d }dt           _        dt          z  dt          z  z   }t          d          }t          d          }t          d          }t          d          }	t          d          }
t          d           }t          d!          }dt           _         | t           |||                    d"          sJ  | t           |||                    d#          sJ  | t           |||                    d$          sJ t           |||	                    dk    sJ t           |||
                    dk    sJ t           |||                    dk    sJ t           |||                    dk    sJ  | t           |||                    d%          sJ  | t           |||                    d&          sJ  | t           |||                    d'          sJ  | t           |||	                    d(          sJ  | t           |||
                    d)          sJ  | t           |||                    d*          sJ  | t           |||                    t          dd+                    sJ  | t           |||                    d,          sJ  | t           |||                    d-          sJ  | t           |||                    d.          sJ  | t           |||	                    d/          sJ  | t           |||
                    d0          sJ  | t           |||                    d1          sJ  | t           |||                    t          d2d3                    sJ  | t           |||                    d4          sJ  | t           |||                    d5          sJ  | t           |||                    d6          sJ  | t           |||	                    d7          sJ  | t           |||
                    d8          sJ  | t           |||                    d9          sJ  | t           |||                    t          d2d:                    sJ  | t           |||          d          d;          sJ  | t           |||
          d          d<          sJ  | t           |||          d          d<          sJ  | t           |||          d          d<          sJ  | t           |||          d          d=          sJ  | t           |||          d          d>          sJ  | t           |||          d          d?          sJ  | t           |||	          d          d/          sJ  | t           |||
          d          d0          sJ  | t           |||          d          d1          sJ  | t           |||          d          t          d2d3                    sJ  | t           |||          d          d@          sJ  | t           |||          d          dA          sJ  | t           |||          d          dB          sJ t           |||	          d          dk    sJ t           |||
          d          dk    sJ t           |||          d          dk    sJ t           |||          d          dk    sJ  | t           |||          d          dC          sJ  | t           |||          d          dD          sJ  | t           |||          d          dE          sJ  | t           |||	          d          dF          sJ  | t           |||
          d          dG          sJ  | t           |||          d          dH          sJ  | t           |||          d          t          ddI                    sJ  | t           |||          d          dJ          sJ  | t           |||          d          dK          sJ  | t           |||          d          dL          sJ  | t           |||	          d          d7          sJ  | t           |||
          d          d8          sJ  | t           |||          d          d9          sJ  | t           |||          d          t          d2d:                    sJ  | t           |||          d          dM          sJ  | t           |||          d          dN          sJ  | t           |||          d          dO          sJ  | t           |||	          d          dO          sJ  | t           |||
          d          dO          sJ  | t           |||          d          dO          sJ  | t           |||          d          dO          sJ dPt           _        dt          z  t          dQ          z   }dR}dt           _        t          |                              |          sJ dSt           _        t          |                              |          sJ dTt           _        t          |                              |          sJ d S )UNc                 t   t          |          }d}t          |t                    rt          | t                    }t          | j        |j        z
            t          |j                  dz  t
          z  k    }t          | j        |j        z
            t          |j                  dz  t
          z  k    }|o|S )NTr[   )convertrs   r&   r   rv   r   rw   )r   r   type_okreal_okimag_oks        r*   checkz!test_lambertw_hard.<locals>.check  s    AJJa 	) C((GafQVm$$AFAc(99afQVm$$AFAc(99"7"r,   r   绽|=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                 &    t          | |d          S NTr   )faddr   r   s     r*   rH  z$test_lambertw_hard.<locals>.<lambda>      tAad+++ r,   c                 &    t          | |d          S rZ  )fsubr\  s     r*   rH  z$test_lambertw_hard.<locals>.<lambda>  r]  r,   c                 F    t          | t          |dd          d          S )Nr   Tr   r[  r   r\  s     r*   rH  z$test_lambertw_hard.<locals>.<lambda>  s$    QtAbt4444@@@ r,   c                 F    t          | t          |dd          d          S )Nr<  Tr   ra  r\  s     r*   rH  z$test_lambertw_hard.<locals>.<lambda>  s$    QtAc555DAAA 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[r0  z1e-13z-0.99999926266961377166355784455394913638782494543377383744978844374498153493943725364881490261187530235150668593869563168276697689459394902153960200361935311512317183678882r0      )r   r   rN  r   r   r&   rd   r   )rW  addsubaddjsubjad3d10d20d40d80d300d1000r   anss                  r*   test_lambertw_hardrr    sj   # # # BF5%":;;;;;5&!!#<=====5&!!#\]]]]]5'""$]^^^^^5%""$RSSSSS5&##%STTTTT5&##%STTTTT5'!$$&TUUUUU5%##%STTTTT5&$$&<=====5&$$&UVVVVV5'"%%'UVVVVV ,
+C
+
+C@@DAADBF
1r#vA	VB
g,,C
g,,C
g,,C
g,,Cx==D	NNEBF 5##a))$$&=>>>>>5##a**%%'>?????5##a**%%'>?????CC#JJ2%%%%CC#JJ2%%%%CC$KK  B&&&&CC%LL!!R''''5##a))$$&UVVVVV5##a**%%'`aaaaa5##a**%%'^_____5##a**%%'GHHHHH5##a**%%'GHHHHH5##a++&&(IJJJJJ5##a,,''R0M)N)NOOOOO5$$q**%%'VWWWWW5$$q++&&(abbbbb5$$q++&&(_`````5$$q++&&(_`````5$$q++&&(MNNNNN5$$q,,'')OPPPPP5$$q--((#d3S*T*TUUUUU5$$q**%%'VWWWWW5$$q++&&(abbbbb5$$q++&&(_`````5$$q++&&(_`````5$$q++&&(MNNNNN5$$q,,'')OPPPPP5$$q--((#d3T*U*UVVVVV5$$q**Q'')bccccc5$$q++a((*cddddd5$$q,,q))+deeeee5$$q--**,efffff5$$q**Q'')deeeee5$$q++a((*jkkkkk5$$q++a((*ghhhhh5$$q++a((*fggggg5$$q++a((*OPPPPP5$$q,,q))+QRRRRR5$$q--**C6V,W,WXXXXX 5##a))B'')DEEEEE5##a**R((*EFFFFF5##a**R((*EFFFFFCC#JJr""b((((CC#JJr""b((((CC$KK##r))))CC%LL$$****5##a))B'')XYYYYY5##a**R((*cddddd5##a**R((*abbbbb5##a**R((*JKKKKK5##a**R((*JKKKKK5##a++b))+LMMMMM5##a,,r**C3Q,R,RSSSSS5$$q**R((*efffff5$$q++b))+fggggg5$$q++b))+efffff5$$q++b))+hiiiii5$$q++b))+PQQQQQ5$$q,,r**,RSSSSS5$$q--++S6W-X-XYYYYY5$$q**R((*abbbbb5$$q++b))+bccccc5$$q++b))+bccccc5$$q++b))+bccccc5$$q++b))+deeeee5$$q,,r**,efffff5$$q--++-fgggggBF
1s7||A=C BFA;;>>#BFA;;>>#BFA;;>>#r,   c                     dt           _        t          ddgdggddgddggd                              d          sJ t          g dt          z   ggdgdggd	                              d
          sJ 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          sJ t          dgdggdgdggd                              d          sJ t          dgdggdgdggd                              d          sJ t          dgdggdgdggd                              t
          dz    dt
          z  z            sJ d} d}t          d          t          d          fD ]}t          | ||          }t          |          t          |           z  t          d| z
  gg gdgd|z
  gg|           z  }t          |          t          |           z  t          dgdd|z
  z
  ggdd| z
  z
  gg gd|z            z  }|                    |          sJ |                    |          sJ 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   r@   gyhr   r   g       r   )	r   r   meijergr   r$   r   r&   r]   rq   )ri  r1  r   x1x2x3s         r*   test_meijergrx  :  s   BFQqE1#;Q144778MNNNNNB!u:sA3i..112`aaaaaTFA3<#sA..!3333QC8...3V<<??@UVVVVVRD$=B4-6699:UVVVVVVHhZ(F8XJ*?FFIIJefffffRD$=B4-4477"Q$2GGGGGAA$iiQ   Aa]]1XXeAhhw1bzA3!u+qbAAA1XXeAhhwq!A#wi'81ac7)B1MMMuuRyyuuRyy r,   c                     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
          sJ t          dddddd                              d          sJ t          dddddd                              d          sJ d S )Nr   r
   r   r   r   g      ir   r   r      r   g      ?gk?)r   r   appellf1r   r9   r,   r*   test_appellf1r|  M  s    BFAb1Qq!!$$U+++++Aa1Qq!!$$R(((((Aa1S&&))#.....Bq1Qq!!$$R(((((Aa!C&&))+ABBBBBBBr,   c                      dt           _        t          t          dd          dd                              d          sJ d S )Nr   r   r   r
   r   gpu4@)r   r   coulombgrd   r   r9   r,   r*   test_coulombr  U  s@     BFC1IIa""%%&;<<<<<<<r,   c                     dt           _        d t          dd          D             } d t          dd          D             }t          | |d                              d          sJ t          d	d
d                              d          sJ t          ddd          dz                      d          sJ t          dddd          dz                      d          sJ t          dddd          ddz  z                      d          sJ t          dddd	d          dk    sJ t          ddd
          dd z  z                      d!          sJ t          dddd"d#$          dd%z  z                      d&          sJ t          d'dd          dk    sJ t          j	        t          d(            t          d) dgd*+          t          k    sJ t          g g gg d,g gd-                              d.          sJ t          d/d/          dd0z  z                      d1          sJ d2t           _        t          d3d4d
          dd5z  z                      d6           t          d7d4d
          dd5z  z                      d8           dt           _        t          d3d4d
          dd5z  z                      d6           t          d7d4d
          dd5z  z                      d8           t          t!          d9d:d;<          d                              d=          sJ t          d9dd
z  z  dz   dd
z  fd                              d=          sJ d S )>Nr   c                     g | ]}|d z   S rX  r9   r   r)   s     r*   r   z-test_hyper_param_accuracy.<locals>.<listcomp>]  s    	(	(	(a!E'	(	(	(r,   r   r   c                     g | ]}|d z   S r  r9   r  s     r*   r   z-test_hyper_param_accuracy.<locals>.<listcomp>^  s    	)	)	)a!E'	)	)	)r,   ir   gũܘ8Vr   r   r   gN*r   r   r  rI  gP+(	@i|g      %@gGz?gS?r   r   r     g_?r   r0  r  r   ii  g{<      r   )maxterms   g~bf86r
   c                  &    t          d dg          S )Nc                     g g g g | g|  gdfgS Nr   r9   ri  s    r*   rH  z=test_hyper_param_accuracy.<locals>.<lambda>.<locals>.<lambda>h  s    Br"RaRDQT;U:V r,   r   )	hypercombr9   r,   r*   rH  z+test_hyper_param_accuracy.<locals>.<lambda>h  s    i0V0VYZX[&\&\ r,   c                     g g g g | g|  gdfgS r  r9   r  s    r*   rH  z+test_hyper_param_accuracy.<locals>.<lambda>i  s    Br"aS1"c :; r,   r   )infprec)r   r   r   r   r   giաe?i  ^   gL?r   g    rc  r   g{	!@r   gL`L"@r   z1e-100Tr   g;.ɂQ)J)r   r   r(   rb   r   r&  r]   r_   pytestraises
ValueErrorr  r#   rt  r'   r\   r[  )AsBss     r*   test_hyper_param_accuracyr  [  s   BF	(	(5B<<	(	(	(B	)	)5R==	)	)	)BBr??566666#sD!!$$%@AAAAA4$&**+@AAAAA2tT4((/334IJJJJJ4D&&r3w.223IJJJJJ"b!S3///1444464%%b#g-112HIIIII4D777C?CCDZ[[[[[!Q""""
M*\\]]];;aS#NNNRUUUUUBr7IIIb>#..112GHHHHHCRV#''(=>>>>>BFGT3C'++,ABBBE4b#g%))*?@@@BFGT3C'++,ABBBE4b#g%))*?@@@$s8$///6699:QRRRRR3r3w;q="c'*D11445LMMMMMMMr,   c                      t          d dg          dk    sJ t          dgg gdgdggd                              d          sJ d S )Nc                     dg| gg g g g dffS )Nr   r9   r  s    r*   rH  z)test_hypercomb_zero_pow.<locals>.<lambda>w  s    !aSBr"Q 79 r,   r   r   r   r  g2}$?)r  rt  r   r9   r,   r*   test_hypercomb_zero_powr  u  s^    99A3??1DDDDTF2;UG}Q//223HIIIIIIIr,   c                  6
   dt           _        d} d}t          dd| |                              d          sJ t          dd| |                              d          sJ t          dd| |                              d	          sJ t          dd| |                              d
          sJ t          dd| |                              d          sJ t          dd| |                              d          sJ t          dd| |                              d          sJ t          dd| |                              d          sJ t          dd| |                              d          sJ t          dd| |                              d          sJ t          dd| |                              d          sJ t          dd| |                              d          sJ t          dd| |                              d          sJ t          dd| |                              d          sJ t          dd| |                              d          sJ t          dd| |                              d          sJ 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    sJ 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    sJ 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    sJ t          dddd                              d          sJ t          ddt          z
  dt          z   d                               d!          sJ t          d"d#| |                              d$          sJ t          d%ddd                              d&          sJ t          dddd          dk    sJ t          d"ddd                              d'          sJ t          d"d(dd                              d)          sJ t          dddd                              d*          sJ t          dddd          dk    sJ t          dddd                              d+          sJ 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   	spherharmr   r$   )tr   s     r*   test_spherharmr  z  s   BFAQQq1  !788888Qr!A!!"RSSSSSQq1  !788888Qq1  !RSSSSSQr!A!!"TUUUUUQr!A!!"RSSSSSQq1  !788888Qq1  !RSSSSSQq1  !STTTTTQr!A!!"TUUUUUQr!A!!"RSSSSSQr!A!!"RSSSSSQq1  !788888Qq1  !RSSSSSQq1  !QRRRRRQq1  !TUUUUUQr!A!####Qr!A!####Qq1""""Qq1""""Qq1""""Qq1""""Qr!A!####Qr!A!####Qq1""""Qq1""""Qr!A!####Qr!A!####Qs3t$$''(WXXXXXT1Q3!T**--.]^^^^^RAa  ##$TUUUUUT1c4((++,^_____RC&&!++++RC&&))*[\\\\\Rc4((++,^_____Qq1  !788888Qr!A!####Qr!A!!"STTTTTTTr,   c                  j    dt           _        t          ddd                              d          sJ d S )Nr   r
   r   r   z2.7291482267247332183e2391)r   r   qpr   r9   r,   r*   test_qfunctionsr    s2    BFa#;;>>67777777r,   c                      dt           _        t          dd          } t          ddddd                              d	          sJ d
t           _        t          j        t          d            d S )Nrd  l   L33F i   r  r   g?r   z40.99999999999999999999996570910644857895771110649954r   c                  &    t          dddd          S )Nr   r   r   )r_   r9   r,   r*   rH  z test_issue_239.<locals>.<lambda>  s    fR#c&:&: r,   )	r   precldexpr9  r   r   r  r  r  rG  s    r*   test_issue_239r    sg    BGs##A3Qa((++,bcccccBF
M*::;;;;;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@)r1   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@)r2   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@)r3   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@)r4   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@)r5   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@)r6   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            	      \   dt           _        t          t                    D ]	} t          dt          dz             D ]}t          | |dt          t                     t          | |                              t          |          |dz
                     sJ t          | |                              t          |          |dz
                     sJ t          | |d                              t          |          |dz
                     sJ t          | |d                              t          |          |dz
                     sJ t          | |                              t          |          |dz
                     sJ t          | |                              t          |          |dz
                     sJ t          | |d                              t          |          |dz
                     sJ t          | |d                              t          |          |dz
                     sJ d S )Nr   r   of)r   r   r(   VMprintr7   r   jn_small_zerosjnp_small_zerosr8   yn_small_zerosynp_small_zeros)rf   ms     r*   test_bessel_zeros_extrar  B	  s    BF1XX B Bq1 
	B 
	BA!Qa###q##&&~a'81'=>>>>>q##&&~a'81'=>>>>>q1%%(();AaC)@AAAAAq1%%(();AaC)@AAAAAq##&&~a'81'=>>>>>q##&&~a'81'=>>>>>q1%%(();AaC)@AAAAAq1%%(();AaC)@AAAAAA
	BB Br,   )9mathr  mpmathr+   r:   r>   rC   rG   rM   rg   r|   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r"  r'  r+  r.  r5  r7  r:  rC  rL  rP  rr  rx  r|  r  r  r  r  r  r  r  r  r  r  r  r  markslowr  r9   r,   r*   <module>r     s        Ii Ii IiV8 8 8M M M5 5 52 2 2
2 2 2  ,: : :x- - -^%. %. %.N
A 
A 
A! ! !@bJ bJ bJH	Y 	Y 	Y	^ 	^ 	^e e e,3 3 3<8m 8m 8mt
D 
D 
DK K K,@ @ @,s s s.y y y.X X XT T T6Q Q Q>Z Z Z; ; ;(:< :< :<xA A AF" F" F"PAg Ag AgF; ; ;=T =T =T~4 4 4>0 >0 >0@A A AF  &C C C= = =N N N4J J J
(U (U (UT8 8 8< < <                               e` H                              e` H                              e` H                              e` F B B B B Br,   