§
    OŠtj§  ã                   óâ   — d Z ddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z
 ddlmZ ddlmZ dd	lmZ dd
lmZmZmZmZmZmZmZmZmZmZmZ ddlmZmZm Z  d„ Z!d„ Z"d„ Z#d„ Z$d„ Z%d„ Z&d„ Z'd„ Z(dS )z<Tests for functions for generating interesting polynomials. é    )ÚAdd)Úsymbols)Úsqrt)Úprime)ÚZZ)ÚPoly)Úpermute_signs)Úraises)Úswinnerton_dyer_polyÚcyclotomic_polyÚsymmetric_polyÚrandom_polyÚinterpolating_polyÚfateman_poly_F_1Údmp_fateman_poly_F_1Úfateman_poly_F_2Údmp_fateman_poly_F_2Úfateman_poly_F_3Údmp_fateman_poly_F_3)ÚxÚyÚzc            	      ó  — t          t          d„ ¦  «         t          dt          d¬¦  «        t	          t          dz  dz
  ¦  «        k    sJ ‚t          dt          ¦  «        t          dz  dz
  k    sJ ‚t          dt          ¦  «        t          dz  dt          dz  z  z
  dz   k    sJ ‚t          dt          ¦  «        t          d	z  d
t          dz  z  z
  dt          dz  z  z   dt          dz  z  z
  dz   k    sJ ‚d„ t          dd¦  «        D ¦   «         } t          d„ t          dd¬¦  «                             ¦   «         D ¦   «         ¦  «        t          t          d„ t          | ¦  «        D ¦   «         ¦  «        ¦  «        k    sJ ‚d S )Nc                  ó,   — t          dt          ¦  «        S ©Nr   )r   r   © ó    úa/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/polys/tests/test_specialpolys.pyú<lambda>z+test_swinnerton_dyer_poly.<locals>.<lambda>   s   € Õ3°AµqÑ9Ô9€ r   é   T©Úpolysé   é   é
   é   é   é(   é   i`  iÀ  i@  c                 óF   — g | ]}t          t          |¦  «        ¦  «        ‘ŒS r   )r   r   ©Ú.0Úis     r   ú
<listcomp>z-test_swinnerton_dyer_poly.<locals>.<listcomp>(   s$   € Ð-Ð-Ð-˜A��e�A‰hŒh‰ŒÐ-Ð-Ð-r   é   c                 ó8   — g | ]}|                      d ¦  «        ‘ŒS ©r&   )Únr+   s     r   r.   z-test_swinnerton_dyer_poly.<locals>.<listcomp>)   s.   € ð 9ð 9ð 9˜1�—’�A‘”ð 9ð 9ð 9r   c                 óF   — g | ]}t          |Ž                      d ¦  «        ‘ŒS r1   )r   r2   r+   s     r   r.   z-test_swinnerton_dyer_poly.<locals>.<listcomp>+   s&   € Ð@Ð@Ð@¨!�˜a˜Ÿš 1™œÐ@Ð@Ð@r   )
r
   Ú
ValueErrorr   r   r   ÚrangeÚstrÚ	all_rootsÚsortedr	   )Úps    r   Útest_swinnerton_dyer_polyr:      sœ  € Ý
�:Ð9Ð9Ñ:Ô:Ð:å ¥1¨DÐ1Ñ1Ô1µT½!¸Q¹$À¹(±^´^ÒCÐCÐCÐCå ¥1Ñ%Ô%­¨A©°©Ò1Ð1Ð1Ð1Ý ¥1Ñ%Ô%­¨A©°µ1°a±4±©¸!Ñ);Ò;Ð;Ð;Ð;ÝØ	�1ñô Ý�A‘˜�1˜a™4™‘ #¥a¨¡d¡(Ñ*¨Sµ°A±©XÑ5¸Ñ;ò<ð <ð <ð <ð 	.Ð-¥ q¨!¡¤Ð-Ñ-Ô-€AÝð 9ð 9Ý˜Q dÐ+Ñ+Ô+×5Ò5Ñ7Ô7ð9ñ 9ô 9ñ 
ô 
å•Ð@Ð@­}¸QÑ/?Ô/?Ð@Ñ@Ô@ÑAÔAÑBÔBòCð Cð Cð Cð Cð Cr   c                  ó®  — t          t          d„ ¦  «         t          dt          d¬¦  «        t	          t          dz
  ¦  «        k    sJ ‚t          dt          ¦  «        t          dz
  k    sJ ‚t          dt          ¦  «        t          dz   k    sJ ‚t          dt          ¦  «        t          dz  t          z   dz   k    sJ ‚t          dt          ¦  «        t          dz  dz   k    sJ ‚t          dt          ¦  «        t          dz  t          dz  z   t          dz  z   t          z   dz   k    sJ ‚t          d	t          ¦  «        t          dz  t          z
  dz   k    sJ ‚d S )
Nc                  ó,   — t          dt          ¦  «        S r   )r   r   r   r   r   r   z&test_cyclotomic_poly.<locals>.<lambda>/   s   € �¨qµ!Ñ4Ô4€ r   r    Tr!   r#   r&   r$   r/   r)   )r
   r4   r   r   r   r   r   r   Útest_cyclotomic_polyr=   .   s/  € Ý
�:Ð4Ð4Ñ5Ô5Ð5å˜1�a tÐ,Ñ,Ô,µµQ¸±U±´Ò;Ð;Ð;Ð;å˜1�aÑ Ô ¥A¨¡EÒ)Ð)Ð)Ð)Ý˜1�aÑ Ô ¥A¨¡EÒ)Ð)Ð)Ð)Ý˜1�aÑ Ô ¥A q¡D­1¡H¨q¡LÒ0Ð0Ð0Ð0Ý˜1�aÑ Ô ¥A q¡D¨1¡HÒ,Ð,Ð,Ð,Ý˜1�aÑ Ô ¥A q¡D­1¨a©4¡Kµ!°Q±$Ñ$6½Ñ$:¸QÑ$>Ò>Ð>Ð>Ð>Ý˜1�aÑ Ô ¥A q¡D­1¡H¨q¡LÒ0Ð0Ð0Ð0Ð0Ð0r   c                  ór  — t          t          d„ ¦  «         t          t          d„ ¦  «         t          dt          t          t
          d¬¦  «        t          t          t          z   t
          z   ¦  «        k    sJ ‚t          dt          t          t
          fd¬¦  «        t          t          t          z   t
          z   ¦  «        k    sJ ‚t          dt          t          t
          ¦  «        dk    sJ ‚t          dt          t          t
          ¦  «        t          t          z   t
          z   k    sJ ‚t          dt          t          t
          ¦  «        t          t          z  t          t
          z  z   t          t
          z  z   k    sJ ‚t          dt          t          t
          ¦  «        t          t          z  t
          z  k    sJ ‚d S )	Nc                  óD   — t          dt          t          t          ¦  «        S )Néÿÿÿÿ©r   r   r   r   r   r   r   r   z%test_symmetric_poly.<locals>.<lambda><   s   € �~¨bµ!µQ½Ñ:Ô:€ r   c                  óD   — t          dt          t          t          ¦  «        S )Nr/   rA   r   r   r   r   z%test_symmetric_poly.<locals>.<lambda>=   s   € �~¨aµµAµqÑ9Ô9€ r   r    Tr!   r   r#   r&   )r
   r4   r   r   r   r   r   r   r   r   Útest_symmetric_polyrC   ;   s6  € Ý
�:Ð:Ð:Ñ;Ô;Ð;Ý
�:Ð9Ð9Ñ:Ô:Ð:å˜!�Q¥¥1¨DÐ1Ñ1Ô1µT½!½a¹%Å!¹)±_´_ÒDÐDÐDÐDÝ˜!�a¥¥A˜Y¨dÐ3Ñ3Ô3µt½AÅ¹EÅA¹I±´ÒFÐFÐFÐFå˜!�Q¥¥1Ñ%Ô%¨Ò*Ð*Ð*Ð*Ý˜!�Q¥¥1Ñ%Ô%­­Q©µ©Ò2Ð2Ð2Ð2Ý˜!�Q¥¥1Ñ%Ô%­­1©­qµ©s©µQµq±S©Ò8Ð8Ð8Ð8Ý˜!�Q¥¥1Ñ%Ô%­­1©­Q©Ò.Ð.Ð.Ð.Ð.Ð.r   c                  óÂ  — t          t          dddd¬¦  «        } t          | ¦  «                             ¦   «         dk    sJ ‚t	          d„ t          | ¦  «                             ¦   «         D ¦   «         ¦  «        du sJ ‚t          t          dddd¬¦  «        } |                      ¦   «         dk    sJ ‚t	          d„ |                      ¦   «         D ¦   «         ¦  «        du sJ ‚d S )	Nr%   éœÿÿÿéd   Fr!   c              3   ó6   K  — | ]}d |cxk    odk    nc V — ŒdS ©rE   rF   Nr   ©r,   Úcoeffs     r   ú	<genexpr>z#test_random_poly.<locals>.<genexpr>L   s>   è è € ÐEÐE¨ˆt�uÐ#Ð#Ò#Ð# Ò#Ð#Ð#Ð#ÐEÐEÐEÐEÐEÐEr   Tc              3   ó6   K  — | ]}d |cxk    odk    nc V — ŒdS rH   r   rI   s     r   rK   z#test_random_poly.<locals>.<genexpr>Q   s>   è è € Ð?Ð?¨ˆt�uÐ#Ð#Ò#Ð# Ò#Ð#Ð#Ð#Ð?Ð?Ð?Ð?Ð?Ð?r   )r   r   r   ÚdegreeÚallÚcoeffs)Úpolys    r   Útest_random_polyrQ   H   sÞ   € Ý•q˜"˜d C¨uÐ5Ñ5Ô5€Då�‰:Œ:×ÒÑÔ "Ò$Ð$Ð$Ð$ÝÐEÐEµ°d±´×1BÒ1BÑ1DÔ1DÐEÑEÔEÑEÔEÈÐMÐMÐMÐMå•q˜"˜d C¨tÐ4Ñ4Ô4€Dà�;Š;‰=Œ=˜BÒÐÐÐÝÐ?Ð?°·²±´Ð?Ñ?Ô?Ñ?Ô?À4ÐGÐGÐGÐGÐGÐGr   c                  óª  — t          d¦  «        \  } }}}}}}}t          dt          ¦  «        dk    sJ ‚t          dt          ¦  «        |k    sJ ‚t          dt          ¦  «        |t          |z
  z  | |z
  z  |t          | z
  z  || z
  z  z   k    sJ ‚t          dt          ¦  «        |t          |z
  z  t          |z
  z  | |z
  | |z
  z  z  |t          | z
  z  t          |z
  z  || z
  ||z
  z  z  z   |t          | z
  z  t          |z
  z  || z
  ||z
  z  z  z   k    sJ ‚t          dt          ¦  «        |t          |z
  z  t          |z
  z  t          |z
  z  | |z
  | |z
  z  | |z
  z  z  |t          | z
  z  t          |z
  z  t          |z
  z  || z
  ||z
  z  ||z
  z  z  z   |t          | z
  z  t          |z
  z  t          |z
  z  || z
  ||z
  z  ||z
  z  z  z   |t          | z
  z  t          |z
  z  t          |z
  z  || z
  ||z
  z  ||z
  z  z  z   k    sJ ‚t          t          d„ ¦  «         t          t          d„ ¦  «         t          t          d	„ ¦  «         t          t          d
„ ¦  «         t          t          d„ ¦  «         t          dt          dd¦  «        dk    sJ ‚t          dt          dd¦  «        dk    sJ ‚t          dt          dd¦  «        t          dz   k    sJ ‚d S )Nzx:4, y:4r   r    r#   r&   r$   c                  ó>   — t          dt          t          dfd¦  «        S ©Nr#   )r    r&   )r   r   r   r   r   r   z)test_interpolating_poly.<locals>.<lambda>h   s   € Ý˜1�a¥! Q ¨Ñ0Ô0ð r   c                  óN   — t          dt          t          t          z   dfd¦  «        S rT   ©r   r   r   r   r   r   r   z)test_interpolating_poly.<locals>.<lambda>j   s    € Ý˜1�a¥!¥a¡%¨ ¨VÑ4Ô4ð r   c                  óN   — t          dt          t          z   t          dfd¦  «        S rT   rV   r   r   r   r   z)test_interpolating_poly.<locals>.<lambda>l   s    € Ý˜1�a¥!™e¥a¨ V¨VÑ4Ô4ð r   c                  ó&   — t          dddd¦  «        S )Nr#   r&   ©r$   r/   )r)   é   ©r   r   r   r   r   z)test_interpolating_poly.<locals>.<lambda>n   s   € Ý˜1˜a ¨Ñ0Ô0ð r   c                  ó&   — t          dddd¦  «        S )Nr#   r&   rY   )r)   rZ   r'   r[   r   r   r   r   z)test_interpolating_poly.<locals>.<lambda>p   s   € Ý˜1˜a ¨Ñ3Ô3ð r   )r    r#   )r&   r$   )r   r   r   r
   r4   )Úx0Úx1Úx2Úx3Úy0Úy1Úy2Úy3s           r   Útest_interpolating_polyre   T   sZ  € Ý%,¨ZÑ%8Ô%8Ñ"€BˆˆB��B˜˜B å˜a¥Ñ#Ô# qÒ(Ð(Ð(Ð(Ý˜a¥Ñ#Ô# rÒ)Ð)Ð)Ð)å˜a¥Ñ#Ô#Ø
�A�‰F‰�R˜"‘WÑ ¥A¨¡F¡¨R°"©WÑ 5Ñ5ò6ð 6ð 6ð 6õ ˜a¥Ñ#Ô#Ø
�A�‰F‰•Q˜‘VÑ˜r B™w¨¨b©Ñ1Ñ2Ø
�A�‰F‰•Q˜‘VÑ˜r B™w¨¨b©Ñ1Ñ2ñ	3à
�A�‰F‰•Q˜‘VÑ˜r B™w¨¨b©Ñ1Ñ2ñ	3ò3ð 3ð 3ð 3õ
 ˜a¥Ñ#Ô#Ø
�A�‰F‰•Q˜‘VÑ�a "™fÑ%¨¨R©°"°r±'Ñ':¸BÀ¹GÑ'DÑEØ
�A�‰F‰•Q˜‘VÑ�a "™fÑ%¨¨R©°"°r±'Ñ':¸BÀ¹GÑ'DÑEñ	Fà
�A�‰F‰•Q˜‘VÑ�a "™fÑ%¨¨R©°"°r±'Ñ':¸BÀ¹GÑ'DÑEñ	Fð 	�A�‰F‰•Q˜‘VÑ�a "™fÑ%¨¨R©°"°r±'Ñ':¸BÀ¹GÑ'DÑEñ	FòFð Fð Fð Fõ �:ð 1ð 1ñ 2ô 2ð 2å
�:ð 5ð 5ñ 6ô 6ð 6å
�:ð 5ð 5ñ 6ô 6ð 6å
�:ð 1ð 1ñ 2ô 2ð 2å
�:ð 4ð 4ñ 5ô 5ð 5å˜a¥ F¨FÑ3Ô3°qÒ8Ð8Ð8Ð8Ý˜a¥ F¨FÑ3Ô3°qÒ8Ð8Ð8Ð8Ý˜a¥ F¨FÑ3Ô3µq¸1±uÒ<Ð<Ð<Ð<Ð<Ð<r   c                  ó  — t          d¦  «        \  } }}t          dt          ¦  «        \  }}}d„ | ||fD ¦   «         |||gk    sJ ‚t          d¦  «        \  } }}t          dt          ¦  «        \  }}}d„ | ||fD ¦   «         |||gk    sJ ‚d S )Nr    c                 ó@   — g | ]}|j                              ¦   «         ‘ŒS r   ©ÚrepÚto_list©r,   Úts     r   r.   z)test_fateman_poly_F_1.<locals>.<listcomp>{   ó"   € Ð1Ð1Ð1 ˆQŒU�]Š]‰_Œ_Ð1Ð1Ð1r   r&   c                 ó@   — g | ]}|j                              ¦   «         ‘ŒS r   rh   rk   s     r   r.   z)test_fateman_poly_F_1.<locals>.<listcomp>€   rm   r   )r   r   r   ©ÚfÚgÚhÚFÚGÚHs         r   Útest_fateman_poly_F_1rv   w   ó®   € Ý˜qÑ!Ô!�G€A€qˆ!Ý" 1¥bÑ)Ô)�G€A€qˆ!à1Ð1 q¨!¨Q iÐ1Ñ1Ô1°a¸¸A°YÒ>Ð>Ð>Ð>å˜qÑ!Ô!�G€A€qˆ!Ý" 1¥bÑ)Ô)�G€A€qˆ!à1Ð1 q¨!¨Q iÐ1Ñ1Ô1°a¸¸A°YÒ>Ð>Ð>Ð>Ð>Ð>r   c                  ó  — t          d¦  «        \  } }}t          dt          ¦  «        \  }}}d„ | ||fD ¦   «         |||gk    sJ ‚t          d¦  «        \  } }}t          dt          ¦  «        \  }}}d„ | ||fD ¦   «         |||gk    sJ ‚d S )Nr    c                 ó@   — g | ]}|j                              ¦   «         ‘ŒS r   rh   rk   s     r   r.   z)test_fateman_poly_F_2.<locals>.<listcomp>‡   rm   r   r&   c                 ó@   — g | ]}|j                              ¦   «         ‘ŒS r   rh   rk   s     r   r.   z)test_fateman_poly_F_2.<locals>.<listcomp>Œ   rm   r   )r   r   r   ro   s         r   Útest_fateman_poly_F_2r{   ƒ   rw   r   c                  ó  — t          d¦  «        \  } }}t          dt          ¦  «        \  }}}d„ | ||fD ¦   «         |||gk    sJ ‚t          d¦  «        \  } }}t          dt          ¦  «        \  }}}d„ | ||fD ¦   «         |||gk    sJ ‚d S )Nr    c                 ó@   — g | ]}|j                              ¦   «         ‘ŒS r   rh   rk   s     r   r.   z)test_fateman_poly_F_3.<locals>.<listcomp>“   rm   r   r&   c                 ó@   — g | ]}|j                              ¦   «         ‘ŒS r   rh   rk   s     r   r.   z)test_fateman_poly_F_3.<locals>.<listcomp>˜   rm   r   )r   r   r   ro   s         r   Útest_fateman_poly_F_3r   �   rw   r   N))Ú__doc__Úsympy.core.addr   Úsympy.core.symbolr   Ú(sympy.functions.elementary.miscellaneousr   Úsympy.ntheory.generater   Úsympy.polys.domains.integerringr   Úsympy.polys.polytoolsr   Úsympy.utilities.iterablesr	   Úsympy.testing.pytestr
   Úsympy.polys.specialpolysr   r   r   r   r   r   r   r   r   r   r   Ú	sympy.abcr   r   r   r:   r=   rC   rQ   re   rv   r{   r   r   r   r   ú<module>r‹      sÆ  ðØ BÐ Bà Ð Ð Ð Ð Ð Ø %Ð %Ð %Ð %Ð %Ð %Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø (Ð (Ð (Ð (Ð (Ð (Ø .Ð .Ð .Ð .Ð .Ð .Ø &Ð &Ð &Ð &Ð &Ð &Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð Ð Ð Ð Ð Ð Ð Ð Ð Ð ðCð Cð Cð"
1ð 
1ð 
1ð
/ð 
/ð 
/ð	Hð 	Hð 	Hð =ð  =ð  =ðF	?ð 	?ð 	?ð	?ð 	?ð 	?ð	?ð 	?ð 	?ð 	?ð 	?r   