
    sgR#                         d dl mZ d dlmZmZmZ d dlmZmZm	Z	m
Z
mZmZmZmZ d dlmZ d Zd Zd Zd Zd	 Zd
 Zd Zy)    )ring)ZZQQAlgebraicField)modgcd_univariatemodgcd_bivariate._chinese_remainder_reconstruction_multivariatemodgcd_multivariate_to_ZZ_poly_to_ANP_polyfunc_field_modgcd_func_field_modgcd_m)sqrtc                     t        dt              \  } }| j                  | j                  }}t        ||      dk(  sJ | j                  |}}t        ||      |ddfk(  sJ t        ||      |ddfk(  sJ | j                  | }}t        ||      |ddfk(  sJ t        ||      |ddfk(  sJ d|z   | d      }}t        ||      d|dfk(  sJ d|z  dz   d|dz  z  dz
  }}t        ||      d|z  dz   dd|z  dz
  fk(  sJ |d	z  d
|dz  z  z   d|dz  z  z   d|z  z   d
z   }|dz  d|dz  z  z   d|z  z   dz   }|dz  d|z  z   dz   }|dz  d|z  z   d	z   }|dz   }t        ||      |||fk(  sJ |d	z  d	z
  }|d	z  d	|dz  z  z   d	z   }|dz  dz   }|dz  dz
  }|dz  dz   }t        ||      |||fk(  sJ |d
z  |dz  z   d|d	z  z  z
  d|dz  z  z
  d
|dz  z  z   d|z  z   dz
  }d|dz  z  d|d	z  z  z   d	|dz  z  z
  d|z  z
  dz   }d}|}|}t        ||      |||fk(  sJ d|dz  z  d|dz  z  z   d|dz  z  z   d|dz  z  z   d|dz  z  z
  d|dz  z  z   d|dz  z  z   dz   }d|dz  z  d|dz  z  z   d |dz  z  z
  dz
  }t        ||j	                  |            d   |k(  sJ d!|z  d"z   }d#|z  d$z   }d#|z  d$z   }d%}d}t        ||      |||fk(  sJ y )&Nxr   r   r   r                                 	   l     p>Z6-(3{ CzVgsR&1   l       	` %'('@$@9$` V *   l      `%Nwgej^r0cu`ZhD #   l      ]%5u[ov&+/
c>_o],   l    @)-P/'X=vw+U9+; l    _I	,4~XsR`Y?t
U    l   y[p?u;ZW`(    l   EAy\^
l     mc@Atsl\o#MkE6w# l    @r/sLxFJGjAl   3sd%u%g%9 i[T l         qRvl        @	l        P\l        `i*  )r   r   zeror   diff)Rr   fghcffcfgs          T/var/www/html/venv/lib/python3.12/site-packages/sympy/polys/tests/test_modulargcd.pytest_modgcd_univariate_integersr.      s3   R=DAq66166qAQ"i///661qAQ"q!Qi///Q"q!Qi///66A2qAQ"q!Rj000Q"q"aj000Q3!qAQ"q!Qi///Q37AadFQJqAQ"qsQw1Q37&;;;;	1qAv1a4"Q$&*A	1qAv1q A	1qs
QA
Q$1*q.C
a%CQ"q#sm333	1qA	1qAvA	1qA
Q$(C
Q$(CQ"q#sm333	1q!ta1fqAv%!Q$.14q8A	!Q$1a4!AqD& 1Q3&+A	A
C
CQ"q#sm333defhjejj
]^_ac^c
c	d
XYZ\^Y^
^	_ SSTVXSX
X	Y LArE
Q		R
 DArE
I	J :!Q$
>	? /	/A Gq"u
L
@B
FG
8A
=> //A
 Qq	*1-222q #99A111A111A
C
CQ"q#sm333    c                     t        dt              \  } }}| j                  | j                  }}t        ||      dk(  sJ d|z   | d      }}t        ||      d|dfk(  sJ |d|z  z   ||z   }}t        ||      d||fk(  sJ |dz  d|z  |z  z   |dz  z   |dz  |dz  z   }}t        ||      ||z   ||z   |dz  ||z  z
  |dz  z   fk(  sJ ||dz  z  d|z  |z  z   |z   ||dz  z  |z   }}t        ||      ||z  |z   |dz   |dz  |z
  dz   fk(  sJ |dz  |dz  z  |dz  |z  z   dz   ||dz  z  ||z  z   dz   }}t        ||      d||fk(  sJ d|z  |dz  z  d|z  |z  z   d|z  z   |dz  z   d|z  z   dz   }d|z  |dz  z  d|z  z   |dz  z   dz   }t        ||      d|z  |z  d|z  z   |z   dz   |dz   |dz  |z
  dz   fk(  sJ d|dz  z  d|z  z   dz   |dz   }}t        ||      |dz   d|z  dz   dfk(  sJ |dz   d|dz  z  d|z  z   dz   }}t        ||      |dz   dd|z  dz   fk(  sJ d|dz  z  d|z  |z  z   d|z  z
  d|z  z
  }|dz  |z   dz
  }t        ||      |dz
  d|z  d|z  z   |dz   fk(  sJ d|dz  z  d|z  |z  z   d|z  z
  d|z  z
  }d|z  |z  d|z  z
  d|dz  z  z   d|z  z
  }t        ||      ||z   d|z  dz
  d|z  dz
  fk(  sJ y )Nx,yr   r   r   r   r   )r   r   r%   r   )r'   r   yr(   r)   s        r-   test_modgcd_bivariate_integersr3   [   s   5"oGAq!66166qAAq!Y...Q3!qAAq!aAY...qs7AEqAAq!aAY...a4!A#a%<!Q$1q!tqAAq!a!eQUAqD1Q3JA4E%FFFFQT6AaCE>AqAvzqAAq!acAgq1uadQhl%CCCCa419q!tAv!1QT6AaC<!#3qAAq!aAY...	!AqD1Q3q51Q3A%!+a/A	!AqD1Q3A!AAq!ac!eackAo&91q5!Q$(Q,%OOOOQT6AaC<!QUqAAq!a!eQqS1Wa%8888q5!AqD&1Q3,"qAAq!a!eQ!a%8888	!Q$1Q1qs"A	1q1AAq!a!eQqS1Q3YA%>>>>	!Q$1Q1qs"A	!A!a1fqs"AAq!a!eQqS1WacAg%>>>>r/   c                     t        dt              \  } }}d\  }}|dz  |z  |dz  z
  dz
  }|dz   |z  d|z  |dz  z  z
  dz   }t        ||||      }|j                  |      |k(  sJ |j                  |      |k(  sJ t        d|       \  }}	d\  }}||z  dz   |	dz  z  |z   }|dz  d|z  z
  |	z  dz   }t        ||||      }|j                  |      |k(  sJ |j                  |      |k(  sJ y )Nx, y)r   r   r   r   r   z)r   r$   )r   r   r	   trunc_ground)
