
<Zc        ?   @   s  d  d l  Td  d l m Z d  d l Z d e j k r[ e e j e j j d  d  Z n d Z d e j k Z d a	 d	   Z
 d
   Z g  Z xJ e e d d   e e d d d   D] Z e j d e d g  q WxE e d d  D]4 Z e j d e d g  e j d e d g  q We 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 d/ d0 g d1 d2 g d3 d4 g d5 d6 g d7 d8 g d9 d: g d; d g d< d= g d> d g d? d g d@ d g dA d g dB d g dC d g dD d g dE dF g dG dH g dI dJ g dK dL g dM d g dN d g dO d g dP d g dQ d g dR d g dQ d g dS d g dT d g dU d g dV d g dU d g dW dX g g= 7Z x.dY dZ d[ d\ g D]Z e j d] e d g  e j d^ e d g  e j d_ e d g  e j d` e d g  e j da e d g  e j db e d g  e j dc e d g  e j dd e d g  e j de e d g  e j df e d g  e j dg e d g  e j dh e d g  qeWx d d di dj dY dk d  dl dm dn do dp dq dr d ds dt du g D] Z x dv dw dx dy g D]z Z e j dz e e f d g  e j d{ e e f d g  e j d| e e f d g  e j d} e e f d g  qWqWe d~ k rd  d l m Z d Z xL e D]D Z e   Z e e  e   Z d e e f GHd GHe e e 7Z qWd e f GHd t	 f GHn  d S(   i(   t   *(   t   ifacNs   -dpsi   i  s   -raisei    c         C   s  y | |  } WnU t  d 7a  t r,   n  d GH|  GHd GHd d  l } | j t j   d  d GHd  SX| j } | j } | j } | j }	 t d }
 d } t	 | |  t	 |  |
 k rd } d GHd |  t
 | d  t
 | d  t
 t	 | |   f GHt  d 7a  t rt  qn  t	 | |	  t	 |	  |
 k rd } d GHd	 |  t
 | d  t
 |	 d  t
 t	 | |	   f GHt  d 7a  t rt  qn  | st j j d
 |   n  d  S(   Ni   t	   EXCEPTIONii   i   i    s&   Error! %s (re = %s, wanted %s, err=%s)i
   s&   Error! %s (im = %s, wanted %s, err=%s)s   %s ok; (    (    (    (    (   t   errcountt   raise_t	   tracebackt   print_tbt   syst   exc_infot   realt   imagt   epst   abst   nstrt
   SystemExitt   stdoutt   write(   t   namet   funct   zt   yt   xR   t   xret   ximt   yret   yimt   tolt   err(    (    s;   lib/python2.7/site-packages/mpmath/tests/extratest_gamma.pyt   check   sF    
				
 7
 7
c         C   s\  |  \ } } d | f GHd t  _ t |  } t d t  _ | d  k rx t |  } t |  } t |  } t |  } n, t |  } t	 |  } | | } d | } x d d d d d	 d
 d d d d d d d g D] } | t k r Pn  | t  _ d | GHt
 d t | |  t
 d t | |  t
 d t | |  t
 d t | |  d GHd t  _ q Wd  S(   Ns   Testing z =i  i2   i   i   i
   i   i   i(   i<   iZ   ix   i   iX  i  i  i  s   dps = %st   gammat   rgammat   loggammat	   factorial(    (   t   mpt   dpst   evalt   maxdpst   NoneR   R   R    R   t   expR   (   t   caseR   t   resultt	   gamma_valt   loggamma_valt   factorial_valt
   rgamma_valR"   (    (    s;   lib/python2.7/site-packages/mpmath/tests/extratest_gamma.pyt   testcase4   s2    	

4		i   i   i  i   s   %si8s   %s+0.5s   %s+0.37s   (0.1+1j)s	   (-0.1+1j)s   (0.1-1j)s	   (-0.1-1j)t   10js   -10jt   100jt   10000js
   -10000000js   (10**100)*js   125+(10**100)*js   -125+(10**100)*js   (10**10)*(1+j)s   (10**10)*(-1+j)s   (10**100)*(1+j)s   (10**100)*(-1+j)s   (1.5-1j)s   (6+4j)s   (4+1j)s   (3.5+2j)s   (-6-4j)s   (-2-3j)s	   (-2.5-2j)s   (3+3j)s   (2-2j)t   1t   0t   2t   3s   log(2)t   4s   log(6)t   5s   log(24)s   0.5s	   log(pi)/2s   1.5s   log(sqrt(pi)/2)s   2.5s   log(3*sqrt(pi)/4)s   mpf('0.37')s   0.25s)   log(sqrt(2*sqrt(2*pi**3)/agm(1,sqrt(2))))s   -0.4s   mpf('-1.9')s   mpf('12.8')s   mpf('33.7')s   mpf('95.2')s   mpf('160.3')s   mpf('2057.8')t   25s   log(ifac(24))t   80s   log(ifac(79))t   500s   log(ifac(500-1))t   8000s   log(ifac(8000-1))s   8000.5s   mpf('8000.1')s   mpf('1.37e10')s   mpf('1.37e10')*(1+j)s   mpf('1.37e10')*(-1+j)s   mpf('1.37e10')*(-1-j)s   mpf('1.37e100')s   mpf('1.37e100')*(1+j)s   mpf('1.37e100')*(-1+j)s   mpf('1.37e100')*(-1-j)s   3+4js  mpc('-1.7566267846037841105306041816232757851567066070613445016197619371316057169472361826396083480461846305298860734828967253578064447068977111523651210600259708734715632405373076389685095561916961679704883904239638670319343338908388009531786948197210025029725361069435208930363494971027388382086721660805397916323064321605458016797620170995150951921863546031736733861250062671478363174983174780484475256740163443225458588326103258610863362045919438223029718235161814175530618223688296232894588415495615809337292518431903058265147109853171056894218498782764388681620045286085387381541336752982963143014622747051765799672222008686321794822143126731612769761171322046332838061619713895191371243359764435612951384238091232760634271570950240717650166551484551654327989936028503008171693413044615024511055703811707517257682549003543406938864812466781522545540015867361207626414225907787661003765157377139385212757490499491284143906816424244705094759339932733567910991920631339597278805393743140853391550313363278558195609260225928','4.74266443803465792819488940755002274088830335171164611359052405215840070271590681300937317113976705186354250813687568855081767037900279030487082277549828099966758775645041925653923672591196104389515931289826469459903721798606134294436498090428077839141927485901735557543641049637962003652638924845391650954629013775555010722490760652938524839066763429718336190205584222879898420095911804502117983417158744776290996876098194664579906420307070808945181689246805549314043258530272479246115112769957368212585759640878745385160943755234939803677490810820437032389675754312185365002552976365531236035424489891346371159557028288389233931136182050741628120897320644145308130874835332032440560546577484241423134079056537777170351934430586103623577814746004431994179990531852293907799261385520580149820193022197572124649872089512234542069845198000512157973103058858459643347618317513706729969847568154109777507997488135638784405288158432214886648743541773208808731479748217023665577802702269468013673719173759245720489020315779001')i   i   i"   i@   s
   (2+j)*%s/3s   (-2+j)*%s/3s   (1+2*j)*%s/3s
   (2-j)*%s/3s   (20+j)*%s/3s   (-20+j)*%s/3s   (1+20*j)*%s/3s   (20-j)*%s/3s   (200+j)*%s/3s   (-200+j)*%s/3s   (1+200*j)*%s/3s   (200-j)*%s/3i   i   i   iiiiiiii7ii߱s   1e-5s   1e-20s   1e-100s   1e-10000s   fadd(%s,'%s',exact=True)s   fsub(%s,'%s',exact=True)s   fadd(%s,'%sj',exact=True)s   fsub(%s,'%sj',exact=True)t   __main__(   t   default_timerg        s
   Test time:s   Total time:s   Errors:(    (   t   mpmatht   mpmath.libmpR   R   t   argvt   intt   indexR$   R   R   R   R-   t	   testcasest   listt   ranget   nt   appendR%   R   t   tt   __name__t   timeitR<   t   clockt   tot_timeR'   t   t1t   t2(    (    (    s;   lib/python2.7/site-packages/mpmath/tests/extratest_gamma.pyt   <module>   s   
&	&	2																																																												C%	
	