
    gM                         d dl mZ d dlmZmZ d dlmZ d dlmZ d dl	m
Z
mZ d dlmZmZ d dlmZmZ d dlmZ d d	lmZmZmZmZmZ d d
lmZ d dlmZ d Zd Zd Z d Z!d Z"d Z#d Z$d Z%dS )    )x)IRational)S)sqrt)Polycyclotomic_poly)FFQQ)DomainMatrixDM)DMRankError)AlgIntPowerscoeff_search extract_fundamental_discriminantisolatesupplement_a_subspace)IntervalPrinter)raisesc                  p   t          t          d                    } t          |           t          t          fd           t          d          D ]_}|dz  dk     r@|                  dk    r)t          fdt          d          D                       sJ M|         dgdz  k    sJ `d S )N   c                       d         S )N )zeta_pows   i/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/polys/numberfields/tests/test_utilities.py<lambda>z&test_AlgIntPowers_01.<locals>.<lambda>   s    x|     
         c              3   <   K   | ]}|k    |         d k    V  dS )r   Nr   ).0iacs     r   	<genexpr>z'test_AlgIntPowers_01.<locals>.<genexpr>   s/      $K$K1AFFQqTQYFFFF$K$Kr   r   )r   r	   r   r   
ValueErrorrangeall)Ter%   r&   r   s     @@@r   test_AlgIntPowers_01r-      s    _Q  AAH
:++++,,,2YY + +Eq55AQ4199$K$K$K$K$Ka$K$K$K!K!K9999A;2$(*****+ +r   c                     t          t          dz  dt          dz  z  z   dt          z  z   dz             } dt          |           }t          d          D ]~}||         }t          t                    |z  | z  t          t          dz            z   j                                        dd          }fdt          |          D             }||k    sJ d S )N      r       r   r!   c                     g | ]}|z  S r   r   )r#   r&   ms     r   
<listcomp>z(test_AlgIntPowers_02.<locals>.<listcomp>%   s    444aAE444r   )r   r   r   r)   repto_listreversed)r+   	theta_powr,   computedcoeffsexpectedr3   s         @r   test_AlgIntPowers_02r<      s    QTAadF]QqS 1$%%A	AQ""I2YY $ $Q<q''1*q.41::-2::<<QRR@44448F#3#34448#####	$ $r   c                      g } t          dd          }t          |          D ]"\  }}|                     |           |dk    r n#| ddgddgddgddgddgddgddgddgddgddgddgddgddggk    sJ d S )Nr0   r!      r   r   r/   )r   	enumerateappend)Csearchr$   r&   s       r   test_coeff_searchrD   )   s    
A!QF&!!  1	77E !Q!Q!R1a&1a&1a&1a&1b'TUWYSZ]^`a\befhjdknoqrmsvwyzu{|||||||r   c                  6   t          t          d            t          t          d            di ddifdi i fdddii fdddd	i fd
dddi fdi dddfdddiddifddddddifdddidddff	} | D ](\  }}}t          |          \  }}||k    sJ ||k    sJ )d S )Nc                       t          d          S )Nr0   r   r   r   r   r   z7test_extract_fundamental_discriminant.<locals>.<lambda>5       ?BB r   c                       t          d          S )Nr/   rG   r   r   r   r   z7test_extract_fundamental_discriminant.<locals>.<lambda>6   rH   r   r   r!      r0   r/   i)r0   r   r>   )r0   r/   $   -   r   0   ie  )r/   r   )r   r(   r   )casesr%   
D_expected
F_expectedDFs         r   %test_extract_fundamental_discriminantrS   3   s   
:BBCCC
:BBCCC 
BA	
B	
QFB	]]B	q\\2	RQ1	aVaV	q\\Aq6"	1v1||$
E &+  !:z/221JJ r   c                  X   t          g dg dgt                                                    } t          |           }|d d d df         | k    sJ |d d df         t	          j        dt                                                    d d df         k    sJ |                     t          d                    } t          |           }|d d d df         | k    sJ |d d df         t	          j        dt          d                                                    d d df         k    sJ d S )N)r!   r1   r   )r0   r/   r    r0   r/   r   r1   r!   )	r   r   	transposer   r   eyeto_dense
convert_tor
   )MBs     r   test_supplement_a_subspace_1r[   I   s-   
IIIyyy!2&&0022A 	a  AQQQU8q====QQQT7l&q"--6688A>>>>> 	
RUUAa  AQQQU8q==== QQQT7l&q"Q%%0099;;AAAqDAAAAAAAr   c                      t          g dg dgt                                                    } t          t                    5  t          |            d d d            d S # 1 swxY w Y   d S )N)r!   r   r   )r0   r   r   )r   r   rU   r   r   r   )rY   s    r   test_supplement_a_subspace_2r]   [   s    
IIIyyy!2&&0022A			 ! !a   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !s   AA#&A#c                      t                      } |                     t          t          dd          z            dk    sJ |                     t	          t                              dk    sJ d S )Nr!   r/   zx**(mpi('1/3'))zx**(mpi('1/2')))r   doprintr   r   r   )ips    r   test_IntervalPrinterra   a   sb    			B::a!Q'((,=====::d1gg"3333333r   c                     t          d          dk    sJ t          t          j                  t          j        t          j        fk    sJ t          t          d                    dk    sJ t          t          d                     dk    sJ t          t          d          t	          dd                    t	          dd	          t	          d	d
          fk    sJ t          t          d           t	          dd                    t	          dd
          t	          dd	          fk    sJ t          t          d            d S )Nr!   )r!   r!   r0   )r!   r0   )r?   r   d   )eps      r>   iic                  *    t          t                    S )N)r   r   r   r   r   r   ztest_isolate.<locals>.<lambda>q   s    

 r   )r   r   Halfr   r   r   NotImplementedErrorr   r   r   test_isolaterj   g   s*   1::16??qvqv.....477v%%%%DGG8((((477C 0 0111hr26F6FQSUWHXHX5YYYYYDGG8!S!1!1222xR7H7H(SVXZJ[J[6\\\\\
 2 233333r   N)&	sympy.abcr   sympy.core.numbersr   r   sympy.core.singletonr   (sympy.functions.elementary.miscellaneousr   sympy.polysr   r	   sympy.polys.domainsr
   r   sympy.polys.matricesr   r   sympy.polys.matrices.exceptionsr   "sympy.polys.numberfields.utilitiesr   r   r   r   r   sympy.printing.lambdareprr   sympy.testing.pytestr   r-   r<   rD   rS   r[   r]   ra   rj   r   r   r   <module>rv      s         , , , , , , , , " " " " " " 9 9 9 9 9 9 - - - - - - - - & & & & & & & & 1 1 1 1 1 1 1 1 7 7 7 7 7 7              6 5 5 5 5 5 ' ' ' ' ' '
+ 
+ 
+$ $ $} } }  ,B B B$! ! !4 4 4
4 
4 
4 
4 
4r   