
    gm                         d dl T d dlmZmZm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!S )"    )*)round_up
from_floatmpf_zeta_intc                  L    t          dd          t          d          k    sJ d S )Nr   
         )r   r        W/var/www/html/ai-engine/env/lib/python3.11/site-packages/mpmath/tests/test_gammazeta.pytest_zeta_int_bugr      s+    2*T"2"2222222r   c                  P   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	          d
k    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          dk    sJ t          d          dk    sJ t          d          \  } }| dz  dk    sJ |dk    sJ t          d          \  } }| dz  dk    sJ |dk    sJ dt          _        t          d          dk    sJ t          d          dk    sJ t          d                              d          sJ t          d          dk    sJ t          d	                              d          sJ t          d          dk    sJ t          d                              d           sJ t          t          d                    d!k    sJ t          t          d"                    d#k    sJ t          t          d$                    d%k    sJ t          t          d&                    d'k    sJ d(t          _        t          t          d                    d)k    sJ t          t          d"                    d*k    sJ t          t          d$                    d+k    sJ t          t          d&                    d,k    sJ dt          _        t          d                              t          d          d-z            sJ d.t          _        t          d                              t          d          d-z            sJ dt          _        d S )/Nr   )   r   r   )   r   )r         )r   r      )r         r   )r   *      r   )r   B      )iMi
     )i[  i         d(	 is	i	   l   kL3 iq   r	   gUUUUUU?ggaa?z0.0757575757575758   z7.62772793964344e+267順 z-5.82229431461335e+376755iz1.19570355039953e+6767525842   z50.075757575757575757575757575757575757575757575757576z87.6277279396434392486994969020496121553385863373331e+267z<-5.8222943146133508236497045360612887555320691004308e+376755z>1.1957035503995297272263047884604346914602088317782e+676752584r   iP  )bernfracmpdps	bernoulliaestrmpf)pqs     r   test_bernoullir,      s   A;;%A;;&    A;;%A;;%A;;'!!!!A;;%A;;&    A;;'!!!!B<<6!!!!B<<;&&&&B<<;&&&&C==DAqv:"""";;;;D>>DAqv:####	>>>>BFQ<<1Q<<4Q<<??4     Q<<1Q<<??6"""""Q<<1Q<<??5!!!!!y}}!55555y~~"99999y  $?????y!!""&CCCCCBFy}}!XXXXXy~~"\\\\\y  $bbbbby!!""&fffffBFR==CFF2I&&&&&BFR==CFF2I&&&&&BFFFr   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 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          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!          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          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(          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-          sJ t	          d d                              d.          sJ t	          d d                              d          sJ t	          d d                              d/          sJ t	          d d                              d0          sJ t	          d d                              d1          sJ t          d2d2                              d3          sJ t          d4d5                              d6          sJ t	          d4d5                              d7          sJ d S )8Nr   r   r   r   z1/2z3/4r   z-3/2z-1/2z1/4z3/2z13/6z1/6z-1/12z-1/48r   z-3/64r   z119/30z-1/30z7/240z7/3840r   z25/1024r   z665/66z5/66z-2555/33792z-2555/34603008   z-555731/4194304z-1/4z-3/16z-9/4z-11/64z9/4z5/16z57/256z361/1024z-50521/1024z-36581523/1048576z-699/4z691/4z-512343611/4194304z-691/4z699/4'  z5.8196915936323387117e+39999   g     1@gJrg,Qr%)r$   r%   bernpolyr'   	eulerpolyr
   r   r   test_bernpoly_eulerpolyr6   4   s   BFAb>>QAa==AAe"""""Ae"""""Aa==AAa==AAb>>V$$$$$Aa==F#####Ae"""""Ae&&&&&Aa==E"""""Aa==E"""""Ab>>V$$$$$Aa==E"""""Ae(((((Ae(((((Aa==E"""""Aa==F#####Ab>>R     Aa==AAe"""""Ae(((((Aa==AAa==AAb>>X&&&&&Aa==G$$$$$Ae(((((Ae)))))Aa==G$$$$$Aa==H%%%%%Ab>>R     Aa==AAe"""""Ae	*****Aa==AAa==ABr??h'''''Bq>>V$$$$$Bu  /////Bu  !122222Bq>>V$$$$$Bq>>X&&&&&Br??c"""""Bq>>QBu  #####Bu  !233333Bq>>QBq>>R     Qr??a     Qq>>QQu  #####Qu  #####Qq>>QQq>>QQr??f%%%%%Qq>>V$$$$$Qu  #####Qu  '''''Qq>>U#####Qq>>U#####Qr??a     Qq>>QQu  (((((Qu  )))))Qq>>QQq>>QQr??f%%%%%Qq>>U#####Qu  #####Qu  *****Qq>>V$$$$$Qq>>U#####Qr??a     Qq>>QQu  (((((Qu  *****Qq>>QQq>>QQr??f%%%%%Qq>>V$$$$$Qu  #####Qu  ,,,,,Qq>>U#####Qq>>U#####Rq!!!!!R??a     R!!-00000R!!"566666R??a     R??a     Rx(((((R??g&&&&&R!!!$$$$$R!!"677777R??h'''''R??g&&&&&E%  ##$BCCCCCC  !:;;;;;S!!"<=======r   c                     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 d} t	          dd          D ]}t          |          | k    sJ | |z  } dD ]=}d} |t           _        t	          dd          D ]}t          |          | k    sJ | |z  } >dt           _        t          d                              t          t                              sJ dt           _        t          d          t          d          cxk    rdk    sn J t          d          dk    sJ t          t          t                              sJ t          d                              d          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                               d!          sJ t          d"                              d#          sJ t          d$                              t          d%d#                    sJ d S )&Nr         ?g~?@-C6?g	!@i,  z1.0201917073881354535e612r	   gkﴑ[gQgf<9b1?y      ?      ?y}?'މ^eÿy      {Gz?yT})ۿOf[X@y      4@      >@y<lsfsuWAr   r   )   iX  i   d         ?r   r   r   L  z4.8579168073569433667e2866r   r   g      ?y       @       @yaaJ
