U
    9%e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td S )Nr   
         )r   r   AssertionError r	   r	   Z/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/mpmath/tests/test_gammazeta.pytest_zeta_int_bug   s    r   c                  C   s  t ddkstt ddks tt ddks0tt ddks@tt d	d
ksPtt ddks`tt ddksptt dd
kstt ddkstt ddkstt ddkstt d\} }| d dkst|dkstt d\} }| d dkst|dkstdt_tddksttddks,ttdds@ttddksRttd	dsfttddksxttdd stttdd!kstttd"d#kstttd$d%kstttd&d'kstd(t_ttdd)ks tttd"d*kstttd$d+ks,tttd&d,ksBtdt_tdtdd- sdtd.t_tdtdd- st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  )Zbernfracr   mpdpsZ	bernoulliaestrmpf)pqr	   r	   r
   test_bernoulli   sN    r'   c                   C   st  dt _tdddsttddds.ttdddsBttdddsVttdddsjttddds~ttdddsttddd	sttdddsttddd
sttdddsttdddsttdddsttddds"ttddds8ttdddsNttdddsdttdddszttdddsttdddsttdddsttdddsttdddsttdddsttdddsttddds*ttddds@ttdddsVttdddslttdddsttdddsttdddsttdddsttdddsttdddsttdddsttdddsttddds2ttdddsHttddds^ttdddstttdddsttd dd!sttd ddsttd ddsttd dd"sttd ddsttd dd sttddds$ttddds:ttdddsPttdddsfttddds|ttdddsttdddsttddd	sttdddsttddd
sttddds ttdddsttddds,ttdddsBttddd#sXttddd$snttdddsttdddsttddd%sttddd
sttdddsttddd&sttddd#sttddd'sttddds4ttdddsJttddd(s`ttddd)svttdddsttdddsttdddsttddd	sttdddsttddd*sttdddsttddds&ttddds<ttdddsRttddd+shttddd,s~ttdddsttdddsttd dd-sttd dd.sttd ddsttd dd/sttd dd0sttd dd1s.ttd2d2d3sDttd4d5d6sZttd4d5d7spt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!   Zbernpolyr"   r   Z	eulerpolyr	   r	   r	   r
   test_bernpoly_eulerpoly4   s    r.   c                  C   s  dt _tddsttdds*ttdds<ttdd	sNttd
ds`ttddsrttddsttddstd} tddD ]}t|| kst| |9 } qdD ]6}d} |t _tddD ]}t|| kst| |9 } qqdt _tdttstdt _tdt	d  krBdksHn ttddksZtt
ttslttddsttddksttddksttddksttddksttd d!sttd"d#sttd$td%d#s
t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¶%@Z1e10000z 2.302485092994045684017991e10004Z1e10000jz!-1.570796326794896619231322e10000)r    r!   gammar"   r   rangesqrtpi	factorialZfacisnannanZrgammaZloggammampc)Zfactir!   r	   r	   r
   
test_gamma   sB    
&r?   c                   C   s   dt _dd tdD ddddddd	d
ddg
ks4ttddsFttddsXttddsjttdds|ttttkstttt std S )Nr   c                 S   s   g | ]}t |qS r	   )fac2.0nr	   r	   r
   
<listcomp>   s     ztest_fac2.<locals>.<listcomp>r   r   r   r   r   0   r2   i  i  r)   gUUUUUU?r+   ggjVQr   g!a?@Fy      ?      ?yHO?j6.Vֿ)r    r!   r7   r   r@   r"   infr;   r	   r	   r	   r
   	test_fac2   s    .rG   c                  C   s  dt _d} d}t}tdgddgdks*ttddgdgtksBtttdgd	g|d|  |d	|    dk sttttddgd	dg|d|  |d|   |d	|   |d|    dk sttd
ddksttdddksttdddkstttt	tdt tt sttdd	ds4tt
d	ddksHtt
d	dd	ks\tt
dd
dksptt
d
ddksttdddksttdddksttdddksttd
dd
ksttdddksttdd
dksttdddksttdddks$ttd	dd
ks8ttdddksLttdddks`ttdddkstttdddksttddtksttd
dtksttddtksttdd	dsttdd	td stdtdd 	dsttttdks"tttt ts8tttdtsLtttdts`tttd td t  krdksn tttd!tkstttd"t ksttd#dtd  	d$sttd"d dksttdd
	d%sttdd	d&std S )'Nr   g:0yE>r0   r   r(   r   r)   r   r   g      @r      z-255.5815971722918z-0.5119253100282322z-0.1952720278805729485r      r   r   g      @      ?g     @@r5   i"9	 gUUUUUU?   l     I5 r3   grP@r4         r         ?       @y+5?\K9ʵ?gUUUUUUտz18.157330562703710339)r    r!   r6   Z	gammaprodr   rF   absrfjr"   ffZbinomialbetar9   r;   )hepGr	   r	   r
   test_gamma_quotients   s^    2N&*rX   c                  C   sR  dt _tdtd d s ttdtd d s:tttdtd d sXttddsjttdds|ttd	d
