
    RieX                        d dl mZ d dlmZ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mZ d dlmZmZ 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 Z&e#d             Z'd Z(ed             Z)d Z*d Z+d Z,d Z-e#d             Z.d Z/d Z0d Z1d Z2d Z3d Z4d  Z5d! Z6d" Z7d# Z8d$ Z9d%S )&    )N)FloatIRational)Symbolsymbols)Abs)exp)sqrt)cossin)eyeMatrix)S)raisesXFAIL)NonSquareMatrixErrorMatrixError)DFTsimplify)ImmutableMatrix)slow)allclosec                     t           } t          j        d          }|                    d          t          j        dik    sJ |                    d          g dk    sJ |                                ddt          g d          t          g d          t          g d	          gfgk    sJ |                                ddt          g dg          t          g dg          t          g d	g          gfgk    sJ t          g d
g dg dg          }|                                dt          j        z  dt          j         dt          j        dik    sJ |                                ddt          g d          gfddt          g d          gfddt           | dd           | dd          dg          gfgk    sJ |                                ddt          g dg          gfddt          g dg          gfddt          g dg          gfgk    sJ t          d          }t          |dgddgg          }|                                |dt          j        dik    sJ t          ddgddgg          }|                                ddt          ddddg          gfgk    sJ |                                ddt          ddgg          gfgk    sJ t          g dg dg dg          } | dd          }dd | dd          z  z  } | dd          } | dd          d|z  dz  z   } | dd          d|z  dz  z
  }d ||dz  z
  dt          dd||dz  z
  z  z   ||dz  z
  |z  z  d||dz  z
  z  z   dd||dz  z
  z  z   |z  dg          gfddt          g d          gf||dz  z   dt          dd||dz  z   z  z   ||dz  z   |z  z  d||dz  z   z  z   dd||dz  z   z  z   |z  dg          gfgfdt          t                              D             }|                                fd t          t                              D             }t          |          t          |          k    sJ t          d!d"          }	t          t          |	          t          |	z  gt           |	z  t          |	          gg          }|                                ddt          t           |	z  t          |	          z  gdgg          gfdt          |	          z  dt          t          |	z  t          |	          z  gdgg          gfgk    sJ |                                ddt          t          |	z  t          |	          z  dgg          gfdt          |	          z  dt          t           |	z  t          |	          z  dgg          gfgk    sJ t          ddg d#          }|                    d$          |_        t#          d% |j        d         d         d         D                       dk    sJ |                    d$          |_        t#          d& |j        d         d         d         D                       dk    sJ t          t          dd'          dgddgg          }|                                t          d(d          t%          d)          dz  z
  dt          t%          d)           dz  t          dd          z
  gdgg          gft          d(d          t%          d)          dz  z   dt          t          d*d          t%          d)          dz  z   gdgg          gfgk    sJ t          g                                           i k    sJ t          g                               d          g k    sJ t          g                                           g k    sJ t'          t(          d+            t'          t(          d,            t'          t(          d-            t'          t(          d.            t'          t(          d/            t'          t(          d0            t          ddgdd'gg          }
t+          |
                    dd1          t,                    sJ t+          |
                    dd1          t.                    sJ t+          |
                    d2 d1          t,                    sJ t+          |
                    d3 d1          t.                    sJ d S )4N   FmultipleT   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    ar    r%   r   )         )      	      !      r.   c                 <    t          t          | |                    S N)strr   )ens     ?lib/python3.11/site-packages/sympy/matrices/tests/test_eigen.pyNSztest_eigen.<locals>.NSI   s    1Q77||          r,   )r    r'   r    c                     g | ]Q} |         d          d           |         d         d          fd|         d         d          D             fRS )r   r%   r    c                 (    g | ]} |d           S r%    .0jr9   s     r8   
