
    oVhKZ                        d Z ddlmZ ddlmZmZ ddlmZmZm	Z	m
Z
mZ ddlmZ ddlmZ ddlmZ ddlmZmZ dd	lmZmZ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# ddl$m%Z%m&Z& ddl'm(Z( ddl)m*Z* ddl+m,Z,m-Z-m.Z.m/Z/m0Z0 ddl1m2Z2 ddl3m4Z4m5Z5 ddl6m7Z7 ddlm8Z8 ddlm9Z9 ddl:m;Z;m<Z<m=Z= e	Z>d Z?d Z@d ZAd ZBd ZCd ZDd ZEd  ZFd! ZGd" ZHd# ZId$ ZJe&d%        ZKd& ZLd' ZMd( ZNd) ZOd* ZPd+ ZQd, ZRd- ZSd. ZTd/ ZUd0 ZVy1)2zTests for minimal polynomials.     )expand)GoldenRatioTribonacciConstant)AlgebraicNumberIRationaloopi)Pow)S)exp)cbrtsqrt)cossintan)	nextprime)Poly)CRootOf)nonlinsolve)Circleintersection)raisesslow)	FiniteSet)Point2D)minimal_polynomial_choose_factor_minpoly_op_algebraic_element_separate_sq_minpoly_groebner)apart)NotAlgebraicGeneratorsError)QQ)rootof)degree)xyzc                      t        dt              t        dz   k(  sJ t        dt              t        dz   k(  sJ t        dt              t        k(  sJ t        dt              t        dz
  k(  sJ t        dt              t        dz
  k(  sJ t        t        d      t              t        dz  dz
  k(  sJ t        t        d      t              t        dz  dz
  k(  sJ t        t        d      t              t        dz  dz
  k(  sJ t        dt        d      z  t              t        dz  d	z
  k(  sJ t        d
t        d      z  t              t        dz  dz
  k(  sJ t        dt        d      z  t              t        dz  dz
  k(  sJ t        dt        d      z  d
z   t              t        dz  dt        z  z
  dz   k(  sJ t        d
t        d      z  dz   t              t        dz  dt        z  z
  dz
  k(  sJ t        dt        d      z  dz   t              t        dz  dt        z  z
  dz
  k(  sJ t        dt        d      z  d
z
  t              t        dz  dt        z  z   dz   k(  sJ t        d
t        d      z  dz
  t              t        dz  dt        z  z   dz
  k(  sJ t        dt        d      z  dz
  t              t        dz  dt        z  z   dz
  k(  sJ t        t        dt        d      z         t              t        dz  dt        dz  z  z
  dz
  k(  sJ t        t        t        t        d      z         t              t        d	z  dt        dz  z  z
  dz   k(  sJ t        dt        z  t        dt        z         z   t              t        dz  dt        dz  z  z   d	t        z  z   dz   k(  sJ t        t        d      t        d
      z   t              t        dz  dt        dz  z  z
  dz   k(  sJ t        t        d      t        d
      z   t        d      z   t              t        dz  dt        dz  z  z
  dt        z  z
  dz
  k(  sJ ddt        d      z  z
  dt        d
      z  z   } t        d| z  t              dt        dz  z  dt        d
z  z  z
  dt        dz  z  z   dt        z  z   dz
  k(  sJ t        dt        |       z  t              dt        d	z  z  dt        dz  z  z
  dt        dz  z  z   dt        dz  z  z   dz
  k(  sJ t	        t
        d        t	        t
        d        t	        t
        d        t        t        d            j                  t        dz  dz
        sJ t        t        d      t              t        dz  dz
  k(  sJ t        t        d      d      t        t        dz  dz
        k(  sJ t        t        d      t        d      t        t        dz  dz
  d !      k(  sJ t        t        d      t        dd"#      t        t        dz  dz
  d !      k(  sJ t        t        d            } t        t        d
            }t        | t              t        dz  dz
  k(  sJ t        |t              t        dz  d
z
  k(  sJ t        | t        d      t        t        dz  dz
  d !      k(  sJ t        |t        d      t        t        dz  d
z
  d !      k(  sJ t        t        | dz  d$z         t              dt        dz  z  d%t        dz  z  z
  d&z   k(  sJ t        t        |dz  d$z         t              dt        dz  z  d't        dz  z  z
  d(z   k(  sJ t        d      d
z  dz   t        t        d      d
z  dz         }} d)t        d	z  z  d*t        dz  z  z
  d+t        dz  z  z
  d,t        dz  z  z   d-t        d
z  z  z   d.t        dz  z  z
  d/t        z  z
  d0z   }t        t        |       t        t        |             z   t              |k(  sJ t        t        |      t        t        |            z   t              |k(  sJ t        | t        d
d      z  t              d1t        dz  z  d2t        dz  z  z
  d3z   k(  sJ t        d4      }t        |t              d5t        dz  z  dz
  k(  sJ t        d      t        t              z  dt        dd6t        z  z         z  z  d7t        d      z  t        t        dd      z  dd6t        z  z   t        d
d      z  z  z  z   d8t        d      z  t        t        d9d      z  dd6t        z  z   t        d
d      z  z  z  z   dt        z  t        dt        d6z  z
        z  z   }t        |t              }|d7t        dz  z  d:t        dz  z  z   d;z   k(  sJ dt        d      z   t        d
      z   }t        |t              }|t        dz  dt        d
z  z  z
  dt        dz  z  z
  d<t        z  z   d	z
  k(  sJ ddt        d      z   t        d
      z   z  }t        |t              }|d	t        dz  z  d<t        d
z  z  z
  dt        dz  z  z   dt        z  z   dz
  k(  sJ t        dt        d      z   dt        d
      z  z
  t        d      z   d
z        t        dd
      z  }t        |t              }|t        d	z  d	t        dz  z  z
  d=t        dz  z  z
  d>t        dz  z  z   d?t        dz  z  z   d@t        d
z  z  z
  dAt        dz  z  z   dBt        z  z   dCz
  k(  sJ t        dt        d      z   dt        d
      z  z
  t        d      z   d
z        }t        |t              }|t        d	z  dDt        dz  z  z
  dEt        dz  z  z
  dFt        dz  z  z   dGt        dz  z  z   dHt        d
z  z  z
  dIt        dz  z  z   dJt        z  z   dKz
  k(  sJ t        t        dL      t              t        dz
  k(  sJ dt        d      z   } t        | t        d      z  | z   d
z  t              t        dz  dMt        z  z
  dz   k(  sJ ddt        d      z   t        d
      z   z  }t        |t        d"N      d	t        dz  z  d<t        d
z  z  z
  dt        dz  z  z   dt        z  z   dz
  k(  sJ ddt        d      z   t        d
      z   z  }t        |t        d"N      t        dz  dt        d
z  z  z
  dt        dz  z  z   dt        z  z   dz
  k(  sJ t        dt        d      t        z  z   t        d"N      t        dz  dt        z  z
  d
z   k(  sJ t        ddt        d      z   z  dz   t        d"N      t        dz  dz
  k(  sJ t        t        d      t        z  t        dt        d      z   z  z   t        d"N      t        dz  dOt        dz  z  z   dz   k(  sJ t        t        t        t        j                  t              !      t        t        z
  k(  sJ t        j                  t        t        d      dz   z        }t        t        t        |!      t        t        z
  k(  sJ t        t        t        t        !      t        dz  dz   k(  sJ t        t        t        dP!      t        dz  dz   k(  sJ t        t        t              t        dz  t        z
  dz
  k(  sJ t        t         d
z   t              t        d
z  dt        dz  z  z
  dQt        z  z   dRz
  k(  sJ t        t        t        t        j                  t        d            !      dt        z  t        d      z
  dz
  k(  sJ t        t         t        t        j                  t#        dSd
t        dT      z  z
              !      dt        z  dSdSd
t        dT      z  z
  t        dd
      z  z  z
  d
t        dT      z  dSd
t        dT      z  z
  t        dd
      z  z  z
  d<dSd
t        dT      z  z
  t        dd
      z  z  z
  d<z
  k(  sJ t        t        j                  j                  dU      dVW      }t        |t              t        dz  t        z
  dz
  k(  sJ y )XNi      r                  -      `      	      /   
   1   %      0      i    id  c                  *    t        t        t              S N)r   r	   r(        [/home/dcms/DCMS/lib/python3.12/site-packages/sympy/polys/numberfields/tests/test_minpoly.py<lambda>z)test_minimal_polynomial.<locals>.<lambda>P   s    !3B!: rE   c                  0    t        dt        z  t              S Nr/   )r   r)   r(   rD   rE   rF   rG   z)test_minimal_polynomial.<locals>.<lambda>Q   s    !3AqD!!< rE   c                  4    t        t        d      t              S )Nr.   )r   r   r(   rD   rE   rF   rG   z)test_minimal_polynomial.<locals>.<lambda>R   s    !3CFA!> rE   Tpolysr%   domainF)rL   compose   D   iA     i  Q   i  i  itX  i  ix{  i i.( i  i ig

        -1/(800*sqrt(-1/240 + 1/(18000*(-1/17280000 +
        sqrt(15)*I/28800000)**(1/3)) + 2*(-1/17280000 +
        sqrt(15)*I/28800000)**(1/3)))@  }      i5     i  i    8                i   i i i &l    @4 l     zl l     xyl     x, z(-sqrt(5)/2 - 1/2 + (-sqrt(5)/2 - 1/2)**2   rO      zQQ(y)    "      !   )funcphi)alias)r   r(   r   r   r   r#   dummy_eqr   r   Qr   r   r   r%   algebraic_fieldr   r   r   )	abfeqexmppKri   s	            rF   test_minimal_polynomialrv   )   s    b!$A---b!$A---q!$)))q!$A---q!$A---d1gq)QTAX555d1gq)QTAX555d1gq)QTAX555aQi+q!tax777aQi+q!tby888aQi+q!tby888aQi!mQ/1a4!A#:>AAAaQi!mQ/1a4"Q$;?BBBaQi!mQ/1a4"Q$;3CCCCaQi!mQ/1a4!A#:>AAAaQi!mQ/1a4"Q$;?BBBaQi!mQ/1a4"Q$;3CCCCd1tAw;/3q!ta1f}q7HHHHd1tAw;/3q!tbAg~7JJJJacDQK/3q!ta1f}qs7JR7OOOOd1gQ/3q!tbAg~7IIIIQ$q'DG#Q(+,a4"QT'>BqD+@2+EF F F 	
Ad1gI$q'	!A	!Qq!t8d1a4i'#ad(2QqS81<= = =	$q'	1QTDAI-AqD81QT6AAEF F F <:;
<<=
<>?d1g&//1q999d1gq)QTAX555d1gT2d1a4!8nDDDd1gq5adQht9TTTTd1gqeDQPQTTUX^bHccccQ AQ Aa#q!tax///a#q!tax///a$/41q3NNNNa$/41q3NNNNd1Q38na0AadFR1W4Ds4JJJJd1Q38na0AadFSAX4E4LLLL719q=/$q'!)a-8qA
1a4$q!t)d1a4i'%1*4uQTzAad
	AX	 &	'A d1gT!W5q9Q>>>d1gT!W5q9Q>>>	1Q7
Aad(VAqD[08;< < < 
 ) 
*B b!$QT	A555
q'$q'/1T!c!e)_,
-aj!QqV)QQY1Q$778947lAqAwJCE	AaF'::;< c$q1S5y/!"B 
B	"BAqD419$v----	
T!WtAw	B	B	"BA!Q$1a4'"Q$.2222	
AQK$q'!	"B	B	"B1a4"QT'!AadF*QqS014444	T!Wqay(472Q6	7(1a.HA	Aq	!BA!Q$AqD(3q!t83c!Q$h>adJTRSUVRVYVY]^_Y__bfffffDGaQi'$q'1A56A	Aq	!BAAqD6!Q$;.!Q$>1a4OR]^_ab^bRbbeqrsuvrvevv  zF  GH  zH  H  KV  V  V  V  Va JKQOSTWXSXXXX	DGAqay1}q0!41s1uq8HHHH	1tAw;a !AaE2a1fr!Q$w6F1a46ORSTURU6UXY6YYYY	1tAw;a !AaE2adQq!tVma1f6LqQRs6RUV6VVVVa$q'!)mQ>!Q$1*q.PPPaT!Wo11eD1qPPPd1gai!Qa[/91 !tbAg~23 3 3 a2+=+=a+@AQUJJJ
1d1gk?+Aa1-Q666a2.!Q$(:::a73q!tax??? k1-AA===014a8AqD2ad7NRPQT<QTV<VVVVk1R5G5GQ5PQaC$q'MA  0!B<N<NtTVYZ[_`b[cYcTcOd<efqD2rAd2hJ!Q///!DH*b1T"X:oPXYZ\]P^=^2^^"qbz/HQN	**+-/00 0 0 !--..D.9
GCc1%AA555rE   c                  2   t        d      } t        |       }t        | dz  |z        j                  sJ t        | dz  |z        | t        |      z  z
  }t        |t              t        k(  sJ t        t        d      |z
  t              t        dz  dz
  k(  sJ y )Nl     _r/   )r   r   is_Powr   r(   )p1p2zeros      rF   test_issue_26903r|      s    	6	B	2BAb>    Ab>BtBxK'DdA&!+++d1gna0AqD1H<<<rE   c                      t        t        dt        z  t        z  d      t              t        dz   k(  sJ t        t        dt        d      dz  d      t              t        dz
  k(  sJ y )Nr3   Fevaluater.   r2   r/   )r   r   r   r
   r(   r   r   rD   rE   rF   test_issue_8353r      s]    c!A#b&591=QFFFc!QqT!Ve<a 
U  rE   c                     ddt        d      z  t        t        d      dz  dt        d      z  dz  z
        z  dt        t        d      dz  dt        d      z  dz  z
        z  z   z  dd	t        d      z  t        t        d      dz  dt        d      z  dz  z
        z  d
t        t        d      dz  dt        d      z  dz  z
        z  z   z  z
  } dt        dz  z  dt        dz  z  z
  dz   }t        | t              |k(  sJ y )NloyDCG,-e``eC2#<N>}L{/,rNELACQ,l}Y l   HA;NjCxQ] dv>Ai}|944)$R{QqUe_}l   A> l   (r[+iYi|tl      @_CIc6',fk,S?	`@54=?y.W6+u*eXpgM$YP`5@ l   S>BBnc&Kv~U;N	w#A 
9GpS4y<MG l   pAP.Zs;>N'CGHEK=3BS 4dpU=<l     @Fx6VTxV9_6-I"[!<mEexxP[30lQ              Me3cxiL>T#B!,(^;3&Z	VjcSp![. %4@']YNE%$%88qbr|im+8;>W$;$f.33$[Sv!7wx*)*L5Y7FpIX
jLjZwlhx| r5   lb        6
 B]Fq16+I;6W!g[	O"Ov])zsnre);.sH ?OPX:LSO3I^&'PkDDn"H+
QSiVn?v>A"T#.\GgKL}Wcu~frQ[!.K<8`=J+?kxy,yhZ9r-*r/   ld   >C=cJ#m5#P<!VE7|o>jkoQ&M ; 1 [aew' rB_nJ\xIwz7)5MZ1=A=03&aCW>i&XHK2oa#yA59&J5	];u_oj#F[Fy;C	VJ>.:'E3dyZod[t>wo H$@F y#gX3V:3 )r   r   r(   r   )exprpolys     rF   #test_minimal_polynomial_issue_19732r      s    a  ck  lp  q}  l~  c~  C  DE  FT  DU  V^  D^tL!!(*D+ , c, R  SW  XY  Zh  Xi  jr  Xr
4%
%h
.X/ S0 0c0 1 }  k  lp  q}  l~  ~  C  DE  FT  DU  V^  D^
4%
%h
.D/ 0 0yz~  @A  BP  @Q  RZ  @ZtL))(2@3 {4 	44 5	5D y  z{  }~  z~  ~ I  JK  MN  JN  NN QQD dA&$...rE   c                      dt        ddt        d      z  z
  dt        d      z  z   t        dd      dz  z         z  } t        | t              }|j	                  t        dz        d	k(  sJ y )
Nr.   r8   r/   r,   r3   r;      r1   l    \!b1")XQ+z>pH.g>tJ4"*v ~b]fit )r   r   r   r(   coeff)rt   rs   s     rF   test_minimal_polynomial_hi_precr      sm    	$q1T!W9}qay(8Ar?B+>>
??A	Aq	!B88AqD>  [  [  [  [rE   c                  0   ddl m}  ddlm}  |ddt	        d      z  z   dt	        d      z  z   dz        }t        |t        dd      z  t              }|t        dz  dt        dz  z  z
  d	t        dz  z  z
  d
t        z  z   dz   k(  sJ  |dt	        d      z   dt	        d      z  z
  t	        d      z   dz        }t        |t        dd      z  t              }|t        dz  dt        dz  z  z
  dt        dz  z  z
  dt        dz  z  z   dt        dz  z  z   dt        dz  z  z
  dt        dz  z  z   dt        z  z   dz
  k(  sJ  | t        dd      D cg c]  }t	        |       c} }t        |t              }|j                  t        di      dk(  sJ y c c}w )Nr   )Add)expand_multinomialr.   r0   r/   r3   r5   v      i)  r,   r2   rZ   r1   r[   r\   r]   r^   r_   r`   r7   l   >/&5> )
sympy.core.addr   sympy.core.functionr   r   r   r   r(   rangesubs)r   r   rt   rs   is        rF   test_minimal_polynomial_sqr      s   "6A$q'	MAd1gI59:A	Ax1~-q	1BA!Q$QT)CE1D8888AQK!DG)3d1g=ABA	Ax1~-q	1BA!Q$AqD(3q!t83c!Q$h>adJTRSUVRVYVY]^_Y__bfffffuQ|,!d1g,-A	Aq	!B77Aq6?3333 -s   Fc            
         t        d      } t        | dz   t              }|dt        dz  z  dt        z  z
  dz   k(  sJ t        t        t        t
        z  dz        t              t        dz  dz   k(  sJ t        t        t
        d	z        t        d      z   t              }|d
t        dz  z  dt        dz  z  z
  dt        dz  z  z   dt        dz  z  z
  dt        dz  z  z   dt        dz  z  z
  dz   k(  sJ t        t        t
        d	z        t        d      z   t              }|dt        dz  z  dt        dz  z  z
  dt        dz  z  z
  dt        dz  z  z   dt        dz  z  z   dt        z  z
  dz
  k(  sJ t        t        t        t
        z  d	z        t        d      z   t              }|t        dz  dt        dz  z  z
  dt        dz  z  z
  dt        dz  z  z   dt        dz  z  z   d t        d	z  z  z
  d!t        dz  z  z
  d"t        dz  z  z   d#t        dz  z  z   d$t        dz  z  z
  d%t        dz  z  z
  d&t        z  z   d'z   k(  sJ t        t        t
        d	z        t        d      z   t              }|d
t        dz  z  dt        dz  z  z
  dt        dz  z  z   dt        dz  z  z
  dt        dz  z  z   dt        dz  z  z
  dz   k(  sJ t        t        t
        d	z        t        d      z   t              }|dt        dz  z  dt        dz  z  z
  dt        dz  z  z
  dt        dz  z  z   dt        dz  z  z   dt        z  z
  dz
  k(  sJ t        t        t        t
        z  d	z        t        d      z   t              }|t        dz  dt        dz  z  z
  dt        dz  z  z
  dt        dz  z  z   dt        dz  z  z   d t        d	z  z  z
  d!t        dz  z  z
  d"t        dz  z  z   d#t        dz  z  z   d$t        dz  z  z
  d%t        dz  z  z
  d&t        z  z   d'z   k(  sJ t        t        t        t
        z  t        dd	      z        t              }|t        dz  t        dz  z   t        dz  z   t        dz  z   t        dz  z   t        z   dz   k(  sJ t        t        t        t
        z  t        dd(      z        t              }|t        dz  t        d	z  z
  t        dz  z   t        dz  z
  t        dz  z   t        z
  dz   k(  sJ t        t        t
        t        dd	      z        t              }|dt        dz  z  dt        dz  z  z   dt        z  z
  dz
  k(  sJ t        t        t
        t        dd	      z        t              }dt        t
        t        dd	      z        z  d	z
  dt        t
        d	z        z  dt        t
        t        dd	      z        z  z
  z  t        t              }|t        dz  dt        dz  z  z   t        z
  dz
  k(  sJ t        d)dt        t
        d	z        z  z  t              t        dz  dt        dz  z  z   t        z
  dz
  k(  sJ t        t        t
        t        dd(      z        t              d*t        dz  z  d+t        dz  z  z
  d,t        dz  z  z   d-t        dz  z  z
  dz   k(  sJ t        t        t
        t        dd.      z        t              dt        dz  z  dt        dz  z  z
  dt        z  z
  dz   k(  sJ t        t        t
        d(z        t              dt        dz  z  dt        dz  z  z   dt        dz  z  z
  dt        z  z
  dz   k(  sJ t        t        dz  t        dz  z   dz   d/      t        t              }|t        dz  dt        z  z   dz   k(  sJ t        dz   t              }|t        dz  dt        dz  z  z
  d	t        z  z   dz
  k(  sJ t        t        t        t
        z  dz        t              t        dz  t        z
  dz   k(  sJ t        t        t        t
        z  dz        t              t        dz  dz   k(  sJ t        t        t        t
        z  dz        t              t        dz  t        dz  z
  dz   k(  sJ t        t        t        t
        z  dz        t              t        dz  t        dz  z
  dz   k(  sJ t        t        t        t
        z  dz        t              t        dz  t        dz  z
  t        dz  z   t        dz  z
  dz   k(  sJ t        t        t
        dz        t              dt        dz  z  d0t        dz  z  z
  d1t        dz  z  z   dz
  k(  sJ t        t        t
        dz        t              d2t        dz  z  d3t        dz  z  z
  d3t        dz  z  z   d4t        dz  z  z
  d5t        dz  z  z   dz
  k(  sJ t        t        t
        d6z        t              d
t        dz  z  d7t        dz  z  z
  d7t        dz  z  z   d8t        dz  z  z
  d9t        dz  z  z   dt        dz  z  z
  dz   k(  sJ t        t        t
        dz        t              dt        dz  z  dt        z  z
  dz
  k(  sJ dt        dd      z  t        dt        z  t
        z  dz        z  t        t              t        dz  dz
  k(  sJ t        t        d:        t        t        d;        t        t        d<        t        t        d=        dd>d?t        d      z  z
  dt        d      z  t        t        d      dz         z  d@t        d      z  t        t        d       dz         z  z   dz  z   z  dz   t        t        fdA       t        ddt        dd      z  z         t        ddt        dd      z  z         z   t        d      z   t        t              }t        |      dBk(  r|j                  t        d/i      dCk(  sJ t!        t
        dz  dDE      t        t              }|t        dz  dt        dz  z  z
  dz   k(  sJ |j                  t        t!        t
        dz              j"                  sJ t!        t
        dz  dDE      t        t              }|dt        dz  z  dz
  k(  sJ |j                  t        t!        t
        dz              j"                  sJ t!        t
        dz  dDE      t        t              }|dt        dz  z  dt        dz  z  z
  dz   k(  sJ |j                  t        t!        t
        dz              j"                  sJ t        t        dF        y )GNrT   r3   rU   r/   i  i? r2   r.   r,   i   r7   i   r;   i ] i r1   i` r5   i io  @   r0   i  i0  i        rX   r8   rY   +   F   a   ~         r=            r-      r[      rd   r9   r   r6   $   i   i   rA         i ,  i  i  c                  T    t        t        t        t        d      z        t              S rI   )r   r   r
   r   r(   rD   rE   rF   rG   z&test_minpoly_compose.<locals>.<lambda>*      !3C47
OQ!G rE   c                  T    t        t        t        t        d      z        t              S rI   )r   r   r
   r   r(   rD   rE   rF   rG   z&test_minpoly_compose.<locals>.<lambda>+  r   rE   c                  P    t        t        dt        z  t        z        t              S )NgS?)r   r   r   r
   r(   rD   rE   rF   rG   z&test_minpoly_compose.<locals>.<lambda>,  s    !3Ca
OQ!G rE   c                  b    t        t        t        t        z  t	        d      z        t
              S rI   )r   r   r   r
   r   r(   rD   rE   rF   rG   z&test_minpoly_compose.<locals>.<lambda>-  s    !3C"T!W4Eq!I rE   i`si      c                  $    t         t              S rC   )r   r(   rr   s   rF   rG   z&test_minpoly_compose.<locals>.<lambda>2  s    &8Q&? rE   r?   l{> Fr~   c                  T    t        t        t        t        d      z        t              S rI   )r   r   r
   r   r(   rD   rE   rF   rG   z&test_minpoly_compose.<locals>.<lambda>G  r   rE   )r   r   r(   r   r   r
   r   r   r   r   r&   r   r#   ZeroDivisionErrorr'   r   r   is_zero)rq   rs   rr   s     @rF   test_minpoly_composer      s   	
 ) 
*B 
BFA	&BadU1W$u,,,, c!B$q&k1-A999	C1IQ/	3BaeeArEk)F1a4K7&A+Eq!tQTk"$)* * * *	C1IQ/	3BAqD2ad7"SAX-AqD83q!t8CE   	C"QK$q'11	5BB1b51QU7*R1W4r!Q$w>AqDH2aQRd7RUXYZ\]Y]U]]`cdeghdh`hhknoprsoskssvxyz|}y}v}}  AD  EF  AF  F  IL  L  L  L  L	C1IQ/	3BaeeArEk)F1a4K7&A+Eq!tQTk"$)* * * *	C1IQ/	3BAqD2ad7"SAX-AqD83q!t8CE   	C"QK$q'11	5BB1b51QU7*R1W4r!Q$w>AqDH2aQRd7RUXYZ\]Y]U]]`cdeghdh`hhknoprsoskssvxyz|}y}v}}  AD  EF  AF  F  IL  L  L  L  L	C"Xa^ 34a	8BA1q!t#ad*QT1A59999	C"Xa_ 45q	9BA1q!t#ad*QT1A59999	C8Aq> 12A	6B1a4!AqD&1Q3&****	C8Aq> 12A	6B
C8Aq>!"
"Q
&3r!t9qRA=N9O7O)O	PB	B	"BA!Q$"Q&&&&b!C1I+.2adQq!tVma6G!6KKKKc"Xa_"45q91Hs1a4x#ad(*R1W4q89 9 9c"Xa_"45q9Qq!tVa1f_qQRs=RUV=VVVVc"R%j!,1a4!AqD&0@2ad70JQqS0PST0TTTT	1ac	Aq	!B	B	"BA!a	BFA	&BA!Q$1$q((((c!B$q&k1-AA===c!B$q&k1-A999c!B$q&k1-A1q@@@c!B$q&k1-A1q@@@c!B$r'lA.!Q$A+12Dq!t2Ka2OOOOc"Q$i+r!Q$wAqD/@2ad7/JQ/NNNNc"R%j!,QU
T!Q$Y0FAI1QT	1"$'1H1-/112 2 2 2c"R%j!,QU
U1b5[0HA:1QT	1"$'1H1-/1!Q$w179:1; ; ; ;c"Q$i+qAv!|a/????	
HQN	3qs2vax=	(Bb!$1q000
<GH
<GH
<GH
<IJ 
FT$q'\!RR[d1gk1B%B
48D$q'A&&&')*%+ + 
,./
0B
?@	a!Xa]""	#d1q(1Q-/?+?&@	@47	JB	B	"B":1, >>>	RTE	"B	B	"BA1a4!####771c"Q$i ((((	RTE	"B	B	"B1a4!771c"Q$i ((((	RUU	#B	B	"B1a4"QT'!A%%%%771c"R%j!))))
<GHrE   c                  t    ddl m}   | t        d      }t        |t              }|dt        dz  z  dz
  k(  sJ y )Nr   )	nsimplifyg&.>)	tolerancel   oD!|S0o60" m   l                    869V_jp)A+DGZ  )sympy.simplify.simplifyr   r
   r   r(   )r   rrs   s      rF   test_minpoly_issue_7113r   J  sG    1",A	Aq	!B?3Fhi i i irE   c                     t        dt        dz  z  dt        dz  z  z
  dt        z  z   dz
  d      } t        dt        dz  z  dt        dz  z  z
  dt        z  z   dz
  d      }d	| d
z  z  |d
z  z  d| d
z  z  |dz  z  z
  d| d
z  z  |dz  z  z   d| d
z  z  |z  z
  d| d
z  z  z   d| dz  z  |d
z  z  z
  d| dz  z  |dz  z  z
  d| dz  z  z
  d| dz  z  |d
z  z  z   d| dz  z  |dz  z  z
  d| dz  z  |z  z
  d| dz  z  z   d| z  |d
z  z  z
  d| z  |dz  z  z
  d| z  z
  d|d
z  z  z   d|dz  z  z
  d|dz  z  z   d|z  z
  dz   }t        dz  dt        dz  z  z   dt        z  z   dz   }t        |t              |k(  sJ y )Ni 	= r3   iMr/   l   !: l   1D> r   r.   l      =]T r5   l     N>kl     Tf"(n>l     c6 \D l    `xg;Dj  l     ~a`0_t
