
    gR#                         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dS )    )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          ||                    |                    d         |k    sJ d!|z  d"z   }d#|z  d$z   }d#|z  d$z   }d%}d}t          ||          |||fk    sJ d S )&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          ]/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/polys/tests/test_modulargcd.pytest_modgcd_univariate_integersr.      s   R==DAq616qAQ""i////61qAQ""q!Qi////Q""q!Qi////6A2qAQ""q!Rj0000Q""q"aj0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3	1qA	1qAvA	1qA
Q$(C
Q$(CQ""q#sm3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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2q #99A111A111A
C
CQ""q#sm333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 d S )Nx,yr   r   r   r   r   )r   r   r%   r   )r'   r   yr(   r)   s        r-   test_modgcd_bivariate_integersr3   [   s/   5"ooGAq!616qA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FQT6AaCE>AqAvzqAAq!!acAgq1uadQhl%C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OQT6AaC<!QUqAAq!!a!eQqS1Wa%88888q5!AqD&1Q3,"qAAq!!a!eQ!a%8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          ||||          }|                    |          |k    sJ |                    |          |k    sJ t          d|           \  }}	d\  }}||z  dz   |	dz  z  |z   }|dz  d|z  z
  |	z  dz   }t          ||||          }|                    |          |k    sJ |                    |          |k    sJ d S )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>      sU   62GAq!DAq	
Aa!Q$	B
Q$q1Q3q!t8	a	B
8RA
F
FCA"$$$$A"$$$$Q<<DAqDAq
A#'1a4!	B
Q$1*a!	B
8RA
F
FCA"$$$$A"$$$$$$r/   c            
         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 |                                 \  }}}t          ||          \  }
}}|
|k    r|
|z  |k    r	|
|z  |k    sJ t          dt                    \  } }}}}	}|                                 \  }}}t          ||          \  }
}}|
|k    r|
|z  |k    r	|
|z  |k    sJ t          dt                    \  } }}}}	}}}|                                 \  }}}t          ||          \  }
}}|
|k    r|
|z  |k    r	|
|z  |k    sJ t          dt                    \
  } }}}}	}}}}}|                                 \  }}}t          ||          \  }
}}|
|k    r|
|z  |k    r	|
|z  |k    sJ t          dt                    \  } }}}|                                 \  }}}t          ||          \  }
}}|
|k    r|
|z  |k    r	|
|z  |k    sJ |                                 \  }}}t          ||          \  }
}}|
|k    r|
|z  |k    r	|
|z  |k    sJ t          dt                    \  } }}}}|                                 \  }}}t          ||          \  }
}}|
|k    r|
|z  |k    r	|
|z  |k    sJ d S )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      sW   5"ooGAq!616qAq!$$	1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AQT6AaCE>AqAvzqAq!$$1q!a%AA(FFFFFa419q!tAv!1QT6AaC<!#3qAq!$$Aq	1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5B''MAq!Qq519qb1fqj1nqAq!$$Aq	1111a4!A#:>1Q37qAq!$$QAq(9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5q!$$C5555gr""JAq!Qqs7A!GqAq!$$QqS!Q7777  ""GAq!%a++KAsC66aeqjjQsUaZZZZK,,Aq!Q1  ""GAq!%a++KAsC66aeqjjQsUaZZZZ!/266Aq!Q1a  ""GAq!%a++KAsC66aeqjjQsUaZZZZ#'(;R#@#@ Aq!Q1aAq  ""GAq!%a++KAsC66aeqjjQsUaZZZZgr""JAq!Q  ""GAq!%a++KAsC66aeqjjQsUaZZZZ  ""GAq!%a++KAsC66aeqjjQsUaZZZZB''MAq!Q  ""GAq!%a++KAsC66aeqjjQsUaZZZZZZr/   c                  h   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 d S )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      sF   r477##AQ<<DAq	477Q;AXr""IAr2	BBq!""""A!####i##JAq!Q	!Q$1tAww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 d S )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77##AQ<<DAq
%CQ3!qAQ""sAqk1111Q3$q''

qAQ""sAqk1111Q37AadFQJqAQ""q1uaaddAaC!G&<<<<<61ooGAq!tAwwqy=!a%qAQ""sAqk1111Q3aAqqazz!|qAQ""q!d1ggai-477&DDDDDa4!DGG)A+a-!AqD&(!d1ggai-qAQ""q!Sk1111r477DGG,,Ai##JAq!Q	1QT	DGGBJqL AbAgk?Aq1uIqAQ""q"QT'!)QqS&99999	2ad
SBY477*Aa!e9aQiQ'qAQ""q!a%477477?1C1C&DDDDDr477R=a011AQ<<DAqq5!a%qAQ""quam333333r/   c                      t          dt                    \  } }t          d|           \  }}}|dz  |dz  z  |dz  |z  z   dz
                      d          }|dz   |dz
  }}t          |||          |j        k    sJ d S )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61ooGAq!!tAqDy1a46!A%++A..Gq5!a%qA1g..!%777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      s*   " " " " " " 6 6 6 6 6 6 6 6 6 6                    : 9 9 9 9 9I4 I4 I4X%? %? %?P% % %0^0 ^0 ^0B$ $ $,(4 (4 (4X8 8 8 8 8r/   