
    g7                         d dl 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 d dlmZ d dlmZ d dlmZ d d	lmZmZmZ d
 Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdS )    )symbols)cossin)QQZZ)Poly)NotInvertible)FiniteExtension)DomainMatrix)raises)xytc                  @   t          t          t          dz  dz   t                              j        dk    sJ t	                    dk    sJ j                                        u sJ z   d          k    sJ t          t          fd           j	        j
        fk    sJ  d          j
        k    sJ dz   d          k    sJ dz  dk    sJ dz   dz
  z  dz
  k    sJ dz   dz   d          k    sJ  d                                           d          k    sJ t          t          fd	           t          t          t          dz  t          z
  dz   t          d
                    j        dk    sJ j        } j	         d          | | dz  fk    sJ | dz  | k    sJ | dz   d          k    sJ | dz   d          k    sJ | dz  | dz   k    sJ | dz  | dz
  k    sJ | dz  | dz  | z   dz   k    sJ  t          dz  t          z                                             d| z
  k    sJ  t          dz             dz   t          dz                                             k    sJ | dz  | dz  z   d          k    sJ | dz
  d| dz  z  dz
  z  | dz  dz   k    sJ | dz
  d| dz  z  dz
  z  | dz  dz   k    sJ d| dz  dz   z  | dz  | z
  dz   k    sJ | dz  dz   dz  | dz   dz
  k    sJ t          t          fd           t          t          t          dz  t          dz  z
  t          z
  dz   t          d                    }|j        dk    sJ t	          |          dk    sJ |j        }dt          dz  t          dz  z
  t          z   dz
  z  }|t          z   |t          z
  z                                   ||          k    sJ |t          z   |t          z
  z  |z   |d          k    sJ d S )N      zZZ[x]/(x**2 + 1)c                       dz  S )N r   )is   b/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/polys/agca/tests/test_extensions.py<lambda>z&test_FiniteExtension.<locals>.<lambda>   s    ad              c                  >      d                                           S )Nr   inverse)As   r   r   z&test_FiniteExtension.<locals>.<lambda>    s    ! r   )modulus         	         ic                  >      d                                           S )Nr   r   )Fs   r   r   z&test_FiniteExtension.<locals>.<lambda>4   s    !!A$$,,.. r   T)fieldzZZ(x)[t]/(t**2 - x**3 - x + 1))r
   r   r   rankstr	generatorparentr   	TypeErrorbasisoner   NotImplementedErrorr	   r   )aKr   cr    r)   r   s       @@@r   test_FiniteExtensionr6      s   QTAXq))**A6Q;;;;q66'''''	A88::????Q3!!B%%<<<<
9llll###7quaj    1Q4415====a411R55====a42::::EAE?a!e####EA:21Q44<<>>QQqTT!!!!
 6 6 6 6777 	QTAX\1a88899A6Q;;;;	A7qqttQ1o%%%%b5A::::b5AAaDD====b5AAbEE>>>>a41q5====a41q5====a41a4!8a<1QTAX;;  AE))))1QU88b>QQq1uXX--//////b51s8qqtt####Ea1fqj!QTAX----EqAvz"adQh....adQh<1a4!8a<''''qD1Ha<AqD519$$$$
=0000111 	QTAqD[1_q0!4@@@AAA6Q;;;;q6655555	A	1a4!Q$;?QAUQUO$$&&!!A$$....EAE?1!$$$$$$r   c                     t          t          dz  dz
  t          t                    } t          t          dz  dz
  t          t                    }t	          |           }t	          |          }|t	          t          t          dz  dz
                      k    sJ |t	          t          t          dz  dz
                      k    sJ t          ||t	          |           h          dk    sJ d S )Nr   domain)r   r   r   r   r
   len)p1p2K1K2s       r   test_FiniteExtension_eq_hashr?   @   s    	adQh"	%	%	%B	adQh"	%	%	%B			B			BadQh000000adQh000000B++,--222222r   c                     t          t          t          dz  dz   t          t                              }  | t                    dz  dz
  dz  | j        k    sJ ddz  dz
  z  | j        k    sJ dz  dz
  dz
  z  dz   k    sJ dz  dz
  dz
  z  dz   k    sJ dz  dz
  dz
  z  | j        k    sJ t          t          fd           t          t          fd           t          t          fd           t          t          t          dz  dz   t          t                              }  | t                    dz  dz
  dz  | j        k    sJ t          t          fd           d S )	Nr   r   r8   r   c                       dz  dz
  dz  S )Nr   r   r   r   xfs   r   r   z*test_FiniteExtension_mod.<locals>.<lambda>T   s    r1uqyAo r   c                       g z  S Nr   rB   s   r   r   z*test_FiniteExtension_mod.<locals>.<lambda>U       b2g r   c                      g  z  S rE   r   rB   s   r   r   z*test_FiniteExtension_mod.<locals>.<lambda>V   rF   r   c                        dz  dz
   dz
  z  S )Nr   r   r   rB   s   r   r   z*test_FiniteExtension_mod.<locals>.<lambda>\   s    QrAv(> r   )