' l    ('ZYL=B
l    x5,%[vxZ=l   <LiZZqpLgC4 l   @QQGSr]  l   b Y'l l   /2!#.hR'.; l   cuFN6c+]sVxYZl   x~gVN]|i<XON(pb-RS s;plQ)r   r(   r   )r1r2numrs   s       rF   test_minpoly_issue_23677r   S  sv   	A	!Q$.A=KQ	OB	A	!Q$.A=KQ	OBr1u$RU*-B2q5-HQ-NN%b!e+BE124LRQRU4RSU4UV'A-.0Eb!e0KBPQE0QR (A-b!e34 7QQSUVQV6VW &b!e+BE1	2 5NbRSe4STVXYTY4Y	Z
 *"a%/23
 6RRTVWRW5WX 'r)"a%/0 3Nb2PQSUVQV2VW ,B./ 2K2q51PQ )Q./ 2NbRSe1ST *",	- 0N	NC Q$1!Q$6
6HJKfgB c1%+++rE   c                  |    dt        dd      z   dt        dd      z  z   } t        | t              t        dz   k(  sJ y )Nr-   r.   r3   r/   )r   r   r(   r   s    rF   test_minpoly_issue_7574r   f  s>    A
	"x!}!4	4Bb!$A---rE   c                       t        t        dz
  t              t        t        dz   t              g t        t         fd       y )Nr/   c                  8    t         t        t        d            S )Nr3   )r   r(   r   bad_factorss   rF   rG   z$test_choose_factor.<locals>.<lambda>n  s    {AtAw(O rE   )r   r(   r   NotImplementedErrorr   s   @rF   test_choose_factorr   k  s-    !Q<ac1.K
 OPrE   c                  <
   t        dt        z  t              t         t        z  dz   k(  sJ t        dt        dz   z  t              t        dz   t        z  dz
  k(  sJ t        t        t              t              t        dz  t        z
  k(  sJ t        t        t        dz         t              t        dz  t        z
  dz
  k(  sJ t        t        t              t        z  t              t        t        dz  z  dz
  k(  sJ t        t        d      t        t              z  t              t        dz  dt        z  z
  k(  sJ t        t        d      t        t              z   t              t        dz  dt        z  dz
  t        dz  z  z   t        dz  z   dt        z  z
  dz   k(  sJ t        t        t	        dd      z  t              t        dz  t        z
  k(  sJ t        t        t	        dd      z  t        t              z   t              t        dz  dt        z  t        dz  z  z
  dt        z  t        dz  z  z
  dt        dz  z  t        dz  z  z   dt        dz  z  t        z  z
  t        dz  z
  t        dz  z   k(  sJ t        t        t              t
        z  t              t
        dz  t        dz  z  t        z
  k(  sJ t        t        t              t
        dz   z  t              t
        dz  dt
        z  z   dz   t        dz  z  t        z
  k(  sJ t        dt        z  t        d      t        t         t        z  dz   t        d	
      k(  sJ t        dt        dz   z  t        d      t        t        dz   t        z  dz
  t        d	
      k(  sJ t        t        t              t        d      t        t        dz  t        z
  t        d	
      k(  sJ t        t        t              t
        z  t        d      t        t
        dz  t        dz  z  t        z
  t        d
      k(  sJ t        t              t        dt        dz  z         z  t        t        dz  dz         t        z  z
  dt        t	        dd      z  dt        dz  z   t	        dd      z  z  z  z   dt        t	        dd      z  dt        dz  z   t	        dd      z  z  z  z   } t        | t              t        k(  sJ t        t        d        t        t        d        t        t        d        t        t        d        y )Nr.   r/   r5   r3   r1   TrK   zZZ(x)rM   zZZ(x, z)r0   rX   c                  <    t        t        t              t              S rC   )r   r   r(   r)   rD   rE   rF   rG   z-test_minpoly_fraction_field.<locals>.<lambda>  s    !3CFA!> rE   c                  <    t        t        t              t              S rC   )r   r   r(   rD   rE   rF   rG   z-test_minpoly_fraction_field.<locals>.<lambda>  s    $6tAw$B rE   c                  J    t        t        t              t        z
  t              S rC   r   r   r(   r)   rD   rE   rF   rG   z-test_minpoly_fraction_field.<locals>.<lambda>  s    $6tAw{A$F rE   c                  @    t        t        t              t        d      S )NFrb   r   rD   rE   rF   rG   z-test_minpoly_fraction_field.<locals>.<lambda>  s    (:47Au(U rE   )r   r(   r)   r   r   r*   r   r   r#   r$   r   rn   s    rF   test_minpoly_fraction_fieldr   q  s$   ac1%!A111a1q5k1-!a%Q>>>d1gq)QTAX555d1q5k1-AA===d1gk1-1a4!;;;d1gQ/3q!ta!e|CCCd1gQ/3	11q!Q$A%!+a/0 0 0 a!A.2adQh>>>a!A.a8!<	1qs1a4x!A#ad("Qq!tVAqD[01QT6!8;adBQTIJ J J d1gk1-AadQ>>>d1gQ/31qs
Q17Lq7PPPPac1D1T1"Q$(Ag5VVVVa1q5k1D9a!eQY]Ag./ / /d1gq5adQhRY9ZZZZd1gk1D9QT!Q$Y]Aj12 2 2 	QQR[!!DAN1$44q!Xa^:K	
QWx1~%;& 8' 	')*AxA,>AGhWXZ[n?\,\)]	^A a#q(((
<>?
?BC
?FG
 UVrE   c                      t        t        t        t        t        dd      z  dz
        t              j                  t        t        t        t        dd      z  dz
              t              t        k(  sJ y )Nr.   r0   )r   r   r(   r   r)   r   r*   rD   rE   rF    test_minpoly_fraction_field_slowr     sa    0a!A6F6J1K	448Aa=(1,-.3678 8 8rE   c            	         t        t        d      t        t        j                  t        d                  t        t        d      z
  k(  sJ t        t        d      t        t        j                  t        d                  t        dt        d      z  z
  k(  sJ t        t        t        dd            t        t        j                  t        d                  dt        dz  z  dz
  k(  sJ t        t        d        y )Nr/   rM   r2   r3   c                  6    t        t        t        t              S )NrM   )r   r)   r(   r%   rD   rE   rF   rG   z%test_minpoly_domain.<locals>.<lambda>  s    !3Aq!D rE   )r   r   r(   r%   rm   r   r   r#   rD   rE   rF   test_minpoly_domainr     s    d1gq1C1CDG1LM	DG  d1gq1C1CDG1LM	Ad1gI  d8Aa=11!!$q'*,/0Avz: : : <DErE   c                     dt        d      z  t        dt        d      z  dz         z  } t        | t              t        dz  dt        z  z   dz
  k(  sJ dt        dt        d      z  dz         z  dt        d      z  z   dz   dt        d      z  t        dt        d      z  dz         z  z
  }t        |t              t        k(  sJ y )Nr   r/   r7   rP   rY   r2   r   )r   r   r(   )rn   es     rF   test_issue_14831r     s    
47
447
R((Aa#q!tbd{Q666	DDGb!	!BtAwJ	.	
QiRQZ"_--
.Aa#q(((rE   c            
         t        t        t        dz  z  t        d      dz  z
  t        t        dz  z  ddt        d      z  z  z
  gt        t              t	        t        d      dz  t        d      dz  ft        d      dz  t        d       dz  t        d      t
        z  dz  z
  ft        d      dz  t        d       dz  t        d      t
        z  dz  z   f      k(  sJ y )Nr3   r/   r1   r5   r8   )r   r(   r)   r   r   r   rD   rE   rF   test_issue_18248r     s    !Q$tAwqy(!AqD&AtAwK*@A!AFtAwqy$q'!),tAwqy47(1*tAwqyQR{:R.S!WQYa
T!WQYq[0133 3 3rE   c                  :   t        t        dt        d            d      } t        t        dt        d            d      }t        | |      t        dt        d       t        d      z   dt        d      z  dz  d	t        d      z  dz  z   t        d
t        d      z  dz         dz  z   z  z   dt        d      z  dz  d	t        d      z  dz  z   t        d
t        d      z  dz         dz  z         t        dt        d       t        d      z   t        d
t        d      z  dz          dz  dt        d      z  dz  z
  d	t        d      z  dz  z   z  z   t        d
t        d      z  dz          dz  dt        d      z  dz  z
  d	t        d      z  dz  z         gk(  sJ y )Nr3   r0   r5   r,   r1   r-   r      r8      #   i  r/   )r   r   r   r   )c1c2s     rF   test_issue_13230r     s   	47#Q	'B	47#Q	'BBGB47(T!W2Dr$q'zRT}QilH#d2h,-.r1H2 23 -346tAwJrMAd1gIbL4P
3tBx<$"5#%$%,RDG8d1g3EcRVWYRZl
O J II472I !$q'	"I- 3. ..04Sb\D5H0I/I"/LqQUVWQXyY[|/[^_`def`g^ghj^j/j&l$m m m mrE   c            	      `   dt        dt        d      z         t        d      t        dt        d      z         z  z
  z  dz   } t        dz  dt        dz  z  z
  dt        dz  z  z   dz
  }dD ]B  }t        t        | |            } |t              |k(  r)J d|d |t              d	|d
        y )Nr.   r/   r5   r3   )TFrb   zminimal_polynomial(e, compose=z) = z; z	 expected)r   r(   r   r   )r   mp_expectedcomprs   s       rF   test_issue_19760r     s    	4DGtAwtAQK'8889A=AQ$1a4-!AqD&(1,K x$Q56!u#w^bdfghdikv%ww#xrE   c                  R   t        dt        dz  dz   z  t        d      t        g      t        d      t        z   dt        z  t        d      z   t        z   z  dz  t        d      t        z
  dt        z  t        d      z   t        z
  z  dz  z   t        d      t        z
  dt        z  t        d      z
  t        z   z  dz  z
  t        d      t        z   dt        z  t        d      z
  t        z
  z  dz  z
  t        t        t        z   z  dz  z   t        t        t        z
  z  dz  z
  k(  sJ y )Nr.   r1   r3   )	extensionr/   )r"   r(   r   r   rD   rE   rF   test_issue_20163r     s   AqDFQ|4	a1qsT!W}q()!+	a1qsT!W}q()!+	,	a1qsT!W}q()!+	, 
a1qsT!W}q()!+	, 	
1q5	!		 Qik		"" " "rE   c                  p    t        t        d            } t        | dz  t              t        dz  dz
  k(  sJ y )Nr/   r3   r2   )r   r   r   r(   )alphas    rF   test_issue_22559r     s1    DG$EeQh*adQh666rE   c                  H   t        t        d      t        d      z   t        d      dz  dt        d      dz  dgt              } | j	                         t        d      k(  sJ t        | t              t        dz  dz
  k(  sJ t        | dz  t              t        dz  dz
  k(  sJ y )Nr/   r3   r.   r   i)genr2   )r   r   r   r(   as_exprr   r   s    rF   test_issue_22561r     s    Q$q')AaD1Ha2A+FANA99;$q'!!!a#q!tax///adA&!Q$(222rE   c                  &    t        t        d        y )Nc                  L    t        t        t        d      dz  z  t        z         S )Nr.   r3   )r    r(   r   rD   rE   rF   rG   z+test_separate_sq_not_impl.<locals>.<lambda>  s    Q1a[1_(E rE   r   r   rD   rE   rF   test_separate_sq_not_implr     s    
 EFrE   c                  &    t        t        d        y )Nc                  \    t        t        t        d      t        d      t        t              S )Nr/   r3   )r   r   r   r(   r%   rD   rE   rF   rG   z<test_minpoly_op_algebraic_element_not_impl.<locals>.<lambda>  s    0d1gtAw2N rE   r   rD   rE   rF   *test_minpoly_op_algebraic_element_not_implr     s    
NPrE   c                     t        t        d      dz  t        t              dt        z  dz
  k(  sJ t        t	        d      dz   t	        d      dz   z  t        t              t        dz  dt        z  z
  dz
  k(  sJ t        t	        d      dz   t        d      dz  z  t	        d      dz   t        d      dz  z  z  t        t              t        dz  dt        dz  z  z
  dz
  k(  sJ t        t	        d      dz   t        d       dz  z  t	        d      dz   t        d      dz  z  z  t        t              dt        dz  z  dt        dz  z  z
  dz
  k(  sJ t        t        d        y )Nr/   r3   r.   r;   r,   r1   c                  :    t        t        dz  t        t              S rI   )r!   r
   r(   r   rD   rE   rF   rG   z'test_minpoly_groebner.<locals>.<lambda>  s    !22q5!T!B rE   )r!   r   r(   r   r   r   r#   rD   rE   rF   test_minpoly_groebnerr     sM   QqT!VQ-1q888	a1tAw{#Q.12A1qA A Ad1gkQqT!V4d1gkQqT!V5LL&)*A1a4!);< < <d1gkadU1W5tAw{ad1f6MM&)*1a4!AqD&1)<= = =
<BCrE   N)W__doc__r   r   
sympy.corer   r   sympy.core.numbersr   r   r   r	   r
   sympy.core.powerr   sympy.core.singletonr   &sympy.functions.elementary.exponentialr   (sympy.functions.elementary.miscellaneousr   r   (sympy.functions.elementary.trigonometricr   r   r   sympy.ntheory.generater   sympy.polys.polytoolsr   sympy.polys.rootoftoolsr   sympy.solvers.solvesetr   sympy.geometryr   r   sympy.testing.pytestr   r   sympy.sets.setsr   sympy.geometry.pointr    sympy.polys.numberfields.minpolyr   r   r   r    r!   sympy.polys.partfracr"   sympy.polys.polyerrorsr#   r$   sympy.polys.domainsr%   r&   r'   	sympy.abcr(   r)   r*   rl   rv   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rD   rE   rF   <module>r     s    % & 8 E E   " 6 A D D , & + . / - % (  '
 # * (  H6V=/ [4_IDi,&.
Q"WH 8 8F)3mx"7
3GP
DrE   