
    gX%                        d dl Z d dlZd dlmZ d dlmZ d dlmZmZ d dlm	Z	 d dl
mZ d dlmZmZmZ d dlmZmZmZ d d	lmZ d d
lmZ d dlmZmZ ej                            dej        ej        ej        ej         ej!        g          ej                            d e            df ed gg          d f edgg          dfg          d                         Z"ej                            dg d          ej                            d ed          df eedfedez  ff          dez  ez  ez
  f ed          df ed          df ed          d f ed          df ed          df ed          d f ed          df ed           d!f ed"          d#f ed$          d%f eeeefd&eeeff          edz  eez  z
  fg          d'                         Z#d( Z$d) Z%ej                            dg d*          ej                            d ed          df ed"          d#fg          d+                         Z&d, Z'd- Z(d. Z)d/ Z*d0 Z+d1 Z,d2 Z-d3 Z.dS )4    N)I)Rational)Symbolsymbols)sqrt)Poly)Matrixeyeones)xyz)raises)NonSquareMatrixError)	factorialsubfactorialmethodzM, sol      c                 (     | |          |k    sJ d S N r   Msols      a/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/matrices/tests/test_determinant.pytest_eval_determinantr      s#     6!99    )	domain-gebareiss	berkowitzbirdlaplacelu))   )   r&   ))r   r   r   r   r&      )r   r+      ))r+   r   r   )r-   r   r-   r&   r   r-   r   r   r   r   r+      i)r   r&   r+   r0   )r   r,      r'   )	   
                     )r+   r&   r   r   r   r   r+   r&   r   r   r   r   r+   r&   r   r   r   r   r+   r&   )r&   r   r   r   r+   i  ))r+   r   r   r   )r-   r   r   r   r.   r/   <   ))r   r   r   r   )r   r   r   r   )r3   r4   r5   r   r7   )r<   r=   r>   r?   )r   r   r   r   r+      ))r   r   r   r&   r6   )r&   r   r   r   r0   )r&   r   r   r)   r+   )r+   r&   r)   r   r'   )r   r   r   r   r,   i))r(   r&   r+   r0   r   )r   r+   r0   r   )r   r&   r%   r0   r   )r   r&   r+   r-   r   )r   r&   r+   r0   r)   i-  ))r&   r2   r)   r+   r&   )r   r   r   r   r   )r-   r   r2   r   r&   )r%   r-   r0   r   r+   )r   r   r   r   r   {   )r   r   r   c                 >    |                     |           |k    sJ d S Nr   detr   s      r   test_determinantrI      s*    p 5553&&&&&&r   c                     t          d          fd}  | d                                          dk    sJ  | d                                          dk    sJ  | d                                          dk    sJ d S )Nac                 X     t           fdt                     D                       S )Nc                 J    g | ]fd t                    D             S )c                      g | ]
}|z  z   S r   r   ).0irK   js     r   
<listcomp>zAtest_issue_13835.<locals>.<lambda>.<locals>.<listcomp>.<listcomp>Z   s!    555q1qs7555r   )range)rO   rQ   rK   ns    @r   rR   z6test_issue_13835.<locals>.<lambda>.<locals>.<listcomp>Z   sG     - - - 65555E!HH555 - - -r   )r	   rS   )rT   rK   s   `r   <lambda>z"test_issue_13835.<locals>.<lambda>Z   sC    & - - - - -#(88- - - . . r   r   r   r,   r2   )r   rH   )r   rK   s    @r   test_issue_13835rV   X   s    A	. 	. 	. 	.A1Q4488::????1Q4488::????1Q4488::??????r   c                     t          ddt          z  dt          z  dgdt          z  dddt          z  gdt          z  dddt          z  z   dt          z  gddt          z  dt          z  ddt          z  z   gg          } |                                 }t          j        t          |                                                    }| |t          d          z  z
                                  dk    sJ d S )Nr   r4   r   r&   r0   )	r	   r   	eigenvalsrandomchoicelistkeysr
   rH   )r   evtest_evs      r   test_issue_14517r_   a   s    r!t1A&	A!1A&	A!Q1WA&r!t1a!A#g&	( 	) 	)A
 
BmDOO,,GA##%%******r   )bareisdet_ludet_LUBareisBAREISS	BERKOWITZLUc                 >    |                     |           |k    sJ d S rE   rG   r   s      r   test_legacy_detrh   m   s)      5553&&&&&&r   c                 &    t          | | d           S )Nc                 (    t          | |k              S r   )intrP   rQ   s     r   rU   z!eye_Determinant.<locals>.<lambda>   s    Sa[[ r   r	   rT   s    r   eye_Determinantro      s    !Q00111r   c                 &    t          | | d           S )Nc                     dS Nr   r   rl   s     r   rU   z#zeros_Determinant.<locals>.<lambda>   s    Q r   rm   rn   s    r   zeros_Determinantrs      s    !Q'''r   c                  z   t          ddg d          t          t          fd           t          d          } t	          d          } | j                    dk    sJ |                                dk    sJ t          d          }t          ddg           t          dddg          }t          ddg d	          }t          ddg d
          }t          dd|dddddddddddddddg          ddlm}m	}m
}m}	m}
m} t          dd||	|
d||dd|g	          }t          dd|dd|	|d|
||g	          }t          dd|dz  dd||dz  d|||dz  g	          }                                dk    sJ |                                dk    sJ |                                dk    sJ |                                dk    sJ                                 d|z  dz
  k    sJ                     d          d|z  dz
  k    sJ                     d          d|z  dz
  k    sJ                     d          d|z  dz
  k    sJ |                                ||z  |z  k    sJ |                                ||z  |z  k    sJ |                                dk    sJ t          t          fd           d S )Nr&   r+   r   r&   r+   r0   r   r,   c                  ,                                      S r   rG   rK   s   r   rU   ztest_det.<locals>.<lambda>   s     r   r   r   r   r   r1   )	r   r&   r+   r0   r   r,   r2   r'   r'   r0   r,   r2   r3   r4   r5   r6   r8   r9   )rP   rQ   klmrT   r)   r-      r   rF   r    r!   c                  0                          d          S )Ntest)
iszerofuncrG   es   r   rU   ztest_det.<locals>.<lambda>   s    quuu77 r   )r	   r   r   rs   ro   rH   r   	sympy.abcrP   rQ   rx   ry   rz   rT   
ValueError)r   eyr   bcdrP   rQ   rx   ry   rz   rT   fghrK   r   s                  @@r   test_detr      s   q!'''((A
111!A			B1577a<<<<6688q====sAq!RAq!aSAq!\\\""Aq!00011Aq!	
Aq!Q1aAr2r2r2>	@ 	@A****************q!aAq!Q1a011Aq!aAq!Q1a011Aq!adAq!QUAq!QU;<<A 5577a<<<<5577a<<<<5577b====5577a<<<<5577acBh555$$!b000055	5""acBh....555$$!b00005577ac!e5577ac!e5577a<<<<
:777788888r   c                  :   t          g dg dg dg          } |                                 dk    sJ t          dd          D ]}t          ||                                          t          ||          j                                        cxk    rt          |          k    sn J t          ||          t          |          z
                                  t          ||          t          |          z
  j                                        cxk    rt          |          k    sn J t          d          \  }}}}}t          |||||g          } |                                 | j                                        cxk    r||z   |z   |z   |z   k    sn J d S )Nr*   r0   r   r,   r2   r'   r3   i  r   r6   za_1 a_2 a_3 a_4 a_5)	r	   perrS   r   Tr   r
   r   r   )r   rP   a1a2a3a4a5s          r   test_permanentr      s   			999iii011A5577c>>>>1b\\ [ [Aqzz~~41::<#3#3#5#5EEEE1EEEEEEQ

3q66!&&((T!QZZA->,A,E,E,G,GZZZZ<XY??ZZZZZZZ !677BBBBB#$$A5577acggii999927R<"#4r#999999999r   c                  z   t          d          } t          dd| ddddddddd	d
dddddg          }t          g ddd| z  dz
  d| z  dz
  d| z  dz   gdd| z  dz   d| z  dz   d| z  dz
  gdd| z  dz
  d| z  d| z  dz   gg          }|                                |k    sJ |                    d          |k    sJ |                    d          |k    sJ |                    d          |k    sJ |                    d           |k    sJ t          ddg d!          t          t          fd"           d S )#Nr   r0   r   r&   r+   r   r,   r2   r3   r4   r5   r6   r8   r9   )r0   r0   r   L   D   r'   rB   r{         0   H   r    rF   r!   r"   r#   ru   c                  ,                                      S r   )adjugaterw   s   r   rU   ztest_adjugate.<locals>.<lambda>   s     r   )r   r	   r   r   r   )r   r   adjrK   s      @r   test_adjugater      s   sAq!	
Aq!Q1aAr2r2r2>	@ 	@A 000s1urzBqD1HbdRi0	r!tcz3q519qsRx01r	1bdRi0	2 3 3C
 ::<<3::Y:''3....::[:))S0000::V:$$++++::Y:''3....q!'''((A
!5!5!5!566666r   c            
         t           } t          ddg d          }t          ddg d          }|                                t          d          k    sJ |                    |          t          dd | d          dz   | d          dz   | d	          d
z  g          k    sJ t          j        dd          t          ddddg          k    sJ t          dd          t          ddddg          k    sJ |                                |k    sJ t          d          t          d          	                                k    sJ t          g dg dg dg          }|	                                t          g dg dg dg          k    sJ t          g dg dg dg          }|	                                t          g dg dg dg          k    sJ d S )Nr   r+   r*   )r+   r0   r   r9   '      4   r8   r   r&   r   )r   r+   r&   )r&   r,   r+   )r&   r+   r,   )   r   )r&   r+   )r%   r   r   r   r   )r%   r,   r%   )r,   r   r,   )
r   r	   normr   projectzerosr   copyr
   cofactor_matrix)Rv1v2r}   s       r   	test_utilr      s   A	1iii	 	 B	1iii	 	 B7799R    ::b>>VAq11R558QQrUU2XqquuQw*GHHHHHH<11q!f!5!555551::1q!f------7799????q66SVV++------999iii344D!!kkk:::6778 8 8 8999iii344D!![[[+++6778 8 8 8 8 8r   c                  L   t          d          } t          dd| ddddddddd	d
dddddg          t          | ddgg dg dg          }t          g ddd| z  dz
  d| z  dz   d| z  dz
  gdd| z  dz
  d| z  dz   d| z  gdd| z  dz   d| z  dz
  d| z  dz   gg          }t          | ddgg dg dg          }                    dd          |k    sJ                     d d           |k    sJ                     dd          d!| z  dz
  k    sJ                     dd          d| z  dz   k    sJ                                 |k    sJ                     d"#          |k    sJ                     d$#          |k    sJ                     d%#          |k    sJ                     d&#          |k    sJ t          t          fd'           t          t          fd(           t          t          fd)           t          ddg d*                              dd          t          ddgg          k    sJ t          t          d+            t          t          fd,           t          t          fd-           t          t          fd.           d S )/Nr   r0   r   r&   r+   r   r,   r2   r3   r4   r5   r6   r8   r9   )r&   r3   r5   )r6   r8   r9   )r0   r   r   r   r   r   r   r   r   rB   r   r'   r   r   r{   r   r   )r&   r3   r4   r)   ir    rF   r!   r"   r#   c                  0                          dd          S Nr0   r   cofactorr   s   r   rU   z*test_cofactor_and_minors.<locals>.<lambda>   s    qzz!Q// r   c                  0                          dd          S r   minorr   s   r   rU   z*test_cofactor_and_minors.<locals>.<lambda>   s    qwwq!}} r   c                  0                          dd          S r   )minor_submatrixr   s   r   rU   z*test_cofactor_and_minors.<locals>.<lambda>   s    q00A66 r   ru   c                  L    t          ddg                               dd          S rr   )r	   r   r   r   r   rU   z*test_cofactor_and_minors.<locals>.<lambda>   s&    q!R((A.. r   c                  0                          dd          S rr   r   rw   s   r   rU   z*test_cofactor_and_minors.<locals>.<lambda>  s    Aq)9)9 r   c                  0                          dd          S rr   r   rw   s   r   rU   z*test_cofactor_and_minors.<locals>.<lambda>  s    A r   c                  ,                                      S r   )r   rw   s   r   rU   z*test_cofactor_and_minors.<locals>.<lambda>  s    ):):)<)< r   )	r   r	   r   r   r   r   r   r   r   )r   rz   cmsubrK   r   s       @@r   test_cofactor_and_minorsr      sh   sAq!	
Aq!Q1aAr2r2r2>	@ 	@A 	
a! 	 	A 
///	SURZARTBY/
r!tax#a%!)1Q3/
bdRi1Q38RTBY/	1 
2 
2B
 AJJJJJ  C
 Q""a''''R$$++++771a==CECK''''::ar!tcz))))"$$$$I.."4444K00B6666F++r1111I.."4444
:////000
:,,,,---
:6666777q!'''((AQ""fq!fX&6&66666
: / / 0 0 0
!9!9!9!9:::
!6!6!6!6777
!<!<!<!<=====r   c                  Z   t          d          t          d          }} t          d          t          d          }}ddlm}m}m} t          ddg d          }t          d                              |           t          | d	z
  dz  |           k    sJ t          d                              |          t          |d	z
  dz  |          k    sJ |                                t          | dz  d
| dz  z  z
  d| z  z
  |           k    sJ t          t          d            t          ddg d          }|                                t          | dz  |           k    sJ t          ddg d          }|                                t          | dz  d| dz  z  z
  d| dz  z  z   d| z  z
  dz   |           k    sJ t          dd| dd||d|||g	          }|                                t          |dz  | |z   |z   |dz  z  z
  || |z  ||z  z   | |z  z   z  z   | |z  |z  z
  |          k    sJ d S )Nr   r   r   tr   )rK   r   r   r+   )	r   r&   r+   r0   r   r,   r2   r'   r3   r   r:   r&      c                  L    t          dgdgg                                          S )Nr   r&   )r	   charpolyr   r   r   rU   ztest_charpoly.<locals>.<lambda>  s"    !qc
););)D)D)F)F r   r0   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )-   r   r   r   r      r   r   r   r   W   r   r   r   r   r6      ik"  i i| )r   r   rK   r   r   r	   ro   r   r   r   r   )	r   r   r   r   rK   r   r   rz   rT   s	            r   test_charpolyr     sY   #;;sqA#;;sqAq!00011A1&&q))T1q51*a-@-@@@@@1&&q))T1q51*a-@-@@@@@::<<41r!Q$wA 5q999999
!F!FGGGq!EEEFFA::<<41a==((((q!IIIJJA::<<41s1a4x$q!t) ;fQh F PRSTTTTTTq!aAq!Q1a011A::<<41!Aq!t| 3a1QqS1o E!A MqQQQQQQQQr   )/rY   pytestsympy.core.numbersr   r   sympy.core.symbolr   r   (sympy.functions.elementary.miscellaneousr   sympy.polys.polytoolsr   sympy.matricesr	   r
   r   r   r   r   r   sympy.testing.pytestr   sympy.matrices.exceptionsr   (sympy.functions.combinatorial.factorialsr   r   markparametrize_eval_det_bareiss_eval_det_berkowitz_eval_det_bird_eval_det_laplace_eval_det_lur   rI   rV   r_   rh   ro   rs   r   r   r   r   r   r   r   r   r   <module>r      s2                 ' ' ' ' ' ' / / / / / / / / 9 9 9 9 9 9 & & & & & & , , , , , , , , , ,           ' ' ' ' ' ' : : : : : : L L L L L L L L 
f8
63V5H$  
 VXXqMVaSE]]AVaSE]]A$  
     $B $B $B C CV   VqAh!A#h  Q3q519&V    V   ! ! #'( V ! " " $%& V   ! ! #&	'
 V   ! ! #%& V ! " " $%& V   ! ! #&	'
 V # $ $ &)	*
 V % & & (-	.
 V # $ $ &)	*
 Vq!Qi!Qi  qD1Q3J(c4$ 4 4j' 'k4 4C Cn'  	+ 	+ 	+  $J $J $J K KV   ! ! #'( V % & & (-	.
$ 
 
' '
 
K K'2 2 2( ( ("9 "9 "9H	: 	: 	:7 7 7&8 8 8&(> (> (>TR R R R Rr   