<listcomp>z)test_eigen.<locals>.<listcomp>.<listcomp>S   #    &&&aAq&&&r:   r@   rB   ir9   rs     r8   rD   ztest_eigen.<locals>.<listcomp>R   }     
@ 
@ 
@,- 2ad1gq>>22ad1gq>>&&&&1Q471:&&&( 
@ 
@ 
@r:   c                     g | ]Q} |         d          d           |         d         d          fd|         d         d          D             fRS )r   r%   r    c                 (    g | ]} |d           S r?   r@   rA   s     r8   rD   z)test_eigen.<locals>.<listcomp>.<listcomp>V   rE   r:   r@   rF   s     r8   rD   ztest_eigen.<locals>.<listcomp>U   rI   r:   epsreal)	r    r%   r   r   r   r   r%   r%   r   c              3   $   K   | ]}|j         V  d S r4   qrB   rG   s     r8   	<genexpr>ztest_eigen.<locals>.<genexpr>l   $      33qqs333333r:   c              3   $   K   | ]}|j         V  d S r4   rQ   rS   s     r8   rT   ztest_eigen.<locals>.<genexpr>n   rU   r:   r*   r+   I   c                  V    t          ddgddgddgg                                          S )Nr    r%   r   r*   r   	eigenvalsr@   r:   r8   <lambda>ztest_eigen.<locals>.<lambda>|   -    6Aq6Aq6Aq6233==?? r:   c                  V    t          ddgddgddgg                                          S )Nr    r   r   r*   r+   r,   rZ   r@   r:   r8   r\   ztest_eigen.<locals>.<lambda>~   r]   r:   c                  P    t          g dg dg                                          S )Nr)   r   r+   r,   rZ   r@   r:   r8   r\   ztest_eigen.<locals>.<lambda>   '    6999iii011;;== r:   c                  P    t          g dg dg                                          S )Nr!   r*   r+   r   rZ   r@   r:   r8   r\   ztest_eigen.<locals>.<lambda>   ra   r:   c                  T    t          g dg dg                              d          S )Nr)   r`   Ferror_when_incompleterZ   r@   r:   r8   r\   ztest_eigen.<locals>.<lambda>   3    6999iii011;;', < . . r:   c                  T    t          g dg dg                              d          S )Nr!   rc   Fre   rZ   r@   r:   r8   r\   ztest_eigen.<locals>.<lambda>   rg   r:   )r   r   c                     | S r4   r@   xs    r8   r\   ztest_eigen.<locals>.<lambda>       Q r:   c                     | S r4   r@   rj   s    r8   r\   ztest_eigen.<locals>.<lambda>   rl   r:   )r   r   r   r[   r   One
eigenvectsleft_eigenvectsZeror   rangelensortedabsr   r	   _eigenvectsmaxr   r   r   
isinstancedictlist)RMr(   bcdr6   r1r2rL   mr9   rH   s              @@r8   
test_eigenr      s
   A
1A;;;&&15!*4444;;;%%2222<<>>
Q			""			""			""$ 
% 	&' ' ' '
 
Q$$$$$$& 
' 	() ) ) )
 								 	 	A ;;==QquWa!%AFA>>>>><<>>VJJJ''()VJJJ''()VQQq!WWaa1ggq12234	
    VZZZL))*+FKKK=))*+FIII;''()	
    	sAAA 	 	A ;;==Q15!,,,,,BQ 	 	A<<>>1vaRG'<'<&=>?@@@@QFQF8,<,<+=$>#?@@@@			999iii011A	"aA	"aa1gg+A	"aA	
