U
    	Ç-eÞ  ã                   @   sì   d Z ddlmZmZ ddlmZ ddlmZ ddl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   úi/var/www/html/Darija-Ai-Train/env/lib/python3.8/site-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   s   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   s    r   c                   C   s   t tttdd d S ©NZshoupr   r   r   r   r   r   Útimeit_gathen_poly_f10_shoup#   s    r    c                   C   s   t tttdd d S r   ©r   Úf_20Úp_20r   r   r   r   r   Ú!timeit_gathen_poly_f20_zassenhaus'   s    r$   c                   C   s   t tttdd d S r   r!   r   r   r   r   Útimeit_gathen_poly_f20_shoup+   s    r%   é   é   c                   C   s   t tttdd d S r   ©r   ÚF_10ÚP_08r   r   r   r   r   Ú timeit_shoup_poly_F10_zassenhaus5   s    r+   c                   C   s   t tttdd d S r   r(   r   r   r   r   Útimeit_shoup_poly_F10_shoup9   s    r,   c                   C   s   t tttdd d S r   ©r   ÚF_20ÚP_18r   r   r   r   r   Ú timeit_shoup_poly_F20_zassenhaus=   s    r0   c                   C   s   t tttdd d S r   r-   r   r   r   r   Útimeit_shoup_poly_F20_shoupA   s    r1   N)Ú__doc__Zsympy.polys.galoistoolsr   r   Zsympy.polys.domainsr   Zsympy.core.numbersr   Zsympy.ntheory.generater   r   r   r   r   r   r#   r"   r   r    r$   r%   r*   r)   r/   r.   r+   r,   r0   r1   r   r   r   r   Ú<module>   s.   