sttdtd d sttddksttdtdd sttddksttddkstttt	sttddsttdds.tttd	ddsHtttd	ddsbtttd	dds|tttdddstttdddstdt _d} ttd	| ddstdt _tddd  dsttdd	dksttddd	ks ttdd	dds8ttd d!d"sNtd S )#Nr   r   r   g       @r3   r   r   r   r4   gs~]r   r   rI   r(   x   rH   KH9KHg"fD,@gOc5@g9@Ww'&l7r   z8236.5242296658162058024755079556629786895294952121891237gaU,$Db6y      N      @r   "   y9A!@.@g9B.ֿrN   y              ?yN*i6?)
r    r!   zetar"   r9   r   r=   r$   r;   r<   )Zimr	   r	   r
   	test_zeta   s:    r`   c                  C   s0  dt _tddksttddks&ttddks6ttddksFttddksVttd	d
ksfttddksvttddksttdtdsttdtd d sttddtd  d sttddk sttddddk sttddddksttddddk s$ttddddks:ttdtdksPtd} t| ddd|    t|  s|td} t| ddd|    t|  sttddsttd d!sttd"dsttd#dstttd"d$dstttd#d$ds,td S )%Nr   rI   r   rH   rZ   r4   r   r/   r(   g      r)   ig  z\Ar   r   r   r   I   i jh r   <   droundingur,         @        r         @      @y            @      Yg@o.>Vg?g^s?r[   r\   r]   )	r    r!   altzetar   r"   logr9   r_   r=   )sr	   r	   r
   test_altzeta   s8    ((rm   c                  C   s   dt _ttdkstdt _tdds.ttdt dsDtdt _td	} dt _t| d d
ksltttd tddksttdtddkstttd dksttddkstd S )Nr   r   r   r3   z61.0000000000000000000000000000007888609052210118073522(   z61.0000000000000000000000000000000000000148407238666182r,   i  z1.02363019598118e-9934r   rd   i  )	r    r!   r_   rF   r   r"   r9   r#   r   )vr	   r	   r
   test_zeta_huge>  s    rp   c                  C   sR   dt _t dd  } dt _tt| dks.tdt _tt| dksHtdt _d S )N   r   rn   r   z=2.55880492708712e+1233536161668617575553892558646631323374078r   z`2.5588049270871154960875033337384432038436330847333e+1233536161668617575553892558646631323374078)r    r!   r9   r#   r_   r   ar	   r	   r
   test_zeta_negativeM  s    rt   c                  C   sd  dt _dd } dd }| dtdd  kr8tdks>n t| tdsPt| t dsdt| t d	 d
s|t| tt dst| t t dstt| d	dst| ddst| ddst| ddst| ddst| t	t	kst|t	dks,ttdt	dks@t|tdsTt|t dsjt|tt dst|t t dstdtdd	dt t   dst| d	dt t  dstt
| tstt
| t	 st| d d!st| d"| ds4t| d#d$sHtt
tdtdt	sbtt
tdtdts|tt
tdtdt	 stt
tdtd	t	stt
tdtd	tstt
tdtd	t	 stt
tdtt	t	stt
tdtttstt
tdtt	 t	 s:td%t _td&td'd(sZtdt _d S ))Nr   c                 S   s
   t d| S Nr   psizr	   r	   r
   <lambda>X      z test_polygamma.<locals>.<lambda>c                 S   s
   t d| S Nr   rv   rx   r	   r	   r
   rz   Y  r{   r   r   guTE?g,$7@r   gdGDE@y)\Z[?ÕޛD?ybabJr?N<g?Vcb?绽|=g& _r]   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?ri   g69u@rg   y      Y      @y]vCq@˼@r   y            ?z%0.46317279488182026118963809283042317z$2.4821070143037957102007677817351115)r    r!   rw   Zdigammar   r9   r"   rR   ZfindrootrF   r;   r<   r=   )psi0psi1r	   r	   r
   test_polygammaV  sP    (& r   c                   C   s6   dt _ttdtdkstttdtdks2td S )Nr3   r   zf0.9772133079420067332920694864061823436408346099943256380095232865318105924777141317302075654362928734r   zf-12.98876181434889529310283769414222588307175962213707170773803550518307617769657562747174101900659238)r    r!   r#   rw   r9   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>t| dt sRt|ddtd  slt|dtd d	 st|d