2qAaCE	A	
2qAaCE	A   
QqS!frBAaCL0A!GQ;?!Q1W+M 2q1Q3w</2A7 8 8 9 	:!fZZZ(()*	
QqS!frBAaCL0A!GQ;?!Q1W+M 2q1Q3w</2A7 8 8 9 	:		A
@ 
@ 
@ 
@ 
@16s1vv
@ 
@ 
@B	A
@ 
@ 
@ 
@ 
@16s1vv
@ 
@ 
@B"::####
T
"
"
"CS1S5%C3s88%' 	( 	(A <<>>VqbfSXXo.45567Cj!v#c#hh'7!&=>>@B	
    FQsU3s88^Q/01123s3xxZVqbfSXXoq%9$:;;<=	
    	q!11122ALL%L00AM33AM!,Q/233333a7777LL$L//AM33AM!,Q/233333q8888!Q#aV,--A<<>>	!Q$r((1*	$a&DHH9Q;!Q3O2PSTRU1V*W*W)XY	!Q$r((1*	$a&8B??T"XXaZ3O2PSTRU1V*W*W)XY[ [ [ [ [
 "::!!R''''"::.."4444"::  ""b(((( ??A A A
??A A A
==? ? ?
==? ? ?
. ./ / / . ./ / / 	AA  Aakk4%k@@$GGGGGakk4$k??FFFFFakk;;kGGNNNNNakk;;kFFMMMMMMMr:   c                     ddl m}  t          dd          }t          dt	          |           dgt	          |          ddgg dg          } | |                    d	
                     | |                    d
                    k    sJ  | |                    d 
                     | |                    d
                    k    sJ d S )Nr   )	count_opsrR   Tpositiver'   r    )r    r    r'   Fr   c                     | S r4   r@   rj   s    r8   r\   z!test_eigen_slow.<locals>.<lambda>   s    A r:   )sympy.core.functionr   r   r   r
   r[   )r   rR   r   s      r8   test_eigen_slowr      s     .-----st$$$AS!WWa 3q662q/:::>??A9Q[[%[0011	!++t+,,--. . . .9Q[[++[6677	!++t+,,--. . . . . .r:   c                     t          g dg dg dg          } t          dd          t          d          dz  z
  t          d          dz  t          dd          z   t          j        g}|                     dd	          }t          |          }d
 |D             }t          |          }t          ||          D ]\  }}t          ||z
            dk     sJ d S )N)r    333333?r   )r   ?r   )r   r   r   r+   r*   i     T)rationalr   c                 6    g | ]}|                                 S r@   )evalfrB   rk   s     r8   rD   z(test_float_eigenvals.<locals>.<listcomp>   s     (((Qqwwyy(((r:   g&.>)	r   r   r   r   rq   r[   rt   zipru   )r   evalsn_evalss_evalsrk   ys         r8   test_float_eigenvalsr      s    \\\<<<899AAc2%S		"x1~~%	E
 kk4$k77GWooG((%(((GWooGGW%% ! !11Q3xx&     ! !r:   c                      t          dddddt          g          t          t          fd                               d          rJ t          t
          fd                               d          \  } }d S )Nr%   r    r   c                  .                          d          S NT)is_diagonalizabler   s   r8   r\   z"test_eigen_vects.<locals>.<lambda>   s    (;(;D(A(A r:   Tc                  .                          d          S r   diagonalizer   s   r8   r\   z"test_eigen_vects.<locals>.<lambda>   s    d 3 3 r:   )r   r   r   NotImplementedErrorr   r   r   )PDr   s     @r8   test_eigen_vectsr      s    q!aAq\""A
 A A A ABBB ""4(((((
;3333444]]4  FQr:   c                  B   t          d          \  } }dd t                    D             }fdt                    D             }t                    D ]}||         ||         |<   t          |          }|                                }t	          |          k    sJ t                    D ]}|||                  dk    sJ |                    d          }t          |          t          |          k    sJ t          | ddgd|dgd	d
| gg          }|                                }|| d	|dik    sJ |                    d          }t	          |          d
k    sJ |                    |           d	k    sJ |                    |          dk    sJ d S )Nzx y   c                 2    g | ]}t          d |z            S )zx%s)r   rS   s     r8   rD   z#test_issue_8240.<locals>.<listcomp>   s$    >>>&++>>>r:   c                 B    g | ]}d  t                    D             S )c                     g | ]}d S )r   r@   rS   s     r8   rD   z.test_issue_8240.<locals>.<listcomp>.<listcomp>   s    			!			r:   )rr   )rB   rC   r7   s     r8   rD   z#test_issue_8240.<locals>.<listcomp>   s.    1111		U1XX			111r:   r    Tr   r   r%   r   )r   rr   r   r[   rs   setcount)rk   r   diagonal_variablesr|   rG   r[   r7   s         @r8   test_issue_8240r      s   5>>DAqA>>U1XX>>>1111a111A1XX ( ($Q'!Qq		AIy>>Q1XX 5 5+A./144444T**Iy>>S!3444444 	Aq	Aq!9q!Qi011AIAq!$$$$T**Iy>>Q??1""""??1""""""r:   c                  "   t          g dg dg dg          } |                                 dt          j        z  dt          j         dt          j        dik    sJ t          g dg dg dg d	g d
g          }|                                sJ d S )Nr$   r!   r   r%   r    r   r   r   r   rX   r   rX   rX   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r[   r   rn   rq   )r|   r   s     r8   test_eigenvalsr      s    							 	 	A ;;==QquWa!%AFA>>>>> 	 	A ;;==r:   c                      t          g dg dg dg          } |                                 }|D ]5\  }}}t          |          dk    sJ | |d         z  ||d         z  k    sJ 6d S Nr$   r!   r   r    r   )r   ro   rs   r|   vecsvalmultvec_lists        r8   test_eigenvectsr      s    							 	 	A <<>>D# 0 0T88}}!!!!!}HQK/////0 0r:   c                      t          g dg dg dg          } |                                 }|D ]5\  }}}t          |          dk    sJ |d         | z  ||d         z  k    sJ 6d S r   )r   rp   rs   r   s        r8   test_left_eigenvectsr      s    							 	 	A D# 0 0T88}}!!!!{1}HQK/////0 0r:   c                     t          g dg dg dg          } |                                 | k    sJ |                     d          | k    sJ |                                 | k    sJ |                                 | | | fk    sJ |                     d          | | | fk    sJ |                                 | k    sJ dd l}t	          d          D ]N}g }d}d}t	          ||z            D ]}|                    dd	          }||gz   }t          |||          } t          |           } |j                    \  }	}
}|                                 \  }}}|                                 } |j                    }|	|
z  |z  }||z  |z  }|
                                 |                                 |                                 |                                 |                                 |                                 |                     d          }|                     d          \  }}} |j        d          } |j        d          \  }}}||z  |z  }||z  |z  }|                                 |                                 |                                 |                                 |                                 |                                 | |k    sJ ||k    sJ ||k    sJ |
