
    wgm                         d dl  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"y!)"    )*)round_up
from_floatmpf_zeta_intc                  8    t        dd      t        d      k(  sJ y )Nr   
         )r   r        `/home/mcse/projects/flask/flask-venv/lib/python3.12/site-packages/mpmath/tests/test_gammazeta.pytest_zeta_int_bugr      s    2*T"2222r   c                     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      j	                  d      sJ t        d      dk(  sJ t        d	      j	                  d      sJ t        d      dk(  sJ t        d      j	                  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      j	                  t        d      d-z        sJ d.t        _        t        d      j	                  t        d      d-z        sJ dt        _        y )/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y~"9999y $????y!"&CCCCBFy}!XXXXy~"\\\\y $bbbby!"&ffffBFR=CF2I&&&BFR=CF2I&&&BFr   c                     dt         _        t        dd      j                  d      sJ t        dd      j                  d      sJ t        dd      j                  d      sJ t        dd      j                  d      sJ t        dd      j                  d      sJ t        dd      j                  d      sJ t        dd      j                  d      sJ t        dd      j                  d	      sJ t        dd      j                  d      sJ t        dd      j                  d
      sJ t        dd      j                  d      sJ t        dd      j                  d      sJ t        dd      j                  d      sJ t        dd      j                  d      sJ t        dd      j                  d      sJ t        dd      j                  d      sJ t        dd      j                  d      sJ t        dd      j                  d      sJ t        dd      j                  d      sJ t        dd      j                  d      sJ t        dd      j                  d      sJ t        dd      j                  d      sJ t        dd      j                  d      sJ t        dd      j                  d      sJ t        dd      j                  d      sJ t        dd      j                  d      sJ t        dd      j                  d      sJ t        dd      j                  d      sJ t        dd      j                  d      sJ t        dd      j                  d      sJ t        dd      j                  d      sJ t        dd      j                  d      sJ t        dd      j                  d      sJ t        dd      j                  d      sJ t        dd      j                  d      sJ t        dd      j                  d      sJ t        dd      j                  d      sJ t        dd      j                  d      sJ t        dd      j                  d      sJ t        dd      j                  d      sJ t        dd      j                  d      sJ t        dd      j                  d      sJ t        d d      j                  d!      sJ t        d d      j                  d      sJ t        d d      j                  d      sJ t        d d      j                  d"      sJ t        d d      j                  d      sJ t        d d      j                  d       sJ t	        dd      j                  d      sJ t	        dd      j                  d      sJ t	        dd      j                  d      sJ t	        dd      j                  d      sJ t	        dd      j                  d      sJ t	        dd      j                  d      sJ t	        dd      j                  d      sJ t	        dd      j                  d	      sJ t	        dd      j                  d      sJ t	        dd      j                  d
      sJ t	        dd      j                  d      sJ t	        dd      j                  d      sJ t	        dd      j                  d      sJ t	        dd      j                  d      sJ t	        dd      j                  d#      sJ t	        dd      j                  d$      sJ t	        dd      j                  d      sJ t	        dd      j                  d      sJ t	        dd      j                  d%      sJ t	        dd      j                  d
      sJ t	        dd      j                  d      sJ t	        dd      j                  d&      sJ t	        dd      j                  d#      sJ t	        dd      j                  d'      sJ t	        dd      j                  d      sJ t	        dd      j                  d      sJ t	        dd      j                  d(      sJ t	        dd      j                  d)      sJ t	        dd      j                  d      sJ t	        dd      j                  d      sJ t	        dd      j                  d      sJ t	        dd      j                  d	      sJ t	        dd      j                  d      sJ t	        dd      j                  d*      sJ t	        dd      j                  d      sJ t	        dd      j                  d      sJ t	        dd      j                  d      sJ t	        dd      j                  d      sJ t	        dd      j                  d+      sJ t	        dd      j                  d,      sJ t	        dd      j                  d      sJ t	        dd      j                  d      sJ t	        d d      j                  d-      sJ t	        d d      j                  d.      sJ t	        d d      j                  d      sJ t	        d d      j                  d/      sJ t	        d d      j                  d0      sJ t	        d d      j                  d1      sJ t        d2d2      j                  d3      sJ t        d4d5      j                  d6      sJ t	        d4d5      j                  d7      sJ y )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   sC
   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Bq>V$$$Bq>X&&&Br?c"""Bq>QBu  ###Bu  !2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R!!"5666R?a   R?a   Rx(((R?g&&&R!!!$$$R!!"6777R?h'''R?g&&&E% ##$BCCCC  !:;;;S!!"<===r   c                  (   dt         _        t        d      j                  d      sJ t        d      j                  d      sJ t        d      j                  d      sJ t        d      j                  d	      sJ t        d
      j                  d      sJ t        d      j                  d      sJ t        d      j                  d      sJ t        d      j                  d      sJ d} t	        dd      D ]  }t        |      | k(  sJ | |z  }  dD ]5  }d} |t         _        t	        dd      D ]  }t        |      | k(  sJ | |z  }  7 dt         _        t        d      j                  t        t                    sJ dt         _        t        d      t        d      cxk(  rdk(  sJ  J t        d      dk(  sJ t        t        t                    sJ t        d      j                  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       j                  d!      sJ t        d"      j                  d#      sJ t        d$      j                  t        d%d#            sJ y )&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      sl   BF;>>/000=1222:==4555;>>0111<??4555 ;>>JKKK?LMMM=EFFF D1b\ Qx4	  q# 	A8t###AID	 BF:==b"""BFQ<3q6&Q&&&&&Q<1s;>>6777!9>>":??!9!9D>MNNNI!!"DEEEJ""3'JKm#nooor   c                     dt         _        t        d      D  cg c]  } t        |        c} g dk(  sJ t        d      j	                  d      sJ t        d      j	                  d      sJ t        d      j	                  d	      sJ t        d
      j	                  d      sJ t        t
              t
        k(  sJ t        t        t
                     sJ y c c} w )Nr   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   fac2r'   infrG   )ns    r   	test_fac2rT      s    BF"2Y'DG'+HHHH8;;t9<<   8;;-...	?LMMM9sd (s   C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              j                  t        dt        z        t        t              z        sJ t        dd      j                  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      j                  d      sJ t        dd      j                  t        dz        sJ dt        dd      z  j                  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J  J t        t        d!      t        k(  sJ t        t        d"      t         k(  sJ t        d#dt        dz  z
        j                  d$      sJ t        d"d       dk(  sJ t        dd
      j                  d%      sJ t        dd      j                  d&      sJ y )'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   	gammaprodrR   absrfjr'   ffbinomialbetarD   rG   )hepGs      r   test_gamma_quotientsrh      sG   BFA	BAbT2b'"a'''bVRD!S(((y"rd#a1ga1go56===y"R"Q(1RT71RT7?1RT7+B1QqS6+IIJTQQQa7a<<c!9b8r>>a7::eAaCjq)***"#89<<=UVVVb8q==b8r>>a7b==a7a<<Aa=AAa=AAb>QAa=AAa=BAa=BAa=ABq>QBr?aC'''Dt###Dv%%%!9>>!9!92;#A;>>$C=BrE"""43<##$9:::C=Asd3   baC=DSM.Q.....D>S   D>cT!!!R!V NOOOS>Q1:==$%:;>>?VWWWr   c                  V   dt         _        t        d      j                  t        dz  dz        sJ t        d      j                  t        dz  dz        sJ t        t        d            j                  t        dz  dz        sJ t        d      j                  d      sJ t        d      j                  d      sJ t        d	      j                  d
      sJ t        d      j                  t        d       dz        sJ t        d      dk(  sJ t        d      j                  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      j                  d      sJ t        d      j                  d      sJ t        t        d	d            j                  d      sJ t        t        d	d            j                  d      sJ t        t        d	d            j                  d      sJ t        t        dd            j                  d      sJ t        t        dd            j                  d      sJ dt         _        d} t        t        d	|             j                  dd      sJ dt         _        t        d      ddz  z  j                  d      sJ t        dd	      dk(  sJ t        dd      d	k(  sJ t        dd	d      j                  d      sJ t        d d!      j                  d"      sJ y )#Nr   r   r   g       @r<   r   r   r	   r=   gs~]r   r   rW   r.   x   rV   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_zetarr      s   BF7::b!eai   9<<A	"""A<??2q519%%%9<<??7::d9<<,---8;;Awrz"""8q==8;;s1vcz"""8q==:??c;>>$<??4   C/0144Q777C/0144Q777C/0144Q777E% !$$T***F5!"%%d+++BF	CBC  E***BFL2r6!%%&LMMM#;!!9#a=0111T?O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      j                  t	        d            sJ t        d      j                  t
        dz  dz        sJ t        d      j                  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        |       j                  ddd| z
  z  z
  t        |       z        sJ d} t        |       j                  ddd| z
  z  z
  t        |       z        sJ t        d      j                  d      sJ t        d       j                  d!      sJ t        d"      j                  d      sJ t        d#      j                  d      sJ t        t        d"d$            j                  d      sJ t        t        d#d$            j                  d      sJ y )%Nr   rW   r   rV   rk   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?rl   rm   rn   )r$   r%   altzetar'   logrD   rp   rK   )ss    r   test_altzetar      sn   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=GAJ&&&A1:==!A!H*d1g-...A1:==!A!H*d1g-...6?67773<??.///5>S!!!6?c"""3uU#$'',,,3ve$%((---r   c                     dt         _        t        t              dk(  sJ dt         _        t        d      j	                  d      sJ t        dt
        z        j	                  d      sJ dt         _        t        d	      } dt         _        t        | dz
        d
k(  sJ t        t
        dz  t              dkD  sJ t        dt              dkD  sJ t        t
        dz        dk(  sJ t        d      dk(  sJ y )Nr   r   r"   r<   z61.0000000000000000000000000000007888609052210118073522(   z61.0000000000000000000000000000000000000148407238666182r2   i  z1.02363019598118e-9934r   rw   i  )r$   r%   rp   rR   r'   rD   r(   r   )vs    r   test_zeta_huger   >  s    BF9>>BF9<<PQQQ2;>>RSSSBFUABFqs8////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         _        y )N   r   r   r   z=2.55880492708712e+1233536161668617575553892558646631323374078r"   z`2.5588049270871154960875033337384432038436330847333e+1233536161668617575553892558646631323374078)r$   r%   rD   r(   rp   )as    r   test_zeta_negativer   M  s[    BF	BF
ABFtAw<ZZZZBFtAw<}}}}BFr   c            	      *	   dt         _        d } d } | d      t        dd      cxk(  rt        d      k(  sJ  J  | t              j                  d      sJ  | t               j                  d      sJ  | t         dz         j                  d	      sJ  | t        t        z         j                  d
      sJ  | t         t        z
        j                  d      sJ t        | d      j                  d      sJ  | d      j                  d      sJ  | d      j                  d      sJ  | d      j                  d      sJ  | d      j                  d      sJ  | t              t        k(  sJ  |t              dk(  sJ t        dt              dk(  sJ  |t              j                  d      sJ  |t               j                  d      sJ  |t        t        z         j                  d      sJ  |t         t        z
        j                  d      sJ dt        dddt        z  t        z  z         z  j                  d      sJ  | ddt        z  t        z  z         j                  d      sJ t         | t                    sJ t         | t                     sJ  | d      j                  d       sJ  | d!      j                   | d            sJ  | d"      j                  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%      j                  t        d&d'            sJ dt         _        y )(Nr   c                     t        d|       S Nr   psizs    r   <lambda>z test_polygamma.<locals>.<lambda>X      S1X 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& _rn   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@rz   y      Y      @y]vCq@˼@r   y            ?z%0.46317279488182026118963809283042317z$2.4821070143037957102007677817351115)r$   r%   r   digammarD   r'   ra   findrootrR   rG   rH   rK   )psi0psi1s     r   test_polygammar   V  s   BFDD7c!Ah,'!*,,,,, 8;;*+++9<<*+++A;>>,---1:==CDDDA;>>BCCCD! 2333;>>,---;>>0111  !HIII  !PQQQ99>>q:??8;;*+++9<<*+++1:==CDDDA;>>EFFF#a"R%'	""&&'PQQQ"R%'	?FGGGcsd<??,---:==a!!!=HIIIQs1Sz"###Qs1Sz"###Qs1cT{#$$$Qs1Sz"###Qs1Sz"###Qs1cT{#$$$Qs3s|$%%%Qs3s|$%%%QsC4~&'''BF8$KMs tuuuBFr   c                      dt         _        t        t        dt                    dk(  sJ t        t        dt                    dk(  sJ y )Nr<   r   zf0.9772133079420067332920694864061823436408346099943256380095232865318105924777141317302075654362928734r   zf-12.98876181434889529310283769414222588307175962213707170773803550518307617769657562747174101900659238)r$   r%   r(   r   rD   r
   r   r   test_polygamma_high_precr     sS    BFs1Ry>  F  F  F  Fs2bz?  G  G  G  Gr   c                     dt         _        d } d }d } | d      j                  t         dt	        d      z  z
        sJ  | d      j                  t               sJ  |d      j                  dt
        dz  z        sJ  |d      j                  t
        dz  dz        sJ  |d	      j                  t
        dz  d
t        z  z         sJ  |d      j                  dt        z        sJ dt         _        dt        z  dt        d      z  t
        dz  z  z   }dt         _        t        dd      j                  |      sJ t        dd      j                  t
        dz        sJ y )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   rW   rX   iJr   r   g?)
