U
    ZÊ¹j<  ã                ?   @   s  d dl T d dlmZ d dlZdejkrBeejej d¡d  ƒZndZdejkZd a	dd	„ Z
d
d„ Zg Zeeddƒƒeedddƒƒ D ]Ze de dg¡ q†eddƒD ](Ze de dg¡ e de dg¡ q¨eddgddgddgddgddgddgddgddgddgddgddgddgd dgd!dgd"dgd#dgd$dgd%dgd&dgd'dgd$dgd(dgd)dgd*dgd&dgd+dgd,dgd-d.gd/d.gd0d1gd2d3gd4d5gd6d7gd8d9gd:d;gd<dgd=d>gd?dgd@dgdAdgdBdgdCdgdDdgdEdgdFdGgdHdIgdJdKgdLdMgdNdgdOdgdPdgdQdgdRdgdSdgdRdgdTdgdUdgdVdgdWdgdVdgdXdYgg=7 ZdZD ]ÞZe d[e dg¡ e d\e dg¡ e d]e dg¡ e d^e dg¡ e d_e dg¡ e d`e dg¡ e dae dg¡ e dbe dg¡ e dce dg¡ e dde dg¡ e dee dg¡ e dfe dg¡ �qLdgD ]jZdhD ]^Ze dieef dg¡ e djeef dg¡ e dkeef dg¡ e dleef dg¡ �q8�q0edmk�r
d dnlmZ doZeD ]:Zeƒ Zeeƒ eƒ Zedpee ƒ eƒ  eee 7 Z�qºedqeƒ edrt	ƒ dS )sé    )Ú*)ÚifacNz-dpsé   éè  z-raisec              	   C   s^  z||ƒ}W nR   t d7 a tr"‚ tƒ  t| ƒ tdƒ dd l}| t ¡ d ¡ tƒ  Y d S X |j}|j}|j}|j}	t	d }
d}t
|| ƒt
|ƒ|
 krâd}tƒ  td| t|dƒt|dƒtt
|| ƒƒf ƒ t d7 a trât‚t
||	 ƒt
|	ƒ|
 k�rDd}tƒ  td| t|dƒt|	dƒtt
||	 ƒƒf ƒ t d7 a t�rDt‚|�sZtj d	|  ¡ d S )
Nr   Z	EXCEPTIONr   é   é   z&Error! %s (re = %s, wanted %s, err=%s)é
   z&Error! %s (im = %s, wanted %s, err=%s)z%s ok; )ÚerrcountÚraise_ÚprintÚ	tracebackÚprint_tbÚsysÚexc_infoÚrealÚimagÚepsÚabsZnstrÚ