!z¶%@1e10000z 2.302485092994045684017991e100041e10000jz!-1.570796326794896619231322e10000)r$   r%   gammar'   rangesqrtpi	factorialfacisnannanrgammaloggammampc)factir%   s      r   
test_gammarN      s#   BF;;>>/00000==122222::==455555;;>>011111<<??455555 ;;>>JKKKKK??LMMMMM==EFFFFF D1b\\  Qxx4	  q# 	 	A88t####AIDD	 BF::==b"""""BFQ<<3q66&&&&Q&&&&&&Q<<1s;;>>677777!99>>>>"::????!99!99D>>MNNNNNI!!"DEEEEEJ""3'JKm#n#nooooooor   c                     dt           _        d t          d          D             g dk    sJ t          d                              d          sJ t          d                              d          sJ t          d	                              d
          sJ t          d                              d          sJ t          t
                    t
          k    sJ t          t          t
                               sJ d S )Nr   c                 ,    g | ]}t          |          S r
   )fac2.0ns     r   
<listcomp>ztest_fac2.<locals>.<listcomp>   s    '''DGG'''r   r   )
r   r   r   r   r   r   0   r;   i  i  r/   gUUUUUU?r1   ggjVQr"   g!a?@Fy      ?      ?yHO?j6.Vֿ)r$   r%   rB   rQ   r'   infrG   r
   r   r   	test_fac2rX      s    BF''U2YY'''+H+H+HHHHH88;;t99<<     88;;-.....	??LMMMMM99sdr   c                  $   dt           _        d} d}t          }t          dgddg          dk    sJ t          ddgdg          t          k    sJ t          t          dgd	g           |d| z              |d	| z             z  z
            dk     sJ t          t          ddgd	dg           |d| z              |d| z             z   |d	| z             z   |d| z             z  z
            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          dt          z            t          t                    z            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
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          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                              t          dz            sJ dt          dd          z                      d          sJ t          t          t                    dk    sJ t          t          t           t                              sJ t          t          dt                              sJ t          t          dt                              sJ t          t          d           t          d t                    cxk    rdk    sn J t          t          d!          t          k    sJ t          t          d"          t           k    sJ t          d#dt          dz  z
                                d$          sJ t          d"d           dk    sJ t          dd
                              d%          sJ t          dd                              d&          sJ d S )'Nr   g:0yE>r9   r   r.   r   r/   r   r   g      @r      z-255.5815971722918z-0.5119253100282322z-0.1952720278805729485r      r   r   g      @      ?g     @@r>   i"9	 gUUUUUU?   l     I5 r<   grP@r=         r	         ?       @y+5?\K9ʵ?gUUUUUUտz18.157330562703710339)r$   r%   rA   	gammaprodrW   absrfjr'   ffbinomialbetarD   rG   )hepGs      r   test_gamma_quotientsrl      sn   BFA	BAbT2b'""a''''bVRD!!S((((y"rd##aa1ggaa1ggo566====y"R"Q((11RT7711RT77?11RT77+B11QqS66+IIJJTQQQQa77a<<<<c!99b88r>>>>a77::eAaCjjq)*****"#899<<=UVVVVVb88q====b88r>>>>a77b====a77a<<<<Aa==AAa==AAb>>QAa==AAa==BAa==BAa==ABq>>QBr??aC''''Dt####Dv%%%%!99>>>>!99!992;;#A;;>>$C==BrE"""""43<<##$9:::::C==Asd3     baC==DSMM....Q......D>>S    D>>cT!!!!R!V NOOOOOS>>Q1::==$%:;;>>?VWWWWWWWr   c                      dt           _        t          d                              t          dz  dz            sJ t          d                              t          dz  dz            sJ t          t          d                                        t          dz  dz            sJ t          d                              d          sJ t          d                              d          sJ t          d	                              d
          sJ t          d                              t          d           dz            sJ t          d          dk    sJ t          d                              t          d          dz            sJ t          d          dk    sJ t          d          dk    sJ t          t          t                              sJ t          d                              d          sJ t          d                              d          sJ t          t          d	d                                        d          sJ t          t          d	d                                        d          sJ t          t          d	d                                        d          sJ t          t          dd                                        d          sJ t          t          dd                                        d          sJ dt           _        d} t          t          d	|                                         dd          sJ dt           _        t          d          ddz  z                      d          sJ t          dd	          dk    sJ t          dd          d	k    sJ t          dd	d                              d          sJ t          d d!                              d"          sJ d S )#Nr   r   r   g       @r<   r   r   r	   r=   gs~]r   r   r[   r.   x   rZ   KH9KHg"fD,@gOc5@g9@Ww'&l7r"   z8236.5242296658162058024755079556629786895294952121891237gaU,$Db6y      N      @r   "   y9A!@.@g9B.ֿr`   y              ?yN*i6?)	r$   r%   zetar'   rD   rK   r)   rG   rH   )ims    r   	test_zetarv      s   BF77::b!eai     99<<A	"""""A<<??2q519%%%%%99<<??77::d99<<,-----88;;Awrz"""""88q====88;;s1vvcz"""""88q====::????c;;>>$<<??4     C/001144Q77777C/001144Q77777C/001144Q77777E%  !!$$T*****F5!!""%%d+++++BF	CBC  E*****BFLL2r6!%%&LMMMMM#;;!!99#a==011111T??OPPPPPPPr   c                     dt           _        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          dk    sJ t          d	          d
k    sJ t          d          dk    sJ t          d          dk    sJ t          d                              t	          d                    sJ t          d                              t
          dz  dz            sJ t          d                              dt
          dz  z  dz            sJ t          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          t          d          k    sJ d} t          |                               ddd| z
  z  z
  t          |           z            sJ d} t          |                               ddd| z
  z  z
  t          |           z            sJ t          d                              d          sJ t          d                               d!          sJ t          d"                              d          sJ t          d#                              d          sJ t          t          d"d$                                        d          sJ t          t          d#d$                                        d          sJ d S )%Nr   r[   r   rZ   ro   r=   r   r8   r.   g      r/   ig  z\Ar   r   r   r   I   i jh r"   <   droundingur2         @        r         @      @y            @      Yg@o.>Vg?g^s?rp   rq   rr   )r$   r%   altzetar'   logrD   rt   rK   )ss    r   test_altzetar      s0   BF2;;!2;;!4==A1::2;;$2;;&    2;;$3<<=((((1::==Q     1::==Qr"""""2;;>>"RV)G+,,,,,2;;????2$$$q((((2$$$))))53'''!++++53'''1,,,,4==GAJJ&&&&A1::==!A!H*d1gg-.....A1::==!A!H*d1gg-.....6??6777773<<??./////5>>S!!!!!6??c"""""3uU##$$'',,,,,3ve$$%%((-------r   c                  l   dt           _        t          t                    dk    sJ dt           _        t          d                              d          sJ t          dt
          z                                d          sJ dt           _        t          d	          } dt           _        t          | dz
            d
k    sJ t          t
          dz  t                    dk    sJ t          dt                    dk    sJ t          t
          dz            dk    sJ t          d          dk    sJ d S )Nr   r   r"   r<   z61.0000000000000000000000000000007888609052210118073522(   z61.0000000000000000000000000000000000000148407238666182r2   i  z1.02363019598118e-9934r   r{   i  )r$   r%   rt   rW   r'   rD   r(   r   )vs    r   test_zeta_huger   >  s   BF99>>>>BF99<<PQQQQQ2;;>>RSSSSSBFUABFqs88/////4(+++a////x(((1,,,,4==A::??????r   c                  
   dt           _        t           ddz  z  } dt           _        t          t	          |                     dk    sJ dt           _        t          t	          |                     dk    sJ dt           _        d S )N   r   r   r   z=2.55880492708712e+1233536161668617575553892558646631323374078r"   z`2.5588049270871154960875033337384432038436330847333e+1233536161668617575553892558646631323374078)r$   r%   rD   r(   rt   as    r   test_zeta_negativer   M  sm    BF	BF
ABFtAww<<ZZZZZBFtAww<<}}}}}BFFFr   c            	         dt           _        d } d } | d          t          dd          cxk    rt          d          k    sn J  | t                                        d          sJ  | t                                         d          sJ  | t           dz                                 d	          sJ  | t          t          z                                 d
          sJ  | t           t          z
                                d          sJ t          | d                              d          sJ  | d                              d          sJ  | d                              d          sJ  | d                              d          sJ  | d                              d          sJ  | t                    t          k    sJ  |t                    dk    sJ t          dt                    dk    sJ  |t                                        d          sJ  |t                                         d          sJ  |t          t          z                                 d          sJ  |t           t          z
                                d          sJ dt          dddt          z  t          z  z             z                      d          sJ  | ddt          z  t          z  z                                 d          sJ t           | t                              sJ t           | t                               sJ  | d                              d           sJ  | d!                               | d                    sJ  | d"                              d#          sJ t          t          dt          dt                                        sJ t          t          dt          dt                                        sJ t          t          dt          dt                                         sJ t          t          dt          dt                                        sJ t          t          dt          dt                                        sJ t          t          dt          dt                                         sJ t          t          dt          t          t                                        sJ t          t          dt          t          t                                        sJ t          t          dt          t           t                                         sJ d$t           _        t          d%                              t          d&d'                    sJ dt           _        d S )(Nr   c                 "    t          d|           S Nr   psizs    r   <lambda>z test_polygamma.<locals>.<lambda>X      S1XX r   c                 "    t          d|           S Nr   r   r   s    r   r   z test_polygamma.<locals>.<lambda>Y  r   r   r   r   guTE?g,$7@r   gdGDE@y)\Z[?ÕޛD?ybabJr?N<g?Vcb?绽|=g& _rr   g\)c=y|=|=yF<	 _    _AyWw'&l7Ww'&l7y\)c-ȥ\)c-Hr   ga#?g^jJ@yY/?Iyϐ=ӿ{?i@B r   r   yhVKٿy_%F@@K?r   g69u@r~   y      Y      @y]vCq@˼@r   y            ?z%0.46317279488182026118963809283042317z$2.4821070143037957102007677817351115)r$   r%   r   digammarD   r'   re   findrootrW   rG   rH   rK   )psi0psi1s     r   test_polygammar   V  s:   BFDD477c!Ahh,,,,'!**,,,,,, 488;;*+++++499<<*+++++4A;;>>,-----41::==CDDDDD4A;;>>BCCCCCD! 2333334;;>>,-----4;;>>0111114  !HIIIII4  !PQQQQQ499499>>>>q::????488;;*+++++499<<*+++++41::==CDDDDD4A;;>>EFFFFF#a"R%'	"""&&'PQQQQQ4"R%'	??FGGGGGcsd4<<??,-----4::==a!!!!!4==HIIIIIQs1Szz""#####Qs1Szz""#####Qs1cT{{##$$$$$Qs1Szz""#####Qs1Szz""#####Qs1cT{{##$$$$$Qs3s||$$%%%%%Qs3s||$$%%%%%QsC4~~&&'''''BF8$KMs t tuuuuuBFFFr   c                      dt           _        t          t          dt                              dk    sJ t          t          dt                              dk    sJ d S )Nr<   r   zf0.9772133079420067332920694864061823436408346099943256380095232865318105924777141317302075654362928734r   zf-12.98876181434889529310283769414222588307175962213707170773803550518307617769657562747174101900659238)r$   r%   r(   r   rD   r
   r   r   test_polygamma_high_precr     ss    BFs1Ryy>>  F  F  F  F  Fs2bzz??  G  G  G  G  G  G  Gr   c                  t   dt           _        d } d }d } | d                              t           dt	          d          z  z
            sJ  | d                              t                     sJ  |d                              dt
          dz  z            sJ  |d                              t
          dz  dz            sJ  |d	                              t
          dz  d