r
   r   r   r   zeror   ZeroDivisionErrorr/   r   r2   r4   rC   s    @r   test_FiniteExtension_modrL   K   s   QTAXq44455A	
1BEAI?af$$$$A	?af$$$$EAI"q&!R!V++++EAI26"b1f,,,,EAI"q&!QV++++
5555666
9oooo&&&
9oooo&&& 	QTAXq44455A	
1BEAI?af$$$$
 > > > >?????r   c                     t          t          t          dz  dz   t          t                              }  | t                    }|                     t                    |k    sJ |                     |          t          k    sJ d S )Nr   r   r8   )r
   r   r   r   
from_sympyto_sympyrK   s     r   test_FiniteExtension_from_sympyrP   _   so    QTAXq44455A	
1B<<??b    ::b>>Qr   c                     t          t          t          dz  dz   t          d                    } t          t          t          dz  dz   t          d                    }|                     t                    |k    sJ d S )Nr   r   r   r8   r   )r
   r   r   
set_domainr   )KZKQs     r   test_FiniteExtension_set_domainrU   g   sm    	adQh$777	8	8B	adQh$777	8	8B==""""""r   c                      t          t          t          dz  dz                       }  | t                    }|                     |dz  dz
  |dz
            |dz   k    sJ d S )N   r   r   )r
   r   r   exquorK   s     r   test_FiniteExtension_exquorY   m   s_    QTAX''A	