r'   r   r2   pqhphqhpqTr6   s
             r-   test_chinese_remainderr>      s,   62GAq!DAq	
Aa!Q$	B
Q$q1Q3q!t8	a	B
8RA
FCA"$$$A"$$$Q<DAqDAq
A#'1a4!	B
Q$1*a!	B
8RA
FCA"$$$A"$$$r/   c            
      L
   t        dt              \  } }}| j                  | j                  }}t        ||      dk(  sJ d|dz  z  d|z  z   dz   |dz   }}t        ||      |dz   d|z  dz   dfk(  sJ |dz   d|dz  z  d|z  z   dz   }}t        ||      |dz   dd|z  dz   fk(  sJ d|dz  z  d|z  |z  z   d|z  z
  d|z  z
  }d|z  |z  d|z  z
  d|dz  z  z   d|z  z
  }t        ||      ||z   d|z  dz
  d|z  dz
  fk(  sJ ||dz  z  d|z  |z  z   |z   ||dz  z  |z   }}t        ||      ||z  |z   |dz   |dz  |z
  dz   fk(  sJ |dz  |dz  z  |dz  |z  z   dz   ||dz  z  ||z  z   dz   }}t        ||      d||fk(  sJ |dz  d|dz  z  z   d|dz  z  z   d	|z  z   dz   }|dz  d