|k    sJ | |k    sJ ||k    sJ ||k    sJ ||k    sJ Pt	          d          D ]o}g }d}t	          ||z            D ]A}|                    dd	          }|                    dd	          } || t          z  z   }||gz   }Bt          |||          } t          |           } |j                    \  }	}
}|                                 \  }}}|                                 } |j                    }|	|
z  |z  }||z  |z  }|
                                 |                                 |                                 |                                 |                                 |                                 |                     d          }|                     d          \  }}} |j        d          } |j        d          \  }}}||z  |z  }||z  |z  }|                                 |                                 |                                 |                                 |                                 |                                 | |k    sJ ||k    sJ ||k    sJ |
|k    sJ | |k    sJ ||k    sJ ||k    sJ ||k    sJ qt          d
dt	          dd                    } | 	                    d           } |                                 d         |                                 k    sJ |                     d          d         |                     d          k    sJ |                                 \  }!}"}#|!|"z  |#z  | z
  }$t          t          |$                    dk     sJ d S )Nr!   r"   r#   F)upperr   r%   i 6ei ʚ;   r.   r       c                      t          |           S r4   )r   )rG   s    r8   r\   z$test_bidiagonalize.<locals>.<lambda>}  s    eAhh r:   g-q=)r   bidiagonalizebidiagonal_decompositionrandomrr   randintr   r   r   	applyfuncru   rw   )%r|   r   	real_testtest_valuesrowcol_valuer   N1N2N3M1M2M3M0N0N4M4LM0LM1LM2LM3LN0LN1LN2LN3LN4LM4complex_testsizerN   compr(   r}   r~   diffs%                                        r8   test_bidiagonalizer      s   							 	 	A ??!!!!???''1,,,,??!!!!%%''Aq!94444%%E%22q!Qi??????!!!!MMM1XX 7 7	sSy!! 	0 	0ANN;
