
    \hZ                         S SK JrJrJr  S SKJr  S SKJrJr  S SK	J
r
  S SKJr  S SKJrJrJrJrJrJrJrJrJr  S SKJr  S rS	 rS
 rS rS rS rS rS r S r!S r"S r#S r$S r%S r&S r'S r(g)    )FloatIRational)S)Symbolsymbols)Abs)PurePoly)	MatrixMutableSparseMatrixImmutableSparseMatrixSparseMatrixeyeoneszeros
ShapeErrorNonSquareMatrixError)raisesc                      [        SSSSS/SS//05      n U [        SS/SS//5      :X  d   e[        SSSSS//05      n U [        SS/SS//5      :X  d   e[        SSSSS/05      n U [        SS/SS//5      :X  d   eg )N   r   r            r   r   )as    X/var/www/auris/envauris/lib/python3.13/site-packages/sympy/matrices/tests/test_sparse.pytest_sparse_creationr      s    QFaVaV$456Aq!fq!f-....QFaVH-.Aq!fq!f-....QFQF+,Aq!fq!f-....    c                  <.  ^" S n S n[        [        S 5        [        S5      n[        U5      U:X  d   eSSKJn  [        / 5      nU" SS/5      nUR                  U5      U:X  d   eUR                  U5      U:X  d   e[        UR                  U5      5      [        U5      :X  d   e[        UR                  U5      5      [        U5      :X  d   e[        S	5       Vs/ s H  n[        R                  " SU5      PM     nn[        R                  " U6 [        SS
/ 5      :X  d   e[        S	5       Vs/ s H  n[        R                  " US5      PM     nn[        R                  " U6 [        S
S/ 5      :X  d   e[        S5      nS	US'   US   S	:X  d   eSUS'   SUS'   U[        S5      :X  d   eSUS'   U[        S5      :X  d   eSUS'   U[        S5      :X  d   eUR                  5       SSS.:X  d   e[        S5      n[        S5      nX$-  nUS   S:X  d   eUS   S:X  d   eUS   S
:X  d   eUS   S
:X  d   eUS   S:X  d   eUS   S:X  d   e [        S5        US   S:X  d   eUS   S:X  d   eUS   S
:X  d   eUS   S
:X  d   eUS   S:X  d   eUS   S:X  d   e [#        S5      nU[#        S5      -  n[%        U[        5      (       d   eUS   U:X  d   eUS   SU-  :X  d   eUS   SU-  :X  d   eUS   S:X  d   eSU-  n[%        U[        5      (       d   eUS   S:X  d   eUS   S:X  d   eUS   S:X  d   eUS   S:X  d   e[        SS/S	S//5      n	U	S-  S S  / SQ:X  d   e[        / S Q/ S!Q/ S"Q/5      n	U	S-  S S  / S#Q:X  d   e[#        S5      n[        US/SS//5      nUn
U
R&                  U
R(                  :X  d   eU
R&                  S:X  d   eU
S S  USSS/:X  d   e[        SSUSSS/5      nUn
U
R&                  U
R(                  :X  d   eU
R&                  S:X  d   eU
S S  USSS/:X  d   eX$:X  d   eU " S5      nUR*                  " S5        U[        / S$Q/ S%Q/5      :X  d   eU " S5      nUR,                  " S5        U[        SS/SS/SS//5      :X  d   e[        R.                  " S5      nSUS'   UR0                  " SS5        U[        / S&Q/ S$Q/ S'Q/5      :X  d   eUR2                  " SS5        U[        / S$Q/ S&Q/ S'Q/5      :X  d   e[        SSSS/5      nUR5                  5       nUR5                  5       nUS   S:X  d   eUR+                  S5        U[        SS/ 5      :X  d   eUR-                  S5        U[        SSS/5      :X  d   e[        / S(QSS/S//5      [        / S(Q/ S)Q/ S$Q/5      :X  d   e[        S	S	SU " S5      05      [        / S*Q/ S+Q/ S,Q/ S*Q/5      :X  d   e[        [6        S- 5        [        SSSS/5      R9                  5       SS//:X  d   e[        SSSSS//5      R9                  5       SS/SS//:X  d   e[        [6        S. 5        [        [6        S/ 5        [        S0/5      R;                  [<        5      (       d   e[        S SS05      R>                  S:X  d   e[        S SS05      R>                  S1:X  d   e[        S S SS05      R>                  S1:X  d   e[        [6        S2 5        [        [6        S3 5        [        [6        S4 5        [#        S5      [#        S55      p[        SSS/5      RA                  5       S:X  d   e[        S//5      RA                  5       S:X  d   e[        S65      RA                  5       S7:X  d   e[        US4USU-  445      RA                  5       SU-  U-  U-
  :X  d   e[        S85      RA                  5       S:X  d   e[        S95      RA                  5       S::X  d   e[        S;5      RA                  5       S:X  d   e[        S<5      RA                  5       S=:X  d   e[        S>5      RA                  5       S?:X  d   e[        S@5      RA                  5       SA:X  d   e[        SB5      RA                  5       SC:X  d   e[        SD5      RA                  5       S:X  d   e[        SE5      RA                  5       SF:X  d   e[        SG5      RA                  5       SH:X  d   eU " S	5      nUS S2S S24   U " S5      :X  d   eUSS	2SS24   U" S5      :X  d   e[        SSSI 5      nUSS S 24   [        SSSJ5      :X  d   eUSS2S4   [        SSSK5      :X  d   e[        / SLQ/ SMQ/ SNQ/ SOQ/5      nUS S 2S74   [        S	S/ SPQ5      :X  d   eUSQS 2S S 24   [        / SNQ/ SOQ/5      :X  d   e[        SS/SS	//5      S/S/4   [        S	//5      :X  d   eU" S	5      n
U " S5      U
SS	2SS	24'   U
[        / SRQ5      :X  d   e[C        U
R                  5       5      S:X  d   eU " S5      U
S S2S S24'   X" S	5      :X  d   e[        S	SSS5      U
S S 2S4'   U
[        / STQ5      :X  d   eU" S	5      U
S S 2S S 24'   X" S	5      :X  d   eS;U
S S 2S S 24'   U
[        S;5      :X  d   eSS/U
S S2S4'   U
[        SU5      :X  d   eU " S5      nURE                  SSV5      [        SSVSW5      :X  d   e[        SS	SX 5      nURE                  S	S5      [        / SYQ5      :X  d   eURE                  SS
5      [        SZS[/5      :X  d   eU " S5      nURG                  S\ 5      U " S5      S-  :X  d   eURG                  S] 5      U" S5      :X  d   e[I        [        US4USU-  445      5      [        [K        U5      S4[K        U5      S[K        U5      -  445      :X  d   e[        / S^Q/ S_Q/ S`Q/ SaQ/5      nURM                  5       u  nnnURN                  (       d   eURP                  (       d   eUU-  RS                  USb5      U-
  U" S	5      :X  d   e[        / ScQ/ SdQ/ SeQ/ SfQ/5      nURM                  5       u  nnnURN                  (       d   eURP                  (       d   eUU-  RS                  USb5      U-
  U" S	5      :X  d   e[#        S5      [#        S55      [#        Sg5      np[        SUS4SUS4USU445      m"T"RM                  5       u  nnnURN                  (       d   eURP                  (       d   eUU-  RS                  USb5      T"-
  U" S5      :X  d   e[        / ShQ/ SiQ/ SjQ/5      n	[        SS/ SkQ5      nX-  nU	RU                  U5      nUU:X  d   e[        / SlQ/ SmQ/ SnQ/5      n	[        SS/ SoQ5      nX-  nU	RU                  U5      nUU:X  d   eU " S	5      n	U	RW                  5       U " S	5      :X  d   eU	RW                  SpSq9U " S	5      :X  d   eU	RW                  SrSq9U " S	5      :X  d   e[        / ShQ/ SiQ/ SsQ/5      n	[        [        U	5      RW                  5       5      nU	U-  U " S5      :X  d   eU	RW                  SpSq9U:X  d   eU	RW                  SrSq9U:X  d   e[        / ShQ/ SiQ/ StQ/5      n	[        [        U	5      RW                  5       5      nU	U-  U " S5      :X  d   eU	RW                  SpSq9U:X  d   eU	RW                  SrSq9U:X  d   e[        SS/ S(Q5      n[        SS/ SuQ5      nURY                  U5      [        SS/ SvQ5      :X  d   eUR[                  S5      S-  Sw:X  d   e[        SS[\        -   4Sx45      nUR^                  [        SS[\        -
  /SS	//5      :X  d   eU[        SS/ SyQ5      -  U:X  d   eU[        SS/ SzQ5      -   [        SS[\        -   /S	S//5      :X  d   eUR                  U " S5      5      [        SS[\        -   /SS	/SS/SS//5      :X  d   eURa                  SU " S5      5      [        SS[\        -   /SS	/SS/SS//5      :X  d   eURc                  S[        R                  " SS5      5      [        SS[\        -   S// S{Q/5      :X  d   eURe                  S|S}9(       a   e[        R.                  " S5      S-  m"S7T"S'   T"Rg                  SU"4S~ j5        T"[        / SQ/ SQ/ SQ/5      :X  d   e[        R.                  " S5      m"T"Ri                  S5        T"[        / SQ/ SQ/ SQ/5      :X  d   eU " S5      U " S5      Rk                  5       :X  d   e[        / SQ/ SQ/ SQ/5      nURk                  5       [        / SQ/ SQ/ SQ/5      :X  d   e[        / S(Q/ SQ/ SQ/5      nURk                  5       [        / SQ/ SQ/ SQ/5      :X  d   e[#        S5      n[#        S55      n[        SSUS-  U-  SUS-  -  X-  -   /5      nX/nURm                  U5      [        SU-  U-  US-  /US	U-  U-   //5      :X  d   e[        SSXS-  US-  -  /5      nURm                  U5      [        SS/SU-  US-  -  US-  S-  US-  -  //5      :X  d   e[        SS/SS//5      n	U	Ro                  5       u  nn[p        nU[        SU" S7S5      -  U" S5      S-  U" S5      S-  U" S7S5      -  -  /SSU" S7S5      -  -  U" S5      * S-  U" S5      S-  U" S7S5      -  -  //5      :X  d   eU[        SU" SS5      -  SSU" S7S5      -  -  /SU" S5      S-  U" SS5      -  //5      :X  d   eUU-  U	:X  d   eURr                  U-  U " S5      :X  d   e[p        n[        / SQ/ SQ/5      m"T"Ru                  5       u  nnU[        SSU" S5      * S-  U" S5      S-  /SSU" S5      S-  U" S5      S-  //5      :X  d   e[        / SQ/ SQ/ SQ/ SQ/5      m"T"Ru                  5       u  nnU[        / SQ/ SQSSSSSSU" S5      S-  // SQ/5      :X  d   eT"Rw                  5       nUS   [        / SQ5      :X  d   eUS   [        / SQ5      :X  d   eUS   [        / SQ5      :X  d   eUS   [        SSSSSU" S75      S-  S/5      :X  d   e[#        S5      n[#        S55      nU " S5      n U Ry                  U5      [{        US-
  S-  5      :X  d   eU Ry                  U5      [{        US-
  S-  5      :X  d   e[        / SQ5      m"T"R}                  5       n![        U!R                  5       5      / SQ:X  d   e[p        n[        / S$Q/ S&Q/ S%Q/5      m"T"R                  5       SS[        / S$Q5      [        / S&Q5      [        / S%Q5      /4/:X  d   e[        / SQ/ SQ/ S%Q/5      m"T"R                  5       SS[        U" S75      S-  U" S5      S-  S/5      /4SS[        / S&Q5      /4SS[        / SQ5      /4/:X  d   eT"R                  SS5      [        SS0 5      :X  d   e[        SSSSSSSSSSSS.	5      n	U	R                  5       / SQ:X  d   eU	R                  5       / SQ:X  d   e[        R.                  " S5      R                  5       S:X  d   eg s  snf s  snf ! [          a     GN|f = f)Nc                 .    [         R                  " U 5      $ N)r   r   ns    r   
sparse_eye&test_sparse_matrix.<locals>.sparse_eye   s    ""r   c                 .    [         R                  " U 5      $ r"   )r   r   r#   s    r   sparse_zeros(test_sparse_matrix.<locals>.sparse_zeros   s    !!!$$r   c                      [        SS5      $ Nr   r   r    r   r   <lambda>$test_sparse_matrix.<locals>.<lambda>   s    l1a0r   r   r   r   r   r   )MutableDenseMatrixr   r   r      r   r   r   r   )r   r   r1      r0   )r5   )r6   r   )r5   )r6   r   )r   r0   )r   r   )r   r   )r   r3   )r7   )r   r      r1   r5      )r   r   z	c = a @ bx
      )i  i  i,*  i7  )r   r   r   )r   r   r   )r3      r   )	i"  i     i  i  ip  i  i  i  )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   c                       [        SSSS05      $ )Nr   r4   r   r,   r   r   r-   r.      s    |Aq61+>r   c                      [        SSS/5      $ )Nr   r   r   r,   r   r   r-   r.      s    |Aq1#6r   c                  "    [        SSSS//5      $ r+   r   r,   r   r   r-   r.      s    |AqAq6(;r   g?r7   c                  "    [        S SSS//5      $ r+   r   r,   r   r   r-   r.      s    |D!q!fX>r   c                  "    [        SS SS//5      $ r+   r   r,   r   r   r-   r.      s    |Atq!fX>r   c                  4    [        SS[        S5      SS.5      $ )Nr   r   )r   r4   )r   r   r,   r   r   r-   r.      s    |Aq47A2NOr   y))r   )   )r   r   r   rA   )r   r   r3   ))r   r   r6   )rQ   r   rQ   r   r   rQ   r6   r   r6   r   r   r   i)r   r   r   r   )r6   r3   r8   rM   	   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   rO   r   )r   r   rO   r   rM   )r   r   r   r   r3   i))rN   r   r   r   r6   )r   r   r   r6   )r   r   rL   r   r6   )r   r   r   rQ   r6   )r   r   r   r   rO   i-  ))r   r   r   r   )rQ   r   r   r   rR   rS   <   )r   r   r   r   )r6   r   r   r   )rV   r;   rW   r   rX   )r\   r]   r^   r_   )r   r   r   r   r      ))r   r8   rO   r   r   )r   r   r   r   r   )rQ   r   r8   r   r   )rL   rQ   r   r6   r   )r   r   r   r   r   {   c                 
    X-   $ r"   r,   ijs     r   r-   r.         r   r   r   r   )r   r   )r   r   r   r   )r   r6   r3   r8   )rM   rV   r;   rW   )r=   rY   rZ   r<   )r   r8   rW   r<   rQ   )rC   rC   rD   )r   r   r   r   rT   )rb   )r   r   r   r   )r   r   r   r   )r   r   r   r   ))r   r   r   r   )r   r3   r8   rM   rU   rX   rV   )	r   r   r   r   r   r   r   r   r   c                 
    X-   $ r"   r,   rf   s     r   r-   r.   :  ri   r   )rj   )r   r   r   )r   r   r   r   r   r6   )r   r   r   r   r   r   )r   r   r   r   r   r6   c                     SU -  $ )Nr   r,   r:   s    r   r-   r.   B  s    !A#r   c                     gNr   r,   rn   s    r   r-   r.   C  s    !r   )r   r   r6   r   )r   r   r8   r   )rM   r   r   r   )rQ   r3   r   r   backward)r3   rQ   r8   r   )r   r   r3   r8   )r   rQ   r8   r   )ir   r3   r   z)r   r   r6   )r   r3   r   )rM   r   r3   )r   r8   r6   )r   rO   r   )r6   r;   r8   )rM   r   r   )rO   r   r6   CHmethodLDL)r8   r   r3   )r6   r   r3   rl   )rQ   r   rQ   rZ   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   F)simplifyc                    > U STUS4   -  -   $ )Nr   r   r,   )vrg   Ms     r   r-   r.     s    Q1QT7]r   )r   r   r   )rO   r   r   r   r   r   )r   r   r   )r   r   r   )r   r3   r   )r   r   r3   )   r~   )r   r   )rL   r   r   )r   r6   r3   )r8   rM   rV   )rL   r3   rL   )r3   r   r3   rM   )r6   r8   r   r   )r   r3   r   rO      rY   r~   )r   r   r   r   r3   r   r   )rQ   r~   r   rQ   ir   r   )r   rV   r   r   r3   r3   r   )rO   rL   r   r   r   rV   r   )r   r   r   r   r   r   r   )r   r   r   r   r   r   r   )r   r   r   r   r   r   r   )rL   r   r   r   r   r   r   )r   r   r   r   r   r   r   )rQ   r   r   rQ   r   r   r   ))r   r   rO   r   r   r   )rO   r   r   )rO   r   r   )r6   r   r   )r   r   r   r   r=   r[      )	r   )r   rV   )r   r   )r   r8   )r   rV   )r   r   )r6   r8   )r3   r   )rV   r8   )	r   r   r9   r   rV   r=   r   r   r9   r   r8   r[   r   rV   r=   r   r   r   r6   r8   r[   r3   r   r=   rV   r8   r9   )	r   r   r   r   r   r   r   r   r   )Er   	TypeErrorr   sympy.matricesr2   r   row_joincol_jointyperanger   hstackr   vstacktodokevalSyntaxErrorr   
isinstancecolsrowsrow_delcol_delr   col_swaprow_swapcopy
ValueErrortolisthasr   shapedetlenreshape	applyfuncabsr	   LUdecompositionis_loweris_upperpermute_rowsLUsolveinvcrossnormr   C
row_insert
col_insertis_symmetriccol_opfillcofactor_matrixjacobianQRdecompositionr   Trref	nullspacecharpolyr
   	eigenvalssortedkeys
eigenvectsrow_listcol_listnnz)#r%   r(   r   r2   br$   sparse_matricescr:   Amr   rK   m0m1m2testmatLUprr   solnAinvv1v2testsymsQRouttmpbasissparse_eye3valsr{   s#                                     @r   test_sparse_matrixr      se   #% 901  	A ?a1BAAq6"A::a=A::a=A

1$q')))

1$q'))) :?qBA|))!Q/OB0F1a4DDDD9>qBA|))!Q/OB0F1a4DDDD 	  	A
 AaDT7a<<AaDAdG      AdG      AdG      779A.... 	  	A 	  	A
 	
AT7a<<T7a<<T7a<<T7a<<T7b==T7a<<
[ w!||w!||w!||w!||w"}}w!||sA	F3KAa&&&&T7a<<T7ac>>T7ac>>T7a<<	AAa&&&&T7a<<T7c>>T7c>>T7a<< 	q!fq!f%&AqD!92222iJ78AqD!9EEEE 	sAq!fq!f%&A	A66QVV66Q;;Q4Aq!Q<QAq!Q<(A	A66QVV66Q;;Q4Aq!Q<6M61AIIaL&     	1AIIaLVFF     	AAdGJJq!     JJq!    
 	QAq6"A	A	AQ4199IIaLQ2&&&&IIaLQA3''''QFQC01V= 6    1vz!}56&	B ;   
 :>?1q!f%,,.Aq6(:::1q1a&k*113AA7GGGG
:67
:;<!!%((((vqk*00F:::vqk*00F:::dVQK066&@@@
:>?
:>?
:OP #;sq1qc"&&(A---!""$)))*+//1R777!Q!QqS*+//1QqSUQY>>> & ''*su2 2 2  , - .1SUd; ; ;
  - . /2ceq9 9 9
  , - .1SUc	: : :  / 0 14	= = =  1 2 36#%5	A A A  , - .1SUb9 9 9
  - . /2ceq9 9 9
  , - .1SUc	: : :  / 0 14	= = = 
ABbqb"1"f:A&&&ac1Q3h<<?***	a.	/Bad8|Aq)4444ac1f:aF3333		|^5EF
HBae9Q>::::bc1f:~7G&HIIII!Q!Q()1#s(3vse}DDD 	QAQ-Aac1Q3hK , - - - - qwwy>Q1Abqb"1"fI
11a.AadG , - - - - 1oAadGQMAadG 0 1 1 1 1 1vAbqb!eH 0 1 1 1 1 
AB::a|Aq2MNNNN	a.	/B::aABC C C::a(*<=>? ? ? 
AB<<&*Q-/999<<%a888 |aVa1X./0L3q61+PSTUPVXYZ]^_Z`X`OaAb4cccc M)))+ ,G %%'GAq!::::::aCa,w6,q/IIIN***, -G %%'GAq!::::::aCa,w6,q/IIISk6#;s!qAq	Aq!9q!Qi01A!GAq!::::::aCa,q0LOCCC 	i! 	"A 	Q9%A	A99Q<D199j  " 	#A 	Q:&A	A99Q<D199 	1A557jm###555A...555*Q-///i! 	"A q	(DT6Z]"""555%%%555$&&&i! 	"A q	(DT6Z]"""555%%%555$&&& 
1i	 B	1i	 B88B<6!Q4444771:q=B 	q!a%j&)*A33,	
AE
	

      VAq,''1,,,vaL))\	
AE
	

; .    ::jm$	
AE
	

	

	

	6 )    <<:a=)\	
AE
	

	

	

	; .    <<<--a34	
AE1F 9    ~~u~--- 	AAAdGHHQ*+     	AFF1I     a=JqM99;;;;Iy9:D!lK<=> > >Iy9:D!k;<=> > > 	sAsAQAqDFAadFQSL12A6D::dv!Aq!t}q!A#'l&CDDDDQA!tAqDy>*A::d|aVac!Q$h1Qq!t5L,MNNNN 	AA ADAqAaAh;!A$q&1Q46Ab!H"445	
1aAh;!A$q1Q46Ab!H"4457 8 8 8 8 	
AaG1aAh;'ad1fqAw&') * * * * Q3!8O8337jm###A 	l 	AvvxHC&1a!A$r1R584a!A$r'1R5846 7 7 7 7 	////1 	2A
 vvxHC&//aAq!QqT!V4/1 2 2 2 2
 KKME8v455558v344448v566668vq!Q1aeAgq9:::: 	sAsAQ-K"hAz&::::"hAz&:::: 	  	A ;;=D$))+*,,,A	 	A <<>q!yyy&      		 	A <<>q!faeAgqtAvq-A&B%CD !fY&7%89 !fY&7%89; ; ; ; 771a=LAr2222	b"r2r2WYceoq{}  HJ  K  
LA::<  H  H  H  H::<  H  H  H  HA""$)))m CBh  s%   !A\1!A\A\ \
A\\A\c                  b    [        SS//5      R                  S5      [        SS//5      :X  d   eg )Nr   r   r   r3   )r   scalar_multiplyr,   r   r   test_scalar_multiplyr   '  s1    !Q!11!4q!fX8NNNNr   c                  T    [        S5      R                  5       [        S5      :X  d   eg )Nr7   rw   ))r   r   )r   r   )r   	transposer,   r   r   test_transposer   +  s,    ()335%&' ' 'r   c                      [        S5      R                  5       S:X  d   e[        S5      R                  5       S:X  d   eg )Nr   r6   )r   )r   r   r   )r   tracer,   r   r   
test_tracer   0  s<    ()//1Q666()//1Q666r   c                      [        S5      R                  5       / SQ:X  d   e[        S5      R                  5       / SQ:X  d   eg )Nr   )r?   rj   r   r   r   r   r   r   )r?   r   rj   r   )r   r   r   r,   r   r   
test_CL_RLr   5  sJ    ()22445 5 5()22445 5 5r   c                  2   [        S5      [        S5      -   [        S5      :X  d   e[        SSS 5      n [        SSS 5      n[        U R                  5       5      [        UR                  5       5      -   [        X-   R                  5       5      -
  S:  d   eg )Nr/   )r1   r0   )r4   r4   d   c                 :    [        US:g  =(       a    X-  S:H  5      $ rp   intrf   s     r   r-   test_add.<locals>.<lambda>?      CQ0E15A:,Fr   c                 :    [        U S:g  =(       a    X-  S:H  5      $ rp   r   rf   s     r   r-   r   @  r   r   r   )r   r   r   )r   r   s     r   test_addr   <  s    ()L9I,JJ%&' ' 'S#FGAS#FGA	NS^+c15--/.BBQFGFr   c                  X   [        [        S 5        [        [        S 5        [        [        S 5        [        [        S 5        [        [        S 5        [        [        S 5        [        [        S 5        [        [        S 5        [        [        S	 5        [        [        S
 5        g )Nc                      [        SSS 5      $ )Ngffffff?r   c                     grp   r,   rf   s     r   r-   /test_errors.<locals>.<lambda>.<locals>.<lambda>E  s    r   r   r,   r   r   r-   test_errors.<locals>.<lambda>E  s    |CNCr   c                  "    [        / SQSS/5      $ )NrA   r   r   r   r,   r   r   r-   r   F  s    l9q!f=r   c                  *    [        SS/SS//5      S   $ Nr   r   r   r   rA   r   r,   r   r   r-   r   G  s    |aVaV,<=iHr   c                  *    [        SS/SS//5      S   $ )Nr   r   r   r   r6   r   r,   r   r   r-   r   H  s    |aVaV,<=a@r   c                  *    [        SS/SS//5      S   $ r   r   r,   r   r   r-   r   I  s    |aVaV,<=gFr   c                  X    [        SS/SS//5      R                  SS/[        5       5      $ )Nr   r   r   r   r   )r   copyin_listsetr,   r   r   r-   r   K  s)    q!fq!f-.::Aq635Ir   c                  *    [        SS/SS//5      S   $ )Nr   r   r   r   r7   r   r,   r   r   r-   r   M  s    L1a&1a&)9:4@r   c                  :    [        / SQ5      R                  S5      $ )NrA   r   )r   r   r,   r   r   r-   r   N  s    l95;;A>r   c                  &    [        SSSS/5      S   $ )Nr   r   r   r   r,   r   r   r-   r   O  s    |Aq1a&9!<r   c                  @    [        SSSS/5      [        SSSS/5      -   $ r+   r   r,   r   r   r-   r   Q  s#    QAq6*\!QA-GGr   )r   r   r   
IndexErrorr   r,   r   r   test_errorsr  D  sz    
:CD
9=>
:HI
:@A
:FG
9IK
@B
9>?
:<=
:GIr   c                      [        5       (       a   e[        5       [        / 5      :X  d   e[        5       [        / /5      :X  d   eg r"   r   r,   r   r   test_lenr	  T  s;    ~~>\"---->\2$////r   c                  p   [         R                  " S5      [        S[         S9:X  d   e[        [         R                  " S5      R                  5       5      S:X  d   e[         R                  " S5      [	        S[         S9:X  d   e[        [         R                  " S5      R                  5       5      S:X  d   eg )Nr   )clsr   )r   r   r   r   r   r,   r   r   test_sparse_zeros_sparse_eyer  Z  s    A#a\"::::|"((*+q000a E!$>>>>|!!!$**,-222r   c                     [        SS0 5      n SU S'   U S S 2S4   [        [        / SQ5      5      :X  d   eU S   S:X  d   eU SS S/:X  d   eSU S'   U S   S:X  d   eU SSS 24   [        SS//5      :X  d   e[        S	S
//5      U SSS 24'   U SS S 24   [        / SQ/5      :X  d   eSS//U SSS 24'   U SS S 24   [        / SQ/5      :X  d   eSU S'   U S S 2S S24   [        / SQ5      :X  d   e/ SQU S'   U S S 2S4   [        / SQ5      :X  d   e[        / SQ5      U S'   U S S 2S4   [        / SQ5      :X  d   e[        / SQ5      U S'   U S S 2S4   [        / SQ5      :X  d   eg )Nr   r   r0   r   r@   r   *   r4   r6   r3   )r   r6   r3   +   )r   r  r     r   )r  r   r   rP   )r   r   )ss    r   test_copyinr  a  s   Q2AAdGQT7l6)#45555Q4199Q7qc>>AdGT7b==QU8|b!WI....1vhAaeHQT7lI;////RzAaeHQT7lK=1111AdGQU8|J////AdGQT7l9----YAdGQT7l9----9%AdGQT7l9----r   c            	         [        S5      n U R                  5       [        / SQ/ SQ/ SQ/5      :X  d   eU R                  5       U R                  5       R                  -  [        / SQ/ SQ/ SQ/5      :X  d   e[        S5      n U R	                  5       u  pSU-  [        / S	Q/ S
Q/ SQ/5      :X  d   eU[        / SQ/ SQ/ SQ/5      :X  d   eX-  UR                  -  U :X  d   e[        S5      n U R                  5       U -  [        [        S5      5      :X  d   e[        / SQ/ SQ/ SQ/5      n [        [        SS5      [        SS5      [        SS5      /[        SS5      [        SS5      [        SS5      /SS[        R                  //5      nU R                  SS9U:X  d   eU R                  SS9U:X  d   eX-  [        [        S5      5      :X  d   eU R                  U S S 2S4   S5      nX-  U S S 2S4   :X  d   eU R                  U S S 2S4   S5      nX-  U S S 2S4   :X  d   eU R                  U 5      n U R                  U S S 2S4   S5      nX-  U S S 2S4   :X  d   eU R                  U S S 2S4   S5      nX-  U S S 2S4   :X  d   eg )N)   r<   rN   r<   r9   r   rN   r   rW   )r6   r   r   )r   r   r   )rO   r   r   r  r  r  r<   )r<   r   r   )rV   r<   r   )rL   r6   r<   )r  r   r   )r   rV   r   )r   r   rV   ))r   r   r   r?   rB   r   )r   rO   r   )rO   r   rO   r|   r   r   r3   r   rs   rt   rv   )r   choleskyr   r   LDLdecompositionr   r   r   r   Halfsolver   solve_least_squares)r   r   Dansr  s        r   test_sparse_solver  x  s   =>A::<6#     ::<!**,..(F4 -   
 	=>ADAa46          5133;!67A557Q;,s1v.... 	A 	!Q!Q!Q8	!Q!Q!Q8a79 :C 555$$$555#%%%7l3q6****	!Q$A3!AqD'>>	!Q$A3!AqD'>>	

1A	a1gt,A3!AqD'>>	a1gu-A3!AqD'>>r   c                     [        [        S 5        [        [        S 5        [        [        S 5        [	        S5      u  pp#[	        S5      u  pEpg[        U S/X#//5      n[        XE/Xg//5      n	[        XE/Xg//5      n
[        X@-  XP-  /XbU-  U -  -
  U-  XrU-  U -  -
  U-  //5      nUR                  U	5      U:X  d   eUR                  U
5      U:X  d   eg )Nc                  T    [        SS//5      R                  [        SS//5      5      $ r+   r   lower_triangular_solver   r,   r   r   r-   -test_lower_triangular_solve.<locals>.<lambda>  &    q!fX55fq!fX6FGr   c                  V    [        SS/SS//5      R                  [        S/5      5      $ Nr   r   r   r   r"  r,   r   r   r-   r$    (    q!fq!f%&==faSkJr   c                  `    [        SS/SS//5      R                  [        SS/SS//5      5      $ Nr   r   r   r   r"  r,   r   r   r-   r$    5    q!fq!f%&==fq!fqRSfEU>VWr   a:du:xr   )
r   r   r   r   r   r   r   r   r   r#  r   r   r   durz   wr:   r   Br   sols               r   test_lower_triangular_solver4    s    
 "H I
: K L
: X Y JA!JA!q!fqf%&AaVaV,-Avv./A
13*aCE	1}qQ3q5y!m<=
>C##A&#---##A&#---r   c                     [        [        S 5        [        [        S 5        [        [        S 5        [	        S5      u  pp#[	        S5      u  pEpg[        X/SU//5      n[        XE/Xg//5      n	[        XE/Xg//5      n
[        XAU-  U-  -
  U -  XQU-  U-  -
  U -  /Xc-  Xs-  //5      nUR                  U	5      U:X  d   eUR                  U
5      U:X  d   eg )Nc                  T    [        SS//5      R                  [        SS//5      5      $ r+   r   upper_triangular_solver   r,   r   r   r-   -test_upper_triangular_solve.<locals>.<lambda>  r%  r   c                  V    [        SS/SS//5      R                  [        S/5      5      $ r'  r7  r,   r   r   r-   r9    r(  r   c                  `    [        SS/SS//5      R                  [        SS/SS//5      5      $ r*  r7  r,   r   r   r-   r9    r+  r   r,  r-  r   )
r   r   r   r   r   r   r   r   r   r8  r.  s               r   test_upper_triangular_solver<    s    
 "H I
: K L
9 X Y JA!JA!qfq!f%&AaVaV,-Avv./A
A!AIq=1s1u9a-013*=
>C##A&#---##A&#---r   c                  &   [        S5      u  p[        S5      u  p#pE[        U S/SU//5      n[        X#/XE//5      n[        X#/XE//5      n[	        X -  X0-  /XA-  XQ-  //5      n	UR                  U5      U	:X  d   eUR                  U5      U	:X  d   eg )Nza dr-  r   )r   r   r   r   r   diagonal_solve)
r   r/  r0  rz   r1  r:   r   r2  r   r3  s
             r   test_diagonal_solver?    s    5>DAJA!q!fq!f%&AaVaV,-Avv./A
13*qsACj)
*CA#%%%A#%%%r   c                  n   [        S5      n [        S[        /[        * S//5      nUR                  (       d   e[        S[        /[        * S//5      nUR                  (       d   eS[        -  US'   UR                  SL d   eXS'   UR                  b   eUS   [        -  US'   UR                  SL d   eg )	Nr:   r   r   r   r   Fr0   r1   )r   r   r   is_hermitian)r:   r   s     r   test_hermitianrB    s    sAq!fr1g&'A>>>q!fr1g&'A>>>cAdG>>U"""dG>>!!!gaiAdG>>U"""r   N))sympy.core.numbersr   r   r   sympy.core.singletonr   sympy.core.symbolr   r   $sympy.functions.elementary.complexesr	   sympy.polys.polytoolsr
   r   r   r   r   r   r   r   r   r   r   sympy.testing.pytestr   r   r   r   r   r   r   r   r  r	  r  r  r  r4  r<  r?  rB  r,   r   r   <module>rI     s    3 3 " / 4 *2 2 2 (/O*dO'
7
5HI 03...b.(.(
&#r   