o
    à8Va¯  ã                   @   sä   d Z ddlmZmZ ddlmZ ddlmZmZ dd„ Z	dd„ Z
d	d
„ ZedeƒZe	deeƒZedeƒZe	deeƒZdd„ Zdd„ Zdd„ Zdd„ ZedeƒZe
deeƒZedeƒZe
deeƒZdd„ Zdd„ Zdd„ Zdd„ ZdS ) z/Benchmarks for polynomials over Galois fields. é    )Úgf_from_dictÚgf_factor_sqf)ÚZZ)ÚpiÚ	nextprimec                 C   s   t | |jd|jd|ji||ƒS )Né   r   )r   Úone)ÚnÚpÚK© r   úJ/usr/lib/python3/dist-packages/sympy/polys/benchmarks/bench_galoispolys.pyÚgathen_poly	   s   r   c                 C   sF   |j g| d  }td| d ƒD ]}||d  d |j  | ||< q|S )Nr   é   )r   Úrange)r	   r
   r   ÚfÚir   r   r   Ú
shoup_poly   s    r   c                 C   s   |t td|  t  ¡ ƒƒƒS )Nr   )r   Úintr   Zevalf)r	   r   r   r   r   Úgenprime   s   r   é
   é   c                   C   ó   t tttdd d S ©NZ
zassenhaus©Úmethod©r   Úf_10Úp_10r   r   r   r   r   Ú!timeit_gathen_poly_f10_zassenhaus   ó   r   c                   C   r   ©NZshoupr   r   r   r   r   r   Útimeit_gathen_poly_f10_shoup"   r    r"   c                   C   r   r   ©r   Úf_20Úp_20r   r   r   r   r   Ú!timeit_gathen_poly_f20_zassenhaus&   r    r&   c                   C   r   r!   r#   r   r   r   r   Útimeit_gathen_poly_f20_shoup*   r    r'   é   é   c                   C   r   r   ©r   ÚF_10ÚP_08r   r   r   r   r   Ú timeit_shoup_poly_F10_zassenhaus4   r    r-   c                   C   r   r!   r*   r   r   r   r   Útimeit_shoup_poly_F10_shoup8   r    r.   c                   C   r   r   ©r   ÚF_20ÚP_18r   r   r   r   r   Ú timeit_shoup_poly_F20_zassenhaus<   r    r2   c                   C   r   r!   r/   r   r   r   r   Útimeit_shoup_poly_F20_shoup@   r    r3   N)Ú__doc__Zsympy.polys.galoistoolsr   r   Zsympy.polys.domainsr   Zsympyr   r   r   r   r   r   r   r%   r$   r   r"   r&   r'   r,   r+   r1   r0   r-   r.   r2   r3   r   r   r   r   Ú<module>   s.    



