
    sg7                         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y)    )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
                  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k7  sJ dz   dz
  z  dz
  k(  sJ dz   dz   d      k(  sJ  d      j                          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         j                         d| z
  k(  sJ  t        dz         dz   t        dz         j                         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  j                          ||      k(  sJ |t        z   |t        z
  z  |z   |d      k(  sJ y )N      zZZ[x]/(x**2 + 1)c                       dz  S )N r   )is   Y/var/www/html/venv/lib/python3.12/site-packages/sympy/polys/agca/tests/test_extensions.py<lambda>z&test_FiniteExtension.<locals>.<lambda>   s    ad              c                  0      d      j                         S )Nr   inverse)As   r   r   z&test_FiniteExtension.<locals>.<lambda>    s    ! r   )modulus         	         ic                  0      d      j                         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66Q;;q6''''	A88:??Q3!B%<<
9l#77quuaj   Q4155==a41R5==a42::EAE?a!e###EA:2Q4<<>QqT!!!
 67 	QTAX\1a89A66Q;;	A77qtQ1o%%%b5A::b5AaD==b5AbE>>a41q5==a41q5==a41a4!8a<QTAX; AE)))QU8b>Qq1uX--////b51s8qt###Ea1fqj!QTAX---EqAvz"adQh...adQh<1a4!8a<'''qD1Ha<AqD519$$$
=01 	QTAqD[1_q0!4@AA66Q;;q65555	A	1a4!Q$;?QAUQUO$$&!A$...EAE?1!$$$r   c                  t   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
              k7  sJ t        ||t	        |       h      dk(  sJ y )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adQh0000B+,-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       y )	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5A	
1BEAI?aff$$$A	?aff$$$EAI"q&!R!V+++EAI26"b1f,,,EAI"q&!QVV+++
56
9o&
9o& 	QTAXq45A	
1BEAI?aff$$$
 >?r   c                      t        t        t        dz  dz   t        t                    }  | t              }| j	                  t              |k(  sJ | j                  |      t        k(  sJ y )Nr   r   r8   )r
   r   r   r   
from_sympyto_sympyrK   s     r   test_FiniteExtension_from_sympyrP   _   sR    QTAXq4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            }| j                  t              |k(  sJ y )Nr   r   r   r8   r   )r
   r   r   
set_domainr   )KZKQs     r   test_FiniteExtension_set_domainrU   g   sO    	adQh$7	8B	adQh$7	8B=="""r   c                      t        t        t        dz  dz               }  | t              }| j                  |dz  dz
  |dz
        |dz   k(  sJ y )N   r   r   )r
   r   r   exquorK   s     r   test_FiniteExtension_exquorY   m   sJ    QTAX'A	
1B772q519b1f%a///r   c                     t        t        t        dz  dz               } t        t           } | t               |t              }}| j	                  |      |k(  sJ |j	                  |      |k(  sJ t        t        t        dz  dz
  t                    }|j                  t        dd      t              |j                  dz  k(  sJ y 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UBqEB::b>R::b>RQTAXb12A>>"Q(B'1557222r   c            	      P   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 ]  j                  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                  r=z  j                  k(  sJ z  j                  k(  sJ z  j                  k(  rJ t        t        fd	       t        t        fd
       t        t        fd        y )Nr   r   r8   TFc                  "     j                   z  S rE   rI   r4   xKs   r   r   z4test_FiniteExtension_division_ring.<locals>.<lambda>       "qvv+ 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	6B	adQh"5	6B
$q!tax2a59
:C41q!BMM!4DEFD;;$;;%<<5   ==D   S$ 9YYq\AEEzRQUU{b   AEEzQVV### "56 "67 "56::7aee###8quu$$$7aff$$$&8&(89&89r   c                  
   t        t        t        dz  dz
              } t        t        t        |       }|j                  | k(  sJ |j                         t        k(  sJ |dz  j                         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 |j                  t        t        z         }|j                  |      t        t        z   k(  sJ |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 y )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      s8   QTAX'AQ!A88q==99;!qD>>q   QTAXq45A	adQh!4	5Br76666	AE	B;;r?a!e###;;rQw1qs1u9,,,QUAb!Aa44AaCE	1R0000r   c                     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 ]  }|D cg c]!  }|D cg c]  }|j	                  |       c}# }}}t        |d|      }	|	j                         d   |j                   dz  z  }
|
|j	                  | dz  t              z        k(  rJ  y c c}w c c}}w )Nzrho, phi, thetar   c           
      0   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   sz    DQ3q619!4Q!6AqQyQRDQ3q619!4Q!6AqQyQRr   )r   r   r   r   r   )r   r   r   r   r\   r   charpolyr1   )relementsrz   Ksc1Ksc2r4   rowe
elements_KJdetru   r   s              @@r   $test_FiniteExtension_sincos_jacobianr      sW    '(GAq!	QA#a&Q!CF3q6)9:	QA#a&Q!CF(3q6/:AqbQi:H
 "Q% D"a DD\ -=EFcS1qyy|1F
FVQ/jjl2155&1,aii1SV,,,,	-1Fs   1	E8:E3E83E8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      sW    % ?  & 0 7 1 '  /%d3@(#0	3981$-r   