o
    lhm                     @   s  d dl T d dlmZmZmZ dd Zdd Zdd Zd	d
 Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& Zd'd( Zd)d* Zd+d, Zd-d. Zd/d0 Zd1d2 Zd3d4 Zd5d6 Zd7d8 Zd9d: Z d;d< Z!d=d> Z"d?S )@    )*)round_up
from_floatmpf_zeta_intc                   C   s   t ddtdksJ d S )Nr   
         )r   r    r   r   o/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/mpmath/tests/test_gammazeta.pytest_zeta_int_bug   s   r
   c                  C   st  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s0J t ddks8J t dd
ks@J t ddksHJ t ddksPJ t ddksXJ t d\} }| d dksfJ |dkslJ t d\} }| d dkszJ |dksJ dt_tddksJ tddksJ tddsJ tddksJ td	dsJ tddksJ tdd sJ ttdd!ksJ ttd"d#ksJ ttd$d%ksJ ttd&d'ksJ d(t_ttdd)ksJ ttd"d*ksJ ttd$d+ksJ ttd&d,ksJ dt_tdtdd- s$J d.t_tdtdd- s5J 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qr   r   r	   test_bernoulli   sN   
r(   c                   C   sZ  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s5J tddds?J tdddsIJ tddd	sSJ tddds]J tddd
sgJ tdddsqJ tddds{J tdddsJ tdddsJ tdddsJ tdddsJ tdddsJ tdddsJ tdddsJ tdddsJ tdddsJ tdddsJ tdddsJ tdddsJ tdddsJ 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s4J tddds?J tdddsJJ tdddsUJ tddds`J tdddskJ tdddsvJ tdddsJ tdddsJ tdddsJ tdddsJ tdddsJ tdddsJ td dd!sJ td ddsJ td ddsJ td dd"sJ td ddsJ td dd sJ 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s1J tddds<J tdddsGJ tddd	sRJ tddds]J tddd
shJ tdddssJ tddds~J tdddsJ tdddsJ tddd#sJ tddd$sJ tdddsJ tdddsJ tddd%sJ tddd
sJ tdddsJ tddd&sJ tddd#sJ tddd'sJ tdddsJ tdddsJ tddd(s#J tddd)s.J tddds9J tdddsDJ tdddsOJ tddd	sZJ tdddseJ tddd*spJ tddds{J tdddsJ tdddsJ tdddsJ tddd+sJ tddd,sJ tdddsJ tdddsJ td dd-sJ td dd.sJ td ddsJ td dd/sJ td dd0sJ 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   r	   test_bernpoly_eulerpoly4   s   r1   c                  C   s  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s0J tdds9J tddsBJ tddsKJ d} tddD ]}t|| ks\J | |9 } qRdD ]}d} |t _tddD ]}t|| ksyJ | |9 } qoqcdt _tdttsJ dt _tdtd  krdksJ  J tddksJ t	tt
sJ tddsJ tddksJ tddksJ tddksJ tddksJ td d!sJ td"d#sJ td$td%d#sJ 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!   r   r   r	   
test_gamma   sD   

$rH   c                   C   s   dt _d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s6J tttks>J ttt sGJ d S )Nr   c                 S      g | ]}t |qS r   )fac2.0nr   r   r	   
<listcomp>       ztest_fac2.<locals>.<listcomp>r   )
r   r   r   r   r   r   0   r5   i  i  r*   gUUUUUU?r,   ggjVQr   g!a?@Fy      ?      ?yHO?j6.Vֿ)r    r!   r<   rJ   r#   infrA   r   r   r   r	   	test_fac2   s   rR   c                  C   s  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|  |d	|    dk s:J ttddgd	dg|d|  |d|   |d	|   |d|    dk saJ td
ddksjJ tdddkssJ tdddks|J ttttdt tt sJ tdddsJ t	d	ddksJ t	d	dd	ksJ t	dd
dksJ t	d
ddksJ t
dddksJ t
dddksJ t
dddksJ t
d
dd
ksJ t
dddksJ t
dd
dksJ t
dddksJ t
dddksJ t
d	dd
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s7J tddtksAJ td
dtksKJ tddtksUJ tddds`J tddtd smJ dtdd dszJ tttdksJ ttt tsJ ttdtsJ ttdtsJ ttd td t  krdksJ  J ttd!tksJ ttd"t ksJ td#dtd  d$sJ td"d dksJ tdd
d%sJ tddd&sJ d S )'Nr   g:0yE>r3   r   r)   r   r*   r   r   g      @r      z-255.5815971722918z-0.5119253100282322z-0.1952720278805729485r      r   r   g      @      ?g     @@r8   i"9	 gUUUUUU?   l     I5 r6   grP@r7         r         ?       @y+5?\K9ʵ?gUUUUUUտz18.157330562703710339)r    r!   r;   	gammaprodrQ   absrfjr#   ffbinomialbetar>   rA   )hepGr   r   r	   test_gamma_quotients   s^   2N$,re   c                  C   s<  dt _tdtd d sJ tdtd d sJ ttdtd d s,J tdds5J tdds>J td	d
sGJ tdtd d sUJ tddks]J tdtdd sjJ tddksrJ tddkszJ tttsJ tddsJ tddsJ ttd	ddsJ ttd	ddsJ ttd	ddsJ ttdddsJ ttdddsJ dt _d} ttd	| ddsJ dt _tddd  dsJ tdd	dksJ 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       @r6   r   r   r   r7   gs~]r   r   rT   r)   x   rS   KH9KHg"fD,@gOc5@g9@Ww'&l7r   z8236.5242296658162058024755079556629786895294952121891237gaU,$Db6y      N      @r   "   y9A!@.@g9B.ֿrY   y              ?yN*i6?)	r    r!   zetar#   r>   rE   r%   rA   rB   )imr   r   r	   	test_zeta   s:   rn   c                  C   s  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s3J tddks;J tddksCJ tdtdsNJ tdtd d s[J tddtd  d sjJ tddk srJ tddddk s|J tddddksJ tddddk sJ tddddksJ tdtdksJ d} t| ddd|    t|  sJ d} t| ddd|    t|  sJ tddsJ td d!sJ td"dsJ td#dsJ ttd"d$dsJ ttd#d$dsJ d S )%Nr   rT   r   rS   rg   r7   r   r2   r)   g      r*   ig  z\Ar   r   r   r   I   i jh r   <   droundingur-         @        r         @      @y            @      Yg@o.>Vg?g^s?rh   ri   rj   )r    r!   altzetar#   logr>   rl   rE   )sr   r   r	   test_altzeta   s8   &&r{   c                  C   s   dt _ttdksJ dt _tddsJ tdt ds"J dt _td	} dt _t| d d
ks6J ttd tddksBJ tdtddksLJ ttd dksVJ tddks^J d S )Nr   r   r   r6   z61.0000000000000000000000000000007888609052210118073522(   z61.0000000000000000000000000000000000000148407238666182r-   i  z1.02363019598118e-9934r   rr   i  )r    r!   rl   rQ   r#   r>   r$   r   )vr   r   r	   test_zeta_huge>  s   r~   c                  C   sR   dt _t dd  } 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!   r>   r$   rl   ar   r   r	   test_zeta_negativeM  s   
r   c                  C   sN  dt _dd } dd }| dtdd  krtdks J  J | tds)J | t ds3J | t d	 d
s?J | tt dsJJ | t t dsVJ t| d	ds`J | ddsiJ | ddsrJ | dds{J | ddsJ | ttksJ |tdksJ tdtdksJ |tdsJ |t dsJ |tt dsJ |t t dsJ dtdd	dt t   dsJ | d	dt t  dsJ t	| t
sJ t	| t sJ | 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
s3J t	tdtdt sAJ t	tdtd	tsNJ t	tdtd	t
s[J t	tdtd	t siJ t	tdtttsvJ t	tdtt
t
sJ t	tdtt t sJ d%t _td&td'd(sJ dt _d S ))Nr   c                 S   
   t d| S Nr   psizr   r   r	   <lambda>X     
 z test_polygamma.<locals>.<lambda>c                 S   r   Nr   r   r   r   r   r	   r   Y  r   r   r   guTE?g,$7@r   gdGDE@y)\Z[?ÕޛD?ybabJr?N<g?Vcb?绽|=g& _rj   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?rw   g69u@ru   y      Y      @y]vCq@˼@r   y            ?z%0.46317279488182026118963809283042317z$2.4821070143037957102007677817351115)r    r!   r   digammar>   r#   r^   findrootrQ   rA   rB   rE   )psi0psi1r   r   r	   test_polygammaV  sP   *$
r   c                   C   s6   dt _ttdtdksJ ttdtdksJ d S )Nr6   r   zf0.9772133079420067332920694864061823436408346099943256380095232865318105924777141317302075654362928734r   zf-12.98876181434889529310283769414222588307175962213707170773803550518307617769657562747174101900659238)r    r!   r$   r   r>   r   r   r   r	   test_polygamma_high_prec  s   r   c                  C   s  dt _dd } dd }dd }| dt dtd  sJ | dt s)J |ddtd  s6J |dtd d	 sCJ |d
td dt  sRJ |ddt s]J dt _dt dtd td   }dt _t	dd|s{J t	ddtd sJ d S )Nr   c                 S   r   r   r   r   r   r   r	   r     r   z+test_polygamma_identities.<locals>.<lambda>c                 S   r   r   r   r   r   r   r	   r     r   c                 S   r   )Nr   r   r   r   r   r	   r     r   r7   r   r   r   r2   r   rT   rU   iJr   r   g?)
r    r!   r#   eulerry   r>   catalanaperyr=   r   )r   r   psi2rt   r   r   r	   test_polygamma_identities  s    r   c                  C   s   dd } dt _dtdd }dtdd }| d|  | d	|  | dd|   | dd|   }dt tdtd t  }||sGJ d
t _d S )Nc                 S   r   r   r   r   r   r   r	   r     r   z'test_foxtrot_identity.<locals>.<lambda>r   r   r   r   r   r7   r   r   )r    r!   fractionr>   sechr=   r#   )r   r   bxyr   r   r	   test_foxtrot_identity  s   :
r   c                   C   s   dt _ttdtdksJ ttdtdt  dksJ ttdtdt t  dks.J dt _ttdtdks<J ttdtdt  d	ksKJ ttdtdt t  d
ks\J d S )Nr6   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   r>   er^   r   r   r   r	   test_polygamma_high_order  s   "&r   c                   C   s   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 ds8J tdddtd  sGJ tttksOJ tddksWJ tdds`J d S )Nr   r   r   r   rW   r   gUUUUUU?r   g_b7@r   r   gS@r7   y       @        y      ?        rZ   yk4q?@w?)r    r!   harmonicr#   ry   rQ   r   r   r   r	   test_harmonic  s   r   c                  C   sP   dt _tdd } 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$   r;   r   r   r   r	   test_gamma_huge_1  s   
r   c                  C   sN   dt _tdd d } dt _tt| dksJ dt _tt| dks%J d S )	Nr   r   r6      r   zw1.82341134776679e+51729974693233641689901335581750771368291828240422018860515119656908623426021308685461258226190190661r   z1.82341134776678875374414910350027596939980412984e+51729974693233641689901335581750771368291828240422018860515119656908623426021308685461258226190190661r   r   r   r   r	   test_gamma_huge_2  s   

