
    \hS#                         S SK Jr  S SKJrJrJr  S SKJrJrJ	r	J
r
JrJrJrJr  S SKJr  S rS rS rS rS	 rS
 rS rg)    )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                     [        S[        5      u  pU R                  U R                  p2[        X#5      S:X  d   eU R                  Up2[        X#5      USS4:X  d   e[        X25      USS4:X  d   eU R                  U* p2[        X#5      USS4:X  d   e[        X25      USS4:X  d   eSU-  U " S5      p2[        X#5      SUS4:X  d   eSU-  S-   SUS-  -  S-
  p2[        X#5      SU-  S-   SSU-  S-
  4:X  d   eUS	-  S
US-  -  -   SUS-  -  -   SU-  -   S
-   nUS-  SUS-  -  -   SU-  -   S-   nUS-  SU-  -   S-   nUS-  SU-  -   S	-   nUS-   n[        X#5      XEU4:X  d   eUS	-  S	-
  nUS	-  S	US-  -  -   S	-   nUS-  S-   nUS-  S-
  nUS-  S-   n[        X#5      XEU4:X  d   eUS
-  US-  -   SUS	-  -  -
  SUS-  -  -
  S
US-  -  -   SU-  -   S-
  nSUS-  -  SUS	-  -  -   S	US-  -  -
  SU-  -
  S-   nSnUnUn[        X#5      XEU4:X  d   eSUS-  -  SUS-  -  -   SUS-  -  -   SUS-  -  -   SUS-  -  -
  SUS-  -  -   SUS-  -  -   S-   nSUS-  -  SUS-  -  -   S US-  -  -
  S-
  n[        X"R	                  U5      5      S   U:X  d   eS!U-  S"-   nS#U-  S$-   nS#U-  S$-   nS%nSn[        X#5      XEU4:X  d   eg )&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          Y/var/www/auris/envauris/lib/python3.13/site-packages/sympy/polys/tests/test_modulargcd.pytest_modgcd_univariate_integersr.      s   R=DA66166qQ"i///661qQ"q!Qi///Q"q!Qi///66A2qQ"q!Rj000Q"q"aj000Q3!qQ"q!Qi///Q37AadFQJq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"qsm333	1qA	1qAvA	1qA
Q$(C
Q$(CQ"qsm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"qsm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"qsm333    c                  p   [        S[        5      u  pnU R                  U R                  pC[        X45      S:X  d   eSU-  U " S5      pC[        X45      SUS4:X  d   eUSU-  -   X-   pC[        X45      SX44:X  d   eUS-  SU-  U-  -   US-  -   US-  US-  -   pC[        X45      X-   X-   US-  X-  -
  US-  -   4:X  d   eXS-  -  SU-  U-  -   U-   XS-  -  U-   pC[        X45      X-  U-   US-   US-  U-
  S-   4:X  d   eUS-  US-  -  US-  U-  -   S-   XS-  -  X-  -   S-   pC[        X45      SX44:X  d   eSU-  US-  -  SU-  U-  -   SU-  -   US-  -   SU-  -   S-   nSU-  US-  -  SU-  -   US-  -   S-   n[        X45      SU-  U-  SU-  -   U-   S-   US-   US-  U-
  S-   4:X  d   eSUS-  -  SU-  -   S-   US-   pC[        X45      US-   SU-  S-   S4:X  d   eUS-   SUS-  -  SU-  -   S-   pC[        X45      US-   SSU-  S-   4:X  d   eSUS-  -  SU-  U-  -   SU-  -
  SU-  -
  nUS-  U-   S-
  n[        X45      US-
  SU-  SU-  -   US-   4:X  d   eSUS-  -  SU-  U-  -   SU-  -
  SU-  -
  nSU-  U-  SU-  -
  SUS-  -  -   SU-  -
  n[        X45      X-   SU-  S-
  SU-  S-
  4:X  d   eg )Nx,yr   r   r   r   r   )r   r   r%   r   )r'   r   yr(   r)   s        r-   test_modgcd_bivariate_integersr3   [   s   5"oGA!66166qA!Y...Q3!qA!aAY...qs7AEqA!aY...a4!A#a%<!Q$1q!tqA!aeQUAqD13JA4E%FFFFT6AaCE>AqAvzqA!acAgq1uadQhl%CCCCa419q!tAv!1T6AC<!#3qA!aY...	!AqD1Q3q51Q3A%!+a/A	!AqD1Q3A!AA!ac!eackAo&91q5!Q$(Q,%OOOOQT6AaC<!QUqA!a!eQqS1Wa%8888q5!AqD&1Q3,"qA!a!eQ!a%8888	!Q$1Q1qs"A	1q1AA!a!eQqS1Q3YA%>>>>	!Q$1Q1qs"A	!A!a1fqs"AA!aeQqS1WacAg%>>>>r/   c                     [        S[        5      u  pnSu  p4US-  U-  US-  -
  S-
  nUS-  * U-  SU-  US-  -  -
  S-   n[        XVX45      nUR                  U5      U:X  d   eUR                  U5      U:X  d   e[        SU 5      u  pSu  p4X-  S-   U	S-  -  U-   nUS-  SU-  -
  U	-  S-   n[        XVX45      nUR                  U5      U:X  d   eUR                  U5      U:X  d   eg )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GA!DA	
Aa!Q$	B
Q$q1Q3q!t8	a	B
8
FCA"$$$A"$$$Q<DADA
#'1a4!	B
Q$1*a!	B
8
FCA"$$$A"$$$r/   c            
      	   [        S[        5      u  pnU R                  U R                  pC[        X45      S:X  d   eSUS-  -  SU-  -   S-   US-   pC[        X45      US-   SU-  S-   S4:X  d   eUS-   SUS-  -  SU-  -   S-   pC[        X45      US-   SSU-  S-   4:X  d   eSUS-  -  SU-  U-  -   SU-  -
  SU-  -
  nSU-  U-  SU-  -
  SUS-  -  -   SU-  -
  n[        X45      X-   SU-  S-
  SU-  S-
  4:X  d   eXS-  -  SU-  U-  -   U-   XS-  -  U-   pC[        X45      X-  U-   US-   US-  U-
  S-   4:X  d   eUS-  US-  -  US-  U-  -   S-   XS-  -  X-  -   S-   pC[        X45      SX44:X  d   eUS-  SUS-  -  -   SUS-  -  -   S	U-  -   S-   nUS-  S
US-  -  -   SU-  -   S
-   nUS-  SU-  -   S-   nUS-  SU-  -   S-   nUS-   n[        X45      XVU4:X  d   e[        S[        5      u  pp(n	X-   U-   U* U-
  U-
  U	-
  pC[        X45      SX44:X  d   eU	S-  SU	-  -   S-   SU	-  S-   pC[        X45      U	S-   U	S-   S4:X  d   eUS-  U	S-  -  SUS-  -  U	-  -   US-  -   X-  -   U-   U	S-  SU	-  -   S-   pCU	S-   US-  U	-  US-  -   U-   U	S-   pvn[        X45      XVU4:X  d   e[        XC5      XWU4:X  d   e[        S[        5      u  pp(XU-  -
  XU-  -
  pC[        X45      XU-  -
  SS4:X  d   eU R	                  5       u  p4n[        X45      u  pnX:X  a  X-  U:X  a  X-  U:X  d   e[        S[        5      u  pp(pU R	                  5       u  p4n[        X45      u  pnX:X  a  X-  U:X  a  X-  U:X  d   e[        S[        5      u  pp(ppU R	                  5       u  p4n[        X45      u  pnX:X  a  X-  U:X  a  X-  U:X  d   e[        S[        5      u
  pp(pppU R	                  5       u  p4n[        X45      u  pnX:X  a  X-  U:X  a  X-  U:X  d   e[        S[        5      u  pp(U R                  5       u  p4n[        X45      u  pnX:X  a  X-  U:X  a  X-  U:X  d   eU R                  5       u  p4n[        X45      u  pnX:X  a  X-  U:X  a  X-  U:X  d   e[        S[        5      u  pp(nU R                  5       u  p4n[        X45      u  pnX:X  a  X-  U:X  a  X-  U:X  d   eg )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"oGA!66166qq$	111QT6AaC<!QUqq$Q!a(;;;;q5!AqD&1Q3,"qq$Q1Q37(;;;;	!Q$1Q1qs"A	!A!a1fqs"Aq$!a1q(AAAAT6AaCE>AqAvzqq$q!a%AA(FFFFa419q!tAv!1T6AC<!#3qq$A	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$555B'MA!519qb1fqj1nqq$A	111a4!A#:>1Q37qq$QAq(9999a419qAvax!Q$&,q0!Q$1*q.qa%Aa!Q$*AECAq$555q$555gr"JA!s7A!Gqq$qS!Q777  "GA!%a+KAC6aeqjQUaZ//K,A!  "GA!%a+KAC6aeqjQUaZ//!/26A!a  "GA!%a+KAC6aeqjQUaZ//#'(;R#@ A!aA  "GA!%a+KAC6aeqjQUaZ//gr"JA!  "GA!%a+KAC6aeqjQUaZ//  "GA!%a+KAC6aeqjQUaZ//B'MA!  "GA!%a+KAC6aeqjQUaZ//Zr/   c                     [        [        [        S5      5      n [        SU 5      u  pU[        S5      S-   -  n[        S[        5      u  pEnXV-  U-   n[        X45      U:X  d   e[        Xq5      U:X  d   e[        SU 5      u  ppX(S-  -  X)-  -   [        S5      -   n[        S[        5      u  pn[        SU
5      u  pEnUS-  U-   U-  U-   n[        X45      U:X  d   e[        Xq5      U:X  d   eg )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<DA	47Q;AXr"IA2	Bq"""!###i#JA!	Q$tAwAXr"IA2Xq!IA2
a%"*b2	Bq"""!###r/   c            	         [        [        [        S5      5      n [        SU 5      u  pU R                  nSU-  U" S5      pT[        XE5      X4U4:X  d   eSU-  U" [        S5      5      pT[        XE5      X4U4:X  d   eSU-  S-   SUS-  -  S-
  pT[        XE5      US-   U" S5      SU-  S-
  4:X  d   e[        SU 5      u  pnU[        S5      U-  -   X&-   pT[        XE5      X4U4:X  d   eX&-  [        S5      US-  -  -   U" [        S5      5      U-  pT[        XE5      Xb[        S5      U-  -   U" [        S5      5      4:X  d   eUS-  S[        S5      -  U-  U-  -   SUS-  -  -   U[        S5      U-  -   pT[        XE5      XUU4:X  d   e[        [        [        S5      [        S5      5      n [        SU 5      u  ppgUS-  US-  -  [        S5      S	-  U-  -   nUS
US-  -  S-   -  XU-   -  pT[        XE5      US
US-  -  S-   Xb-   4:X  d   eUS-  US-  -  SUS-  -  -   S[        S5      -  -   nXS-   -  U[        S5      -  [        S5      -  pT[        XE5      XS-   U" [        S5      [        S5      -  5      4:X  d   e[        [        [        S5      S-  [        S5      -  5      n [        SU 5      u  pUS-   US-
  pT[        XE5      U R                  XE4:X  d   eg )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[     s   r47#AQ<DA
%%CQ3!qQ"sqk111Q3$q'
qQ"sqk111Q37AadFQJqQ"q1uadAaC!G&<<<<61oGA!tAwqy=!%qQ"sqk1113aAqaz!|qQ"qd1gai-47&DDDDa4!DG)A+a-!AqD&(!d1gai-qQ"qSk111r47DG,Ai#JA!	1QT	DGBJqL AbAgk?A1uIqQ"q"QT'!)QS&9999	2ad
SBY47*A!e9aQiQ'qQ"qa%4747?1C&DDDDr47R=a01AQ<DAq5!a%qQ"quuam333r/   c                      [        S[        5      u  p[        SU 5      u  p#nUS-  US-  -  US-  U-  -   S-
  R                  S5      nUS-   US-
  pv[        XgU5      UR                  :X  d   eg )NrJ   zx, zr   r   r   )r   r   dropr   rZ   )rR   rJ   r'   r   r6   minpolyr(   r)   s           r-   test_modgcd_func_fieldr_   >  st    R=DA61oGA!!tAqDy1a46!A%++A.Gq5!a%qg.!%%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/   