ó
¡¼™\c           @  sï  d  d l  m Z m Z d  d l Z d  d l m Z d  d l m Z m Z m Z m	 Z	 m
 Z
 d d d g d d	 d
 g d d d g d d d g d d d g d d d g d d d g d d d g d d d g d d d g g
 Z d d  d g d! d" d g d# d$ d g d% d& d g d' d( d g d) d* d g d+ d, d g d- d. d g d/ d0 d g d1 d2 d g d3 d4 d g d5 d6 d g d7 d8 d g g Z d> d? d g g Z d d; „ Z e d< k rëe e j ƒ d= k rÆe j d= n d Z e e e g Z e e e ƒ n  d S(@   iÿÿÿÿ(   t   print_functiont   divisionN(   t   time(   t   discrete_logt   _discrete_log_trial_mult   _discrete_log_shanks_stepst   _discrete_log_pollard_rhot   _discrete_log_pohlig_hellmani¿   i¾   i   i/¶  i.¶  i   ióªá iòªá i   I;S’ý    I:S’ý    IIÜÿÁd   IHÜÿÁd   i   Iýpƒé(  Iüpƒé(  I‡˜˜ª\ I†˜˜ª\ i   I©ZÛçiÿtI¨ZÛçiÿti   l   ÃbÌJT(
Xl   ÂbÌJT(
Xl   E<ÆZº;n l   D<ÆZº;n iã   iq   i	  iÇ  iÏ_  iç/  i‡¿ iÃß i«|% iU¾ i[àvi-p» i¯Ã¤i×aRI©o’    i…Ô7IIß›\¸   IïM.Ü   I¯ž39   IWÏ™   I‹-<  IÅ†  I7”Â)X  IJá,  IÌ™¡qß  IæÌÐ¸o  iv   it   c         C  s$  | d  k r t } n` | d k r* t } nK | d k r? t } n6 | d k rT t } n! | d k ri t } n t d ƒ ‚ x¨ t |  ƒ D]š \ } } x‹ t | ƒ D]} \ } \ } } } t ƒ  }	 | | t	 | | d | ƒ | | ƒ }
 t ƒ  |	 }	 t
 d | | |	 f ƒ |
 | d k s› t ‚ q› Wq‚ Wd  S(   Nt   trialt   shankst   rhot   phsC   Argument 'algo' should be one of ('trial', 'shanks', 'rho' or 'ph')i   s   [%02d-%03d] %15.10f(   t   NoneR   R   R   R   R   t
   ValueErrort	   enumerateR   t   powt   printt   AssertionError(   t   data_sett   algot   ft   it   datat   jt   nt   pt   gt   tt   l(    (    sB   lib/python2.7/site-packages/sympy/benchmarks/bench_discrete_log.pyt   bench_discrete_log6   s$    					"	%t   __main__i   l                   l                  (   t
   __future__R    R   t   sysR   t   sympy.ntheory.residue_ntheoryR   R   R   R   R   t
   data_set_1t
   data_set_2t
   data_set_3R   R   t   __name__t   lent   argvR   R   (    (    (    sB   lib/python2.7/site-packages/sympy/benchmarks/bench_discrete_log.pyt   <module>   sD   ((	