td dt  st|ddt stdt _dt dt	d td   }dt _t
dd|stt
ddtd std S )Nr   c                 S   s
   t d| S ru   rv   rx   r	   r	   r
   rz     r{   z+test_polygamma_identities.<locals>.<lambda>c                 S   s
   t d| S r|   rv   rx   r	   r	   r
   rz     r{   c                 S   s
   t d| S )Nr   rv   rx   r	   r	   r
   rz     r{   r4   r   r   r   r/   r   rI   rJ   iJr   r   g?)r    r!   r"   eulerrk   r   r9   catalanZaperyr8   rw   )r~   r   Zpsi2rf   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  }||std
t _d S )Nc                 S   s
   t d| S ru   rv   rx   r	   r	   r
   rz     r{   z'test_foxtrot_identity.<locals>.<lambda>r   r   r   r   r   r4   r   r   )r    r!   fractionr9   Zsechr8   r"   r   )r~   rs   bxyr	   r	   r
   test_foxtrot_identity  s    :r   c                   C   s   dt _ttdtdkstttdtdt  dks:tttdtdt t  dks\tdt _ttdtdksxtttdtdt  d	kstttdtdt t  d
kstd S )Nr3   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#   rw   r9   r   erR   r	   r	   r	   r
   test_polygamma_high_order  s    "r   c                   C   s   dt _tddksttddks&ttddks6ttddsHttdd	sZttd
d dspttdddtd  sttttksttddksttddstd S )Nr   r   r   r   rL   r   gUUUUUU?r   g_b7@r   r   gS@r4   y       @        y      ?        rO   yk4q?@w?)r    r!   Zharmonicr   r"   rk   rF   r	   r	   r	   r
   test_harmonic  s    r   c                  C   sP   dt _tdd } dt _tt| dks,tdt _tt| dksFtdt _d S )N  r      r   z6.26075321389519e+12458010678r   z@6.2607532138951929201303779291707455874010420783933e+12458010678r    r!   r$   r#   r6   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s0tdt _tt| dksJtd S )	Nr   r   r3      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sBtt|jd	ksTtd
t _t| }t|jdksttt|jdkstd S )Nr   r   P   r   F   r   r   ze-6.82925203918106e+2636286142112569524501781477865238132302397236429627932441916056964386399485392600zd8.54647143678418e+2636286142112569524501781477865238132302397236429627932441916056964386399485392600r   z-6.8292520391810548460682736226799637356016538421817e+2636286142112569524501781477865238132302397236429627932441916056964386399485392600z8.5464714367841748507479306948130687511711420234015e+2636286142112569524501781477865238132302397236429627932441916056964386399485392600r    r!   rR   r6   r#   realr   imagr   r   r	   r	   r
   test_gamma_huge_3  s$    r   c                  C   sB   d} dt _tt| dkstdt _tt| dks8t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#   r6   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s6tt|jdksHtdt _t| }t|jd	kshtt|jd
ksztdt _d S )Nr   r   rb   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:tt|jdksLtdt _t| }t|jdksltt|jd	ks~td S )
Nr3   r   r   r   r   z2.0z1.84556867019693e-1000r   z91.8455686701969342787869758198351951379156813281202e-1000)	r    r!   rR   r$   r6   r#   r   r   r   )rs   r   r	   r	   r
   test_gamma_huge_7  s    r   c                   C   s   dt _tdt
 stdt _tdds2ttddsDttdd	sVttd