r   c                  C   s   dt _dd d dd t d  } 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sCJ d S )Nr   r   P   r   F   r   r   ze-6.82925203918106e+2636286142112569524501781477865238132302397236429627932441916056964386399485392600zd8.54647143678418e+2636286142112569524501781477865238132302397236429627932441916056964386399485392600r   z-6.8292520391810548460682736226799637356016538421817e+2636286142112569524501781477865238132302397236429627932441916056964386399485392600z8.5464714367841748507479306948130687511711420234015e+2636286142112569524501781477865238132302397236429627932441916056964386399485392600r    r!   r^   r;   r$   realimagr   r   r   r   r	   test_gamma_huge_3  s$   r   c                  C   sB   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$   r;   r   r   r   r	   test_gamma_huge_4  s   


r   c                  C   s   dt _dd t d } dt _t| }t|jdksJ t|jdks$J dt _t| }t|jd	ks4J t|jd
ks=J dt _d S )Nr   r   rp   r   r   zO-3.27753899634941e-227396058973640224580963937571892628368354580620654233316839zN-7.1519888950416e-227396058973640224580963937571892628368354580620654233316841r   zr-3.2775389963494132168950056995974690946983219123935e-227396058973640224580963937571892628368354580620654233316839zr-7.1519888950415979749736749222530209713136588885897e-227396058973640224580963937571892628368354580620654233316841r   r   r   r   r	   test_gamma_huge_5  s   
r   c                  C   s   dt _dttdd   } dt _t| }t|jdksJ t|jdks&J dt _t| }t|jdks6J t|jd	ks?J d S )
Nr6   r   r   r   r   z2.0z1.84556867019693e-1000r   z91.8455686701969342787869758198351951379156813281202e-1000)r    r!   r^   r%   r;   r$   r   r   )r   r   r   r   r	   test_gamma_huge_7  s   r   c                   C   s   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s4J dt _tdds@J tddsIJ tddsRJ 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   r	   test_stieltjes  s   r   c                  C   sr  dt _tdtd  krdksJ  J dd tdD g dks$J ttdd	ks.J ttts6J ttts>J tttsFJ tt	t	ksNJ tt	t	ksVJ tt	t	ks^J ttt	 sgJ td

