Ë
    7^(hÞ  ã                   ó  — 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„ Z
d„ Zd„ Z ed	e«      Z e
d	ee«      Z ed
e«      Z e
d
ee«      Zd„ Zd„ Zd„ Zd„ Z ede«      Z ed	ee«      Z ede«      Z ed
ee«      Zd„ Zd„ Zd„ Zd„ Zy)z/Benchmarks for polynomials over Galois fields. é    )Úgf_from_dictÚgf_factor_sqf)ÚZZ)Úpi)Ú	nextprimec                 ód   — t        | |j                  d|j                  d|j                  i||«      S )Né   r   )r   Úone)ÚnÚpÚKs      úf/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/polys/benchmarks/bench_galoispolys.pyÚgathen_polyr   
   s*   € Ü˜˜AŸE™E 1 a§e¡e¨Q°·±Ð6¸¸1Ó=Ð=ó    c                 ó�   — |j                   g| dz   z  }t        d| dz   «      D ]   }||dz
     dz  |j                   z   |z  ||<   Œ" |S )Nr	   é   )r
   Úrange)r   r   r   ÚfÚis        r   Ú
shoup_polyr      sW   € Ø	
�‰ˆ�1�q‘5Ñ€AÜ�1�a˜!‘e‹_ò )ˆØ�!�a‘%‘˜!‘˜aŸe™eÑ# qÑ(ˆˆ!Šð)à€Hr   c                 óf   —  |t        t        d| z  t        z  j                  «       «      «      «      S )Nr   )r   Úintr   Úevalf)r   r   s     r   Úgenprimer      s(   € ÙŒY”s˜A˜q™D¤2™I×,Ñ,Ó.Ó/Ó0Ó1Ð1r   é
   é   c                  ó:   — t        t        t        t        d¬«       y ©NÚ
zassenhaus©Úmethod©r   Úf_10Úp_10r   © r   r   Ú!timeit_gathen_poly_f10_zassenhausr&      ó   € Ü”$œœb¨Ö6r   c                  ó:   — t        t        t        t        d¬«       y ©NÚshoupr    r"   r%   r   r   Útimeit_gathen_poly_f10_shoupr+   #   ó   € Ü”$œœb¨Ö1r   c                  ó:   — t        t        t        t        d¬«       y r   ©r   Úf_20Úp_20r   r%   r   r   Ú!timeit_gathen_poly_f20_zassenhausr1   '   r'   r   c                  ó:   — t        t        t        t        d¬«       y r)   r.   r%   r   r   Útimeit_gathen_poly_f20_shoupr3   +   r,   r   é   é   c                  ó:   — t        t        t        t        d¬«       y r   ©r   ÚF_10ÚP_08r   r%   r   r   Ú timeit_shoup_poly_F10_zassenhausr:   5   r'   r   c                  ó:   — t        t        t        t        d¬«       y r)   r7   r%   r   r   Útimeit_shoup_poly_F10_shoupr<   9   r,   r   c                  ó:   — t        t        t        t        d¬«       y r   ©r   ÚF_20ÚP_18r   r%   r   r   Ú timeit_shoup_poly_F20_zassenhausrA   =   r'   r   c                  ó:   — t        t        t        t        d¬«       y r)   r>   r%   r   r   Útimeit_shoup_poly_F20_shouprC   A   r,   r   N)Ú__doc__Úsympy.polys.galoistoolsr   r   Úsympy.polys.domainsr   Úsympy.core.numbersr   Úsympy.ntheory.generater   r   r   r   r$   r#   r0   r/   r&   r+   r1   r3   r9   r8   r@   r?   r:   r<   rA   rC   r%   r   r   ú<module>rI      s¹   ðÙ 5÷ @Ý "Ý !Ý ,ò>òò2ñ ��BÓ€Ù�2�t˜RÓ €á��BÓ€Ù�2�t˜RÓ €ò7ò2ò7ò2ñ ��2ƒ€Ù�"�d˜BÓ€á��BÓ€Ù�"�d˜BÓ€ò7ò2ò7ó2r   