
    Og                     N   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Zd dlmZ d dlmZ d d	lmZ d
 eg de       eg de       ed      fd edgge       edgge       ed      fd edd gd dgge       edd gd dgge       ed      fd eddgddgge       eddgddgge       ed      fd eg dg dg dge       eg dg dg dge       ed      fd eg dg dg d ge       eg d!g d"g d!ge       ed       fgZej(                  j+                  d#e      d$        Zej(                  j+                  d#e      d%        Zej(                  j+                  d#e      d&        Zej(                  j+                  d#e      d'        Zej(                  j+                  d#e      d(        Zej(                  j+                  d#e      d)        Zej(                  j+                  d#e      d*        Zej(                  j+                  d#e      d+        Zd, Zy)-    )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                     fd}j                   }j                         j                         |j                        z   |        dD ]  } ||        y )Nc                  j     dk7  r j                   di  k(  sJ y t        t         fd       y )Nr   c                  (      j                   di S )N inv)Akwargss   n/var/www/html/suriana-translation/venv/lib/python3.12/site-packages/sympy/polys/matrices/tests/test_inverse.py<lambda>z1test_Matrix_inv.<locals>._check.<locals>.<lambda>S   s    UQUU_V_     r#   )r%   r   r
   )r'   r&   A_invdens   `r(   _checkztest_Matrix_inv.<locals>._checkO   s0    !8155?6?e++++-DEr*   )GELUADJCHLDLQRmethod)domain	to_Matrixto_sympy)namer&   r+   r,   r-   Kr5   s    ```   r(   test_Matrix_invr;   L   sT    F 	
A	AOO

3/E
H8 fr*   c                     |dk7  r9j                         \  }}|j                  |      |j                  |      k(  sJ y t        t        fd       y )Nr   c                  $     j                         S N)inv_denr&   s   r(   r)   z!test_dm_inv_den.<locals>.<lambda>c   s    199; r*   )r?   cancel_denomr   r	   )r9   r&   r+   r,   A_inv_fden_fs    `    r(   test_dm_inv_denrD   ]   sI    
ax##E*e.@.@.EEEE)+>?r*   c                     j                         |dk7  r)|j                         |z  }j                         |k(  sJ y t        t        fd       y )Nr   c                  $     j                         S r>   r$   r@   s   r(   r)   ztest_dm_inv.<locals>.<lambda>m       1557 r*   )to_fieldr%   r   r	   r9   r&   r+   r,   s    `  r(   test_dm_invrJ   f   sE    	

A
ax 3&uuw%)?;r*   c                     j                         j                         |dk7  r7|j                         |z  j                         }j                         |k(  sJ y t        t        fd       y )Nr   c                  $     j                         S r>   r$   r@   s   r(   r)   ztest_ddm_inv.<locals>.<lambda>w   rG   r*   )rH   to_ddmr%   r   r	   rI   s    `  r(   test_ddm_invrN   p   W    	

A
ax!C'//1uuw%)?;r*   c                     j                         j                         |dk7  r7|j                         |z  j                         }j                         |k(  sJ y t        t        fd       y )Nr   c                  $     j                         S r>   r$   r@   s   r(   r)   ztest_sdm_inv.<locals>.<lambda>   rG   r*   )rH   to_sdmr%   r   r	   rI   s    `  r(   test_sdm_invrS   z   rO   r*   c                 :   j                         j                         j                         j                  j                         |dk7  r6|j                         |z  j                         }t	               |k(  sJ y t        t        fd       y )Nr   c                      t               S r>   r   )r&   A_resultr:   s   r(   r)   z%test_dense_ddm_iinv.<locals>.<lambda>   s    8Ha3K r*   )rH   rM   copyr6   r   r   r	   )r9   r&   r+   r,   rV   r:   s    `  @@r(   test_dense_ddm_iinvrX      s{    	

""$A	AvvxH
ax!C'//11a 5   )+KLr*   c                     |j                         }|j                         }|j                         |k(  sJ dD ]  }|j                  |      |k(  rJ  y )N)bareiss	berkowitzbirdlaplacelur4   )r7   adjugate)r9   r&   r+   r,   r5   s        r(   test_Matrix_adjugater`      sU    	AOOE::<5   C 2zzz(E1112r*   c                 2    |j                         ||fk(  sJ y r>   )adj_detrI   s       r(   test_dm_adj_detrc      s    99;5#,&&&r*   c            	         t        t        dz
  ddgdt        dz
  dgddt        d	z
  gg      } t        d
t        dz  z  dt        z  z
  dz   dt        z  dz   dt        z  dz
  gdt        z  dz
  d
t        dz  z  dt        z  z
  dz   dt        z  dz
  gdt        z  dz   dt        z  dz
  d
t        dz  z  dt        z  z
  dz   gg      }d
t        dz  z  dt        dz  z  z
  d t        z  z   d!z
  }||z  }| j                         }|j                         }|j	                         \  }}|j	                         \  }}	| j                         |j                         |z  j                         |j                         |	z  j                         |j                         |j                         z  |j                         |	j                         z  g}
|
D ]@  }t        |j                         |j                               D ]  \  }}t        ||      rJ  B y )"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_denser?   r%   rH   r7   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_inexactrx      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	aB779DMMOEHh ==?Iy 	
				x	'224						)446x//11	 1 1 33E  'DIIK3 	'HCS#&&&	''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;   rD   rJ   rN   rS   rX   r`   rc   rx   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*   