
    \hf                        S r SSKJrJrJrJrJr  SSKJr  SSK	J
r
JrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJ r J!r!J"r"J#r#J$r$J%r%J&r&J'r'J(r(J)r)J*r*J+r+J,r,J-r-J.r.  SSK/J0r0  SSK1J2r2J3r3J4r4J5r5  SSK6J7r7  SSK8J9r9J:r:J;r;J<r<J=r=J>r>J?r?  SS	K@JArA  SS
KBJCrC  SSKDJErE  SSKFJGrG  SSKHJIrI  SSKJJKrK  \7" 5        V s/ s H  o R                  5       PM     sn u  rMrNrOrPrQrRrSS rTS rUS rVS rWS rXS rYS rZS r[S r\S r]S r^S r_S r`S raS rbS rcS rdS  reS! rfS" rgS# rhS$ riS% rjS& rkS' rlS( rmS) rnS* roS+ rpS, rqS- rrS. rsS/ rtS0 ruS1 rvS2 rwS3 rxg4s  sn f )5z.Tests for dense recursive polynomials' tools.     )
dup_normal
dmp_normaldup_from_raw_dictdmp_convertdmp_swap)dmp_mul_ground)%dup_clear_denomsdmp_clear_denomsdup_integratedmp_integratedmp_integrate_indup_diffdmp_diffdmp_diff_indup_evaldmp_evaldmp_eval_indmp_eval_taildmp_diff_eval_in	dup_trunc	dmp_truncdmp_ground_trunc	dup_monicdmp_ground_monicdup_contentdmp_ground_contentdup_primitivedmp_ground_primitivedup_extractdmp_ground_extractdup_real_imag
dup_mirror	dup_scale	dup_shift	dmp_shiftdup_transformdup_composedmp_composedup_decomposedmp_liftdup_sign_variations
dup_revert
dmp_revert)ANP)MultivariatePolynomialErrorExactQuotientFailedNotReversibleDomainError)f_polys)FFZZQQZZ_IQQ_IEXRR)ring)I)S)sin)x)raisesc            	         [        / S[        5      / :X  d   e[        / S[        5      / :X  d   e[        [        S5      /S[        5      [        S5      [        S5      /:X  d   e[        [        S5      /S[        5      [        SS5      [        S5      [        S5      /:X  d   e[        [        S5      [        S5      [        S5      /S[        5      [        S5      [        S5      [        S5      /:X  d   e[        [        S5      [        S5      [        S5      /S[        5      [        SS5      [        S5      [        S5      [        S5      /:X  d   e[        [        S5      [        S5      [        S5      /S[        5      [        SS5      [        SS5      [        SS5      [        S5      [        S5      /:X  d   e[        [        S5      [        S5      [        S5      /S[        5      [        SS5      [        SS5      [        SS5      [        S5      [        S5      [        S5      /:X  d   e[        [        S[        S5      0[        5      S[        5      [        S	[        SS
5      0[        5      :X  d   e[        [        [        S5      [        SS5      S.[        5      S[        5      [        [        SS
5      [        SS5      S.[        5      :X  d   eg )N      r         <             i@t  )rG      i  )rI      )r   r6   r        Y/var/www/auris/envauris/lib/python3.13/site-packages/sympy/polys/tests/test_densetools.pytest_dup_integraterO   6   sa   Q#r)))Q#r)))"Q%!R(RUBqEN:::"Q%!R(R1Xr!ube,DDDD"Q%A1.26	A1r!u  "Q%A1.26	Aq2a5"Q%A'( ( ("Q%A1.26	ArBq!HbAh1r!u56 6 6"Q%A1.26	ArBq"Ir!QxA1r!u=> > > *B2<<aD2r"e}-r23 3 3 *22a8+DbI1bQr"e}As<bAB B BrM   c                     [        [        S5      /SS[        5      [        SS5      [        S5      [        S5      /:X  d   e[        / //SS[        5      / //:X  d   e[        / //SS[        5      / //:X  d   e[        [        S5      ///SS[        5      [        S5      /// //:X  d   e[        [        S5      ///SS[        5      [        SS5      /// // //:X  d   e[        [        S5      /[        S5      /[        S5      //SS[        5      [        S5      /[        S5      /[        S5      //:X  d   e[        [        S5      /[        S5      /[        S5      //SS[        5      [        SS5      /[        S5      /[        S5      // /:X  d   e[        [        S5      /[        S5      /[        S5      //SS[        5      [        SS5      /[        SS5      /[        SS5      // / /:X  d   e[        [        S5      /[        S5      /[        S5      //SS[        5      [        SS5      /[        SS5      /[        SS5      // / / /:X  d   eg )NrB   rC   r   rD   rE   rF   )r   r6   rL   rM   rN   test_dmp_integraterQ   M   sD   "Q%!Q+1a"Q%A/GGGG2$Ar*tf4442$Ar*tf444BqE7)aB/beWIt3DDDDBqE7)aB/bAhZL2$3MMMM2a5'BqE7RUG4aB?
Q%2a5'BqE7#$ $ $2a5'BqE7RUG4aB?
Q(beWr!ugr*+ + +2a5'BqE7RUG4aB?
Q)r!Qxj2a8*b"56 6 62a5'BqE7RUG4aB?
Q)r!RykBq!H:r2r:; ; ;rM   c                    ^  [        [        S[        [        5      m [	        T SSS[        5      [        [        [        T SSS[        5      SS[        5      SSS[        5      :X  d   e[	        T SSS[        5      [        [        [        T SSS[        5      SS[        5      SSS[        5      :X  d   e[	        T SSS[        5      [        [        [        T SSS[        5      SS[        5      SSS[        5      :X  d   e[	        T SSS[        5      [        [        [        T SSS[        5      SS[        5      SSS[        5      :X  d   e[        [        U 4S j5        [        [        U 4S j5        g )NrD   rC   rB   r   c                  *   > [        T SSS[        5      $ NrB   rD   r   r6   fs   rN   <lambda>'test_dmp_integrate_in.<locals>.<lambda>p   s    /1b!R@rM   c                  *   > [        T SSS[        5      $ NrB      rD   rV   rW   s   rN   rY   rZ   q   s    /1aB?rM   )	r   f_6r5   r6   r   r   r   r@   
IndexErrorrW   s   @rN   test_dmp_integrate_inr`   `   si   CB#AAq!Q+(1aAr2Aq"=q!Q	LL L L Aq!Q+(1aAr2Aq"=q!Q	LL L L Aq!Q+(1aAr2Aq"=q!Q	LL L L Aq!Q+(1aAr2Aq"=q!Q	LL L L :@A
:?@rM   c            
      v   [        / S[        5      / :X  d   e[        S/S[        5      / :X  d   e[        SS/S[        5      S/:X  d   e[        / SQS[        5      SS/:X  d   e[        / SQS[        5      / SQ:X  d   e[        / SQS[        5      / SQ:X  d   e[        / S	Q[        5      n [        U S
[        5      U :X  d   e[        U S[        5      / SQ:X  d   e[        U S[        5      [        [        U S[        5      S[        5      :X  d   e[        U S[        5      [        [        [        U S[        5      S[        5      S[        5      :X  d   e[        S5      n[        / S	QU5      n [        U SU5      [        / SQU5      :X  d   e[        U SU5      [        / SQU5      :X  d   e[        U SU5      [        / U5      :X  d   e[        U S
U5      U :X  d   e[        U SU5      [        [        U SU5      SU5      :X  d   e[        U SU5      [        [        [        U SU5      SU5      SU5      :X  d   eg )NrB      rC   rB   rC   rB   )rB   rC   rD   r]   )rD   r]   rD   rB   rU   r   r   rC   )r]   r   r   )rH   "   8   i   L   r   r   rE   rD   rb   r   )
   i2  i  i   i|  r   r      rD   rD   )
rC   r   rB   r   r   rC   r   r   r   r   )rB   r   r   rC   r   r   r   )r   r5   r   r4   )rX   Ks     rN   test_dup_diffrn   t   s0   B2"$$$QCB2%%%QFAr"qc)))Iq"%!Q///L!R(I555$a,====rBAAq""""Aq"!NNNNAq"(1a*<a!DDDD	1bhx1b'91bA1bIJ J J 	1A=qAAAq!
+I1 MMMMAq!
+@! DDDDAq!
2q 1111Aq!!!!Aq!!Q):Aq AAAA	1aXhq!Q&7A>1EF F FrM   c                     [        / SS[        5      / :X  d   e[        / /SS[        5      / /:X  d   e[        / //SS[        5      / //:X  d   e[        S/S///SS[        5      / //:X  d   e[        S/// //SS[        5      S///:X  d   e[        S//S/// //SS[        5      S//S///:X  d   e[        / SQSS[        5      [        / SQS[        5      :X  d   e[        [        SS[        5      [        :X  d   e[        [        SS[        5      S/// /// SQ/ / / S	Q/// //S
//S/// /S// SS// // ///:X  d   e[        [        SS[        5      [        [        [        SS[        5      SS[        5      :X  d   e[        [        SS[        5      [        [        [        [        SS[        5      SS[        5      SS[        5      :X  d   e[	        S5      n [        [        SU 5      n[        USSU 5      U:X  d   e[        USSU 5      [        USSU 5      :X  d   e[        USSU 5      [        [        USSU 5      SSU 5      :X  d   e[        USSU 5      [        [        [        USSU 5      SSU 5      SSU 5      :X  d   eg )NrB   r   rC   rD      rd   i!  )   r   r   )iyr   r   iYi   ^   rh   )r   r5   r   r^   r4   r   )rm   F_6s     rN   test_dmp_diffru      s   B1b!R'''RD!Q#t+++bTFAq"%2$///qcA3ZL!Q+v555qcURDM1a,1#777qcUaSEB4(!Q3!u~EEE$aB/!1b)* * * CAr"c)))CAr"$2$'7$b"l;<vC5'B43%b!Wb1IB4P'R R R R Q2"8CAr#:Aq"EF F FCAr"h#q!R(!Q3Q2'? ? ? ? 	2A
S!Q
CCAq!S(((CAq!Xc1a%;;;;CAq!XhsAq!.DaA%NNNNCAq!X#q!Q'Aq11a&< < < <rM   c                     [        [        SSS[        5      [        [	        [        [        SSS[        5      SS[        5      SSS[        5      :X  d   e[        [        SSS[        5      [        [	        [        [        SSS[        5      SS[        5      SSS[        5      :X  d   e[        [        SSS[        5      [        [	        [        [        SSS[        5      SS[        5      SSS[        5      :X  d   e[        [        SSS[        5      [        [	        [        [        SSS[        5      SS[        5      SSS[        5      :X  d   e[        [        S 5        [        [        S 5        g )NrC   rB   rD   r   c                  0    [        [        SSS[        5      $ rT   r   r^   r5   rL   rM   rN   rY   "test_dmp_diff_in.<locals>.<lambda>   s    {32q"=rM   c                  0    [        [        SSS[        5      $ r\   rx   rL   rM   rN   rY   ry      s    {31a<rM   )r   r^   r5   r   r   r@   r_   rL   rM   rN   test_dmp_diff_inr{      sB   sAq!R((31a4aB?Aq"MN N NsAq!R((31a4aB?Aq"MN N NsAq!R((31a4aB?Aq"MN N NsAq!R((31a4aB?Aq"MN N N :=>
:<=rM   c                      [        / S[        5      S:X  d   e[        SS/S[        5      S:X  d   e[        / SQS[        5      S:X  d   eg )Nrb   r   rB   rC   rB   rC   rD   B   )r   r5   rL   rM   rN   test_dup_evalr      sK    B2!###QFAr"a'''Iq"%+++rM   c                     [        / SS[        5      S:X  d   e[        / /SS[        5      / :X  d   e[        / //SS[        5      / /:X  d   e[        SS//SS[        5      SS/:X  d   e[        S///SS[        5      S//:X  d   e[        SS///SS[        5      SS//:X  d   e[        SS/SS//SS[        5      SS/:X  d   e[        SS//SS///SS[        5      SS//:X  d   eg )NrD   r   rB   rC   
   rK   )r   r5   rL   rM   rN   test_dmp_evalr      s   B1b!Q&&&RD!Q#r)))bTFAq"%"---aVHaB'Aq6111qcUGQ2&A3%///q!fXJ1b)q!fX555aVaV$aB/B7:::q!fXAx(!Q3Qy@@@rM   c                  p   [        [        SSS[        5      [        [	        [        SSS[        5      SS[        5      :X  d   e[        [        SSS[        5      [        [	        [        SSS[        5      SS[        5      :X  d   e[        [        SSS[        5      [	        [        [	        [        SSS[        5      SS[        5      SSS[        5      :X  d   e[        [        SSS[        5      [	        [        [	        [        SSS[        5      SS[        5      SSS[        5      :X  d   e[        S5      /// // /[        S5      /S	// [        S5      [        S5      [        S
5      [        S5      ///n [        U SSS[        5      S// / / SQ/:X  d   e[        [        S 5        [        [        S 5        g )NrB   rD   r   rb   rC   -   rU   r   )r   rU   r   ic                  B    [        [        [        S5      SS[        5      $ rT   r   r^   r5   rL   rM   rN   rY   "test_dmp_eval_in.<locals>.<lambda>   s    {31r1bArM   c                  B    [        [        [        S5      SS[        5      $ r\   r   rL   rM   rN   rY   r      s    {31q!R@rM   )r   r^   r5   r   r   intr@   r_   rW   s    rN   test_dmp_eval_inr      s   RAr&xQ1b'A2q"MN N NQ1b%hsAq!R&@!QKL L LsB1b)X#q!Q+RB7Aq".F F F FsAq!R(H#q!Q+Q261a-E E E E r7)rdRDCG9rdBQQRRUVWRX8Y"Z[Aq"aB'
r2'() ) ) :AB
:@ArM   c                  .   [        / /S/S[        5      / :X  d   e[        / //S/S[        5      / /:X  d   e[        / //SS/S[        5      / :X  d   e[        [        / S[        5      [        :X  d   e[        [        / SQS[        5      S:X  d   e[        [        SS/S[        5      / SQ:X  d   e[        [        S/S[        5      SS/S	// S
Q/:X  d   e[        [        SS/S[        5      / SQ:X  d   e[        [        SS	/S[        5      / SQ:X  d   e[        [
        SS	/S[        5      / SQ:X  d   e[        [        SS/S[        5      / SQ:X  d   e[        [        SS/S[        5      / SQ:X  d   e[        [        / SQS	[        5      / SQ:X  d   eg )NrB   rC   )rB   rK   iJ r   rK   )irD   iO S   rD   )i.  Q   rB   )ixiS=  i#  ii)ir   iBi8r   i)   R   ii8ii   rU   )
l   o i lfc5ly
?i(l   2c[l   |U78l   XLk^ i )rU   iiiX)r   rC   r]   )i  r   r   i  )	r   r5   f_0f_1f_2f_3f_4f_5r^   rL   rM   rN   test_dmp_eval_tailr      s   "sAr*b0002$!a,4442$!QB/2555b!R(C///k1b1U:::sAh2.2CCCCqc1b)r1gsL-IIIIsAh2.2MMMMc1Xq"!AB B Bc1Xq"!GH H H b"Xq""\\ \ \ r2h2.2JJJJiB/3EEEErM   c                  P   [        [        SSSS[        5      [        [	        [        [        SSS[        5      SS[        5      SS[        5      :X  d   e[        [        SSSS[        5      [        [	        [        SS[        5      SS[        5      :X  d   e[        [        S 5        g )NrC   rb   rB   rD   r   c                  D    [        [        S[        S5      SS[        5      $ r\   )r   r^   r5   rL   rM   rN   rY   'test_dmp_diff_eval_in.<locals>.<lambda>  s    /Q1q!RHrM   )r   r^   r5   r   r   r   r@   r_   rL   rM   rN   test_dmp_diff_eval_inr     s    CAq!R0(31a4aB?ArJK K K CAq!R0#q!R(!Q34 4 4 :HIrM   c            	         [        SS5      * [        S5      [        SS5      [        S5      [        SS5      * [        S5      [        S5      /n [        SS5      [        S5      [        SS5      [        S5      [        SS5      [        S5      [        S5      /n[        U S[         5      U:X  d   e[        [        S	 5        g )
NrB     r   rl   rC   =   rJ   rK   c                  L    [        [        S5      [        S5      /S[        5      $ )NrB   r   rD   )r,   r6   rL   rM   rN   rY   !test_dup_revert.<locals>.<lambda>  s    *beRU^Q"CrM   )r6   r,   r@   r1   rX   gs     rN   test_dup_revertr     s    
Q*beR2Y11ay"Q%AGA	BbeR2Y1r!QxA1FAaB1$$$
=CDrM   c            	         [        SS5      * [        S5      [        SS5      [        S5      [        SS5      * [        S5      [        S5      /n [        SS5      [        S5      [        SS5      [        S5      [        SS5      [        S5      [        S5      /n[        U SS[         5      U:X  d   e[        [        S	 5        g )
NrB   r   r   rl   rC   r   rJ   rK   c                  *    [        S//SS[        5      $ NrB   rC   )r-   r6   rL   rM   rN   rY   !test_dmp_revert.<locals>.<lambda>  s    
QC5!Q0KrM   )r6   r-   r@   r/   r   s     rN   test_dmp_revertr     s    
Q*beR2Y11ay"Q%AGA	BbeR2Y1r!QxA1FAaAr"a'''
&(KLrM   c                     [        / SQ[        S5      [        5      / SQ:X  d   e[        / SQ[        S5      [        5      / SQ:X  d   e[        n [        U " S5      U " S5      U " S5      /U " S5      U 5      U " S5      U " S	5      /:X  d   e[        S5      n[        U" S5      U" S5      U" S5      /U" S5      U5      U" S5      U" S
5      /:X  d   eg )NrB   rC   rD   r]   rJ   rp   rD   )rB   rU   r   rB   rU   r   )rp   rJ   r]   rD   rC   rB   )rU   rB   r   rU   rB   r]   rJ   rB   rU   r   )r   r5   r7   r4   )Rrm   s     rN   test_dup_truncr     s    'A37KKKK'A37HHHHAadAaD!A$'1q1adAbE]BBB
1AadAaD!A$'1q1adAaD\AAArM   c                      [        / /SS/S[        5      / /:X  d   e[        SS// SQS//SS/S[        5      S/S//:X  d   eg )NrB   rC   )rB   r]   rB   re   )r   r5   rL   rM   rN   test_dmp_truncr   (  sU    bTAq61b)bT111q!fi!-1vq"=2$LLLrM   c                      [        [        [        S5      S[        5      [        / SQS/// // SQ/ SQS///S[        5      :X  d   eg )NrD   rC   )rB   rU   r   rU   )rB   rU   rB   rB   )r   r   r5   r   rL   rM   rN   test_dmp_ground_truncr   -  sO    CA2.2$"
J'DEq"	NN N NrM   c                     [        / SQ[        5      / SQ:X  d   e[        [        S 5        [        / [        5      / :X  d   e[        [	        S5      /[        5      [	        S5      /:X  d   e[        [	        S5      [	        S5      [	        S5      /[        5      [	        S5      [	        SS5      [	        S5      /:X  d   eg )NrD   rp   	   r}   c                  &    [        / SQ[        5      $ )N)rD   r]   rJ   )r   r5   rL   rM   rN   rY    test_dup_monic.<locals>.<lambda>6  s    	)R(@rM   rB   rb      rD   )r   r5   r@   r0   r6   rL   rM   rN   test_dup_monicr   3  s    Y#y000
 @AR"""beWb!beW,,,beRUBrF+R0RUBq!Hbe4LLLLrM   c                     [        / SQS[        5      / SQ:X  d   e[        S/S/S//S[        5      S/S/S//:X  d   e[        [        S	 5        [        / /S[        5      / /:X  d   e[        [	        S5      //S[        5      [	        S5      //:X  d   e[        [	        S
5      /[	        S5      /[	        S5      //S[        5      [	        S5      /[	        SS
5      /[	        S5      //:X  d   eg )Nr   r   r}   rD   rp   r   rB   rC   c                  0    [        S/S/S//S[        5      $ )NrD   r]   rJ   rB   )r   r5   rL   rM   rN   rY   'test_dmp_ground_monic.<locals>.<lambda>C  s    %5sQC!oq"%MrM   rb   r   )r   r5   r@   r0   r6   rL   rM   rN   test_dmp_ground_monicr   =  s    Iq"-:::aS1#sOQ3aS1#FFF
MO RD!R(RD000beWIq"-2a5':::
Q%2a5'BrF8$a-24Q%2a8*r!ug0NO O OrM   c                     [        / [        5      [        S5      :X  d   e[        S/[        5      [        S5      :X  d   e[        S/[        5      [        S5      :X  d   e[        SS/[        5      [        S5      :X  d   e[        SS/[        5      [        S5      :X  d   e[        / SQ[        5      [        S5      :X  d   e[        / SQ[        5      [        S5      :X  d   e[        [        SS5      [        SS	5      /[        5      [        SS	5      :X  d   e[        [        SS5      [        SS
5      /[        5      [        SS5      :X  d   eg )Nr   rB   rU   rC   rc   )rC   r]   rC   rD   r]   r   rJ      )r   r5   r6   rL   rM   rN   test_dup_contentr   K  s   r2"Q%'''sB2a5(((tR BqE)))1vr"be+++1vr"be+++y"%A...y"%A...1a"Q(+R0Bq!H<<<1a"Q(+R0Bq"I===rM   c                  j   [        / /S[        5      [        S5      :X  d   e[        / /S[        5      [        S5      :X  d   e[        S//S[        5      [        S5      :X  d   e[        S//S[        5      [        S5      :X  d   e[        S/S//S[        5      [        S5      :X  d   e[        S/S//S[        5      [        S5      :X  d   e[        S/S/S//S[        5      [        S5      :X  d   e[        S/S/S//S[        5      [        S5      :X  d   e[        [        SS5      /[        SS5      //S[        5      [        SS5      :X  d   e[        [        SS5      /[        SS5      //S[        5      [        SS	5      :X  d   e[        [        S[        5      [        S5      :X  d   e[        [	        [        [        S5      S[        5      S[        5      [        S5      :X  d   e[        [
        S[        5      [        S5      :X  d   e[        [	        [
        [        S5      S[        5      S[        5      [        S5      :X  d   e[        [        S[        5      [        S5      :X  d   e[        [	        [        [        S5      S[        5      S[        5      [        S5      :X  d   e[        [        S[        5      [        S5      :X  d   e[        [	        [        [        S5      S[        5      S[        5      [        S5      :X  d   e[        [        S[        5      [        S5      :X  d   e[        [	        [        [        S
5      S[        5      S[        5      [        S
5      :X  d   e[        [        S[        5      [        S5      :X  d   e[        [	        [        [        S5      S[        5      S[        5      [        S5      :X  d   e[        [        S[        5      [        S5      :X  d   e[        [	        [        [        S5      S[        5      S[        5      [        S5      :X  d   eg )NrB   r   rU   rC   r]   rD   r   rJ   r   rp   rb   rK   )r   r5   r6   r   r   r   r   r   r   r   r^   rL   rM   rN   test_dmp_ground_contentr   X  s   rdAr*be333rdAr*be333seQ+r!u444tfa,1555sQCj!R0BqE999sQCj!R0BqE999sQC!oq"5A>>>sQC!oq"5A>>>1azBq!H:62>"Q(JJJ1azBq!H:62>"Q)KKKc1b)RU222sBqE1b)1b257U; ; ; c1b)RU222sBqE1b)1b257U; ; ; c1b)RU222sBqE1b)1b257U; ; ; c1b)RU222sBqE1b)1b257U; ; ; c1b)RU222sBqE1b)1b257U; ; ; c1b)RU222sBqE1b)1b257U; ; ; c1b)RU222sBqE1b)1b257U; ; ;rM   c                     [        / [        5      [        S5      / 4:X  d   e[        [        S5      /[        5      [        S5      [        S5      /4:X  d   e[        [        S5      [        S5      /[        5      [        S5      [        S5      [        S5      /4:X  d   e[        [        S5      [        S5      /[        5      [        S5      [        S5      [        S5      /4:X  d   e[        [        S5      [        S5      [        S5      /[        5      [        S5      [        S5      [        S5      [        S5      /4:X  d   e[        [        S5      [        S5      [        S5      /[        5      [        S5      [        S5      [        S5      [        S5      /4:X  d   e[        / [        5      [        S5      / 4:X  d   e[        [        S5      /[        5      [        S5      [        S5      /4:X  d   e[        [        S5      [        S5      /[        5      [        S5      [        S5      [        S5      /4:X  d   e[        [        S5      [        S5      /[        5      [        S5      [        S5      [        S5      /4:X  d   e[        [        S5      [        S5      [        S5      /[        5      [        S5      [        S5      [        S5      [        S5      /4:X  d   e[        [        S5      [        S5      [        S5      /[        5      [        S5      [        S5      [        S5      [        S5      /4:X  d   e[        [        SS5      [        SS5      /[        5      [        SS5      [        S5      [        S5      /4:X  d   e[        [        SS5      [        SS5      /[        5      [        SS5      [        S5      [        S	5      /4:X  d   eg )
Nr   rB   rC   r]   rD   r   rJ   r   rp   )r   r5   r6   rL   rM   rN   test_dup_primitiver     sD   R RUBK///"Q%"%"Q%"Q%)9999"Q%A,AA10GGGG"Q%A,AA10GGGG	A1r!ur#')!ur!ubeRU.C&DE E E	A1r!ur#')!ur!ubeRU.C&DE E E R RUBK///"Q%"%"Q%"Q%)9999"Q%A,AA10GGGG"Q%A,AA10GGGG	A1r!ur#')!ur!ubeRU.C&DE E E	A1r!ur#')!ur!ubeRU.C&DE E E 	Aq2a8b"&(AhA1%?@ @ @	Aq2a8b"&(Bi"Q%A%@A A ArM   c                     [        [        S5      /S[        5      [        S5      [        S5      /4:X  d   e[        / /S[        5      [        S5      / /4:X  d   e[        [        S[        5      [        S5      [        4:X  d   e[        [        [        [        S5      S[        5      S[        5      [        S5      [        4:X  d   e[        [        S[        5      [        S5      [        4:X  d   e[        [        [        [        S5      S[        5      S[        5      [        S5      [        4:X  d   e[        [
        S[        5      [        S5      [
        4:X  d   e[        [        [
        [        S5      S[        5      S[        5      [        S5      [
        4:X  d   e[        [        S[        5      [        S5      [        4:X  d   e[        [        [        [        S5      S[        5      S[        5      [        S5      [        4:X  d   e[        [        S[        5      [        S5      [        4:X  d   e[        [        [        [        S5      S[        5      S[        5      [        S5      [        4:X  d   e[        [        S[        5      [        S5      [        4:X  d   e[        [        [        [        S5      S[        5      S[        5      [        S5      [        4:X  d   e[        [        S[        5      [        S5      [        4:X  d   e[        [        [        [        S	5      S[        5      S[        5      [        S	5      [        4:X  d   e[        [        S5      //S[        5      [        S5      [        S5      //4:X  d   e[        [        S5      //S[        5      [        S5      [        S5      //4:X  d   e[        [        SS5      /[        SS
5      //S[        5      [        SS
5      [        S5      /[        S5      //4:X  d   e[        [        SS5      /[        SS5      //S[        5      [        SS5      [        S5      /[        S5      //4:X  d   eg )NrB   r   rC   rD   r]   rJ   rp   rb   rK   r   r   )r   r5   r   r   r   r   r   r   r   r^   r6   rL   rM   rN   test_dmp_ground_primitiver     s   AB/BqEBqE73CCCCa,A===Q+1s|;;;sBqE1b)1b268eS\B B B  Q+1s|;;;sBqE1b)1b268eS\B B B  Q+1s|;;;sBqE1b)1b268eS\B B B  Q+1s|;;;sBqE1b)1b268eS\B B B  Q+1s|;;;sBqE1b)1b268eS\B B B  Q+1s|;;;sBqE1b)1b268eS\B B B  Q+1s|;;;sBqE1b)1b268eS\B B B  "Q%	1b1ber!ugY5GGGG"Q%	1b1ber!ugY5GGGG
Q(bAhZ !R)-/1XA"Q%7I,JK K K
Q(bAhZ !R)-/2Y"Q%2a5'8J,KL L LrM   c                      [        / SQ[        5      n [        / SQ[        5      n[        / SQ[        5      n[        / SQ[        5      n[        X[        5      SX#4:X  d   eg )N) , r   ! r   b r     ) Vr    + r   ` r   )@   r   0   r   rE   r   rB   )  r      r   rl   r   r   )r   r5   r   rX   r   FGs       rN   test_dup_extractr     sO    =rBA8"=A+R0A*B/AqR UAM111rM   c            	         [        S// S// S// S//S[        5      n [        S// S// S// /S[        5      n[        S	// S
// S// S//S[        5      n[        S// S// S// /S[        5      n[        XS[        5      SX#4:X  d   eg )Nr   r   r   r   rB   r   r   r   r   r   rE   r   r   rl   )r   r5   r    r   s       rN   test_dmp_ground_extractr     s    
B	2xeW=q"	FAXJWIrG9bA1bIARD"rdBb1#62>ASE2ub2$3Q;AaAr*uam;;;rM   c            
         [        / [        5      / // /4:X  d   e[        S/[        5      S/// /4:X  d   e[        SS/[        5      S/S//SS//4:X  d   e[        SS/[        5      S/S//SS//4:X  d   e[        / SQ[        5      S/S// SQ/SS/SS//4:X  d   e[        [        S5      [        S5      [        S5      [        S5      /[        5      [        S5      // [        S5      [        S5      [        S5      /[        S5      //[        S5      [        S5      // [        S5      [        S5      [        S5      [        S5      //4:X  d   e[        [        S	 5        g )
NrB   r   rC   r}   )rU   r   rD   rD   re   rU   c                  J    [        [        S5      [        S5      /[        5      $ r   )r!   r9   rL   rM   rN   rY   $test_dup_real_imag.<locals>.<lambda>  s    r!ubenb ArM   )r!   r5   r@   r2   rL   rM   rN   test_dup_real_imagr     sw   R bTB4L000!b!sebT]222!Q$1#sq!fX(>>>>!Q$1#sq!fX(>>>>2C!j1QFQF3CDE E E "Q%A1r!u5r:
Q%"r"vr!ube,r!ug6
Q%AbfbeRUBqE:;?   
 ;ABrM   c                      [        / [        5      / :X  d   e[        S/[        5      S/:X  d   e[        / SQ[        5      / SQ:X  d   e[        / SQ[        5      / SQ:X  d   eg )NrB   rB   rC   rD   r]   rJ   rB   r   rD   r   rJ   r   )rU   rC   re   r]   rp   )r"   r5   rL   rM   rN   test_dup_mirrorr     s]    b"###qc21#%%%or*.????("-1FFFFrM   c                      [        / S[        5      / :X  d   e[        S/S[        5      S/:X  d   e[        / SQS[        5      / SQ:X  d   e[        / SQS[        5      / SQ:X  d   eg )NrU   rB   r   r   i)ia	  iR   irJ   )r#   r5   rL   rM   rN   test_dup_scaler     sd    RR B&&&aS"b!aS(((_b"-1BBBB_b"-1JJJJrM   c                      [        / S[        5      / :X  d   e[        S/S[        5      S/:X  d   e[        / SQS[        5      / SQ:X  d   e[        / SQS[        5      / SQ:X  d   eg )NrB   r   )rB   rp   r      r   rb   )rB      iS  i  i  )r$   r5   rL   rM   rN   test_dup_shiftr     sd    RB2%%%aS!R QC'''_a,0BBBB_a,0HHHHrM   c                     [        [        S5      [        S5      /[        S5      /S[        5      [        S5      [        S5      /:X  d   e[        / /[        S5      [        S5      /S[        5      / /:X  d   e[        S5      [        S5      // /n [        S5      [        S5      /[        S5      [        S5      //n[        U [        S5      [        S5      /S[        5      U:X  d   eg )NrB   rC   r   rD   )r%   r5   )xyx1y2s     rN   test_dmp_shiftr     s    beRU^beWa4A1FFFbTBqE2a5>1b1bT999a5"Q%."	BUBqENRUBqEN+DR"Q%AB/4777rM   c                      [        / / SS/[        5      / :X  d   e[        / S/SS/[        5      / :X  d   e[        / SS/SS/[        5      / :X  d   e[        / SQ/ SQSS/[        5      / SQ:X  d   eg )NrB   rC   )rp   r   r]   re   rH   )rB   re   r]   re   )	rp   ii  ici  iMi'C  ii  )r&   r5   rL   rM   rN   test_dup_transformr     s    R!Q,222aS1a&"-333aVaVR0B666+Z!R"E?@ @ @rM   c                  F   [        / / [        5      / :X  d   e[        / S/[        5      / :X  d   e[        / SS/[        5      / :X  d   e[        S// [        5      S/:X  d   e[        / SQ/ [        5      / :X  d   e[        / SQ/ [        5      S/:X  d   e[        / SQS/[        5      S/:X  d   e[        / SQS/[        5      S/:X  d   e[        / SQSS/[        5      / S	Q:X  d   e[        / SQSS/[        5      / S
Q:X  d   e[        / SQ/ SQ[        5      / SQ:X  d   eg )NrB   rC   )rB   rC   r   rc   r]   rb   r   rU   rB   r   r   )rB   r]   r]   rB   r]   rK   rK   r]   )r'   r5   rL   rM   rN   test_dup_composer     s   r2r"b(((rA3#r)))rAq62&",,,sB#s***y"b)R///y"b)aS000y1#r*qc111y1#r*rd222y1b'2.);;;y1a&"-:::y)R0OCCCrM   c                  :   [        / SQ/ SQS[        5      / SQ:X  d   e[        / /// //S[        5      / //:X  d   e[        / //S///S[        5      / //:X  d   e[        / //S//S///S[        5      / //:X  d   e[        S//// S[        5      S///:X  d   e[        S/S// // /S[        5      / /:X  d   e[        S/S/S/// /S[        5      S//:X  d   e[        S/S/S//S//S[        5      S//:X  d   e[        S/S/S//S//S[        5      S//:X  d   e[        S/S/S//S/S	//S[        5      S// / /:X  d   e[        S/S/S//S/S//S[        5      S/S/S//:X  d   e[        S/S/S//S/S/S//S[        5      S/S/S
/S
/S//:X  d   eg )Nrc   r   r   rC   rB   r]   rb   r   rU   rK   )r(   r5   rL   rM   rN   test_dmp_composer   *  s&   y)Q3FFFvvq"-2$777v!w2.B4&888v!u~q"52$???!wAr*ug555aS#a4<<<aS1#a4!===aS1#!q"51#>>>aS1#!q"52$???aS1#!rdQ;S#NNNaS1#!dQ;aS1#NNN
qcA31#sQC!R167S1#sQC!4MN N NrM   c                  T   [        S/[        5      S//:X  d   e[        SS/[        5      SS//:X  d   e[        / SQ[        5      / SQ/:X  d   e[        / SQ[        5      / SQ/ SQ/:X  d   e[        / SQ[        5      / SQ/ SQ/:X  d   e[        / SQ[        5      / SQ/ SQ/:X  d   e[        / S	Q[        5      / S
Q/ SQ/:X  d   e/ SQn [        U [        5      / SQ/ SQ/:X  d   e/ SQn [        U [        5      / SQ/ SQ/:X  d   e/ SQn [        U [        5      / SQ/ SQ/:X  d   e[        S[        5      u  pSUS-  -  S-
  SUS-  -  S-   SUS-  -  SU-  -   S-   SUS-  -  SU-  -   S-   SUS-  -  S US-  -  -   S!U-  -   S"-   /n [        XR                  5       5      U /:X  d   eg )#NrB   r   )rB   r   r   r   )rB   r   r   r   r   r   )rB   r   r   r   r   r   r   )rb   r   r   r   rB   )rb   r   rB   )r]   r   rD   r   rC   )r]   rD   rC   )rB   r   r   r      r   i  r   iq  r   r   ir   )rB   r   r   r   r   )rB   r   rJ   r   )rC   r   (   r   i,  r   i  r   i  r   r   i   )rC   r   r   r   r   )rB   r   r   r   ii  iia  iiX  iVrG   )rB   r   rl   irG   trp   rC   *   r   `   r   i  i   ip  i`  r   l   rD   i8  i  r   )r)   r5   r;   	to_domain)rX   r   r   s      rN   test_dup_decomposer  @  s   !b!qcU***!Q$!Q000r*|n<<<"-)Y1GGGGr#'3Y&?@ @ @ "-)Y1GGGG"-)Y1GGGG9AB$4l#CCCC<AB$5|#DDDDGAB$8,#GGGGR=DA	
1a4"	AqD2	QTCE	C		QTCE	C		QTC1H	s1u	$s	*		,A KKM*qc111rM   c                     [        SS5      [        SS5      [        SS5      /n [        [        SS5      /U [         5      [        / U [         5      [        / U [         5      [        [        SS5      [        SS5      /U [         5      [        [        SS5      [        SS5      /U [         5      /n[         R                  " / SQ5      n[        US[         R                  " [
        5      5      U:X  d   e[        S5      [        S5      [        S5      [        SS5      [        SS5      /n[        US[        5      U:X  d   e[        [        S 5        g )NrB   r   rH   )	rB   r   r   r   r   r   rB   rf   i!  c                  L    [        [        S5      [        S5      /S[        5      $ )NrB   rC   r   )r*   r9   rL   rM   rN   rY   test_dmp_lift.<locals>.<lambda>q  s    "Q%AB ?rM   )	r6   r.   mapr*   algebraic_fieldr<   r8   r@   r2   )qf_af_liftf_gs       rN   test_dmp_liftr  c  s   	Aq2a8R1X&A1az1b!3r1b>3r1b>	bAh1a!1b	)32q	2a8/Da+LNC VV23FCB..q12f<<<7DGT!Wd1aj$q"+
>CCD!V+++
;?@rM   c                     [        / [        5      S:X  d   e[        SS/[        5      S:X  d   e[        / SQ[        5      S:X  d   e[        / SQ[        5      S:X  d   e[        / SQ[        5      S:X  d   e[        / SQ[        5      S:X  d   e[        / SQ[        5      S:X  d   e[        / SQ[        5      S:X  d   e[        / S	Q[        5      S:X  d   e[        / S
Q[        5      S:X  d   e[        / SQ[        5      S:X  d   e[        / SQ[        5      S:X  d   e[        / SQ[        5      S:X  d   e[        / SQ[        5      S:X  d   e[        / SQ[        5      S:X  d   e[        / SQ[        5      S:X  d   e[        / SQ[        5      S:X  d   e[        / SQ[        5      S:X  d   e[        / SQ[        5      S:X  d   e[        / SQ[        5      S:X  d   e[        / SQ[        5      S:X  d   e[        / SQ[        5      S:X  d   e[        / SQ[        5      S:X  d   e[        / SQ[        5      S:X  d   eg )Nr   rB   )rB   r   rC   )rB   r   rD   r   )rB   r   r]   r   rJ   )rU   r   rC   )rU   r   rD   r   )rU   r   r]   r   rJ   )rU   r   r   )rB   r   r   )rB   r]   r   )rB   r   rJ   rC   )rU   r]   r   )rU   r]   rJ   )rU   r   rJ   )rB   r]   rJ   )rU   r   r   r   r   )rB   r   r   r   r   )rB   r   r]   r   r   )rB   r   r   r   rJ   )rU   r   r]   r   r   )rU   r   r   r   rJ   )r+   r5   rL   rM   rN   test_dup_sign_variationsr  t  s   r2&!+++1vr*a///y"-222|R0A5553q888z2.!333}b1Q666/4999|R0A555|R0A555{B/1444{B/1444{B/1444z2.!333{B/1444z2.!333126!;;;126!;;;0"5:::0"5:::0"5:::/49990"5:::/4999rM   c                     [        / [        [        5      [        S5      / 4:X  d   e[        [        S5      /[        [        5      [        S5      [        S5      /4:X  d   e[        [        S5      /[        [        5      [        S5      [        S5      /4:X  d   e[        [        SS5      /[        5      [        S5      [        S5      /4:X  d   e[        [        SS5      /[        [        5      [        S5      [        S5      /4:X  d   e[        [        S5      [        S5      [        S5      /[        [        5      [        S5      [        S5      [        S5      [        S5      /4:X  d   e[        [        S5      [        SS5      [        S5      /[        [        5      [        S5      [        S5      [        S5      [        S5      /4:X  d   e[        [        S5      [        S5      [        S5      /[        [        SS9[        S5      [        S5      [        S5      [        S5      /4:X  d   e[        [        S5      [        SS5      [        S5      /[        [        SS9[        S5      [        S5      [        S5      [        S5      /4:X  d   e[        [        [	        S5      S-  5      [        [	        S5      S	-  5      /[        5      [        S	5      [        S
5      [        S5      /4:X  d   e[        [        S5      /[        5      [        S5      [        S5      /4:X  d   e[        [        [        [        5      [        -  5      [        S5      /[        5      [        [        5      [        [        [        5      5      [        S5      /4:X  d   e[        R                  " [        5      n [        U " SS[        -  S-   -  5      U " S5      /U 5      n[        U5      S:X  d   eg )NrB   rb   rD   r   rC   Tconvertr   r]   rp   gE/Xn @gjq @gp=
ף@g        z0(x + 0.353356890459364, [1.05971731448763, 0.0]))
r	   r6   r5   r9   r=   r>   r?   r:   
frac_fieldstr)r   results     rN   test_dup_clear_denomsr    sF   BB'BqE2;666RUGR,AA0@@@@RUGR,AA0@@@@R1XJ+11w/????R1XJB/BqEBqE73CCCC	A1r!ur2'+-a52a5"Q%A2G*HI I I	A1a"Q% "b*.0ebeRUBqE5J-KL L L RUB	%qED*.0ebeRUBqE5J-KL L LRUB	1%!u2t-13AA1r!u8M0NO O O 	AaDFR!QZ "&*,Q%"Q%A)@A A A RUGR(RURUG,<<<<RAq\2a51262a52c!f:rRSuBU:VVVV
aAq&(T/!:;QsVDaHFv;LLLLrM   c                     [        / /S[        [        5      [        S5      / /4:X  d   e[        [        S5      //S[        [        5      [        S5      [        S5      //4:X  d   e[        [        S5      //S[        [        5      [        S5      [        S5      //4:X  d   e[        [        SS5      //S[        5      [        S5      [        S5      //4:X  d   e[        [        SS5      //S[        [        5      [        S5      [        S5      //4:X  d   e[        [        S5      /[        S5      // /S[        [        5      [        S5      [        S5      /[        S5      // /4:X  d   e[        [        S5      /[        SS5      // /S[        [        5      [        S5      [        S5      /[        S5      // /4:X  d   e[        [        S5      [        S5      [        S5      /S[        [        SS9[        S5      [        S5      [        S5      [        S5      /4:X  d   e[        [        S5      [        SS5      [        S5      /S[        [        SS9[        S5      [        S5      [        S5      [        S5      /4:X  d   e[        [        S5      /[        S5      // /S[        [        SS9[        S5      [        S5      /[        S5      // /4:X  d   e[        [        S5      /[        SS5      // /S[        [        SS9[        S5      [        S5      /[        S5      // /4:X  d   e[        [        [	        S5      S-  5      /[        [	        S5      S	-  5      //S[        5      [        S	5      [        S
5      /[        S5      //4:X  d   e[        [        S5      //S[        5      [        S5      [        S5      //4:X  d   e[        [        [        [        5      [        -  5      [        S5      //S[        5      [        [        5      [        [        [        5      5      [        S5      //4:X  d   eg )NrB   rb   rD   rC   r   Tr  r   r]   rp   )r
   r6   r5   r9   r=   r>   r?   rL   rM   rN   test_dmp_clear_denomsr    s   RD!R,A===beWIq"b1ber!ugY5GGGGbeWIq"b1ber!ugY5GGGGbAhZL!R0RUbeWI4FFFFbAhZL!R4A"Q%	8JJJJ
Q%2a5'22r+/1!u1wA6L.MN N Nb	 AhZR)-/UbeWr!ugr4J,KL L L RUB	%qEr2t-13AA1r!u8M0NO O ORUBq!Hb	/ B&*,Q%"Q%A11F)GH H H beWr	( 'RT+/1!u1wA6L.MN N NbeWr!Qxj"5q"b$(*.0er!ug1w5K-LM M M 
QqT!V*1Q46
|$a-13A"Q%2a5'8J0KL L LbeWIq"-"Q%2a5'1CCCCbQlBqE23Q;1CPQFUWXYUZH[G\?]]]]rM   N)y__doc__sympy.polys.densebasicr   r   r   r   r   sympy.polys.densearithr   sympy.polys.densetoolsr	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   sympy.polys.polyclassesr.   sympy.polys.polyerrorsr/   r0   r1   r2   sympy.polys.specialpolysr3   sympy.polys.domainsr4   r5   r6   r7   r8   r9   r:   sympy.polys.ringsr;   sympy.core.numbersr<   sympy.core.singletonr=   (sympy.functions.elementary.trigonometricr>   	sympy.abcr?   sympy.testing.pytestr@   to_denser   r   r   r   r   r   r^   rO   rQ   r`   rn   ru   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  rW   s   0rN   <module>r&     s   4  2         ( (  - > > > "   " 8  '<CI$GIqjjlI$G !S#sCcB.;&A(F:<B>,AB&F4JEMBM
NMO
>';TA2'LT2<C&GKI8@D$N, 2FA":<M:^w %Hs   <E