1B772q519b1f%%a//////r   c                     t          t          t          dz  dz                       } t          t                   } | t                     |t                    }}|                     |          |k    sJ |                    |          |k    sJ t          t          t          dz  dz
  t                              }|                    t          dd          t                    |j        dz  k    sJ d S Nr   r   r8   )r
   r   r   r   convertconvert_fromr1   )r=   r>   x1x2r4   s        r   test_FiniteExtension_convertr`   t   s    	adQh	(	(B	ABRUUBBqEEB::b>>R::b>>RQTAXb11122A>>"Q((B''157222222r   c            	         t          t          t          dz  dz
  t          t                              } t          t          t          dz  dz
  t          t                              }t          t          t          dz  dz
  t          t          t
                                       }t          t          t          dz  dz
  t          t          j        t
                                        }| j        du sJ |j        du sJ |j        du sJ |j        du sJ | |||fD ]                    t                    j	        z  k    sJ j	        z  k    sJ j	        z  j
        k    sJ t          t          fd           t          t          fd           t          t          fd           j        r1z  j	        k    sJ z  j	        k    sJ z  j
        k    sJ t          t          fd	           t          t          fd
           t          t          fd           d S )Nr   r   r8   TFc                       j         z  S rE   rI   r4   xKs   r   r   z4test_FiniteExtension_division_ring.<locals>.<lambda>       "qv+ r   c                       j         z  S rE   rc   rd   s   r   r   z4test_FiniteExtension_division_ring.<locals>.<lambda>   s    ", r   c                       j         z  S rE   rc   rd   s   r   r   z4test_FiniteExtension_division_ring.<locals>.<lambda>   rf   r   c                        z  S rE   r   re   s   r   r   z4test_FiniteExtension_division_ring.<locals>.<lambda>       R r   c                        z  S rE   r   rj   s   r   r   z4test_FiniteExtension_division_ring.<locals>.<lambda>   s    b r   c                        z  S rE   r   rj   s   r   r   z4test_FiniteExtension_division_ring.<locals>.<lambda>   rk   r   )r
   r   r   r   r   r   
frac_fieldis_Fieldr\   r1   rI   r   rJ   r2   )rT   rS   KQtKQtfr4   re   s       @@r   "test_FiniteExtension_division_ringrr      s^   	adQh"555	6	6B	adQh"555	6	6B
$q!tax2a5999
:
:C41q!BM!4D4DEEEFFD;$;%<5    =D    S$ 9 9YYq\\AEzRQU{b    AEzQV#### "5"5"5"5"5666 "6"6"6"6"6777 "5"5"5"5"5666: 	97ae####8qu$$$$7af$$$$$&888&(8(8(8(8999&88889 9r   c                     t          t          t          dz  dz
                      } t          t          t          |           }|j        | k    sJ |                                t          k    sJ |dz                                  dk    sJ t          t          t          dz  dz
  t          t                              } t          t          t          dz  dz
  t          |                     }t          |          dk    sJ |	                    t          t          z             }|
                    |          t          t          z   k    sJ |
                    |dz            ddt          z  t          z  z   k    sJ t          t          t          z   t          |          }|dz  t          ddt          z  t          z  z   t          |          k    sJ d S )Nr   r8   zQQ[x]/(x**2 - 2)[t]/(t**2 - 2)rW   )r
   r   r   r   r9   as_exprr   r   r,   r\   rO   )r4   pr>   eKs       r   test_FiniteExtension_Polyrw      s   QTAX''AQ!A8q====99;;!qD>>q    QTAXq44455A	adQh!444	5	5Br7766666	AE		B;;r??a!e####;;rQw1qs1u9,,,,QUAb!!!Aa44AaCE	1R000000000r   c                  X  	
 t          d          \  } 	
t          	          t          
          z  | t          	          z  t          
          z  |  t          	          z  t          
          z  gt          	          t          
          z  | t          	          z  t          
          z  | t          	          z  t          
          z  gt          	          |  t          	          z  dgg}	
fd} |t          |                    } |t                    |          }||fD ]ufd|D             }t	          |d          }|                                d         j         dz  z  }|                    | dz  t          	          z            k    sJ vd S )	Nzrho, phi, thetar   c           
         t          t          t                    dz  t                    dz  z   dz
  t                    | t                                                 } t          t          t                    dz  t                    dz  z   dz
  t                    | t                                                 } | S r[   )r
   r   r   r   )r4   ru   r   s    r   make_extensionz<test_FiniteExtension_sincos_jacobian.<locals>.make_extension   s    DQ3q6619!4Q!6AqQyQQQRRDQ3q6619!4Q!6AqQyQQQRRr   c                 ,    g | ]}fd |D             S )c                 :    g | ]}                     |          S r   )r\   ).0er4   s     r   
<listcomp>zCtest_FiniteExtension_sincos_jacobian.<locals>.<listcomp>.<listcomp>   s#    111qyy||111r   r   )r}   rowr4   s     r   r   z8test_FiniteExtension_sincos_jacobian.<locals>.<listcomp>   s.    FFFc1111S111FFFr   )r   r   r   r   r   )r   r   r   r   r   charpolyr1   r\   )relementsrz   Ksc1Ksc2
elements_KJdetr4   ru   r   s           @@@r   $test_FiniteExtension_sincos_jacobianr      s    '((GAq!	QA#a&&Q!CFF3q66)9:	QA#a&&Q!CFF(3q66/:AqbQi:H     
 >"Q%  D>"a DD\ - -FFFFXFFF
VQ//jjll215&1,aii1SVV,,,,,,,	- -r   N) sympy.core.symbolr   (sympy.functions.elementary.trigonometricr   r   sympy.polysr   r   sympy.polys.polytoolsr   sympy.polys.polyerrorsr	   sympy.polys.agca.extensionsr
   sympy.polys.domainmatrixr   sympy.testing.pytestr   	sympy.abcr   r   r   r6   r?   rL   rP   rU   rY   r`   rr   rw   r   r   r   r   <module>r      sc   % % % % % % ? ? ? ? ? ? ? ?         & & & & & & 0 0 0 0 0 0 7 7 7 7 7 7 1 1 1 1 1 1 ' ' ' ' ' '          /% /% /%d3 3 3@ @ @(  # # #0 0 0	3 	3 	39 9 981 1 1$- - - - -r   