t          z  z             sJ  |d                              dt          z            sJ dt           _        dt          z  dt          d          z  t
          dz  z  z   }dt           _        t          dd                              |          sJ t          dd                              t
          dz            sJ d S )Nr   c                 "    t          d|           S r   r   r   s    r   r   z+test_polygamma_identities.<locals>.<lambda>  r   r   c                 "    t          d|           S r   r   r   s    r   r   z+test_polygamma_identities.<locals>.<lambda>  r   r   c                 "    t          d|           S )Nr   r   r   s    r   r   z+test_polygamma_identities.<locals>.<lambda>  r   r   r=   r   r   r   r8   r   r[   r\   iJr   r   g?)
r$   r%   r'   eulerr   rD   catalanaperyrC   r   )r   r   psi2r}   s       r   test_polygamma_identitiesr     s   BFDDD499<<qQx(((((477::uf499<<BE	"""""477::b!eAg4::==Q7*+++++477::bhBFU
1T!WW9RU?"ABFq;;>>!q::==Qr   c                     d } dt           _        dt          dd          z  }dt          dd          z  } | d|z              | d|z            z
   | dd|z   z            z    | dd|z
  z            z   }dt          z  t	          dt          d          z  t          z            z  }|                    |          sJ d	t           _        d S )
Nc                 "    t          d|           S r   r   r   s    r   r   z'test_foxtrot_identity.<locals>.<lambda>  r   r   r"   r   r   r   r   r=   r	   r   )r$   r%   fractionrD   sechrC   r'   )r   r   bxys        r   test_foxtrot_identityr     s     DBF	hqmmA	hqmmA	c!ettDF||#dd3!9oo5S!A#YGA	"T#d1gg+b.!!!A4477NNNBFFFr   c                     dt           _        t          t          dt                              dk    sJ t          t          dt          dt
          z  z                       dk    sJ t          t          dt          dt
          z  t          z  z                       dk    sJ dt           _        t          t          dt                              dk    sJ t          t          dt          dt
          z  z                       d	k    sJ t          t          dt          dt
          z  t          z  z                       d
