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

3/E
FHHH8  f r*   c                     |dk    rG                                 \  }}|                    |          |                    |          k    sJ d S t          t          fd           d S )Nr   c                  ,                                      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   ]   sq    
axx##E**e.@.@.E.EEEEEEE)+>+>+>+>?????r*   c                                                      |dk    r3|                                 |z  }                                |k    sJ d S t          t          fd           d S )Nr   c                  ,                                      S r>   r$   r@   s   r(   r)   ztest_dm_inv.<locals>.<lambda>m       15577 r*   )to_fieldr%   r   r	   r9   r&   r+   r,   s    `  r(   test_dm_invrJ   f   si    	

A
axx  3&uuww%)????;;;;;r*   c                                                                                     |dk    rE|                                 |z                                  }                                |k    sJ d S t          t          fd           d S )Nr   c                  ,                                      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       	

A
axx!!C'//11uuww%)????;;;;;r*   c                                                                                     |dk    rE|                                 |z                                  }                                |k    sJ d S t          t          fd           d S )Nr   c                  ,                                      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                 z                                                                                                    j                                        |dk    rD|                                 |z                                  }t	                     |k    sJ d S t          t          fd           d S )Nr   c                  &    t                     S r>   r   )r&   A_resultr:   s   r(   r)   z%test_dense_ddm_iinv.<locals>.<lambda>   s    8Ha3K3K r*   )rH   rM   copyr6   r   r   r	   )r9   r&   r+   r,   rV   r:   s    `  @@r(   test_dense_ddm_iinvrX      s    	

""$$A	AvvxxH
axx!!C'//111a   5      )+K+K+K+K+K+KLLLLLr*   c                     |                                 }|                                 }|                                |k    sJ dD ]}|                    |          |k    sJ d S )N)bareiss	berkowitzbirdlaplacelur4   )r7   adjugate)r9   r&   r+   r,   r5   s        r(   test_Matrix_adjugater`      sr    	AOOE::<<5    C 2 2zzz((E111112 2r*   c                 >    |                                 ||fk    sJ d S 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  }|                                 }|                                }|                                \  }}|                                \  }}	|                                 |                                |z                                  |                                |	z                                  |                                |                                z  |                                |	                                z  g}
|
D ]N}t          |
                                |
                                          D ]\  }}t          ||          sJ Od S )"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      sS   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 
RB 	AqD419vax'*<<A	aB7799DMMOOEHh ==??Iy 	
					x	'2244							)4466x//111	 1 1 3 33E  ' 'DIIKK3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      sa           1 1 1 1 1 1 1 1 / / / / / / F F F F F F > > > > > >  ' ' ' ' ' ' ( ( ( ( ( (       	R$$R$$
1	 	
QC5"
QC5"
1	 	
QFF	 	
QFF	 	
1 	
QFF	 	
aH!H	 	
2 	
IIIIIII	 	 	JJJJJJJ	 	 	1	 	
IIIIIII	 	 	MMMMMMM	  	  	1	[7 t .0@AA  BA  .0@AA@ @ BA@ .0@AA< < BA< .0@AA< < BA< .0@AA< < BA< .0@AA	M 	M BA	M .0@AA2 2 BA2 .0@AA' ' BA'"' "' "' "' "'r*   