
    \hd                         S r SSKJr  SSKJrJrJr  SSKJr  SSK	J
r
  SSKJr  SSKJr  SSKJr  SS	KJr  SS
KJr  SSKJr  SSKJrJr  S rS rS rg)zTests on algebraic numbers.     )Tuple)AlgebraicNumberIRational)S)Symbol)sqrt)Poly)to_number_field)DMP)QQ)CRootOf)xyc                  D   [         S-  S-
  [        S5      p[        U[         S9nUR                  [	        [        S5      [        S5      /[
        5      :X  d   eUR                  U:X  d   eUR                  b   eUR                  U :X  d   eUR                  (       d   eUR                  SL d   eUR                  5       [        R                  [        R                  /:X  d   eUR                  5       [        S5      [        S5      /:X  d   e[        U[         SS9nUR                  [	        [        S5      [        S5      /[
        5      :X  d   eUR                  U:X  d   eUR                  [!        S5      :X  d   eUR                  U :X  d   eUR                  (       d   eUR                  SL d   e[        U[         [!        S5      S9nUR                  [	        [        S5      [        S5      /[
        5      :X  d   eUR                  U:X  d   eUR                  [!        S5      :X  d   eUR                  U :X  d   eUR                  (       d   eUR                  SL d   e[        [        S5      / 5      R                  [	        / [
        5      :X  d   e[        [        S5      S	5      R                  [	        / [
        5      :X  d   e[        [        S5      S
5      R                  [	        / [
        5      :X  d   e[        [        S5      S/5      R                  [	        [        S5      /[
        5      :X  d   e[        [        S5      [#        SS5      /5      R                  [	        [        SS5      /[
        5      :X  d   e[        [        S5      SS/5      R                  [	        [        S5      [        S5      /[
        5      :X  d   e[        [        S5      [#        SS5      [#        SS5      /5      R                  [	        [        SS5      [        SS5      /[
        5      :X  d   e[        [        S5      / SQ5      R                  [	        [        S5      [        S5      /[
        5      :X  d   e[        [        U[         S9SS/5      nUR                  [	        [        S5      [        S5      /[
        5      :X  d   eUR                  U:X  d   eUR                  b   eUR                  U :X  d   eUR                  (       d   eUR                  SL d   eUR                  5       [        R                  [        S5      /:X  d   eUR                  5       [        S5      [        S5      /:X  d   e[        X4SS/5      nUR                  [	        [        S5      [        S5      /[
        5      :X  d   eUR                  U:X  d   eUR                  b   eUR                  U :X  d   eUR                  (       d   eUR                  SL d   e[        [%        U 5      U4SS/5      nUR                  [	        [        S5      [        S5      /[
        5      :X  d   eUR                  U:X  d   eUR                  b   eUR                  U :X  d   eUR                  (       d   eUR                  SL d   e[        [        S5      5      R                  [	        [        S5      [        S5      /[
        5      :X  d   e[        [        S5      * 5      R                  [	        [        S5      [        S5      /[
        5      :X  d   e[        [        S5      5      n[        [        S5      5      nX#:X  d   e[        [        S5      [         S9nX#:X  d   eX$:X  d   e[        [        S5      SS/5      n[        [        S5      SS/5      nX#:w  a  U[        S5      S-   :w  d   eU[         :H  SL a  U[         :g  SL d   e[        [        S5      SS/5      n[        [        S5      SS/[&        S9nUR)                  [         5      [%        [         SS9:X  d   eUR)                  5       [%        [&        SS9:X  d   eUR+                  5       [        S5      :X  d   eUR+                  [         5      [         :X  d   eUR+                  5       [        S5      :X  d   eUR+                  [         5      [         :X  d   e[        [        S5      SS/5      n[        [        S5      SS/[&        S9nUR)                  5       nU[%        SUR,                  -  S-   5      :X  d   eUR)                  [         5      [%        S[         -  S-   SS9:X  d   eUR)                  5       [%        S[&        -  S-   SS9:X  d   eUR+                  5       S[        S5      -  S-   :X  d   eUR+                  [         5      S[         -  S-   :X  d   eUR+                  5       S[        S5      -  S-   :X  d   eUR+                  [         5      S[         -  S-   :X  d   e[        [        S5      5      n[/        [        S5      5      nUR0                  UR0                  s=:X  a  [        S5      [3        SS5      4:X  d   e   e[        [        S5      SS9nUR0                  [        S5      [3        SS5      [!        S5      4:X  d   e[        [        S5      / SQ5      nUR0                  [        S5      [3        SSS5      4:X  d   e[        [        S5      SS/S5      n[        U5      n[        USS9nX#:X  d   eUR                  R4                  S:X  d   e[        [        S5      [        S5      -   [        S5      S-  S[        S5      S-  S/5      n[        U/ SQ5      nUR                  UR                  :X  d   eUR7                  5       [        S5      :X  d   eUR7                  5       S:X  d   e[        S5      nUR8                  SL d   eg )N   gen   r   Fr   )r   aliasT )r   r            	   )r   r   r      )r   r   )domainalphagammair   r   r   )r   r	   r   repr   r   rootr   minpoly	is_number
is_aliasedcoeffsr   OneZeronative_coeffsr   r   r
   r   as_polyas_exprr   r   argsr   nameto_rootis_primitive_element)r#   r"   abcps         c/var/www/auris/envauris/lib/python3.13/site-packages/sympy/polys/numberfields/tests/test_numbers.pytest_AlgebraicNumberr5      s	   qD1Hd1gT!$A55CA1++++66T>>77??99;;;<<5   88:!%%(((??A1...!3/A55CA1++++66T>>77fSk!!!99;;;<<4!6#;7A55CA1++++66T>>77fSk!!!99;;;<<447B'++s2r{:::47B'++s2r{:::47F+//3r2;>>>47QC(,,RUGR0@@@@47Xa^$4599S"Q(R=PPPP47QF+//31r!u~r3JJJJQ(1a.(1a.13363#r!QxAq>RTV:WX X X 47I.22c2a5"Q%."6MMMM!4q!f=A55CA1++++66T>>77??99;;;<<5   88:!%%1&&&??A1...!Q0A55CA1++++66T>>77??99;;;<<5   g-1v6A55CA1++++66T>>77??99;;;<<5   DG$((C"Q%A,DDDDDG8$((C"Q%A,DDDDQ AQ A6M6QQ'A6M66M6Q!Q(AQ!Q(A6a47Q;&&&Fu!q&T!111Q!Q(AQ!Qq1A99Q<4$////99;$q....99;$q'!!!99Q<199;$q'!!!99Q<1Q!Q(AQ!Qq1A			AQquuWq[!!!!99Q<4!a555599;$qsQwt444499;!DG)a-'''99Q<1Q37"""99;!DG)a-'''99Q<1Q37"""Q AQ A66QVV5Qq!555555Qw/A66d1guQ{F7O<<<<Q+A66d1guQ1~....Q!Q1AA)A6M677<<7"""Q$q')AaDFAquQw+BCA9%A66QVV99;$q'!!!99;!A!!T)))    c                     [        [        S5      [        S9R                  5       n U R                  [        S-  S-
  :X  d   eU R
                  [        S5      :X  d   eU R                  [        [        S5      [        S5      /[        5      :X  d   e[        S[        S5      -  [        S9R                  5       n U R                  [        S-  S-
  :X  d   eU R
                  S[        S5      -  :X  d   eU R                  [        [        S5      [        S5      /[        5      :X  d   e[        [        S5      S-  [        S9R                  5       n U R                  [        S-  S-
  :X  d   eU R
                  S[        S5      -  :X  d   eU R                  [        [        S5      [        S5      /[        5      :X  d   e[        [        S5      S-  [        SS5      S/[        S9R                  5       n U R                  [        S-  S-
  :X  d   eU R
                  S[        S5      -  :X  d   eU R                  [        [        SS5      [        S5      /[        5      :X  d   eg )	Nr   r   r   r   r      r      )
r   r	   r   to_algebraic_integerr#   r"   r!   r   r   r   )r0   s    r4   test_to_algebraic_integerr;      s   QQ'<<>A991q   66T!W55CA1++++$q'	q)>>@A991r	!!!66QtAwY55CA1++++Q	q)>>@A991r	!!!66QtAwY55CA1++++Q	HQOQ#7Q?TTVA991r	!!!66QtAwY55CArBqE*B////r6   c                  B   [        [        S5      5      R                  5       [        S5      :X  d   e[        [        [        S-  S-
  S5      / SQS9n U R                  5       [        [        S-  [        S-  -   [        S-  -   [        -   S-   S5      :X  d   e[        [        [        S-  S-
  S5      / SQS9nUR                  5       [        S5      * S-  [        S5      [        -  S-  -
  :X  d   eUR                  SS	9[        [        S-  [        -   S-   S
5      :X  d   eg )Nr   r   r      r    )r&   r   F)radicalsr   )r   r	   r.   r   r   r   r   )zeta5_squaredzeta3_squareds     r4   test_AlgebraicNumber_to_rootrA      s    47#++-a888#GAqD1Ha$8KM  "gadQTkAqD.@1.Dq.H!&LLLL#GAqD1Ha$8KM  "qteAgQ	!&;;;;  % 0GAqD1HqL!4LLLLr6   N)__doc__sympy.core.containersr   sympy.core.numbersr   r   r   sympy.core.singletonr   sympy.core.symbolr   (sympy.functions.elementary.miscellaneousr	   sympy.polys.polytoolsr
   !sympy.polys.numberfields.subfieldr   sympy.polys.polyclassesr   sympy.polys.domainsr   sympy.polys.rootoftoolsr   	sympy.abcr   r   r5   r;   rA   r   r6   r4   <module>rN      s>    " ' = = " $ 9 & = ' " + V*r02Mr6   