SystemExitÚstdoutÚwrite)ÚnameÚfuncÚzÚyÚxr   ZxreZximZyreZyimZtolÚerr© r   ú[/var/www/html/bwave/python/venv/lib/python3.8/site-packages/mpmath/tests/extratest_gamma.pyÚcheck   sF    ,,r   c                 C   sä   | \}}t d|ƒ dt_t|ƒ}td t_|d krTt|ƒ}t|ƒ}t|ƒ}t|ƒ}n t|ƒ}t	|ƒ}|| }d| }dD ]f}|tkrˆ qà|t_t d| ƒ t
dt||ƒ t
dt||ƒ t
d	t||ƒ t
d
t||ƒ t ƒ  dt_qxd S )NzTesting z =iò  é2   r   )é   r   é   é   é(   é<   éZ   éx   éú   iX  r   i  i  zdps = %sÚgammaÚrgammaÚloggammaÚ	factorialr"   )r   ÚmpÚdpsÚevalÚmaxdpsr)   r+   r,   r*   Úexpr   )Úcaser   ÚresultZ	gamma_valZloggamma_valZfactorial_valZ
rgamma_valr.   r   r   r   Útestcase4   s2    


r4   éÈ   éÉ   iÐ  é   z%sé8ÿÿÿz%s+0.5z%s+0.37z(0.1+1j)z	(-0.1+1j)z(0.1-1j)z	(-0.1-1j)Z10jz-10jZ100jZ10000jz
-10000000jz(10**100)*jz125+(10**100)*jz-125+(10**100)*jz(10**10)*(1+j)z(10**10)*(-1+j)z(10**100)*(1+j)z(10**100)*(-1+j)z(1.5-1j)z(6+4j)z(4+1j)z(3.5+2j)z(-6-4j)z(-2-3j)z	(-2.5-2j)z(3+3j)z(2-2j)Ú1Ú0Ú2Ú3zlog(2)Ú4zlog(6)Ú5zlog(24)z0.5z	log(pi)/2z1.5zlog(sqrt(pi)/2)z2.5zlog(3*sqrt(pi)/4)zmpf('0.37')z0.25z)log(sqrt(2*sqrt(2*pi**3)/agm(1,sqrt(2))))z-0.4zmpf('-1.9')zmpf('12.8')zmpf('33.7')zmpf('95.2')zmpf('160.3')zmpf('2057.8')Z25zlog(ifac(24))Ú80zlog(ifac(79))Ú500zlog(ifac(500-1))Z8000zlog(ifac(8000-1))z8000.5zmpf('8000.1')zmpf('1.37e10')zmpf('1.37e10')*(1+j)zmpf('1.37e10')*(-1+j)zmpf('1.37e10')*(-1-j)zmpf('1.37e100')zmpf('1.37e100')*(1+j)zmpf('1.37e100')*(-1+j)zmpf('1.37e100')*(-1-j)z3+4ja  mpc('-1.7566267846037841105306041816232757851567066070613445016197619371316057169472361826396083480461846305298860734828967253578064447068977111523651210600259708734715632405373076389685095561916961679704883904239638670319343338908388009531786948197210025029725361069435208930363494971027388382086721660805397916323064321605458016797620170995150951921863546031736733861250062671478363174983174780484475256740163443225458588326103258610863362045919438223029718235161814175530618223688296232894588415495615809337292518431903058265147109853171056894218498782764388681620045286085387381541336752982963143014622747051765799672222008686321794822143126731612769761171322046332838061619713895191371243359764435612951384238091232760634271570950240717650166551484551654327989936028503008171693413044615024511055703811707517257682549003543406938864812466781522545540015867361207626414225907787661003765157377139385212757490499491284143906816424244705094759339932733567910991920631339597278805393743140853391550313363278558195609260225928','4.74266443803465792819488940755002274088830335171164611359052405215840070271590681300937317113976705186354250813687568855081767037900279030487082277549828099966758775645041925653923672591196104389515931289826469459903721798606134294436498090428077839141927485901735557543641049637962003652638924845391650954629013775555010722490760652938524839066763429718336190205584222879898420095911804502117983417158744776290996876098194664579906420307070808945181689246805549314043258530272479246115112769957368212585759640878745385160943755234939803677490810820437032389675754312185365002552976365531236035424489891346371159557028288389233931136182050741628120897320644145308130874835332032440560546577484241423134079056537777170351934430586103623577814746004431994179990531852293907799261385520580149820193022197572124649872089512234542069845198000512157973103058858459643347618317513706729969847568154109777507997488135638784405288158432214886648743541773208808731479748217023665577802702269468013673719173759245720489020315779001'))é   é   é"   é@   z
(2+j)*%s/3z(-2+j)*%s/3z(1+2*j)*%s/3z
(2-j)*%s/3z(20+j)*%s/3z(-20+j)*%s/3z(1+20*j)*%s/3z(20-j)*%s/3z(200+j)*%s/3z(-200+j)*%s/3z(1+200*j)*%s/3z(200-j)*%s/3)r   r   r   é   rA   r#   éÿÿÿÿéþÿÿÿéýÿÿÿéüÿÿÿiìÿÿÿiëÿÿÿiÎÿÿÿiÍÿÿÿr8   i7ÿÿÿià±ÿÿiß±ÿÿ)z1e-5z1e-20z1e-100z1e-10000zfadd(%s,'%s',exact=True)zfsub(%s,'%s',exact=True)zfadd(%s,'%sj',exact=True)zfsub(%s,'%sj',exact=True)Ú__main__)Údefault_timerg        z
Test time:zTotal time:zErrors:)ZmpmathZmpmath.libmpr   r   ÚargvÚintÚindexr0   r
   r	   r   r4   Z	testcasesÚlistÚrangeÚnÚappendr   ÚtÚ__name__ZtimeitrK   ÚclockZtot_timer2   Út1Út2r   r   r   r   r   Ú<module>   sÞ   

&"ÿÃ]