k    sJ d S )Nr<   r"   zf-1344100348958402765749252447726432491812.641985273160531055707095989227897753035823152397679626136483   zw-0.00000000000000000189793739550804321623512073101895801993019919886375952881053090844591920308111549337295143780341396z(-0.00000000000000005225169411521692489752254721556835657523758895106315132447859377385233700094871256507814151956624433 - 0.00000000000000001813157041407010184702414110218205348527862196327980417757665282244728963891298080199341480881811613j)r   z-1.34410034895841e+39z-1.89793739550804e-18z.(-5.2251694115217e-17 - 1.81315704140701e-17j))r$   r%   r(   r   rD   ere   r
   r   r   test_polygamma_high_orderr     sA   BFs2r{{   H  H  H  H  Hs2rBqDy!!""  '`  `  `  `  `s2rBqDF{##$$ *^ _ _ _ _ BFs2r{{66666s2rBqDy!!""&=====s2rBqDF{##$$(XXXXXXXr   c                     dt           _        t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d                              d          sJ t          d                              d	          sJ t          d
dz                                d          sJ t          d                              ddt	          d          z  z
            sJ t          t
                    t
          k    sJ t          d          dk    sJ t          d                              d          sJ d S )Nr   r   r   r   r^   r   gUUUUUU?r   g_b7@r   r   gS@r=   y       @        y      ?        ra   yk4q?@w?)r$   r%   harmonicr'   r   rW   r
   r   r   test_harmonicr     s:   BFA;;!A;;!A;;#A;;>>*+++++F455555BH  !233333C==AaAhJ'''''C==CD>>V####D>>DEEEEEEEr   c                     dt           _        t          d          dz  } dt           _        t          t	          |                     dk    sJ dt           _        t          t	          |                     dk    sJ dt           _        d S )N  r      r   z6.26075321389519e+12458010678r"   z@6.2607532138951929201303779291707455874010420783933e+12458010678r$   r%   r)   r(   rA   r   s    r   test_gamma_huge_1r     sm    BFFaABFuQxx==;;;;;BFuQxx==^^^^^BFFFr   c                      dt           _        t          ddz            dz  } dt           _        t          t	          |                     dk    sJ dt           _        t          t	          |                     dk    sJ d S )	Nr   r   r<      r   zw1.82341134776679e+51729974693233641689901335581750771368291828240422018860515119656908623426021308685461258226190190661r"   z1.82341134776678875374414910350027596939980412984e+51729974693233641689901335581750771368291828240422018860515119656908623426021308685461258226190190661r   r   s    r   test_gamma_huge_2r     s    BFBGrABFuQxx==	34 4 4 4 BFuQxx==	TU U U U U Ur   c                     dt           _        ddz  dz  ddz  t          z  dz  z   } dt           _        t          |           }t	          |j                  dk    sJ t	          |j                  d	k    sJ d
