U
    L?h                     @   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   Z/var/www/html/venv/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.   