;;E%/KK 3[))A/Q/11
B//11
B__Q_"Wr\"Wr\





ooEo**222??S#aoE***22???S#Ci#oCi#oBwwwwRxxxxBwwwwRxxxxCxxxxczzzzCxxxxczzzzz a 7 7td{## 	0 	0A>>+z::D>>+z::D4!8OE%/KK4{++A 0Q/11
B//11
B__Q_"Wr\"Wr\





ooEo**222??S#aoE***22???S#Ci#oCi#oBwwwwRxxxxBwwwwRxxxxCxxxxczzzzCxxxxczzzzzr1eAsmm$$A	&&''A%%''*aoo.?.?????%%E%2215u9U9UUUUU((**GAq!q519q=Ds4yy>>G######r:   c                     t          ddg d          t          t          fd                                           \  } }|                                sJ |t          t
           dgdt
          gg          k    sJ t          ddg d                                          \  } }t          d |                                D                       sJ t          d |                                 D                       sJ                     d	          \  }}||k    sJ t          g d
g dg dg dg                                          \  } }t          | |z  | z            sJ d S )Nr%   r   r&   r    r   c                  0                          d          S )NT
reals_onlyr   r   s   r8   r\   z"test_diagonalize.<locals>.<lambda>  s     > > r:   r   )r         ?r   r   c              3   @   K   | ]}t          |t                    V  d S r4   rx   r   rB   r6   s     r8   rT   z#test_diagonalize.<locals>.<genexpr>  ,      88z!U##888888r:   c              3   @   K   | ]}t          |t                    V  d S r4   r   r   s     r8   rT   z#test_diagonalize.<locals>.<genexpr>  r   r:   Tr   r   r    r   r   )r    r   r   Mb`?)r   r   r   r    )r   r   r    r   )	r   r   r   r   is_diagonalr   allvaluesr   )r   r   r   D2r   s       @r8   test_diagonalizer     s   q!]]]##A
;>>>>???==??DAq==??"aa      
 	q!^^^$$A==??DAq88QXXZZ8888888888QXXZZ88888888MMTM**EAr7777	''')9)9)9<<<H	J 	JA==??DAqAaC1r:   c                  ~   t          d          \  } }}t          dd| |||g          }|                                sJ |                                sJ t          ddg d                                          rJ t          ddg d          }|                                sJ |                    d          rJ d S )Nza b cr%   )r    r    r   r    r   Tr   )r   r   is_symmetricr   )r(   r}   r~   r   s       r8   test_is_diagonalizabler     s    gGAq!q!aAq\""A>>     aLLL));;=====q!]]]##A     ""d"3333333r:   c                  d   t          ddg d          t          t          fd           t          ddg d                                          \  } }|k    sJ t          ddg d                                          \  } }|k    sJ t          g dg d	g d
g dg          }|                                \  } }t	          | |z  |                                 z            |k    sJ t          dddg                                          t          dg          t          dg          fk    sJ t          dddg                              d          t          dg          k    sJ t          g dg dg dg dg dg          t          t          fd           t          dddt          d          z  z   gddt          d          z  z   dgg                                          \  } }t          d | D                       sJ t          d |D                       sJ d S )Nr   r%   )rX   r    rX   r   r   
   c                  ,                                      S r4   jordan_formr   s   r8   r\   z"test_jordan_form.<locals>.<lambda>  s     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   r%   r    r   r   r   r%   )r%   r*   r    r   )rO   r%   r   r    )r   r   r%   r*   )r   r   rO   r%   r    F)calc_transformr   r   r   r   r   c                  ,                                      S r4   r   r   s   r8   r\   z"test_jordan_form.<locals>.<lambda>  s     r:   g      ?g      ?g      ?g      ?c              3   L   K   | ]}t          |t                    p|d k    V   dS r   Nr   r   s     r8   rT   z#test_jordan_form.<locals>.<genexpr>  5      99!z!U##-qAv999999r:   c              3   L   K   | ]}t          |t                    p|d k    V   dS r  r   r   s     r8   rT   z#test_jordan_form.<locals>.<genexpr>  r  r:   )	r   r   r   r  r   invr   r   r   )r   JAr   s      @r8   test_jordan_formr    s   q!+++,,A
!8!8!8!8999 	q!    	 	A
 ==??DAq6666q!    	 	A
 ==??DAq6666            " 	# 	#A ==??DAqAaCK  A%%%%!Q((**vqc{{FA3KK.HHHHH!Q(((>>&!++MMMM 	   "3"3"3___oooWfWfWfghhA
;////000 	Q!78	Q	8: 	; 	;A ==??DAq99q9999999999q9999999999r:   c                     t          dd          } t          ddt          z  gddgg          }|                                ddgk    sJ t	          d          }| |d<   d	|d
<   |                                }t          |          d	dt          |           hk    sJ t          t          |           t          |           gt          |            t          |           gg          }d |                                D             }|t          j
        t          j
        gk    sJ t          ddgddgddgddgg          }|                                t          t          d          dz             t          dt          d          z
            gk    sJ |j                                        t          t          d          dz             t          dt          d          z
            ddgk    sJ d S )Nrk   TrM   r   r    r%   r   )r    r    r+   )r%   r%   c                 6    g | ]}|                                 S r@   )trigsimp)rB   svs     r8   rD   z(test_singular_values.<locals>.<listcomp>  s     888bBKKMM888r:   r*      r0   )r   r   r   singular_valuesr   r   r	   r   r   r   rn   r   T)rk   r
  valss      r8   test_singular_valuesr    s   sAAaC1a&!""A1a&((((AAAdGAdGDt99As1vv&&&&QQ CFF7CFF"3455A88A$5$5$7$7888DAE15>!!!!	
A	
A	
A	
A	
 	 	A 	d3ii"n		tBcN3345 5 5 53  	d3ii"n		tBcN33Q:; ; ; ; ; ;r:   c                  F    t          g dg dg dg          i k    du sJ d S )Nr$   r!   r   F)r   r@   r:   r8   test___eq__r    sV    						   $$ $ $ $ $ $r:   c                  n   t          g dg dg dg          } | j        dk    sJ | j        dk    sJ | j        dk    sJ | j        dk    sJ | j        dk    sJ t          ddgddgg          } | j        dk    sJ | j        dk    sJ | j        dk    sJ | j        dk    sJ | j        dk    sJ t          g dg dg d	g          } | j        dk    sJ | j        dk    sJ | j        dk    sJ | j        dk    sJ | j        dk    sJ t          d
dgddgg          } | j        dk    sJ | j        dk    sJ | j        dk    sJ | j        dk    sJ | j        dk    sJ t          ddgddgg          } | j        dk    sJ | j        dk    sJ | j        dk    sJ | j        dk    sJ | j        dk    sJ t          d
dt          z  gt           dgg          } | j        dk    sJ | j        dk    sJ | j        dk    sJ | j        dk    sJ | j        dk    sJ t          dd          }t          dd          }t          |ddgd|dgdd|gg          } | j        dk    sJ | j        dk    sJ | j        dk    sJ | j        dk    sJ | j        dk    sJ t          |ddgd|dgdd|gg          } | j        dk    sJ | j        dk    sJ | j        dk    sJ | j        dk    sJ | j        dk    sJ t          |dgd|gg          } | j        dk    sJ | j        dk    sJ | j        dk    sJ | j        dk    sJ | j        dk    sJ t          g dg dg dg dg          } | j        dk    sJ | j        dk    sJ | j        dk    sJ t          g dg dg dg          } | j        rJ | j        rJ d S )N)r%   r&   r   )r&   r%   r&   )r   r&   r%   TFr+   r*   )r%   r&   r&   )r&   r&   r%   r    r%   r   r.   r(   r   r}   )negativer   )ga~2^?=6 0z?u?1ڿ"ş})r  gEߡ?֯mA?)Ewc?)r  r  g?}uq?)r  r  r  g!pb?r   r   r   )r   r    r%   )r   r%   r    )r   is_positive_definiteis_positive_semidefiniteis_negative_definiteis_negative_semidefiniteis_indefiniter   r   )r   r(   r}   s      r8   test_definiter%    s    	


KKK455A!T))))%----!U****%....?e####AA  A!T))))%----!U****%....?e#### 	[[[+++677A!U****%----!U****%....?e####AA  A!U****%----!U****%....?e#### 	AA  A!T))))%----!U****%....?e#### 	AaCA2q'"##A!T))))%----!U****%....?e#### 	sT"""AsT"""AAq	Aq!9q!Qi011A!T))))%----!U****%....?e####Aq	Aq!9q!Qi011A!U****%....!T))))%----?e####AA  A!U****%....!U****%....?d""""	4 	4 	4	2 	2 	2	. 	. 	.	/ 	/ 	/	 		 		A !T))))%----?e#### 							 	 	A
 %%%%))))))r:   c                     ddl m}  t          g dg dg dg          } | |          dk    sJ t          g ddddt          z  gddt          z  dgg          } | |          dk    sJ t          g d	g dg d
g          } | |          dk    sJ t          ddgddgg          } | |          dk    sJ t          g dg dg dg          } | |          dk    sJ t          g dg dg dg          } | |          dk    sJ t          g dg dg dg          } | |          dk    sJ t          g dg dg dg          } | |          dk    sJ d S )Nr   )"_is_positive_semidefinite_choleskyr  Tr+   r   Fr!   )r   r   r&   r    )r*   r'   )r'   r   r/   )r)  r/      )r/   rX   r   )rX   r%   r    )r   r    r,   )r*   r'   r%   )r'   r    r&   )r%   r&   r+   )r    r%   r&   )r%   r+   r    )r&   r    r/   )sympy.matrices.eigenr'  r   r   )r'  r   s     r8   #test_positive_semidefinite_choleskyr,  ^  s   GGGGGG			999iii011A--a00D8888			Aq#a%=1bdA,788A--a00E9999			999jjj122A--a00E9999AA  A--a00E9999 	[[[+++677A--a00D8888


JJJ			233A--a00D8888


KKK455A--a00D8888


IIIzzz233A--a00E999999r:   c                  n    t          g dg dg dg dg dg          } |                                 sJ d S )N)r+   rX   r%   )r'   r.  r   r%   r    )r'   r/  r.  r'   r)  )r-   r   r   r/   r'   )r*   r(  r   irO   )r   ro   )r
  s    r8   test_issue_20582r0  u  s_     	 	A <<>>r:   c                  D   t          d          } t          g dg dg dg dg          }t           |z  | z                                  }|t          g ddddd	t	          d
          z   z  ddt	          d
          z   z  gg dg dg          t          dt          z  | z  dddgddt          z  | z  ddgdd| dt          z  dz  t	          d
          t          z  dz  z   z  dgddd| t	          d
           t          z  dz  dt          z  dz  z
  z  gg          fk    sJ d S )Nt)r   r   r   r   )r   r    r%   r   )r   r%   r%   r   )r   r   r   r*   r   r   rO   r&      r*   r    )r   r   r    r    )r    r   r   r   rX   r%   r   )r   r   r   r  r   )r2  Hr
  s      r8   test_issue_19210r5    sz   sAmmm\\\<<<HIIA
a!  ""A@@@2rDHH}-q!d2hh,/?@@@@@@@	B C C EKT!V!QXYZRT!VQXYZ!Q1Qb!A(=%>XYZ!QDHH9Q;q=STUVSVWXSXCX@YZ	L\ E] E]	^ ^ ^ ^ ^ ^ ^r:   c                     t          d                                                              d          } |                                 }|d         ddt	          dt          d          z
  gdgdgg          gfk    sJ |d         ddt	          dt          d          z   gdgdgg          gfk    sJ |d         t           dt	          dgdgdgg          gfk    sJ t          d                                                              d          } |                                 }|d         ddt	          dgdgdgdgg          gfk    sJ |d         ddt	          dgdgdgdgg          t	          dgdgdgdgg          gfk    sJ |d         t           dt	          dgdgdgdgg          gfk    sJ t          d	                                                              d          } |                                 }|d         ddt	          dt          d	          z
  gdgdgdgdgg          gfk    sJ |d         ddt	          t          d          dz  t          d	          dz  z   gdgdgdgdgg          t	          t          d          dz  t          d	          dz  z   gdgdgdgdgg          gfk    sJ d S )
Nr   T)complexr   r&   r    r%   r*   r+   )r   as_explicitexpandro   r   r   r   r   )r
  ro   s     r8   test_issue_20275r:    sj    	A##D#11AJa=
A	!d1gg+aS)	*	*+     a=	1	!d1gg+aS)	*	*+     a=	
A	!rdQC 	!	!"    
 	A##D#11AJa=
A	"sQC!%	&	&'     a=	1	!qcA3$	%	%vsQC!qc.B'C'CD     a=	
A	!rdQC!%	&	&'     	A##D#11AJa=
A	!d1gg+aS1#s3	4	45     a=	1	!A$$q&47719$%sQC!qc:	;	;	!A$$q&47719$%sQC!qc:	;	;	=      r:   c                  n    t          dd          } t          g dd| dgdd| gg          }|j        J d S )Nr}   T)nonzeror  r   )r   r   r!  )r}   r   s     r8   test_issue_20752r=    sM    T"""A			Aq!9q!Qi011A%-----r:   N):sympy.core.evalfr   sympy.core.numbersr   r   r   sympy.core.symbolr   r   $sympy.functions.elementary.complexesr	   &sympy.functions.elementary.exponentialr
   (sympy.functions.elementary.miscellaneousr   (sympy.functions.elementary.trigonometricr   r   sympy.matricesr   r   sympy.core.singletonr   sympy.testing.pytestr   r   sympy.matrices.matricesr   r   "sympy.matrices.expressions.fourierr   sympy.simplify.simplifyr   sympy.matrices.immutabler   r   sympy.testing.matricesr   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r%  r,  r0  r5  r:  r=  r@   r:   r8   <module>rM     s         3 3 3 3 3 3 3 3 3 3 / / / / / / / / 4 4 4 4 4 4 6 6 6 6 6 6 9 9 9 9 9 9 ? ? ? ? ? ? ? ? & & & & & & & & " " " " " " . . . . . . . . E E E E E E E E 2 2 2 2 2 2 , , , , , , 4 4 4 4 4 4 % % % % % % + + + + + +{N {N {N| . . .! ! !  ! ! !# # #<  $0 0 00 0 0 F$ F$ F$R  0	4 	4 	4-: -: -:`; ; ;:$ $ $^* ^* ^*B: : :.
 
 
^ ^ ^- - -`. . . . .r:   