t           _        t          |           }t	          |j                  dk    sJ t	          |j                  dk    sJ d S )Nr   r   P   r   F   r   r   ze-6.82925203918106e+2636286142112569524501781477865238132302397236429627932441916056964386399485392600zd8.54647143678418e+2636286142112569524501781477865238132302397236429627932441916056964386399485392600r"   z-6.8292520391810548460682736226799637356016538421817e+2636286142112569524501781477865238132302397236429627932441916056964386399485392600z8.5464714367841748507479306948130687511711420234015e+2636286142112569524501781477865238132302397236429627932441916056964386399485392600r$   r%   re   rA   r(   realimagr   r   s     r   test_gamma_huge_3r     s    BF
B!b"fQhl"ABFaAqv;;	 ! ! ! ! qv;;	        BFaAqv;;	CD D D D qv;;	BC C C C C Cr   c                      d} dt           _        t          t          |                     dk    sJ dt           _        t          t          |                     dk    sJ dt           _        d S )Ny      @     v@r   z2(8.95783268539713e+5164 - 1.94678798329735e+5164j)r"   zx(8.9578326853971339570292952697675570822206567327092e+5164 - 1.9467879832973509568895402139429643650329524144794e+5164j))r$   r%   r(   rA   r   s    r   test_gamma_huge_4r     sp    ABFuQxx==<= = = =BFuQxx==	    BFFFr   c                     dt           _        ddz  t          z  dz  } dt           _        t          |           }t	          |j                  dk    sJ t	          |j                  dk    sJ dt           _        t          |           }t	          |j                  d	k    sJ t	          |j                  d
k    sJ dt           _        d S )Nr   r   ry   r   r   zO-3.27753899634941e-227396058973640224580963937571892628368354580620654233316839zN-7.1519888950416e-227396058973640224580963937571892628368354580620654233316841r"   zr-3.2775389963494132168950056995974690946983219123935e-227396058973640224580963937571892628368354580620654233316839zr-7.1519888950415979749736749222530209713136588885897e-227396058973640224580963937571892628368354580620654233316841r   r   s     r   test_gamma_huge_5r     s    BF
B
QABFaAqv;;kkkkkqv;;jjjjjBFaAqv;;	-. . . . qv;;	-. . . . BFFFr   c                     dt           _        dt          t          d          dz  z  z   } dt           _        t	          |           }t          |j                  dk    sJ t          |j                  dk    sJ dt           _        t	          |           }t          |j                  dk    sJ t          |j                  d	k    sJ d S )
Nr<   r   r   r   r   z2.0z1.84556867019693e-1000r"   z91.8455686701969342787869758198351951379156813281202e-1000)r$   r%   re   r)   rA   r(   r   r   )r   r   s     r   test_gamma_huge_7r     s    BF	Ac"ggtmOABFaAqv;;% qv;;22222BFaAqv;;%qv;;VVVVVVVr   c                     dt           _        t          d                              t          
           sJ dt           _        t          d                              d          sJ t          d                              d          sJ t          d                              d	          sJ t          d
                              d          sJ dt           _        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   z -0.07281584548367672486058637587r   z!-0.009690363192872318484530386035r   z 0.002053834420303345866160046543r   z 0.002325370065467300057468170178g*gF|؃gT3`?g;c?)r$   r%   	stieltjesr'   r   r
   r   r   test_stieltjesr     s5   BFQ<<??E6"""""BFQ<<??=>>>>>Q<<??>?????Q<<??=>>>>>Q<<??=>>>>>BFQ<<??;<<<<<Q<<??<=====Q<<??;<<<<<Q<<??<=======r   c                     dt           _        t          d          t          d          cxk    rdk    sn J d t          d          D             g dk    sJ t	          t          d                    dk    sJ t          t          t                              sJ t          t          t                              sJ t          t          t                              sJ t          t                    t          k    sJ t          t                    t          k    sJ t          t                    t          k    sJ t          t          t                               sJ t          d	          
                    d
          sJ t          d          
                    d          sJ d t          d          D             g dk    sJ d t          ddd          D             g dk    sJ t          d          } | dk    rt          | t                    sJ t          d          } | dk    rt          | t                    sJ d S )Nr   r   r   c                 ,    g | ]}t          |          S r
   )superfac)rS   rM   s     r   rU   z test_barnesg.<locals>.<listcomp>%      ***AHQKK***r   r   )r   r   r   r   i   i   i {l     2ft r   z3.24570818422368e+1177245gffffff?gd?y       @      @ygƿ1?c                 ,    g | ]}t          |          S r
   hyperfacrR   s     r   rU   z test_barnesg.<locals>.<listcomp>0  r   r   r   )r   r   r   l    l  i \&l     c                 ,    g | ]}t          |          S r
   r   rR   s     r   rU   z test_barnesg.<locals>.<listcomp>1  s    000AHQKK000r   )r   r   r   rZ   r   r   i y              rZ   )r$   r%   barnesgrB   r(   r   rG   rH   r   rW   r'   
isinstancerK   r   s    r   test_barnesgr   "  s!   BF1::))))))))))**q***._._._____x~~"=====##3<<3C==CC==C3$     3<<??-.....4==EFFFFF**q***.\.\.\\\\\00qB0004S4S4SSSSSA66jC((666A77z!S))77777r   c                     dt           _        d dD             } | D ]8}t          d|                              t	          d|z
                       sJ 9| D ]-}t          d|                              |d|z
  z            sJ .| D ]0}t          d|                              |d|z
  dz  z            sJ 1| D ]6}t          d|                              |d|z   z  d|z
  d	z  z            sJ 7| D ]?}t          d
|                              |dd|z  z   |dz  z   z  d|z
  d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                              d          sJ t          dd                              d          sJ t          dd                              d          sJ t          ddt          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          d!t          d	z  z   d!t          dz  z                                 d"          sJ t          d#d                              t          d#                    sJ t          d#d                              t          d#                     sJ t          d$d%                              d&          sJ t          d$d'                              d(          sJ t          d)d                              t          d          d*z            sJ t          d)d+                              d,          sJ d S )-Nr   c                 ,    g | ]}t          |          S r
   )	mpmathify)rS   r   s     r   rU   z test_polylog.<locals>.<listcomp>9  s    	F	F	F1)A,,	F	F	Fr   )r   r=   gGz?r   r	   rZ   y              ?r   r   r   r   r   r[   r   r.   r   r   y[-F@U޴r   g!fG?gV?ggy        ?y#]ſ`j?g?y8n+Yd?^n)ӿggᾁyp/M?[]?i  g jߊg=.g?i2  rZ   g-C6zr=   yB8$P?g ?r   r^   gtHgWcFr3   yQ K1Q y               g      +@g      ?iL)
