
    g                         d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	m
Z
 d dlmZ d dlmZmZ d dlmZ d d	lmZ d
 Zd ZdS )    )x)S)AlgebraicNumber)sqrt)Polycyclotomic_poly)QQ)DomainMatrixDM)	round_two)raisesc                     t          t          d            t          t          d            t          d          t          j        dt
                    dft          d          t          j        dt
                    dft          d	z  dz
  t          d
dgddggt
                    dft          d	z  dz
  t          d
dgdd
ggt
                    dft          dz  t          d	z  z   d	t          z  z
  dz   t          g dg dg dgt
                                                    dft          dz  dt          d	z  z  z   dt          z  z
  dz   t          g dt
                                                    dft          dz  dt          d	z  z  z   dt          z  z   dz
  t          g dt
                                                    dft          dz  dt          d	z  z  z   t          z
  dz   t          g dt
                                                    dft          dz  dt          d	z  z  z   dt          z  z
  dz
  t          g dt
                                                    dft          dz  dt          d	z  z  z   dz   t          g dt
                                                    dft          dz  dt          d	z  z  z   dt          z  z   d
z
  t          g dt
                                                    dft          dz  dt          d	z  z  z   dz   t          g dt
                                                    dft          dz  dt          d	z  z  z   dt          z  z   dz
  t          g dt
                                                    dft          dz  dt          d	z  z  z   t          z
  dz   t          g dt
                                                    d ft          dz  dt          d	z  z  z   dt          z  z
  dz   t          g dt
                                                    d!ft          dz  dt          d	z  z  z   dt          z  z
  dz   t          g d"t
                                                    d#ft          dz  dt          d	z  z  z   dt          z  z   d
z
  t          g d$t
                                                    dft          dz  dt          d	z  z  z   d	t          z  z
  dz   t          g d%t
                                                    d&ft          dz  dt          d	z  z  z   dt          z  z
  dz   t          g d't
                                                    d(ft          dz  d)t          d	z  z  z   dt          z  z   dz
  t          g d*t
                                                    d+ft          dz  d,t          d	z  z  z   d)t          z  z
  d-z   t          g d.t
                                                    d/fdt          dz  z  dt          d	z  z  z   d0t          z  z
  d1z   t          g dg dg dgt
                                                    dft          dd          t          dz  z  t          dd          t          d	z  z  z   t          d0d          t          z  z
  t          d1d          z   t          g dg dg dgt
                                                    dff} | D ]\  }}}t          j	        |          }|
                                j        }|                                }||k    sJ |                                |z                                  d	z  d
k    sJ d S )2Nc                  P    t          t          t          dz  dz
                      S )N      )r   r   r        e/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/polys/numberfields/tests/test_basis.py<lambda>z test_round_two.<locals>.<lambda>   s    ya1fqj)9)9:: r   c                  j    t          t          t          dz  t          d          z                       S )Nr   )r   r   r   r   r   r   r   r   z test_round_two.<locals>.<lambda>   s%    ya1ftAww.>)?)?@@ r         }         iYr   r   r   r   r            r   r   r   r   r   r   r   r   r   i	))r   r   r   r#   r"   r   r   r   i))r   r   r   r!   r$   i))r#   r   )r   r   r"   r$   ii  ))r   r   r%   r%   r!   r$   iyQ   ))r%   )r   r   r%   r!   )r   r   r   1   iit)))r   r   r   r   r(   r!   r$   iQ)))r   r   )r   r   )r   r   r!   r$   )r    r!   r$   i)r    )r   r#   r#   r$   i]	   )r    r"   r$   i        ))r   r   r%   r,   r!   r$   iT
   (   )r   
ValueErrorr   r
   eyer	   r   r   	transposealg_field_from_polymaximal_order	QQ_matrixdiscriminantinvdet)casesfB_expd_expKBds          r   test_round_twor?      s   
:::;;;
:@@AAA
 
		\-a44c:			\-a44f=	
a!R!Vq&k2B77;	
a!R!Q!Q("--r2	
a!q&1q5	 1	$b)))YYY@S@S@S)TVX&Y&Y&c&c&e&egkl 
AAqD1q5	 1	$b)c)c)ceg&h&h&r&r&t&tvyz	
AAqD1q5	 1	$b)T)T)TVX&Y&Y&c&c&e&egkl	
AAqD1	q	 "%Z%Z%Z\^"_"_"i"i"k"kmpq	
AAqD1q5	 1	$b)T)T)TVX&Y&Y&c&c&e&egkl	
AAqD1	b!Q!Q!QSUVV``bbdhi	
AAqD1q5	 1	$b)Y)Y)Y[]&^&^&h&h&j&jlno	
AAqD1	b!V!V!VXZ[[eeggimn	
AAqD1q5	 1	$b)^)^)^`b&c&c&m&m&o&oqst	
AAqD1	q	 "%P%P%PRT"U"U"_"_"a"achi	
AAqD1q5	 1	$b)^)^)^`b&c&c&m&m&o&oquv	
AAqD1q5	 1	$b)Y)Y)Y[]&^&^&h&h&j&jlpq	
AAqD1q5	 1	$b)Y)Y)Y[]&^&^&h&h&j&jlno	
AAqD1q5	 1	$b)J)J)JB&O&O&Y&Y&[&[]cd	
AAqD1q5	 1	$b)T)T)TVX&Y&Y&c&c&e&egkl	
AAqD1q5	 1	$b)T)T)TVX&Y&Y&c&c&e&egkl	
AQT		AE	!B	&+[+[+[]_(`(`(j(j(l(lnst	
1a4!AqD&26	!B	&IIIyyyBUBUBU+VXZ([([(e(e(g(gimn	Aq!Q$Aq!Q$	&B1	4r"ayy	@"iiiQZQZQZ\o\o\oEprtBuBuBB  CB  CB  DH  	I]/E` ! - -5%"1%%OO'NNEzzzz ""$$a'1,,,,,- -r   c                  &   t          t          d          d          } t          j        |           }|                                }|                    d          }|                    d          }| |dg           |t
          j        t
          j        g          gk    sJ |dt
          j        | dz  z   gk    sJ ||j                            dg          |j                            t
          j        t
          j        g          gk    sJ d S )	Nr   alpha)aliassympy)fmtalgr   r   )	r   r   r	   algebraic_fieldintegral_basisr   Halfextfield_element)rA   kB0B1B2s        r   "test_AlgebraicField_integral_basisrO   L   s   DGG7333E
5!!A	
				B	
		g		&	&B	
		e		$	$B!!QC&&!!QVQV,--.....!QVeAg%&&&&&!%%%qc**%%%qvqv&6779 9 9 9 9 9 9r   N)	sympy.abcr   
sympy.corer   sympy.core.numbersr   (sympy.functions.elementary.miscellaneousr   sympy.polysr   r   sympy.polys.domainsr	   sympy.polys.matricesr
   r   sympy.polys.numberfields.basisr   sympy.testing.pytestr   r?   rO   r   r   r   <module>rY      s                . . . . . . 9 9 9 9 9 9 - - - - - - - - " " " " " " 1 1 1 1 1 1 1 1 4 4 4 4 4 4 ' ' ' ' ' '=- =- =-@	9 	9 	9 	9 	9r   