U
    L?h	                     @   sN  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.d/dgd0d1dgd2d3dgd4d5dgd6d7dggZ	dd8 dd9 dggZ
d>d:d;Zed<krJee jd=kr2e jd= ndZee	e
gZeee dS )?    N)time)discrete_log_discrete_log_trial_mul_discrete_log_shanks_steps_discrete_log_pollard_rho_discrete_log_pohlig_hellman         i/  i.     i i    l   ;S${ l   :S${ l   I\l   H\   l   pS@ l   pS@ l   1Urp l   1Urp    l   Z:6'' l   Z:6''    l   bJT(
Xl   bJT(
Xl   E<Z;n l   D<Z;n    q   i	  i  i_  i/  i i i|% iU i[vi-p iäiaRl   )$ i7Il   p l   M\8 l   <g l   W3r l   Zl   -xl   7S`Yl   J),l   L3C} l   f!> v   t   c                 C   s   |d krt }n@|dkrt}n2|dkr*t}n$|dkr8t}n|dkrFt}ntdt| D ]l\}}t|D ]Z\}\}}}t }	||t||d |||}
t |	 }	t	d|||	f  |
|d ksft
qfqVd S )NZtrialZshanksrhophzCArgument 'algo' should be one of ('trial', 'shanks', 'rho' or 'ph')   z[%02d-%03d] %15.10f)r   r   r   r   r   
ValueError	enumerater   powprintAssertionError)data_setalgofidatajnpgtl r'   U/var/www/html/venv/lib/python3.8/site-packages/sympy/benchmarks/bench_discrete_log.pybench_discrete_log3   s$    
r)   __main__r   )N)sysr   Zsympy.ntheory.residue_ntheoryr   r   r   r   r   Z
data_set_1Z
data_set_2Z
data_set_3r)   __name__lenargvr   r   r'   r'   r'   r(   <module>   sP   