r$   r%   polylogr'   r   rC   re   rt   r   r)   )zsr   s     r   test_polylogr   7  se   BF	F	F E	F	F	FB331((#ac((333333111((AaC11111155A))!QqS1H*555555;;A))!QqS'1Q3(*:;;;;;;BBA))!QqsU1a4Z.!A#*ABBBBBB1a==HIIIII1b>>3444441c??3444441d6777771dNOOOOO1c??JKKKKK1d6777771c$q''k""%%&TUUUUU2st$$$$$2t	*****1c??3444442su%%%%%2r??g&&&&&3qs7C!G$$''(XYYYYY4??d4jj)))))4~.....3+,,//0BCCCCC3 MNNNNN5"  Q-----5$""4(((((((r   c                  R   dt           _        t          dd          dz                      d          sJ t          dd          dz                      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t
                    dk    sJ t	          dt
                     dk    sJ t          t	          dt                              sJ t	          dd          dk    sJ t	          dd          dk    sJ t	          dt
                    t
          k    sJ t	          dt
                     t
           k    sJ t          t	          dt                              sJ t	          dd          dk    sJ t	          dd          dk    sJ t	          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 dt           _        t	          dd          dk    sJ t	          dd          dk    sJ t	          d          dk    sJ dt           _        t	          dd          dk    sJ t	          d d                              t          t          d z                      sJ d S )!Nr   r   r   r   go   ?r   g8   ?r   y              @y)fɳ?@r   g      @g*
