
    \h                     N   S SK JrJr  S SKJrJr  S SKJr  S SKJ	r	  S SK
Jr  S SKrS SKJr  S SKJr  S S	KJr  S
\" / S\5      \" / S\5      \" S5      4S\" S//\5      \" S//\5      \" S5      4S\" SS /S S//\5      \" SS /S S//\5      \" S5      4S\" SS/SS//\5      \" SS/SS//\5      \" S5      4S\" / SQ/ SQ/ SQ/\5      \" / SQ/ SQ/ SQ/\5      \" S5      4S\" / SQ/ SQ/ S Q/\5      \" / S!Q/ S"Q/ S!Q/\5      \" S 5      4/r\R(                  R+                  S#\5      S$ 5       r\R(                  R+                  S#\5      S% 5       r\R(                  R+                  S#\5      S& 5       r\R(                  R+                  S#\5      S' 5       r\R(                  R+                  S#\5      S( 5       r\R(                  R+                  S#\5      S) 5       r\R(                  R+                  S#\5      S* 5       r\R(                  R+                  S#\5      S+ 5       rS, rg)-    )ZZMatrix)DMDomainMatrixddm_iinv)DMNonInvertibleMatrixError)NonInvertibleMatrixErrorN)raises)	all_close)xzz_1)r   r      zz_2   zz_3   zz_4   zz_5)r   r   r   )r   r   r   )r   r   r   )r   r   )r   r   r   )r   r   r      zz_6)r   r   r   )r         )   r   	   )r   r   r   )r   ir   zname, A, A_inv, denc                    ^^^ UUU4S jnTR                   nTR                  5       mTR                  5       UR                  T5      -  mU" 5         S H	  nU" US9  M     g )Nc                  p   >^  TS:w  a  TR                   " S0 T D6T:X  d   eg [        [        UU 4S j5        g )Nr   c                  (   > T R                   " S0 TD6$ )N inv)Akwargss   _/var/www/auris/envauris/lib/python3.13/site-packages/sympy/polys/matrices/tests/test_inverse.py<lambda>1test_Matrix_inv.<locals>._check.<locals>.<lambda>S   s    QUU_V_    r#   )r%   r   r
   )r'   r&   A_invdens   `r(   _checktest_Matrix_inv.<locals>._checkO   s.    !855?6?e++++-DEr+   )GELUADJCHLDLQRmethod)domain	to_Matrixto_sympy)namer&   r,   r-   r.   Kr7   s    ```   r(   test_Matrix_invr=   L   sO    F 	
A	AOO

3/E
H8f 9r+   c                    ^ US:w  a9  TR                  5       u  pEUR                  U5      UR                  U5      :X  d   eg [        [        U4S j5        g )Nr   c                  $   > T R                  5       $ N)inv_denr&   s   r(   r)   !test_dm_inv_den.<locals>.<lambda>c   s    199;r+   )rA   cancel_denomr   r	   )r;   r&   r,   r-   A_inv_fden_fs    `    r(   test_dm_inv_denrG   ]   sG    
ax##E*e.@.@.EEEE)+>?r+   c                    ^ TR                  5       mUS:w  a*  UR                  5       U-  nTR                  5       U:X  d   eg [        [        U4S j5        g )Nr   c                  $   > T R                  5       $ r@   r$   rB   s   r(   r)   test_dm_inv.<locals>.<lambda>m       1557r+   )to_fieldr%   r   r	   r;   r&   r,   r-   s    `  r(   test_dm_invrN   f   sE    	

A
ax 3&uuw%)?;r+   c                    ^ TR                  5       R                  5       mUS:w  a8  UR                  5       U-  R                  5       nTR                  5       U:X  d   eg [        [        U4S j5        g )Nr   c                  $   > T R                  5       $ r@   r$   rB   s   r(   r)   test_ddm_inv.<locals>.<lambda>w   rK   r+   )rL   to_ddmr%   r   r	   rM   s    `  r(   test_ddm_invrS   p   W    	

A
ax!C'//1uuw%)?;r+   c                    ^ TR                  5       R                  5       mUS:w  a8  UR                  5       U-  R                  5       nTR                  5       U:X  d   eg [        [        U4S j5        g )Nr   c                  $   > T R                  5       $ r@   r$   rB   s   r(   r)   test_sdm_inv.<locals>.<lambda>   rK   r+   )rL   to_sdmr%   r   r	   rM   s    `  r(   test_sdm_invrY   z   rT   r+   c                 @  ^^^ TR                  5       R                  5       R                  5       mTR                  mTR                  5       mUS:w  a7  UR                  5       U-  R                  5       n[	        TTT5        TU:X  d   eg [        [        UUU4S j5        g )Nr   c                     > [        TT T5      $ r@   r   )r&   A_resultr<   s   r(   r)   %test_dense_ddm_iinv.<locals>.<lambda>   s    8Ha3Kr+   )rL   rR   copyr8   r   r   r	   )r;   r&   r,   r-   r\   r<   s    `  @@r(   test_dense_ddm_iinvr_      s{    	

""$A	AvvxH
ax!C'//11a 5   )+KLr+   c                     UR                  5       nUR                  5       nUR                  5       U:X  d   eS H  nUR                  US9U:X  a  M   e   g )N)bareiss	berkowitzbirdlaplacelur6   )r9   adjugate)r;   r&   r,   r-   r7   s        r(   test_Matrix_adjugaterg      sQ    	AOOE::<5   Czzz(E111 Dr+   c                 2    UR                  5       X#4:X  d   eg r@   )adj_detrM   s       r(   test_dm_adj_detrj      s    99;5,&&&r+   c            	      "   [        [        S-
  SS/S[        S-
  S/SS[        S	-
  //5      n [        S
[        S-  -  S[        -  -
  S-   S[        -  S-   S[        -  S-
  /S[        -  S-
  S
[        S-  -  S[        -  -
  S-   S[        -  S-
  /S[        -  S-   S[        -  S-
  S
[        S-  -  S[        -  -
  S-   //5      nS
[        S-  -  S[        S-  -  -
  S [        -  -   S!-
  nX-  nU R                  5       nUR                  5       nUR	                  5       u  pgUR	                  5       u  pU R                  5       UR                  5       U-  R                  5       UR                  5       U	-  R                  5       UR                  5       UR                  5       -  UR                  5       U	R                  5       -  /n
U
 HF  n[        UR                  5       UR                  5       5       H  u  p[        X5      (       a  M   e   MH     g )"Ng333333?gQg)\(̿gq=
ףpݿgQ?g=
ףp=ڿgQg(\ؿg{Gz?g      ?r   gQ?gгY?gQ?g0*D?g)\(?g#~j?gq=
ףp?gtV?gGz?g3?g=
ףp=?g46<R?gQ?gw#?g(\?g>yX5ͻ?g(\?g\ Ac̽?r   gQ?goŏ1?g0?)r   r   to_DMto_denserA   r%   rL   r9   as_exprzipflatr   )MMndMiM_dmM_dmdM_dm_numM_dm_den	M_dmd_num	M_dmd_denMinvsMinvMi1Mi2s                 r(   test_inverse_inexactr      s   3u%$&qv&( 	)A 
#ad(T!V#f,d1fvotAv~Nq&5.#ad(T!V"3f"<d1fvoNq&6/46F?C1HtAv4E4NOQ 
RB 	AqD419vax'*<<A	B779DMMOEH ==?I 	
				x	'224						)446x//11	 1 1 33E DIIK3HCS&&&& 4 r+   )sympyr   r   sympy.polys.matricesr   r   sympy.polys.matrices.denser   sympy.polys.matrices.exceptionsr	   sympy.matrices.exceptionsr
   pytestsympy.testing.pytestr   sympy.core.numbersr   	sympy.abcr   INVERSE_EXAMPLESmarkparametrizer=   rG   rN   rS   rY   r_   rg   rj   r   r#   r+   r(   <module>r      s    1 / F >  ' (  	R$R$
1	 	
QC5"
QC5"
1	 	
QFF	
QFF	
1 	
QFF	
aH!H	
2 	
I	 	J	 	1	 	
I	 	M	  	1	[7 t .0@A B  .0@A@ B@ .0@A< B< .0@A< B< .0@A< B< .0@A	M B	M .0@A2 B2 .0@A' B'"'r+   