|dz  z  z   d|z  z   d
z   }|dz  d|z  z   dz   }|dz  d|z  z   dz   }|dz   }t        ||      |||fk(  sJ t        dt              \  } }}}}	||z   |z   | |z
  |z
  |	z
  }}t        ||      d||fk(  sJ |	dz  d|	z  z   dz   d|	z  dz   }}t        ||      |	dz   |	dz   dfk(  sJ |dz  |	dz  z  d|dz  z  |	z  z   |dz  z   ||	z  z   |z   |	dz  d|	z  z   dz   }}|	dz   |dz  |	z  |dz  z   |z   |	dz   }}}t        ||      |||fk(  sJ t        ||      |||fk(  sJ t        dt              \  } }}}|||z  z
  |||z  z
  }}t        ||      |||z  z
  ddfk(  sJ | j	                         \  }}}t        ||      \  }
}}|
|k(  r|
|z  |k(  r|
|z  |k(  sJ t        dt              \  } }}}}	}| j	                         \  }}}t        ||      \  }
}}|
|k(  r|
|z  |k(  r|
|z  |k(  sJ t        dt              \  } }}}}	}}}| j	                         \  }}}t        ||      \  }
}}|
|k(  r|
|z  |k(  r|
|z  |k(  sJ t        dt              \
  } }}}}	}}}}}| j	                         \  }}}t        ||      \  }
}}|
|k(  r|
|z  |k(  r|
|z  |k(  sJ t        dt              \  } }}}| j                         \  }}}t        ||      \  }
}}|
|k(  r|
|z  |k(  r|
|z  |k(  sJ | j                         \  }}}t        ||      \  }
}}|
|k(  r|
|z  |k(  r|
|z  |k(  sJ t        dt              \  } }}}}| j                         \  }}}t        ||      \  }
}}|
|k(  r|
|z  |k(  r|
|z  |k(  sJ y )Nr1   r   r   r   r   r   r   r   r   r   r   r   zx,y,z,uzx,y,zz	x,y,z,u,vzx,y,z,u,v,a,bzx,y,z,u,v,a,b,c,dzx,y,z,t)r   r   r%   r
   fateman_poly_F_1fateman_poly_F_2fateman_poly_F_3)r'   r   r2   r(   r)   r*   r+   r,   r6   uHvabcdts                    r-   !test_modgcd_multivariate_integersrK      s   5"oGAq!66166qAq!$	111QT6AaC<!QUqAq!$Q!a(;;;;q5!AqD&1Q3,"qAq!$Q1Q37(;;;;	!Q$1Q1qs"A	!A!a1fqs"Aq!$Q!a1q(AAAAQT6AaCE>AqAvzqAq!$1q!a%AA(FFFFa419q!tAv!1QT6AaC<!#3qAq!$Aq	111	1qAv1a4"Q$&*A	1qAv1q A	1qs
QA
Q$1*q.C
a%Cq!$C555B'MAq!Qq519qb1fqj1nqAq!$Aq	111a4!A#:>1Q37qAq!$QAq(9999a419qAvax!Q$&1,q0!Q$1*q.qAa%Aa!Q$*AECsAq!$C555q!$C555gr"JAq!Qqs7A!GqAq!$QqS!Q777  "GAq!%a+KAsC6aeqjQsUaZ//K,Aq!Q1  "GAq!%a+KAsC6aeqjQsUaZ//!/26Aq!Q1a  "GAq!%a+KAsC6aeqjQsUaZ//#'(;R#@ Aq!Q1aAq  "GAq!%a+KAsC6aeqjQsUaZ//gr"JAq!Q  "GAq!%a+KAsC6aeqjQsUaZ//  "GAq!%a+KAsC6aeqjQsUaZ//B'MAq!Q  "GAq!%a+KAsC6aeqjQsUaZ//Zr/   c                     t        t        t        d            } t        d|       \  }}|t        d      dz   z  }t        dt              \  }}}||z  |z   }t        ||      |k(  sJ t        ||      |k(  sJ t        d|       \  }}}}	||dz  z  ||	z  z   t        d      z   }t        dt              \  }
}}t        d|
      \  }}}|dz  |z   |z  |z   }t        ||      |k(  sJ t        ||      |k(  sJ y )Nr   r   r   zx_, z_zx, t, szt_, s_)r   r   r   r   r   r   r   )Ar'   r   r(   r=   x_z_f_rJ   sDt_s_s                r-   test_to_ZZ_ANP_polyrU      s   r47#AQ<DAq	47Q;AXr"IAr2	BBq!"""A!###i#JAq!Q	!Q$1tAwAXr"IAr2Xq!IAr2