r$   r%   r'   eulerr~   rD   catalanaperyrC   r   )r   r   psi2ry   s       r   test_polygamma_identitiesr     s-   BFDDD9<<qQx(((7::uf9<<BE	"""7::b!eAg:==Q7*+++7::bhBFU
1T!W9RU?"ABFq;>>!q:==Qr   c                  T   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  }|j                  |      sJ d	t         _        y )
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mA	hqmA	c!etDF|#d3!9o5S!A#YGA	"T#d1g+b.!!A447N7BFr   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 y )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   era   r
   r   r   test_polygamma_high_orderr     s    BFs2r{   H  H  H  Hs2rBqDy!"  '`  `  `  `s2rBqDF{#$ *^ _ _ _ BFs2r{6666s2rBqDy!"&====s2rBqDF{#$(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      j                  d      sJ t        d      j                  d	      sJ t        d
dz        j                  d      sJ t        d      j                  ddt	        d      z  z
        sJ t        t
              t
        k(  sJ t        d      dk(  sJ t        d      j                  d      sJ y )Nr   r   r   r   rZ   r   gUUUUUU?r   g_b7@r   r   gS@r=   y       @        y      ?        r]   yk4q?@w?)r$   r%   harmonicr'   r~   rR   r
   r   r   test_harmonicr     s    BFA;!A;!A;#A;>>*+++F4555BH  !2333C=AaAhJ'''C=CD>V###D>D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         _        y )N  r      r   z6.26075321389519e+12458010678r"   z@6.2607532138951929201303779291707455874010420783933e+12458010678r$   r%   r)   r(   rA   r   s    r   test_gamma_huge_1r     sY    BFFaABFuQx=;;;;BFuQx=^^^^BFr   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 y )	Nr   r   r<      r   zw1.82341134776679e+51729974693233641689901335581750771368291828240422018860515119656908623426021308685461258226190190661r"   z1.82341134776678875374414910350027596939980412984e+51729974693233641689901335581750771368291828240422018860515119656908623426021308685461258226190190661r   r   s    r   test_gamma_huge_2r     sm    BFBGrABFuQx=	34 4 4 BFuQx=	TU U Ur   c                  r   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 y )Nr   r   P   r   F   r   r   ze-6.82925203918106e+2636286142112569524501781477865238132302397236429627932441916056964386399485392600zd8.54647143678418e+2636286142112569524501781477865238132302397236429627932441916056964386399485392600r"   z-6.8292520391810548460682736226799637356016538421817e+2636286142112569524501781477865238132302397236429627932441916056964386399485392600z8.5464714367841748507479306948130687511711420234015e+2636286142112569524501781477865238132302397236429627932441916056964386399485392600r$   r%   ra   rA   r(   realimagr   r   s     r   test_gamma_huge_3r     s    BF
B!b"fQhl"ABFaAqvv;	 ! ! ! qvv;	      BFaAqvv;	CD D D qvv;	BC C Cr   c                      d} dt         _        t        t        |             dk(  sJ dt         _        t        t        |             dk(  sJ dt         _        y )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     sZ    ABFuQx=<= = =BFuQx=	   BFr   c                  v   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         _        y )Nr   r   ru   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qvv;kkkkqvv;jjjjBFaAqvv;	-. . . qvv;	-. . . BFr   c                  r   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 y )
Nr<   r   r   r   r   z2.0z1.84556867019693e-1000r"   z91.8455686701969342787869758198351951379156813281202e-1000)r$   r%   ra   r)   rA   r(   r   r   )r   r   s     r   test_gamma_huge_7r     s    BF	Ac"gtmOABFaAqvv;% qvv;2222BFaAqvv;%qvv;VVVVr   c                  H   dt         _        t        d      j                  t              sJ dt         _        t        d      j                  d      sJ t        d      j                  d      sJ t        d      j                  d	      sJ t        d
      j                  d      sJ dt         _        t        d      j                  d      sJ t        d      j                  d      sJ t        d      j                  d      sJ t        d
      j                  d      sJ y )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     s    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J  J t        d      D  cg c]  } t	        |        c} 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      j                  d	      sJ t        d
      j                  d      sJ t        d      D cg c]  }t        |       c}g dk(  sJ t        ddd      D cg c]  }t        |       c}g dk(  sJ t        d      }|dk(  rt        |t              sJ t        d      }|dk(  rt        |t              sJ y c c} w c c}w c c}w )Nr   r   r   r   )r   r   r   r   i   i   i {l     2ft r   z3.24570818422368e+1177245gffffff?gd?y       @      @ygƿ1?r   )r   r   r   l    l  i \&l     )r   r   r   rV   r   r   i y              rV   )r$   r%   barnesgrB   superfacr(   rG   rH   hyperfacrR   r'   
isinstancerK   )rM   rS   r   s      r   test_barnesgr   "  s   BF1:))))))!&q*AHQK*.____x~"====##3<3C=CC=C3$   3<??-...4=EFFF!&q*AHQK*.\\\\!&qB0AHQK04SSSSA6jC(((A7z!S))))! + +0s   G2&G7G<c                  P   dt         _        dD  cg c]  } t        |        }} |D ],  } t        d|       j	                  t        d| z
               r,J  |D ]%  } t        d|       j	                  | d| z
  z        r%J  |D ](  } t        d|       j	                  | d| z
  dz  z        r(J  |D ].  } t        d|       j	                  | d| z   z  d| z
  dz  z        r.J  |D ]7  } t        d	|       j	                  | dd