dshtdt _tddsttddsttddsttd
dstd S )Nr   r      r   z -0.07281584548367672486058637587r   z!-0.009690363192872318484530386035r   z 0.002053834420303345866160046543r   z 0.002325370065467300057468170178g*gF|؃gT3`?g;c?)r    r!   Z	stieltjesr"   r   r   r	   r	   r	   r
   test_stieltjes  s    r   c               	   C   s  dt _tdtd  kr"dks(n tdd tdD dddd	d
dddgksRtttddksfttttsvttttsttt	tsttt
t
ksttt
t
kstt	t
t
kstttt
 sttddsttddstdd tdD dddddddgks&tdd tdddD dddddddgksTttd} | dkrrt| tsvtt	d} | dkrt| tstd S ) Nr   r   r   c                 S   s   g | ]}t |qS r	   )superfac)rB   r>   r	   r	   r
   rD   %  s     z test_barnesg.<locals>.<listcomp>r   r   r   r   i   i   i {l     2ft r   z3.24570818422368e+1177245gffffff?gd?y       @      @ygƿ1?c                 S   s   g | ]}t |qS r	   hyperfacrA   r	   r	   r
   rD   0  s     r   r   l   i l  i \&l     c                 S   s   g | ]}t |qS r	   r   rA   r	   r	   r
   rD   1  s     rH   i y              )r    r!   Zbarnesgr   r7   r#   r   r;   r<   r   rF   r"   
isinstancer=   rr   r	   r	   r
   test_barnesg"  s&    "**.r   c                  C   s  dt _dd dD } | D ]"}td|td|  stq| D ] }td||d|  s@tq@| D ]$}td||d| d  sftqf| D ],}td	||d|  d| d
  stq| D ]8}td||dd|  |d   d| d  stqtd
ddsttd
dds(ttddds>ttdddsTttdddsjttdddsttdddsttddtt dsttd	ddsttd	ddsttd
ddsttdddsttdd d!s"ttd"td
  d"td  d#sHttd$dtd$sbttd$dt	d$ s~ttd%d&d'sttd%d(d)sttd*d	t
dd+ sttd*d,d-std S ).Nr   c                 S   s   g | ]}t |qS r	   )Z	mpmathify)rB   ry   r	   r	   r
   rD   9  s     z test_polylog.<locals>.<listcomp>)r   r4   gGz?r   r   rH   y              ?rh   r   r   r   r   rI   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  rH   g-C6zr4   yB8$P?g ?rh   rL   gtHgWcFr-   yQ K1Q y               g      +@g      ?iL)r    r!   Zpolylogr"   rk   r   r8   rR   r_   rj   r$   )Zzsry   r	   r	   r
   test_polylog7  s@        " * 6&r   c                   C   s8  dt _tddd dsttddd ds6ttdd	d
sJttddds^ttdddkspttdddksttdddksttdtdksttdt dkstttdtsttdddksttdddksttdttksttdt t kstttdts0ttdddksDttdddksXttddksjttdddks~ttdddksttdddksttdddstdt _tdddksttdddksttddkstdt _tdddksttd dt	t
d  s4t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 rn   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 (3VjwBr4   )r    r!   Zpolyexpr"   r   bellrF   r;   r<   Zsincr9   r	   r	   r	   r
   test_bell_polyexpU  s<    r   c                   C   s^   dt _tddsttdds*ttdtks:tttdksJttttsZtd S )Nr   r   y2k?-DT!	@r   gMҵ?r   r   )r    r!   Z	primezetar"   r   rF   r;   r<   r	   r	   r	   r
   test_primezeta{  s    r   c                  C   s  dt _tddsttdds*ttdddd	s@ttd
dddsVttd
dddslttddddstd$dd} | tddst| tddst| tddst| tjddddst| td
dst| tjd
dddst| tjdddds(t| tjddddsBt| tjdddds\t| tjddddsvt| tjdddd st| tjdddd!st| tjdddd"st| tjdddd#std S )%Nr   y      ?     j@y& 6#+?@y      ?     j@y5g?7-m^I?y      ?    .Ar   Z
derivativey@V%<y      ?    .AyˇD@-2r   yV!V1y      ?    .y.F'@	p 1@ư>c                 S   s   t | | |t | k S )N)rP   )r   r   Z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!   r_   r"   r   fp)r"   r	   r	   r
   test_rs_zeta  s,    
r   c                   C   sb   dt _tddsttdddds.ttddddsDttdt d	dd
s^td S )Nr   r   g1/[㳄@r   r   gKKr   gFhnqr   yQ1@a߻w)r    r!   Zsiegelzr"   r   rR   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sBtt|d	sTtt|}|jd
slt|jds|tdt _tdddd} tdddd}tdddd}t| dstt|dstt|}|jdst|jdstd S )Nr   r   z1e-10T)exactz-1e-10z1e-10jg# _Bga_gox?g    _r   z1e-50z-1e-50z1e-50jZ1e50z-1e50z40.57721566490153286060651209008240243104215933593992)r    r!   Zfaddr_   r"   r   r   r   )s1s2Zs3ry   r	   r	   r
   test_zeta_near_1  s$    r   N)#ZmpmathZmpmath.libmpr   r   r   r   r'   r.   r?   rG   rX   r`   rm   rp   rt   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#	-	&	