o
    lh<                     @   s  d dl T d dlmZ d dlZdejv r!eejejdd  ZndZdejv 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 qCeddD ]Zede dg ede dg qTe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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7 ZdZD ]oZ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 qcdgD ]5Z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 qِqedmkrDd 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 dS )s    )*)ifacNz-dps     z-raisec              	   C   sZ  z||}W n(   t d7 a tr t  t|  td dd l}|t d  t  Y d S |j}|j}|j}|j}	t	d }
d}t
|| t
||
 krpd}t  td| t|dt|dtt
|| f  t d7 a trptt
||	 t
|	|
 krd}t  td| t|dt|	dtt
||	 f  t d7 a trt|stjd	|   d S d S )
Nr   	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absnstr
SystemExitstdoutwrite)namefunczyxr   xreximyreyimtolerr r$   p/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/mpmath/tests/extratest_gamma.pycheck   sH   ,,r&   c                 C   s   | \}}t d| dt_t|}td t_|d u r*t|}t|}t|}t|}nt|}t	|}|| }d| }dD ]4}|tkrE d S |t_t d|  t
dt|| t
dt|| t
d	t|| t
d
t|| t   dt_q<d 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maxdpsr0   r2   r3   r1   expr&   )caser   result	gamma_valloggamma_valfactorial_val
rgamma_valr5   r$   r$   r%   testcase4   s4   


r?         i     z%s8z%s+0.5z%s+0.37z(0.1+1j)z	(-0.1+1j)z(0.1-1j)z	(-0.1-1j)10jz-10j100j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')25zlog(ifac(24))80zlog(ifac(79))500zlog(ifac(500-1))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      rQ   r*   iiiirC   i7ii߱)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:)mpmathmpmath.libmpr   r   argvintindexr7   r   r
   r&   r?   	testcaseslistrangenappendr   t__name__timeitr[   clocktot_timer9   t1t2r   r$   r$   r$   r%   <module>   s\   

&"	
 !"#$%&'()*+,-./0123456789:;<=]