dspJ td
dsyJ dd tdD g dksJ dd tdddD g dksJ td} | dkrt| tsJ td} | dkrt| tsJ d S )Nr   r   r   c                 S   rI   r   )superfac)rL   rG   r   r   r	   rN   %  rO   z test_barnesg.<locals>.<listcomp>r   )r   r   r   r   i   i   i {l     2ft r   z3.24570818422368e+1177245gffffff?gd?y       @      @ygƿ1?c                 S   rI   r   hyperfacrK   r   r   r	   rN   0  rO   r   )r   r   r   l    l  i \&l     c                 S   rI   r   r   rK   r   r   r	   rN   1  rO   )r   r   r   rS   r   r   i y              rS   )r    r!   barnesgr<   r$   r   rA   rB   r   rQ   r#   
isinstancerE   r   r   r   r	   test_barnesg"  s&   $"r   c                  C   s  dt _dd dD } | D ]}td|td|  sJ q| D ]}td||d|  s0J q | D ]}td||d| d  sEJ q3| D ]}td	||d|  d| d
  s^J qH| D ]}td||dd|  |d   d| d  s}J qatd
ddsJ td
ddsJ tdddsJ tdddsJ tdddsJ tdddsJ tdddsJ tddtt dsJ td	ddsJ td	ddsJ td
ddsJ tdddsJ tdd d!sJ td"td
  d"td  d#sJ td$dtd$s%J td$dtd$ s3J td%d&d's>J td%d(d)sIJ td*d	t	dd+ sXJ td*d,d-scJ d S ).Nr   c                 S   rI   r   )	mpmathify)rL   r   r   r   r	   rN   9  rO   z test_polylog.<locals>.<listcomp>)r   r7   gGz?r   r   rS   y              ?rv   r   r   r   r   rT   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  rS   g-C6zr7   yB8$P?g ?rv   rW   gtHgWcFr.   yQ K1Q y               g      +@g      ?iL)