0(@r   r   r   i ii ii0r"   z3.4746902914629720259e74r   l   vreh@3 VBFv'r.y	UR|s&T r   l   .e0u&Y:j+I<1 |6vJb J   l   rw_3dtL#m,`3	.v(*A=V y              4@y @j#MB (3VjwBr=   )
r$   r%   polyexpr'   bellrW   rG   rH   sincrD   r
   r   r   test_bell_polyexpr   U  s   BFAeV#''66666AeV#''555551R==IJJJJJ2c??233333!99>>>>!99>>>>!99>>>>#;;!3$<<1a!99>>>>!99>>>>#;;#3$<<C4a"::????!99>>>>88v1::B<<8#####;;*$$$$3<<??566666BF3<<fffff2;;ccccc88fffffBF3<<88888A;;>>$r#v,,'''''''r   c                  \   dt           _        t          d                              d          sJ t          d                              d          sJ t          d          t          k    sJ t          t                    dk    sJ t          t          t                              sJ d S )Nr   r   y2k?-DT!	@r   gMҵ?r   r   )r$   r%   	primezetar'   rW   rG   rH   r
   r   r   test_primezetar   {  s    BFS>>KLLLLLQ<<??233333Q<<3S>>Q3       r   c                  6   dt           _        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 d#d}  | t                              d          d          sJ  | t                              d          d          sJ  | t                              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          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   y      ?     j@y& 6#+?@y      ?     j@y5g?7-m^I?y      ?    .Ar   
derivativey@V%<y      ?    .AyˇD@-2r   yV!V1y      ?    .y.F'@	p 1@ư>c                 N    t          | |z
            |t          |          z  k     S )N)rc   )r   r   tols      r   r'   ztest_rs_zeta.<locals>.ae  s!    1Q3xx#c!ff*$$r   y      ?     jy& 6#+?y      ?     jy5g?7-m^Iyz?ی^p@y.F'@	p 1y$P??y,ς?%@lUS>r   yԂ]5MԺ$k@y!&@\_Ur   y(1Sg@y-6ڿ+~y"虺m"'=UA@yِ@[@MomykLVy"DЫ@)r   )r$   r%   rt   r'   fp)r'   s    r   test_rs_zetar     s5   BF NOOOOO  !NOOOOO+++../]^^^^^