| z  z   | dz  z   z  d| z
  d
z  z        r7J  t        dd      j	                  d      sJ t        dd      j	                  d      sJ t        dd      j	                  d      sJ t        dd      j	                  d      sJ t        dd      j	                  d      sJ t        dd      j	                  d      sJ t        dd      j	                  d      sJ t        ddt        t              z        j	                  d      sJ t        dd      j	                  d      sJ t        dd      j	                  d      sJ t        dd      j	                  d      sJ t        d	d      j	                  d      sJ t        d	d      j	                  d      sJ t        d t        dz  z   d t        dz  z         j	                  d!      sJ t        d"d      j	                  t        d"            sJ t        d"d      j	                  t        d"             sJ t        d#d$      j	                  d%      sJ t        d#d&      j	                  d'      sJ t        d(d      j	                  t        d      d)z        sJ t        d(d*      j	                  d+      sJ y c c} w ),Nr   )r   r=   gGz?r   r	   rV   y              ?r{   r   r   r   r   rW   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  rV   g-C6zr=   yB8$P?g ?r{   rZ   gtHgWcFr3   yQ K1Q y               g      +@g      ?iL)r$   r%   	mpmathifypolylogr'   r~   rC   ra   rp   r}   r)   )r   zss     r   test_polylogr   7  sz   BF E	F1)A,	FB	F31((#ac(333311((AaC11115A))!QqS1H*5555;A))!QqS'1Q3(*:;;;;BA))!QqsU1a4Z.!A#*ABBBB1a=HIII1b>34441c?34441d67771dNOOO1c?JKKK1d67771c$q'k"%%&TUUU2st$$$2t	***1c?34442su%%%2r?g&&&3qs7C!G$''(XYYY4?d4j)))4~...3+,//0BCCC3 MNNN5"  Q---5$""4(((5 
Gs   N#c                     dt         _        t        dd      dz  j                  d      sJ t        dd      dz  j                  d      sJ t        dd	      j                  d
      sJ t        dd      j                  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      j                  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      j                  t        t        d z              sJ y )!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'   bellrR   rG   rH   sincrD   r
   r   r   test_bell_polyexpr   U  sb   BFAeV#''666AeV#''5551R=IJJJ2c?2333!9>>!9>>!9>>#;!3$<1a!9>>!9>>#;#3$<C4a":??!9>>8v1:B<8####;*$$$3<??5666BF3<ffff2;cccc8ffffBF3<8888A;>>$r#v,'''r   c                     dt         _        t        d      j                  d      sJ t        d      j                  d      sJ t        d      t        k(  sJ t        t              dk(  sJ t        t        t                    sJ y )Nr   r   y2k?-DT!	@r   gMҵ?r   r   )r$   r%   	primezetar'   rR   rG   rH   r
   r   r   test_primezetar   {  so    BFS>KLLLQ<??2333Q<3S>Q3   r   c                     dt         _        t        d      j                  d      sJ t        d      j                  d      sJ t        dd      j                  d	      sJ t        d
d      j                  d      sJ t        d
d      j                  d      sJ t        dd      j                  d      sJ d"d}  | t        j                  d      d      sJ  | t        j                  d      d      sJ  | t        j                  d      d      sJ  | t        j                  dd      d      sJ  | t        j                  d
      d      sJ  | t        j                  d
d      d      sJ  | t        j                  dd      d      sJ  | t        j                  dd      d      sJ  | t        j                  dd      d      sJ  | t        j                  dd      d      sJ  | t        j                  dd      d      sJ  | t        j                  dd      d      sJ  | t        j                  dd      d       sJ  | t        j                  dd      d!      sJ y )#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                 <    t        | |z
        |t        |      z  k  S )N)r_   )r   r   tols      r   r'   ztest_rs_zeta.<locals>.ae  s    1Q3x#c!f*$$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Ы@)gư>)r$   r%   rp   r'   fp)r'   s    r   test_rs_zetar     sE   BF NOOO  !NOOO+../]^^^
