o
    i                     @   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   w/var/www/html/eduruby.in/lip-sync/lip-sync-env/lib/python3.10/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      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_zassenhaus5   r    r-   c                   C   r   r!   r*   r   r   r   r   timeit_shoup_poly_F10_shoup9   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_shoupA   r    r3   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+   r1   r0   r-   r.   r2   r3   r   r   r   r   <module>   s0    



