
    sgZ                         d dl mZmZ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mZmZmZmZmZmZ d dlmZ d Zd	 Zd
 Zd Zd Zd Zd Zd Z d Z!d Z"d Z#d Z$d Z%d Z&d Z'd Z(y)    )FloatIRational)S)Symbolsymbols)Abs)PurePoly)	MatrixMutableSparseMatrixImmutableSparseMatrixSparseMatrixeyeoneszeros
ShapeErrorNonSquareMatrixError)raisesc                      t        dddddgddggi      } | t        ddgddgg      k(  sJ t        dddddggi      } | t        ddgddgg      k(  sJ t        dddddgi      } | t        ddgddgg      k(  sJ y )N   r   r            r   r   )as    S/var/www/html/venv/lib/python3.12/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                  ,  " d } d }t        t        d        t        d      }t        |      |k(  sJ ddlm} t        g       } |ddg      }|j                  |      |k(  sJ |j                  |      |k(  sJ t        |j                  |            t        |      k(  sJ t        |j                  |            t        |      k(  sJ t        d	      D cg c]  }t        j                  d|       }}t        j                  | t        dd
g       k(  sJ t        d	      D cg c]  }t        j                  |d       }}t        j                  | t        d
dg       k(  sJ t        d      }d	|d<   |d   d	k(  sJ d|d<   d|d<   |t        d      k(  sJ d|d<   |t        d      k(  sJ d|d<   |t        d      k(  sJ |j                         dddk(  sJ t        d      }t        d      }||z  }|d   dk(  sJ |d   dk(  sJ |d   d
k(  sJ |d   d
k(  sJ |d   dk(  sJ |d   dk(  sJ 	 t        d       |d   dk(  sJ |d   dk(  sJ |d   d
k(  sJ |d   d
k(  sJ |d   dk(  sJ |d   dk(  sJ t#        d      }|t#        d      z  }t%        |t              sJ |d   |k(  sJ |d   d|z  k(  sJ |d   d|z  k(  sJ |d   dk(  sJ d|z  }t%        |t              sJ |d   dk(  sJ |d   dk(  sJ |d   dk(  sJ |d   dk(  sJ t        ddgd	dgg      }	|	dz  d d  g dk(  sJ t        g d g d!g d"g      }	|	dz  d d  g d#k(  sJ t#        d      }t        |dgddgg      }|}
|
j&                  |
j(                  k(  sJ |
j&                  dk(  sJ |
d d  |dddgk(  sJ t        dd|dddg      }|}
|
j&                  |
j(                  k(  sJ |
j&                  dk(  sJ |
d d  |dddgk(  sJ ||k(  sJ  | d      } |j*                  d       |t        g d$g d%g      k(  sJ  | d      } |j,                  d       |t        ddgddgddgg      k(  sJ t        j.                  d      }d|d<    |j0                  dd       |t        g d&g d$g d'g      k(  sJ  |j2                  dd       |t        g d$g d&g d'g      k(  sJ t        ddddg      }|j5                         }|j5                         }|d   dk(  sJ |j+                  d       |t        ddg       k(  sJ |j-                  d       |t        dddg      k(  sJ t        g d(ddgdgg      t        g d(g d)g d$g      k(  sJ t        d	d	d | d      i      t        g d*g d+g d,g d*g      k(  sJ t        t6        d-        t        ddddg      j9                         ddggk(  sJ t        dddddgg      j9                         ddgddggk(  sJ t        t6        d.        t        t6        d/        t        d0g      j;                  t<              sJ t        d ddi      j>                  dk(  sJ t        d ddi      j>                  d1k(  sJ t        d d ddi      j>                  d1k(  sJ t        t6        d2        t        t6        d3        t        t6        d4        t#        d      t#        d5      }}t        dddg      jA                         dk(  sJ t        dgg      jA                         dk(  sJ t        d6      jA                         d7k(  sJ t        |df|d|z  ff      jA                         d|z  |z  |z
  k(  sJ t        d8      jA                         dk(  sJ t        d9      jA                         d:k(  sJ t        d;      jA                         dk(  sJ t        d<      jA                         d=k(  sJ t        d>      jA                         d?k(  sJ t        d@      jA                         dAk(  sJ t        dB      jA                         dCk(  sJ t        dD      jA                         dk(  sJ t        dE      jA                         dFk(  sJ t        dG      jA                         dHk(  sJ  | d	      }|d dd df    | d      k(  sJ |dd	ddf    |d      k(  sJ t        dddI       }|dd d f   t        dddJ      k(  sJ |dddf   t        dddK      k(  sJ t        g dLg dMg dNg dOg      }|d d d7f   t        d	dg dP      k(  sJ |dQd d d f   t        g dNg dOg      k(  sJ t        ddgdd	gg      dgdgf   t        d	gg      k(  sJ  |d	      }
 | d      |
dd	dd	f<   |
t        g dR      k(  sJ tC        |
j                               dk(  sJ  | d      |
d dd df<   |
 | d	      k(  sJ t        d	ddS      |
d d df<   |
t        g dT      k(  sJ  |d	      |
d d d d f<   |
 |d	      k(  sJ d;|
d d d d f<   |
t        d;      k(  sJ ddg|
d ddf<   |
t        dU      k(  sJ  | d      }|jE                  ddV      t        ddVdW      k(  sJ t        dd	dX       }|jE                  d	d      t        g dY      k(  sJ |jE                  dd
      t        dZd[g      k(  sJ  | d      }|jG                  d\        | d      dz  k(  sJ |jG                  d]        |d      k(  sJ tI        t        |df|d|z  ff            t        tK        |      dftK        |      dtK        |      z  ff      k(  sJ t        g d^g d_g d`g dag      }|jM                         \  }}}|jN                  sJ |jP                  sJ ||z  jS                  |db      |z
   |d	      k(  sJ t        g dcg ddg deg dfg      }|jM                         \  }}}|jN                  sJ |jP                  sJ ||z  jS                  |db      |z
   |d	      k(  sJ t#        d      t#        d5      t#        dg      }}}t        d|dfd|df|d|ff      ""jM                         \  }}}|jN                  sJ |jP                  sJ ||z  jS                  |db      "z
   |d      k(  sJ t        g dhg dig djg      }	t        ddg dk      }|	|z  }|	jU                  |      }||k(  sJ t        g dlg dmg dng      }	t        ddg do      }|	|z  }|	jU                  |      }||k(  sJ  | d	      }	|	jW                          | d	      k(  sJ |	jW                  dpq       | d	      k(  sJ |	jW                  drq       | d	      k(  sJ t        g dhg dig dsg      }	t        t        |	      jW                               }|	|z   | d      k(  sJ |	jW                  dpq      |k(  sJ |	jW                  drq      |k(  sJ t        g dhg dig dtg      }	t        t        |	      jW                               }|	|z   | d      k(  sJ |	jW                  dpq      |k(  sJ |	jW                  drq      |k(  sJ t        ddg d(      }t        ddg du      }|jY                  |      t        ddg dv      k(  sJ |j[                  d      dz  dwk(  sJ t        ddt\        z   fdxf      }|j^                  t        ddt\        z
  gdd	gg      k(  sJ |t        ddg dy      z  |k(  sJ |t        ddg dz      z   t        ddt\        z   gd	dgg      k(  sJ |j                   | d            t        ddt\        z   gdd	gddgddgg      k(  sJ |ja                  d | d            t        ddt\        z   gdd	gddgddgg      k(  sJ |jc                  dt        j                  dd            t        ddt\        z   dgg d{g      k(  sJ |je                  d|}      rJ t        j.                  d      dz  "d7"d<   "jg                  d"fd~       "t        g dg dg dg      k(  sJ t        j.                  d      ""ji                  d       "t        g dg dg dg      k(  sJ  | d       | d      jk                         k(  sJ t        g dg dg dg      }|jk                         t        g dg dg dg      k(  sJ t        g d(g dg dg      }|jk                         t        g dg dg dg      k(  sJ t#        d      }t#        d5      }t        dd|dz  |z  d|dz  z  ||z  z   g      }||g}|jm                  |      t        d|z  |z  |dz  g|d	|z  |z   gg      k(  sJ t        dd||dz  |dz  z  g      }|jm                  |      t        ddgd|z  |dz  z  |dz  dz  |dz  z  gg      k(  sJ t        ddgddgg      }	|	jo                         \  }}tp        }|t        d |d7d      z   |d      dz   |d      dz   |d7d      z  z  gdd |d7d      z  z   |d       dz   |d      dz   |d7d      z  z  gg      k(  sJ |t        d |dd      z  dd |d7d      z  z  gd |d      dz   |dd      z  gg      k(  sJ ||z  |	k(  sJ |jr                  |z   | d      k(  sJ tp        }t        g dg dg      ""ju                         \  }}|t        dd |d       dz   |d      dz  gdd |d      dz   |d      dz  gg      k(  sJ t        g dg dg dg dg      ""ju                         \  }}|t        g dg ddddddd |d      dz  gg dg      k(  sJ "jw                         }|d   t        g d      k(  sJ |d   t        g d      k(  sJ |d   t        g d      k(  sJ |d   t        ddddd |d7      dz  dg      k(  sJ t#        d      }t#        d5      } | d      } | jy                  |      t{        |dz
  dz        k(  sJ | jy                  |      t{        |dz
  dz        k(  sJ t        g d      ""j}                         }!t        |!j                               g dk(  sJ tp        }t        g d$g d&g d%g      ""j                         ddt        g d$      t        g d&      t        g d%      gfgk(  sJ t        g dg dg d%g      ""j                         ddt         |d7      dz   |d      dz  dg      gfddt        g d&      gfddt        g d      gfgk(  sJ "j                  dd      t        ddi       k(  sJ t        dddddddddddd	      }	|	j                         g dk(  sJ |	j                         g dk(  sJ t        j.                  d      j                         dk(  sJ y c c}w c c}w # t         $ r Y w xY w)Nc                 ,    t        j                  |       S N)r   r   ns    r   
sparse_eyez&test_sparse_matrix.<locals>.sparse_eye   s    ""r   c                 ,    t        j                  |       S r"   )r   r   r#   s    r   sparse_zerosz(test_sparse_matrix.<locals>.sparse_zeros   s    !!!$$r   c                      t        dd      S Nr   r   r    r   r   <lambda>z$test_sparse_matrix.<locals>.<lambda>   s    l1a0 r   r   r   r   r   r   )MutableDenseMatrixr   r   r      r   r   r   r   )r   r   r.      r-   )r2   )r3   r   )r2   )r3   r   )r   r-   )r   r   )r   r   )r   r0   )r4   )r   r      r.   r2      )r   r   z	c = a @ bx
      )i  i  i,*  i7  )r   r   r   )r   r   r   )r0      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                       t        ddddi      S )Nr   r1   r   r*   r   r   r+   z$test_sparse_matrix.<locals>.<lambda>   s    |Aq61+> r   c                      t        dddg      S )Nr   r   r   r*   r   r   r+   z$test_sparse_matrix.<locals>.<lambda>   s    |Aq1#6 r   c                  "    t        ddddgg      S r)   r   r*   r   r   r+   z$test_sparse_matrix.<locals>.<lambda>   s    |AqAq6(; r   g?r4   c                  "    t        d dddgg      S r)   r   r*   r   r   r+   z$test_sparse_matrix.<locals>.<lambda>   s    |D!q!fX> r   c                  "    t        dd ddgg      S r)   r   r*   r   r   r+   z$test_sparse_matrix.<locals>.<lambda>   s    |Atq!fX> r   c                  4    t        ddt        d      dd      S )Nr   r   )r   r1   )r   r   r*   r   r   r+   z$test_sparse_matrix.<locals>.<lambda>   s    |Aq47A2NO r   y))r   )   )r   r   r   r>   )r   r   r0   ))r   r   r3   )rN   r   rN   r   r   rN   r3   r   r3   r   r   r   i)r   r   r   r   )r3   r0   r5   rJ   	   r8      r:         r9      )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   rL   r   )r   r   rL   r   rJ   )r   r   r   r   r0   i))rK   r   r   r   r3   )r   r   r   r3   )r   r   rI   r   r3   )r   r   r   rN   r3   )r   r   r   r   rL   i-  ))r   r   r   r   )rN   r   r   r   rO   rP   <   )r   r   r   r   )r3   r   r   r   )rS   r8   rT   r   rU   )rY   rZ   r[   r\   )r   r   r   r   r      ))r   r5   rL   r   r   )r   r   r   r   r   )rN   r   r5   r   r   )rI   rN   r   r3   r   )r   r   r   r   r   {   c                     | |z   S r"   r*   ijs     r   r+   z$test_sparse_matrix.<locals>.<lambda>  
    Q r   r   r   r   )r   r   )r   r   r   r   )r   r3   r0   r5   )rJ   rS   r8   rT   )r:   rV   rW   r9   )r   r5   rT   r9   rN   )r@   r@   rA   )r   r   r   r   rQ   )r_   )r   r   r   r   )r   r   r   r   )r   r   r   r   ))r   r   r   r   )r   r0   r5   rJ   rR   rU   rS   )	r   r   r   r   r   r   r   r   r   c                     | |z   S r"   r*   rc   s     r   r+   z$test_sparse_matrix.<locals>.<lambda>:  rf   r   )rg   )r   r   r   )r   r   r   r   r   r3   )r   r   r   r   r   r   )r   r   r   r   r   r3   c                     d| z  S )Nr   r*   r7   s    r   r+   z$test_sparse_matrix.<locals>.<lambda>B  s
    !A# r   c                      yNr   r*   rk   s    r   r+   z$test_sparse_matrix.<locals>.<lambda>C      r   )r   r   r3   r   )r   r   r5   r   )rJ   r   r   r   )rN   r0   r   r   backward)r0   rN   r5   r   )r   r   r0   r5   )r   rN   r5   r   )ir   r0   r   z)r   r   r3   )r   r0   r   )rJ   r   r0   )r   r5   r3   )r   rL   r   )r3   r8   r5   )rJ   r   r   )rL   r   r3   CHmethodLDL)r5   r   r0   )r3   r   r0   ri   )rN   r   rN   rW   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   F)simplifyc                     | d|df   z  z   S )Nr   r   r*   )vrd   Ms     r   r+   z$test_sparse_matrix.<locals>.<lambda>  s    Q1QT7] r   )r   r   r   )rL   r   r   r   r   r   )r   r   r   )r   r   r   )r   r0   r   )r   r   r0   )   r|   )r   r   )rI   r   r   )r   r3   r0   )r5   rJ   rS   )rI   r0   rI   )r0   r}   r0   rJ   )r3   r5   r   r   )r   r0   r   rL      rV   r|   )r   r   r   r   r0   r   r   )rN   r|   r   rN   ir   r   )r   rS   r   r   r0   r0   r   )rL   rI   r   r   r   rS   r   )r   r   r   r   r   r   r   )r   r   r   r   r   r   r   )r   r   r   r   r   r   r   )rI   r   r   r   r   r   r   )r   r   r   r   r   r   r   )rN   r   r   rN   r   r   r   ))r   r   rL   r   r   r   )rL   r   r   )rL   r   r   )r3   r   r   )r   r   r   r   r:   rX      )	r   )r   rS   )r   r   )r   r5   )r   rS   )r   r   )r3   r5   )r0   r   )rS   r5   )	r   r   r6   r   rS   r:   r   r   r6   r   r5   rX   r   rS   r:   r   r   r   r3   r5   rX   r0   r   r:   rS   r5   r6   )	r   r   r   r   r   r   r   r   r   )Er   	TypeErrorr   sympy.matricesr/   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   r/   br$   sparse_matricescr7   Amr   rH   m0m1m2testmatLUprp   solnAinvv1v2testsymsQRouttmpbasissparse_eye3valsry   s#                                     @r   test_sparse_matrixr      st   #% 901  	A ?a1BAAq6"A::a=A::a=A

1$q')))

1$q'))) :?qBA|))!Q/BOB0F1a4DDDD9>qBA|))!Q/BO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AIIaL&     	1AAIIaLVFF     	AAdGAJJq!     AJJq!    
 	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qA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!qA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dFQqSL12Aq6D::dv!Aq!t}q!A#'l&CDDDDQAq!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%   AY&AY5AY! Y!	AY.Y-AY.c                  `    t        ddgg      j                  d      t        ddgg      k(  sJ y )Nr   r   r   r0   )r   scalar_multiplyr*   r   r   test_scalar_multiplyr   '  s1    !Q!11!4q!fX8NNNNr   c                  R    t        d      j                         t        d      k(  sJ y )Nr4   ru   ))r   r   )r   r   )r   	transposer*   r   r   test_transposer   +  s,    ()335%&' ' 'r   c                  |    t        d      j                         dk(  sJ t        d      j                         dk(  sJ y )Nr   r3   )r   )r   r   r   )r   tracer*   r   r   
test_tracer   0  s<    ()//1Q666()//1Q666r   c                      t        d      j                         g dk(  sJ t        d      j                         g dk(  sJ y )Nr   )r<   rg   r   r   r   r   r   r   )r<   r   rg   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                  0   t        d      t        d      z   t        d      k(  sJ t        ddd       } t        ddd       }t        | j                               t        |j                               z   t        | |z   j                               z
  dkD  sJ y )Nr,   )r.   r-   )r1   r1   d   c                 2    t        |dk7  xr | |z  dk(        S rm   intrc   s     r   r+   ztest_add.<locals>.<lambda>?      CQ0E1q5A:,F r   c                 2    t        | dk7  xr || z  dk(        S rm   r   rc   s     r   r+   ztest_add.<locals>.<lambda>@  r   r   r   )r   r   r   )r   r   s     r   test_addr   <  s    ()L9I,JJ%&' ' 'S#FGAS#FGA	NS^+c1q5--/.BBQFGFr   c                  X   t        t        d        t        t        d        t        t        d        t        t        d        t        t        d        t        t        d        t        t        d        t        t        d        t        t        d	        t        t        d
        y )Nc                      t        ddd       S )Ngffffff?r   c                      yrm   r*   rc   s     r   r+   z/test_errors.<locals>.<lambda>.<locals>.<lambda>E  rn   r   r   r*   r   r   r+   ztest_errors.<locals>.<lambda>E  s    |CNC r   c                  "    t        g dddg      S )Nr>   r   r   r   r*   r   r   r+   ztest_errors.<locals>.<lambda>F  s    l9q!f= r   c                  *    t        ddgddgg      d   S Nr   r   r   r   r>   r   r*   r   r   r+   ztest_errors.<locals>.<lambda>G  s    |aVaV,<=iH r   c                  *    t        ddgddgg      d   S )Nr   r   r   r   r3   r   r*   r   r   r+   ztest_errors.<locals>.<lambda>H  s    |aVaV,<=a@ r   c                  *    t        ddgddgg      d   S r   r   r*   r   r   r+   ztest_errors.<locals>.<lambda>I  s    |aVaV,<=gF r   c                  X    t        ddgddgg      j                  ddgt                     S )Nr   r   r   r   r   )r   copyin_listsetr*   r   r   r+   ztest_errors.<locals>.<lambda>K  s+    q!fq!f-.::Aq635I r   c                  *    t        ddgddgg      d   S )Nr   r   r   r   r4   r   r*   r   r   r+   ztest_errors.<locals>.<lambda>M  s    L1a&1a&)9:4@ r   c                  :    t        g d      j                  d      S )Nr>   r   )r   r   r*   r   r   r+   ztest_errors.<locals>.<lambda>N  s    l95;;A> r   c                  &    t        ddddg      d   S )Nr   r   r   r   r*   r   r   r+   ztest_errors.<locals>.<lambda>O  s    |Aq1a&9!< r   c                  @    t        ddddg      t        ddddg      z   S r)   r   r*   r   r   r+   ztest_errors.<locals>.<lambda>Q  s%    QAq6*\!QA-GG r   )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                  ~    t               rJ t               t        g       k(  sJ t               t        g g      k(  sJ y r"   r   r*   r   r   test_lenr  T  s9    ~>\"---->\2$////r   c                  l   t        j                  d      t        dt               k(  sJ t        t        j                  d      j                               dk(  sJ t        j                  d      t	        dt               k(  sJ t        t        j                  d      j                               dk(  sJ y )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                     t        ddi       } d| d<   | d d df   t        t        g d            k(  sJ | d   dk(  sJ | dd dgk(  sJ d| d<   | d   dk(  sJ | ddd f   t        ddgg      k(  sJ t        d	d
gg      | ddd f<   | dd d f   t        g dg      k(  sJ ddgg| ddd f<   | dd d f   t        g dg      k(  sJ d| d<   | d d d df   t        g d      k(  sJ g d| d<   | d d df   t        g d      k(  sJ t        g d      | d<   | d d df   t        g d      k(  sJ t        g d      | d<   | d d df   t        g d      k(  sJ y )Nr   r   r-   r   r=   r   *   r1   r3   r0   )r   r3   r0   +   )r   r	  r
     r   )r  r   r   rM   )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            	         t        d      } | j                         t        g dg dg dg      k(  sJ | j                         | j                         j                  z  t        g dg dg dg      k(  sJ t        d      } | j	                         \  }}d|z  t        g d	g d
g dg      k(  sJ |t        g dg dg dg      k(  sJ ||z  |j                  z  | k(  sJ t        d      } | j                         | z  t        t        d            k(  sJ t        g dg dg dg      } t        t        dd      t        dd      t        dd      gt        dd      t        dd      t        dd      gddt        j                  gg      }| j                  d      |k(  sJ | j                  d      |k(  sJ | |z  t        t        d            k(  sJ | j                  | d d df   d      }| |z  | d d df   k(  sJ | j                  | d d df   d      }| |z  | d d df   k(  sJ | j                  |       } | j                  | d d df   d      }| |z  | d d df   k(  sJ | j                  | d d df   d      }| |z  | d d df   k(  sJ y )N)   r9   rK   r9   r6   r   rK   r   rT   )r3   r   r   )r   r   r   )rL   r   r   r  r  r  r9   )r9   r   r   )rS   r9   r   )rI   r3   r9   )r  r   r   )r   rS   r   )r   r   rS   ))r   r   r   r<   r?   r   )r   rL   r   )rL   r   rL   rz   r   r   r0   r   rq   rr   rt   )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DAqa46          q5133;!67A557Q;,s1v.... 	A 	!Q!Q!Q8	!Q!Q!Q8a79 :C 555$$$555#%%%s7l3q6****	!Q$AQ3!AqD'>>	!Q$AQ3!AqD'>>	

1A	a1gt,AQ3!AqD'>>	a1gu-AQ3!AqD'>>r   c                     t        t        d        t        t        d        t        t        d        t	        d      \  } }}}t	        d      \  }}}}t        | dg||gg      }t        ||g||gg      }	t        ||g||gg      }
t        || z  || z  g|||z  | z  z
  |z  |||z  | z  z
  |z  gg      }|j                  |	      |k(  sJ |j                  |
      |k(  sJ y )Nc                  T    t        ddgg      j                  t        ddgg            S r)   r   lower_triangular_solver   r*   r   r   r+   z-test_lower_triangular_solve.<locals>.<lambda>  +    q!fX55fq!fX6FG r   c                  V    t        ddgddgg      j                  t        dg            S Nr   r   r   r   r  r*   r   r   r+   z-test_lower_triangular_solve.<locals>.<lambda>  -    q!fq!f%&==faSkJ r   c                  `    t        ddgddgg      j                  t        ddgddgg            S Nr   r   r   r   r  r*   r   r   r+   z-test_lower_triangular_solve.<locals>.<lambda>  :    q!fq!f%&==fq!fqRSfEU>VW r   a:du:xr   )
r   r   r   r   r   r   r   r   r   r  r   r   r   durx   wr7   r   Br   sols               r   test_lower_triangular_solver.    s   
 "H I
: K L
: X Y JAq!QJAq!Qq!fq!f%&AaVaV,-A1v1v./A
1Q3!*AaCE	1}q1Q3q5y!m<=
>C##A&#---##A&#---r   c                     t        t        d        t        t        d        t        t        d        t	        d      \  } }}}t	        d      \  }}}}t        | |gd|gg      }t        ||g||gg      }	t        ||g||gg      }
t        |||z  |z  z
  | z  |||z  |z  z
  | z  g||z  ||z  gg      }|j                  |	      |k(  sJ |j                  |
      |k(  sJ y )Nc                  T    t        ddgg      j                  t        ddgg            S r)   r   upper_triangular_solver   r*   r   r   r+   z-test_upper_triangular_solve.<locals>.<lambda>  r  r   c                  V    t        ddgddgg      j                  t        dg            S r!  r1  r*   r   r   r+   z-test_upper_triangular_solve.<locals>.<lambda>  r"  r   c                  `    t        ddgddgg      j                  t        ddgddgg            S r$  r1  r*   r   r   r+   z-test_upper_triangular_solve.<locals>.<lambda>  r%  r   r&  r'  r   )
r   r   r   r   r   r   r   r   r   r2  r(  s               r   test_upper_triangular_solver5    s   
 "H I
: K L
9 X Y JAq!QJAq!Qq!fq!f%&AaVaV,-A1v1v./A
A!AIq=1qs1u9a-01Q3!*=
>C##A&#---##A&#---r   c                  8   t        d      \  } }t        d      \  }}}}t        | dgd|gg      }t        ||g||gg      }t        ||g||gg      }t	        || z  || z  g||z  ||z  gg      }	|j                  |      |	k(  sJ |j                  |      |	k(  sJ y )Nza dr'  r   )r   r   r   r   r   diagonal_solve)
r   r)  r*  rx   r+  r7   r   r,  r   r-  s
             r   test_diagonal_solver8    s    5>DAqJAq!Qq!fq!f%&AaVaV,-A1v1v./A
1Q3!*qsAaCj)
*CA#%%%A#%%%r   c                  V   t        d      } t        dt        gt         dgg      }|j                  sJ t        dt        gt         dgg      }|j                  sJ dt        z  |d<   |j                  du sJ | |d<   |j                  J |d   t        z  |d<   |j                  du sJ y )	Nr7   r   r   r   r   Fr-   r.   )r   r   r   is_hermitian)r7   r   s     r   test_hermitianr;    s    sAq!fr1g&'A>>>q!fr1g&'A>>>cAdG>>U"""AdG>>!!!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  r.  r5  r8  r;  r*   r   r   <module>rB     s    3 3 " / 4 *2 2 2 (/O*dO'
7
5HI 03...b.(.(
&#r   