q),,-[\\\
q),,-^___+../]^^^%bggk"$RSSSbggl#%RSSSbggh!QRRRbggh1g-/]^^^bggfoOPPPbggfg+-^___bggkag02_```bggkag02abbbbggkag02`aaabggkag02abbbbgglqg13cdddbgglqg13`aaabgglqg13abbbbgglqg13abbbr   c                     dt         _        t        d      j                  d      sJ t        dd      j                  d      sJ t        dd      j                  d      sJ t        dt        z   d	      j                  d
      sJ y )Nr   r!   g1/[㳄@r   r   gKKr   gFhnqr   yQ1@a߻w)r$   r%   siegelzr'   ra   r
   r   r   test_siegelzr     sz    BF6?45556a(++,CDDD6a(++,CDDD6!8q),,-[\\\r   c                     dt         _        t        ddd      } t        ddd      }t        ddd      }t        |       j	                  d      sJ t        |      j	                  d	      sJ t        |      }|j
                  j	                  d
      sJ |j                  j	                  d      sJ dt         _        t        ddd      } t        ddd      }t        ddd      }t        |       j	                  d      sJ t        |      j	                  d      sJ t        |      }|j
                  j	                  d      sJ |j                  j	                  d      sJ y )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%   faddrp   r'   r   r   )s1s2s3r   s       r   test_zeta_near_1r     s+   BF	a	%B	a	&B	a	&B8;;78888;;6777RA6699+,,,66993444BF	a	%B	a	&B	a	&B8;;v8;;wRA6699KLLL6699Wr   N)#mpmathmpmath.libmpr   r   r   r   r,   r6   rN   rT   rh   rr   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+Ze>N%pN/Xb!QF.<+ZG
 "
YF
UC(
"W>**)<$(L!c6]r   