a%"*b2	Bq!"""A!###r/   c            	         t        t        t        d            } t        d|       \  }}| j                  }d|z   |d      }}t        ||      |||fk(  sJ d|z   |t        d            }}t        ||      |||fk(  sJ d|z  dz   d|dz  z  dz
  }}t        ||      |dz    |d      d|z  dz
  fk(  sJ t        d|       \  }}}|t        d      |z  z   ||z   }}t        ||      |||fk(  sJ ||z  t        d      |dz  z  z    |t        d            |z  }}t        ||      ||t        d      |z  z    |t        d            fk(  sJ |dz  dt        d      z  |z  |z  z   d|dz  z  z   |t        d      |z  z   }}t        ||      |||fk(  sJ t        t        t        d      t        d            } t        d|       \  }}}}|dz  |dz  z  t        d      d	z  |z  z   }|d
|dz  z  dz   z  |||z   z  }}t        ||      |d
|dz  z  dz   ||z   fk(  sJ |dz  |dz  z  d|dz  z  z   dt        d      z  z   }||dz   z  |t        d      z  t        d      z  }}t        ||      ||dz    |t        d      t        d      z        fk(  sJ t        t        t        d      dz  t        d      z        } t        d|       \  }}|dz   |dz
  }}t        ||      | j                  ||fk(  sJ y )Nr   r   r   r   r5   r   zx, y, zr$   r         g      ?
   r   )r   r   r   r   oner   )	rM   r'   r   rZ   r(   r)   r2   r6   r*   s	            r-   test_modgcd_algebraic_fieldr[     s7   r47#AQ<DAq
%%CQ3!qAQ"sAqk111Q3$q'
qAQ"sAqk111Q37AadFQJqAQ"q1uadAaC!G&<<<<61oGAq!tAwqy=!a%qAQ"sAqk111Q3aAqaz!|qAQ"q!d1gai-47&DDDDa4!DG)A+a-!AqD&(!d1gai-qAQ"q!Sk111r47DG,Ai#JAq!Q	1QT	DGBJqL AbAgk?Aq1uIqAQ"q"QT'!)QqS&9999	2ad
SBY47*Aa!e9aQiQ'qAQ"q!a%4747?1C&DDDDr47R=a01AQ<DAqq5!a%qAQ"quuam333r/   c                      t        dt              \  } }t        d|       \  }}}|dz  |dz  z  |dz  |z  z   dz
  j                  d      }|dz   |dz
  }}t        |||      |j                  k(  sJ y )NrJ   zx, zr   r   r   )r   r   dropr   rZ   )rR   rJ   r'   r   r6   minpolyr(   r)   s           r-   test_modgcd_func_fieldr_   >  s|    R=DAq61oGAq!!tAqDy1a46!A%++A.Gq5!a%qA1g.!%%777r/   N)sympy.polys.ringsr   sympy.polys.domainsr   r   r   sympy.polys.modulargcdr   r   r	   r
   r   r   r   r   (sympy.functions.elementary.miscellaneousr   r.   r3   r>   rK   rU   r[   r_    r/   r-   <module>re      sK    " 6 6   :I4X%?P%0^0B$,(4X8r/   