o
    jg©	  ã                   @   s   d dl Z d dlmZ d dlmZmZmZmZmZ g d¢g d¢g d¢g d¢g d¢g d	¢g d
¢g d¢g d¢g d¢g
Zg d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢gZ	dd dd dggZ
d#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ƒ dS 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${ r   )l   I\ÿ“l   H\ÿ“é   )l   ýpS£@ l   üpS£@ r   )l   ‡1Urpº l   †1Urpº é   )l   ©Z:6Ÿ'û' l   ¨Z:6Ÿ'û' é   )l   ÃbÌJT(
Xl   ÂbÌJT(
Xr   )l   E<ÆZº;n l   D<ÆZº;n r   )éã   éq   r   )i	  iÇ  r   )iÏ_  iç/  r   )i‡¿ iÃß r   )i«|% iU¾ r   )i[àvi-p» r   )i¯Ã¤i×aRr   )l   )ß$ i…Ô7Ir   )l   ß¹p l   ïM\8 r   )l   ¯<gä l   Wž3r r   )l   ‹Zðl   Å-xr   )l   7…S`Yl   JÂ)°,r   )l   L3CÆ} l   f™!ã> r   r   év   ét   r   c                 C   sÈ   |d u rt }n |dkrt}n|dkrt}n|dkrt}n|dkr#t}ntdƒ‚t| ƒD ]6\}}t|ƒD ]-\}\}}}tƒ }	||t||d |ƒ||ƒ}
tƒ |	 }	t	d|||	f ƒ |
|d ks`J ‚q3q+d S )NÚtrialÚ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)Údata_setÚalgoÚfÚiÚdataÚjÚnÚpÚgÚtÚl© r(   ú[/var/www/html/zoom/venv/lib/python3.10/site-packages/sympy/benchmarks/bench_discrete_log.pyÚbench_discrete_log3   s(   
ûÿr*   Ú__main__r   )N)Úsysr   Úsympy.ntheory.residue_ntheoryr   r   r   r   r   Ú
data_set_1Ú
data_set_2Ú
data_set_3r*   Ú__name__ÚlenÚargvr   r   r(   r(   r(   r)   Ú<module>   sT    õòþ

ÿÿýø