
    Цi/                         S r SSKJr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Jr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  \rS rS r S r!S r"S r#S r$g)z4Tests for the subfield problem and allied problems.     )AlgebraicNumberIpiRational)S)exp)sqrt)MPQ)is_isomorphism_possiblefield_isomorphism_pslqfield_isomorphismprimitive_elementto_number_field)IsomorphismFailed)Poly)CRootOf)raises)xc                  z  ^^ [        [        5      m[        [        [        S5      -  5      m[        [        UU4S j5        [        [        S5      5      m[        [        S5      5      m[        [        S5      5      n [        [        S5      [        S5      -   5      n[        [        S5      [        S5      -   [        S5      -   5      n[        TT5      SS/:X  d   e[        TT5      b   e[        TU 5      b   e[        TU5      [        SS5      S[        SS5      * S/:X  d   e[        TU5      [        SS5      S[        SS5      * S[        S	S
5      S/:X  d   e[        TT5      b   e[        TT5      SS/:X  d   e[        TU 5      b   e[        TU5      [        SS5      * S[        SS5      S/:X  d   e[        TU5      [        SS5      * S[        SS5      S[        SS5      * S[        SS5      S/:X  d   e[        U T5      b   e[        U T5      b   e[        X 5      SS/:X  d   e[        X5      b   e[        X5      [        SS5      S[        SS5      * S[        SS5      S[        SS5      * S/:X  d   e[        UT5      b   e[        UT5      b   e[        X5      b   e[        X5      SS/:X  d   e[        X5      [        SS5      * S[        SS5      S[        SS5      * S[        SS5      S/:X  d   e[        UT5      b   e[        UT5      b   e[        X 5      b   e[        X!5      b   e[        X"5      SS/:X  d   e[        S[        S5      -  S[        S5      -  -   S-
  5      n[        X25      [        SS5      S[        SS5      * S[        SS
5      S[        SS
5      * S/:X  d   eg )N   c                     > [        T T5      $ )N)r   abs   k/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/sympy/polys/numberfields/tests/test_subfield.py<lambda>-test_field_isomorphism_pslq.<locals>.<lambda>   s    (>q!(D             r   	   P   ;         i  C   i@  i)     i9  G   iy  i  i%           i[  i  )r   r   r	   r   NotImplementedErrorr   Q)cdefr   r   s       @@r   test_field_isomorphism_pslqr4      s   A$q'	"A
 DEQ AQ AQ AQ$q')*AQ$q')DG34A!!Q'Aq6111!!Q'///!!Q'///!!Q'AaGQ1a!+DDDD!	1Ar(A!QxAb"Iq9: : : "!Q'///!!Q'Aq6111!!Q'///!!Q'Qq!WHa2q1+EEEE!!Q'Q	3. -Ab#JAc3K<Ac2J,C C C C "!Q'///!!Q'///!!'Aq6111!!'///!!'A	3-Qr3ZKAc3KQsBZK,D D D D "!Q'///!!Q'///!!'///!!'Aq6111!!'Q	3. -Ab#JAc3K<Ac2J,C C C C "!Q'///!!Q'///!!'///!!'///!!'Aq6111$q'	Ad1gI-12A!	Ar(A#r
{Aqbz1qbzk2NO O Or   c                     [        S[        S5      5      S/:X  d   e[        [        [        S5      -  [        [        S5      -  S-  5      SS/:X  d   e[        [        * [        S5      -  [        [        S5      -  S-  5      SS/:X  d   e[        [        [        S5      -  [        * [        S5      -  S-  5      SS/:X  d   e[        [        * [        S5      -  [        * [        S5      -  S-  5      SS/:X  d   e[        S[        -  [        S5      -  S-  S[        -  [        S5      -  S-  5      [        SS5      S/:X  d   e[        S[        -  [        S5      -  S-  S[        -  [        S5      -  S-  5      [        S	S5      S/:X  d   e[        S[        -  [        S5      -  S-  S
[        -  [        S5      -  S-  5      [        S	S5      S/:X  d   e[        S[        -  [        S5      -  S-  S
[        -  [        S5      -  S-  5      [        SS5      S/:X  d   e[        S[        -  [        S5      -  S-  S-   S[        -  [        S5      -  S-  5      [        SS5      S/:X  d   e[        S[        -  [        S5      -  S-  S-   S[        -  [        S5      -  S-  5      [        S	S5      S/:X  d   e[        S[        -  [        S5      -  S-  S-   S
[        -  [        S5      -  S-  5      [        S	S5      S/:X  d   e[        S[        -  [        S5      -  S-  S-   S
[        -  [        S5      -  S-  5      [        SS5      S/:X  d   e[	        [        S5      [        S5      -   5      n [	        [        S5      * [        S5      -   5      n[	        [        S5      [        S5      -
  5      n[	        [        S5      * [        S5      -
  5      n[
        R                  [
        R                  [        SS5      [
        R                  /n[        SS5      [
        R                  [        SS5      [
        R                  /n[	        [        S5      5      n[        X`5      SL d   e[        Xa5      SL d   e[        Xb5      SL d   e[        Xc5      SL d   e[        X`SS9U:X  d   e[        XaSS9U:X  d   e[        XbSS9U:X  d   e[        XcSS9U:X  d   e[        X`SS9U:X  d   e[        XaSS9U:X  d   e[        XbSS9U:X  d   e[        XcSS9U:X  d   e[	        [        S5      * 5      n[        X`5      SL d   e[        Xa5      SL d   e[        Xb5      SL d   e[        Xc5      SL d   e[        X`SS9U:X  d   e[        XaSS9U:X  d   e[        XbSS9U:X  d   e[        XcSS9U:X  d   e[        X`SS9U:X  d   e[        XaSS9U:X  d   e[        XbSS9U:X  d   e[        XcSS9U:X  d   e[
        R                  [
        R                  [        SS5      [
        R                  /n[        SS5      [
        R                  [        SS5      [
        R                  /n[	        [        S5      5      n[        X`5      SL d   e[        Xa5      SL d   e[        Xb5      SL d   e[        Xc5      SL d   e[        X`SS9U:X  d   e[        XaSS9U:X  d   e[        XbSS9U:X  d   e[        XcSS9U:X  d   e[        X`SS9U:X  d   e[        XaSS9U:X  d   e[        XbSS9U:X  d   e[        XcSS9U:X  d   e[	        [        S5      * 5      n[        X`5      SL d   e[        Xa5      SL d   e[        Xb5      SL d   e[        Xc5      SL d   e[        X`SS9U:X  d   e[        XaSS9U:X  d   e[        XbSS9U:X  d   e[        XcSS9U:X  d   e[        X`SS9U:X  d   e[        XaSS9U:X  d   e[        XbSS9U:X  d   e[        XcSS9U:X  d   e[        SS5      [
        R                  [        SS5      [        S5      * /n[        SS5      [
        R                  [        SS5      [        S5      * /n[	        S[        S5      -  S-
  5      n[        X`5      SL d   e[        Xa5      SL d   e[        Xb5      SL d   e[        Xc5      SL d   e[        X`SS9U:X  d   e[        XaSS9U:X  d   e[        XbSS9U:X  d   e[        XcSS9U:X  d   e[        X`SS9U:X  d   e[        XaSS9U:X  d   e[        XbSS9U:X  d   e[        XcSS9U:X  d   e[	        S[        S5      -  S[        S5      -  -   S-   5      n[
        R                  [
        R                  [        S
S5      [
        R                  /n[        S
S5      [
        R                  [        SS5      [
        R                  /n[        SS5      [
        R                  [        SS5      [
        R                  /n	[        SS5      [
        R                  [        SS5      [
        R                  /n
[        X`5      SL d   e[        Xa5      SL d   e[        Xb5      SL d   e[        Xc5      SL d   e[        X`SS9U:X  d   e[        XaSS9U:X  d   e[        XbSS9U	:X  d   e[        XcSS9U
:X  d   e[        X`SS9U:X  d   e[        XaSS9U:X  d   e[        XbSS9U	:X  d   e[        XcSS9U
:X  d   e[	        [        S5      5      n[	        [        S5      5      n[	        [        S5      5      n[        Xk5      SL d   e[        X5      SL d   e[        X5      SL d   e[        [        S5      [        S5      SS9b   e[        [        S5      [        S5      SS9b   e[        [        S5      [        S5      SS9b   e[        [        S5      [        S5      SS9b   e[	        [        S5      5      n[	        S[        S5      S-  -  5      n[        Xk5      SL d   e[        Xk5      b   eg )Nr   r   r   r    r+      #   ir-      r"   T)fastFir&   ir*   !   r!   1   i)
r   r	   r   r   r   r   HalfZeror   One)pqrs
pos_coeffs
neg_coeffsr   pos_1_coeffsneg_5_coeffspos_5_coeffsneg_1_coeffsr   r0   s                r   test_field_isomorphismrM   M   s/   QQ(QC///aQi47151a@@@aRQZ4715"a@@@aQi!DGA62q'AAAaRQZ!DGA6Aq'AAAac$q'k!mQqSa[];!RRS?TTTTRT$q'\!^QqSa[];R@PRS?TTTTac$q'k!mRT$q'\!^<"bAQST@UUUURT$q'\!^RT$q'\!^<(1b/ST@UUUU	!DGAAaCQKM+08B.DE E E
1T!WQQqSa[],08R0@"/EF F F 	!DGABqDaLN,08R0@"/EF F F
1T!WQRT$q'\!^-2:1b/20FG G G 	a47*+Aa47*+Aa47*+Aa47*+A661668B?AFF;J2q/1668Aq>166BJQ A"1(D000"1(D000"1(D000"1(D000Q-;;;Q-;;;Q-;;;Q-;;;Q.*<<<Q.*<<<Q.*<<<Q.*<<<a!A"1(D000"1(D000"1(D000"1(D000Q-;;;Q-;;;Q-;;;Q-;;;Q.*<<<Q.*<<<Q.*<<<Q.*<<<661668C#3QVV<J2q/1668B?AFFCJQ A"1(D000"1(D000"1(D000"1(D000Q-;;;Q-;;;Q-;;;Q-;;;Q.*<<<Q.*<<<Q.*<<<Q.*<<<a!A"1(D000"1(D000"1(D000"1(D000Q-;;;Q-;;;Q-;;;Q-;;;Q.*<<<Q.*<<<Q.*<<<Q.*<<<Aq>1668C+;adUCJ2q/1668B?QqTEBJ$q'	A&A"1(D000"1(D000"1(D000"1(D000Q-;;;Q-;;;Q-;;;Q-;;;Q.*<<<Q.*<<<Q.*<<<Q.*<<<$q'	Ad1gI-12AVVQVVXb!_aee<LROQVVXb!_aeeDLa^QVVXc1-=quuELROQVVXa^QUUCL"1(D000"1(D000"1(D000"1(D000Q-===Q-===Q-===Q-===Q.,>>>Q.,>>>Q.,>>>Q.,>>>Q AQ AQ A"1(D000"1(D000"1(E111T!Wd1gD9AAAT!Wd1gD9AAAT!Wd1gE:BBBT!Wd1gE:BBBQ AadQh(A"1(E111Q"***r   c            
         [        [        S5      /[        5      [        S-  S-
  S/4:X  d   e[        [        S5      [        S5      /[        5      [        S-  S[        S-  -  -
  S-   SS/4:X  d   e[        [        S5      /[        SS9[        [        S-  S-
  SS	9S/4:X  d   e[        [        S5      [        S5      /[        SS9[        [        S-  S[        S-  -  -
  S-   SS	9SS/4:X  d   e[        [        S5      /[        SS
9[        S-  S-
  S/SS//4:X  d   e[        [        S5      [        S5      /[        SS
9[        S-  S[        S-  -  -
  S-   SS/[	        SS5      S[	        SS5      * S/[	        SS5      * S[	        SS5      S//4:X  d   e[        [        S5      /[        SSS9[        [        S-  S-
  SS	9S/SS//4:X  d   e[        [        S5      [        S5      /[        SSS9[        [        S-  S[        S-  -  -
  S-   SS	9SS/[	        SS5      S[	        SS5      * S/[	        SS5      * S[	        SS5      S//4:X  d   e[        [        S5      /SS9[        [        S-  S-
  5      S/4:X  d   e[        [        S 5        [        [        S 5        [        [        S[        S5      -  S-   5      -  [        [        S[        S5      -  S-   5      -  p[        X[        /[        5      [        S-  S[        S-  -  -   S-   / SQ4:X  d   e[        [        S5      S/[        5      [        S-  S-
  SS/4:X  d   e[        S[        S5      /[        5      [        S-  S-
  SS/4:X  d   e[        [        S5      S/[        SS
9[        S-  S-
  SS/[        SS5      [        SS5      // /4:X  d   e[        S[        S5      /[        SS
9[        S-  S-
  SS// [        SS5      [        SS5      //4:X  d   eg )Nr   r!   r      
   T)polysQQ)domainexr   r"   r&   )rU   rQ   c                       [        / [        SS9$ )NFrT   r   r    r   r   r   (test_primitive_element.<locals>.<lambda>  s    0Q5Ar   c                       [        / [        SS9$ )NTrT   rW   rX   r   r   r   rY     s    0Q4@r   r6   r7   )r!   r   r   )	r   r	   r   r   r/   r   
ValueErrorr   r
   r   s     r   test_primitive_elementr\      s`   d1gY*q!tax!o===	a$q'A#$a4"QT'>A#51v">? ? ? d1gY641qQU;VYZX[:\\\\d	Gt%)-adR1Wnq.@)NQRTUPV(WX X X 	a	1#$a4!8aSAq6(";< < <d1gtAw/t<	
A1a4!	aVqAwAaG8Q&?	
1aCQr1XqB" &# 	$$ $ $ 	a	1T+/3AqD1HT/JQCSTVWRXQY.Z[ [ [d1gtAw/t4H	adR1Wnq 	.A!Aq'1qAwh	
:Awh1R8Q'9) 	** * * d1gYd3QTAX7LLLL
:AB
:@A T!DG)a-  !DDGa$8"8qaAY*q!ta1f}q/@).LLLLd1gq\1-!Q$(QF1CCCCaa\1-!Q$(QF1CCCCd1gq\161a4!8aVsSTUVxY\]^_`YaNbdfMg:hhhhaa\161a4!8aVbSVWXYZS[]`abcd]eRfMg:hhhhr   c            	         [        [        S5      5      [        [        S5      5      :X  d   e[        [        S5      [        S5      /5      [        [        S5      [        S5      -   5      :X  d   e[        [        S5      [        S5      -   [        R                  [        R
                  [        SS5      [        R
                  /5      n [        [        S5      [        S5      [        S5      -   5      U :X  d   e[        [        S5      [        [        S5      [        S5      -   5      5      U :X  d   e[        [        S 5        g )Nr   r   r:   c                  >    [        [        S5      [        S5      5      $ )Nr   r   )r   r	   rX   r   r   r   &test_to_number_field.<locals>.<lambda>#  s    od1gtAw&Gr   )	r   r	   r   r   r@   rA   r   r   r   )r   s    r   test_to_number_fieldr`     s    47#tAw'????	a$q'.tAwa/@AB B B 	Q$q')AFFAFFHROQVV+TUA47DGd1g$56!;;;47ODGd1g4E$FG1LLL
GHr   c                      [        [        S5      [        S5      [        S5      -   5      n [        [        S5      [        S5      [        S5      -   5      n[        X5      SS/:X  d   eg )Nr   r   r+   r!   r   )r   r	   r   r   s     r   test_issue_22561rb   &  sS    Qa47!23AQa47!23AQ"q!f,,,r   c                      [        [        S-  [        S-  -   [        S-  -   [        -   S-   S5      n U R                  5         [        S[        -  [
        -  S-  5      n[        X5      SS/:X  d   eg )NrO   r   r   r!   r;   r+   r   )r   r   _resetr   r   r   r   r   s     r   test_issue_22736re   ,  sb    1q!tad"Q&*B/AHHJAaCF1HAQ"q!f,,,r   N)%__doc__sympy.core.numbersr   r   r   r   sympy.core.singletonr   &sympy.functions.elementary.exponentialr   (sympy.functions.elementary.miscellaneousr	   sympy.external.gmpyr
   !sympy.polys.numberfields.subfieldr   r   r   r   r   sympy.polys.polyerrorsr   sympy.polys.polytoolsr   sympy.polys.rootoftoolsr   sympy.testing.pytestr   	sympy.abcr   r/   r4   rM   r\   r`   rb   re   rX   r   r   <module>rr      s_    : A A " 6 9 #  5 & + ' 1Ohe+P!iH
I--r   