q))),,-[\\\\\
q))),,-^_____+++../]^^^^^% % % %2bggk""$RSSSSS2bggl##%RSSSSS2bggh!QRRRRR2bggh1g--/]^^^^^2bggfooOPPPPP2bggfg++-^_____2bggkag002_`````2bggkag002abbbbb2bggkag002`aaaaa2bggkag002abbbbb2bgglqg113cddddd2bgglqg113`aaaaa2bgglqg113abbbbb2bgglqg113abbbbbbbr   c                  Z   dt           _        t          d                              d          sJ t          dd                              d          sJ t          dd                              d          sJ t          dt          z   d	                              d
          sJ d S )Nr   r!   g1/[㳄@r   r   gKKr   gFhnqr   yQ1@a߻w)r$   r%   siegelzr'   re   r
   r   r   test_siegelzr     s    BF6??4555556a(((++,CDDDDD6a(((++,CDDDDD6!8q))),,-[\\\\\\\r   c                  J   dt           _        t          ddd          } t          ddd          }t          ddd          }t          |                               d          sJ t          |                              d	          sJ t          |          }|j                            d
          sJ |j                            d          sJ dt           _        t          ddd          } t          ddd          }t          ddd          }t          |                               d          sJ t          |                              d          sJ t          |          }|j                            d          sJ |j                            d          sJ d S )Nr   r   z1e-10T)exactz-1e-10z1e-10jg# _Bga_gox?g    _r   z1e-50z-1e-50z1e-50j1e50z-1e50z40.57721566490153286060651209008240243104215933593992)r$   r%   faddrt   r'   r   r   )s1s2s3r   s       r   test_zeta_near_1r    s   BF	a	%	%	%B	a	&	&	&B	a	&	&	&B88;;78888888;;677777RA699+,,,,,699344444BF	a	%	%	%B	a	&	&	&B	a	&	&	&B88;;v88;;wRA699KLLLLL699Wr   N)#mpmathmpmath.libmpr   r   r   r   r,   r6   rN   rX   rl   rv   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r
   r   r   <module>r     s&       ; ; ; ; ; ; ; ; ; ;3 3 3+ + +Ze> e> e>N%p %p %pN  /X /X /Xb!Q !Q !QF. . .<    + + +ZG G G
     "  
Y 
Y 
YF F F  
U 
U 
UC C C(
 
 
  "W W W> > >* * **) ) )<$( $( $(L! ! !c c c6] ] ]    r   