r    r!   polylogr#   ry   r=   r^   rl   rx   r%   )zsr   r   r   r	   test_polylog7  s6   (&*2>&r   c                   C   s  dt _tddd dsJ tddd dsJ tdd	d
s%J tddds/J tdddks8J tdddksAJ tdddksJJ tdtdksSJ tdt dks]J ttdtsfJ tdddksoJ tdddksxJ tdttksJ tdt t ksJ ttdtsJ tdddksJ tdddksJ tddksJ tdddksJ tdddksJ tdddksJ tdddsJ dt _tdddksJ tdddksJ tddksJ dt _tdddksJ td dtt	d  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 (3VjwBr7   )
r    r!   polyexpr#   bellrQ   rA   rB   sincr>   r   r   r   r	   test_bell_polyexpU  s<   "r   c                   C   s^   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#   rQ   rA   rB   r   r   r   r	   test_primezeta{  s   r   c                  C   s  dt _tddsJ tddsJ tdddd	s J td
ddds+J td
ddds6J tddddsAJ d$dd} | tddsPJ | tddsZJ | tddsdJ | tjddddspJ | td
dszJ | tjd
dddsJ | tjddddsJ | tjddddsJ | tjddddsJ | tjddddsJ | tjdddd sJ | tjdddd!sJ | tjdddd"sJ | tjdddd#sJ 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                 S   s   t | | |t | k S )N)r\   )r   r   tolr   r   r	   r#     s   ztest_rs_zeta.<locals>.aey      ?     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!   rl   r#   fp)r#   r   r   r	   test_rs_zeta  s,   
r   c                   C   sb   dt _tddsJ tddddsJ tdddds"J tdt d	dd
s/J d S )Nr   r   g1/[㳄@r   r   gKKr   gFhnqr   yQ1@a߻w)r    r!   siegelzr#   r^   r   r   r   r	   test_siegelz  s
   r   c                  C   s   dt _tdddd} tdddd}tdddd}t| ds!J t|d	s*J t|}|jd
s6J |jds>J dt _tdddd} tdddd}tdddd}t| ds_J t|dshJ t|}|jdstJ |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!   faddrl   r#   r   r   )s1s2s3r   r   r   r	   test_zeta_near_1  s$   r   N)#mpmathmpmath.libmpr   r   r   r
   r(   r1   rH   rR   re   rn   r{   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   <module>   s@    -g'
1#	-	&	