K iZddlmZmZmZddlmZddlmZmZddl m Z ddl m Z ddl mZmZmZmZmZmZmZmZmZddlmZdZd Zd Zd Zd Zd ZdZdZ dZ!dZ"dZ#dZ$dZ%dZ&dZ'dZ(y))FloatIRational)S)Symbolsymbols)Abs)PurePoly) MatrixMutableSparseMatrixImmutableSparseMatrix SparseMatrixeyeoneszeros ShapeErrorNonSquareMatrixError)raisesctdddddgddggi}|tddgddggk(sJtdddddggi}|tddgddggk(sJtdddddgi}|tddgddggk(sJy)Nrrrr)as f/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sympy/matrices/tests/test_sparse.pytest_sparse_creationr sQFaVaV$456A q!fq!f-. .. .QFaVH-.A q!fq!f-. .. .QFQF+,A q!fq!f-. .. .c,"d}d}ttdtd}t||k(sJddlm}t g}|ddg}|j ||k(sJ|j||k(sJt|j |t|k(sJt|j|t|k(sJtd Dcgc]}tjd|}}tj|tdd gk(sJtd Dcgc]}tj|d}}tj|td dgk(sJtd}d |d <|d d k(sJd|d <d|d <|tdk(sJd|d<|tdk(sJd|d <|tdk(sJ|jdddk(sJtd}td}||z}|d dk(sJ|ddk(sJ|dd k(sJ|d d k(sJ|ddk(sJ|ddk(sJ td|d dk(sJ|ddk(sJ|dd k(sJ|d d k(sJ|ddk(sJ|ddk(sJt#d}|t#dz}t%|tsJ|d |k(sJ|dd|zk(sJ|dd |zk(sJ|d dk(sJd|z}t%|tsJ|d dk(sJ|ddk(sJ|ddk(sJ|d dk(sJtdd gd dgg} | dzddgdk(sJtgd gd!gd"g} | d zddgd#k(sJt#d}t|dgddgg}|} | j&| j(k(sJ| j&dk(sJ| dd|dddgk(sJtdd|dddg}|} | j&| j(k(sJ| j&dk(sJ| dd|dddgk(sJ||k(sJ|d } | j*d| tgd$gd%gk(sJ|d } | j,d| tddgddgddggk(sJtj.d } d| d<| j0dd| tgd&gd$gd'gk(sJ| j2dd| tgd$gd&gd'gk(sJtddddg}|j5}|j5}|ddk(sJ|j+d|tddgk(sJ|j-d|tdddgk(sJtgd(ddgdggtgd(gd)gd$gk(sJtd d d |ditgd*gd+gd,gd*gk(sJtt6d-tddddgj9ddggk(sJtddddd ggj9ddgdd ggk(sJtt6d.tt6d/td0gj;t<sJtdddij>d k(sJtdddij>d1k(sJtddddij>d1k(sJtt6d2tt6d3tt6d4t#dt#d5} }tdddgjAdk(sJtdggjAdk(sJtd6jAd7k(sJt|df| d| zffjAd|z| z| z k(sJtd8jAdk(sJtd9jAd:k(sJtd;jAdk(sJtd<jAd=k(sJtd>jAd?k(sJtd@jAdAk(sJtdBjAdCk(sJtdDjAdk(sJtdEjAdFk(sJtdGjAdHk(sJ|d } | dd dd f|d k(sJ| dd ddf|dk(sJtd d dI}|dddftdd dJk(sJ|dd dftdddKk(sJtgdLgdMgdNgdOg}|ddd7ftd dgdPk(sJ|dQdddftgdNgdOgk(sJtddgd d ggdgdgftd ggk(sJ|d } |d| dd dd f<| tgdRk(sJtC| jdk(sJ|d| ddddf<| |d k(sJtd ddS| dddf<| tgdTk(sJ|d | ddddf<| |d k(sJd;| ddddf<| td;k(sJddg| dddf<| tdUk(sJ|d } | jEddVtddVdWk(sJtd d dX}|jEd d tgdYk(sJ|jEdd tdZd[gk(sJ|d } | jGd\|d dzk(sJ| jGd]|d k(sJtIt|df| d| zffttK|dftK| dtK| zffk(sJtgd^gd_gd`gdag}|jM\}}}|jNsJ|jPsJ||zjS|db|z |d k(sJtgdcgddgdegdfg}|jM\}}}|jNsJ|jPsJ||zjS|db|z |d k(sJt#dt#d5t#dg}} }td|dfd| df| d|ff""jM\}}}|jNsJ|jPsJ||zjS|db"z |d k(sJtgdhgdigdjg} td dgdk}| |z}| jU|}||k(sJtgdlgdmgdng} td dgdo}| |z}| jU|}||k(sJ|d } | jW|d k(sJ| jWdpq|d k(sJ| jWdrq|d k(sJtgdhgdigdsg} tt| jW}| |z|d k(sJ| jWdpq|k(sJ| jWdrq|k(sJtgdhgdigdtg} tt| jW}| |z|d k(sJ| jWdpq|k(sJ| jWdrq|k(sJtdd gd(}tdd gdu}|jY|tdd gdvk(sJ|j[ddzdwk(sJtddt\zfdxf}|j^tddt\z gd d ggk(sJ|tddgdyz|k(sJ|tddgdzztdd t\zgd dggk(sJ|j|dtddt\zgd d gddgddggk(sJ|jad|dtddt\zgd d gddgddggk(sJ|jcdtjddtddt\zdggd{gk(sJ|jed|}rJtj.d dz"d7"d<"jgd"fd~"tgdgdgdgk(sJtj.d ""jid"tgdgdgdgk(sJ|d |d jkk(sJtgdgdgdg}|jktgdgdgdgk(sJtgd(gdgdg}|jktgdgdgdgk(sJt#d}t#d5} tdd|dz| zd| dzz|| zzg}|| g}|jm|td|z| z|dzg| d | z|zggk(sJtdd||dz| d zzg}|jm|tddgd|z| d zz|dzd z| dzzggk(sJtddgdd gg} | jo\}} tp}|td|d7dz|ddz |ddz |d7dzzgdd|d7dzz|d dz |ddz |d7dzzggk(sJ| td|ddzdd|d7dzzgd|ddz |ddzggk(sJ|| z| k(sJ|jr|z|dk(sJtp}tgdgdg""ju\}}|tdd|d dz |ddz gdd|ddz |ddz ggk(sJtgdgdgdgdg""ju\}}|tgdgddddddd|dd z ggdgk(sJ"jw}|dtgdk(sJ|dtgdk(sJ|dtgdk(sJ|d tddddd|d7d z dgk(sJt#d}t#d5} |d } | jy|t{|dz d zk(sJ| jy| t{| dz d zk(sJtgd""j}}!t|!jgdk(sJtp}tgd$gd&gd%g""jdd tgd$tgd&tgd%gfgk(sJtgdgdgd%g""jddt|d7dz |d dz dggfddtgd&gfddtgdgfgk(sJ"jd dtd dik(sJtdddddddddddd } | jgdk(sJ| jgdk(sJtj.djdk(sJycc}wcc}w#t $rYwxYw)Nc,tj|SN)rrns r sparse_eyez&test_sparse_matrix..sparse_eyes""rc,tj|Sr")rrr#s r sparse_zerosz(test_sparse_matrix..sparse_zeross!!!$$rctddSNrrrrrz$test_sparse_matrix..s l1a0rrrrrr)MutableDenseMatrixrrrrrrr)rrr.r-)r2)r3r)r2)r3r)rr-)rr)rr)rr0)r4)rrr.r2)rrz c = a @ bx )iii,*i7)rrr)rrr)r0 r) i"iiiipiii)rrrrrrrrr)rrrrrrrrrrrrr)rrrrrrrrc tddddiS)Nrr1rr*rrr+z$test_sparse_matrix..s|Aq61+>rctdddgS)Nrrrr*rrr+z$test_sparse_matrix..s|Aq1#6rc"tddddggSr)rr*rrr+z$test_sparse_matrix..s|AqAq6(;rg?r4c"tddddggSr)rr*rrr+z$test_sparse_matrix..s|D!q!fX>rc"tddddggSr)rr*rrr+z$test_sparse_matrix..s|Atq!fX>rc4tddtdddS)Nrr)rr1)rrr*rrr+z$test_sparse_matrix..s|Aq47A2NOry))r))rrrr>)rrr0))rrr3)rNrrNrrrNr3rr3rrri)rrrr)r3r0r5rJ r8 r: r9)rrrrrrrrrrrrrrrrrrrr)rrrrri))rrrrr:)rrrrr)rrrrLr)rrrLrrJ)rrrrr0i))rKrrrr3)rrrr3)rrrIrr3)rrrrNr3)rrrrrLi-))rrrr)rNrrrrOrP<)rrrr)r3rrr)rSr8rTrrU)rYrZr[r\)rrrrr))rr5rLrr)rrrrr)rNrr5rr)rIrNrr3r)rrrrr{c ||zSr"r*ijs rr+z$test_sparse_matrix.. Qrrrr)rr)rrrr)rr3r0r5)rJrSr8rT)r:rVrWr9)rr5rTr9rN)r@r@rA)rrrrrQ)r_)rrrr)rrrr)rrrr))rrrr)rr0r5rJrRrUrS) rrrrrrrrrc ||zSr"r*rcs rr+z$test_sparse_matrix..:rfr)rg)rrr)rrrrrr3)rrrrrr)rrrrrr3c d|zS)Nrr*r7s rr+z$test_sparse_matrix..Bs !A#rcyNrr*rks rr+z$test_sparse_matrix..Cr)rrr3r)rrr5r)rJrrr)rNr0rrbackward)r0rNr5r)rrr0r5)rrNr5r)irr0rz)rrr3)rr0r)rJrr0)rr5r3)rrLr)r3r8r5)rJrr)rLrr3CHmethodLDL)r5rr0)r3rr0ri)rNrrNrWrr)rrrr)rrrr)rrrF)simplifyc|d|dfzzS)Nrrr*)vrdMs rr+z$test_sparse_matrix..sQ1QT7]r)rrr)rLrrrrr)rrr)rrr)rr0r)rrr0)r|)rr)rIrr)rr3r0)r5rJrS)rIr0rI)r0r}r0rJ)r3r5rr)rr0rrLrVr|)rrrrr0rr)rNr|rrNirr)rrSrrr0r0r)rLrIrrrrSr)rrrrrrr)rrrrrrr)rrrrrrr)rIrrrrrr)rrrrrrr)rNrrrNrrr))rrrLrrr)rLrr)rLrr)r3rr)rrrrr:rX) r)rrS)rr)rr5)rrS)rr)r3r5)r0r)rSr5) rrr6rrSr:rrr6rr5rXrrSr:rrrr3r5rXr0rr:rSr5r6) rrrrrrrrr)Er TypeErrorrsympy.matricesr/r row_joincol_jointyperangerhstackr vstacktodokeval SyntaxErrorr isinstancecolsrowsrow_delcol_delrcol_swaprow_swapcopy ValueErrortolisthasrshapedetlenreshape applyfuncabsr LUdecompositionis_loweris_upper permute_rowsLUsolveinvcrossnormrC row_insert col_insert is_symmetriccol_opfillcofactor_matrixjacobianQRdecompositionrTrref nullspacecharpolyr eigenvalssortedkeys eigenvectsrow_listcol_listnnz)#r%r'rr/br$sparse_matricescr7AmrrHm0m1m2testmatLUprpsolnAinvv1v2testsymsQRouttmpbasis sparse_eye3valsrys# @rtest_sparse_matrixrst#% 901 A ?a  1BAAq6"A ::a=A   ::a=A    1 $q' )) )  1 $q' )) ):?qBA|))!Q/BOB    0F1a4D DD D9>qBA|))!Q/BOB    0F1a4D DD D  A AaD T7a<< AaDAdG   AdG   AdG    779A. .. .  A  A !A T7a<< T7a<< T7a<< T7a<< T7b== T7a<<  [w!||w!||w!||w!||w"}}w!||s A F3KA a && & T7a<< T7ac>> T7ac>> T7a<< AA a && & T7a<< T7c>> T7c>> T7a<< q!fq!f%&A qD!92 22 2iJ78A qD!9E EE E s Aq!fq!f%&A A 66QVV   66Q;; Q4Aq!Q<  QAq!Q<(A A 66QVV   66Q;; Q4Aq!Q<   6M61 A AIIaL &    1 A AIIaL VFF      AAdGAJJq!   AJJq!    QAq6"A A A Q4199IIaL Q2& && &IIaL QA3' '' ' QFQC0 1V=6   1vz!}5 6& B;    :>? 1q!f % , , .Aq6( :: : 1q1a&k * 1 1 3AA7G GG G :67 :;<   ! !% (( ( vqk * 0 0F :: : vqk * 0 0F :: : dVQK 0 6 6& @@ @ :>? :>? :OP #;s qA 1qc " & & (A -- - !  " " $ )) ) * + / / 1R 77 7 !Q!QqS* + / / 1QqSUQY >> > & ''*su 22 2 , -.1SUd ;; ; - ./2ceq 99 9 , -.1SUc  :: : / 014  == = 1 236#%5  AA A , -.1SUb 99 9 - ./2ceq 99 9 , -.1SUc  :: : / 014  == = AB bqb"1"f:A && & ac1Q3h<<? ** * a. /B ad8|Aq)4 44 4 ac1f:aF3 33 3  |^5EF HB ae9 Q>: :: : bc1f:~7G&HI II I !Q!Q( )1#s( 3vse} DD D QAQ-Aac1Q3hK ,- -- - qwwy>Q  1 Abqb"1"fI 1  1a.AadG ,- -- -1oAadG Q  MAadG 01 11 11vAbqb!eH 01 11 1 AB ::a |Aq2MN NN N a. /B ::a AB CC C ::a (*<=> ?? ? AB << &*Q-/ 99 9 << %a 88 8 |aVa1X./ 0L3q61+PSTUPVXYZ]^_Z`X`OaAb4c cc cM)))+,G%%'GAq! ::: ::: aC  a ,w 6,q/ II IN***,-G%%'GAq! ::: ::: aC  a ,w 6,q/ II ISk6#;s !qAAq Aq!9q!Qi01A!GAq! ::: ::: aC  a ,q 0LO CC C i! "A Q9%A !A 99Q> > Iy9 :D    !k; <= >> > s As AQAqDFAadFQqSL12A q6D ::d v!Aq!t}q!A#'l&CD DD DQAq!tAqDy>*A ::d |aVac!Q$h1Qq!t 5L,MN NN N AA A   DAqA  aAh;!A$q&1Q46Ab!H"445 1aAh;!A$q1Q46Ab!H"44578 88 8  AaG1aAh;'ad1fqAw&')* ** * Q3!8O8 337jm ## #A l AvvxHC &1a!A$r1R584a!A$r'1R58467 77 7 ////1 2A vvxHC &//aAq!QqT!V4/12 22 2 KKME 8v45 55 5 8v34 44 4 8v56 66 6 8vq!Q1aeAgq9: :: : s As AQ-K    "hAz&: :: :    "hAz&: :: :  A ;;=D $))+ * ,, ,A  A <<>q!yyy&     A <<>q!faeAgqtAvq-A&B%CD !fY&7%89 !fY&7%89; ;; ; 771a=LAr2 22 2 b"r2r2WYceoq{}HJK LA ::<H HH H ::<H HH H   A  " " $ )) )mCBh    s%AY&AY5 AY!Y! AY.Y-AY.c`tddggjdtddggk(sJy)Nrrrr0)rscalar_multiplyr*rrtest_scalar_multiplyr's1 !Q ! 1 1! 4 q!fX8N NN NrcRtdjtdk(sJy)Nr4ru))rr)rr)r transposer*rrtest_transposer+s, ( ) 3 3 5%& '' 'rc|tdjdk(sJtdjdk(sJy)Nrr3)r)rrr)rtracer*rr test_tracer0s< ( ) / / 1Q 66 6 ( ) / / 1Q 66 6rctdjgdk(sJtdjgdk(sJy)Nr)r<rgrrrrrr)r<rrgr)rrrr*rr test_CL_RLr5sJ ( ) 2 2 44 55 5 ( ) 2 2 44 55 5rc0tdtdztdk(sJtddd}tddd}t|jt|jzt||zjz dkDsJy)Nr,)r.r-)r1r1dc2t|dk7xr||zdk(Srmintrcs rr+ztest_add..?CQ0E1q5A:,Frc2t|dk7xr||zdk(Srmrrcs rr+ztest_add..@rrr)rrr)rrs rtest_addr<s ( )L9I,J J%& '' 'S#FGAS#FGA  NS^ +c1q5--/.B BQ FG FrcXttdttdttdttdttdttdttdttdttd ttd y) NctdddS)Ngffffff?rcyrmr*rcs rr+z/test_errors....Ernrrr*rrr+ztest_errors..Es|CNCrc"tgdddgS)Nr>rrrr*rrr+ztest_errors..Fsl9q!f=rc*tddgddggdSNrrrrr>rr*rrr+ztest_errors..Gs|aVaV,<=iHrc*tddgddggdS)Nrrrrr3rr*rrr+ztest_errors..Hs|aVaV,<=a@rc*tddgddggdSrrr*rrr+ztest_errors..Is|aVaV,<=gFrcXtddgddggjddgtS)Nrrrrr)r copyin_listsetr*rrr+ztest_errors..Ks+ q!fq!f-.::Aq635Irc*tddgddggdS)Nrrrrr4rr*rrr+ztest_errors..MsL1a&1a&)9:4@rc:tgdjdS)Nr>r)rrr*rrr+ztest_errors..Nsl95;;A>rc&tddddgdS)Nrrrrr*rrr+ztest_errors..Os|Aq1a&9!<rc@tddddgtddddgzSr)rr*rrr+ztest_errors..Qs% QAq6*\!QA-GGr)rrr IndexErrorrr*rr test_errorsrDsz :CD 9=> :HI :@A :FG 9IK @B 9>? :<= :GIrc~trJttgk(sJttggk(sJyr"rr*rrtest_lenrTs9~  >\"- -- - >\2$/ // /rcltjdtdtk(sJttjdjdk(sJtjdt dtk(sJttjdjdk(sJy)Nr)clsr)rrrrrr*rrtest_sparse_zeros_sparse_eyerZs   A #a\": :: : |"((* +q 00 0   a E!$> >> > |!!!$**, - 22 2rctddi}d|d<|dddfttgdk(sJ|ddk(sJ|dddgk(sJd|d<|ddk(sJ|dddftddggk(sJtd d gg|dddf<|dddftgd gk(sJdd gg|dddf<|dddftgd gk(sJd|d<|ddddftgdk(sJgd|d<|dddftgdk(sJtgd|d<|dddftgdk(sJtgd|d<|dddftgdk(sJy)Nrrr-rr=r*r1r3r0)rr3r0+)rr r r)r rrrM)rr )ss r test_copyinr asQ2AAdG QT7l6)#45 55 5 Q4199 Q7qc>>AdG T7b== QU8|b!WI. .. .1vhAaeH QT7lI;/ // /RzAaeH QT7lK=1 11 1AdG QU8|J/ // /AdG QT7l9- -- -YAdG QT7l9- -- -9%AdG QT7l9- -- -rc td}|jtgdgdgdgk(sJ|j|jjztgdgdgdgk(sJtd}|j \}}d|ztgd gd gd gk(sJ|tgd gd gdgk(sJ||z|jz|k(sJtd}|j |ztt dk(sJtgdgdgdg}ttddtddtddgtddtddtddgddtjgg}|j d|k(sJ|j d|k(sJ||ztt dk(sJ|j|dddfd}||z|dddfk(sJ|j|dddfd}||z|dddfk(sJ|j|}|j|dddfd}||z|dddfk(sJ|j|dddfd}||z|dddfk(sJy)N)r9rKr9r6rrKrrT)r3rr)rrr)rLrrrrrr9)r9rr)rSr9r)rIr3r9)rrr)rrSr)rrrS))rrrr<r?r)rrLr)rLrrLrzrrr0rrqrrrt) rcholeskyr rLDLdecompositionrrrrHalfsolversolve_least_squares)rrDansr s rtest_sparse_solverxs=>A ::<6#   ::A   DAq a46      q5133;!  67A 557Q;,s1v. .. . A  !Q!Q!Q8 !Q!Q!Q8a79 :C 555  $$ $ 555 # %% % s7l3q6* ** * !Q$A Q3!AqD'>> !Q$A Q3!AqD'>> 1 A a1gt,A Q3!AqD'>> a1gu-A Q3!AqD'>>rcttdttdttdt d\}}}}t d\}}}}t |dg||gg}t ||g||gg} t||g||gg} t||z ||z g|||z|z z |z |||z|z z |z gg} |j| | k(sJ|j| | k(sJy)NcTtddggjtddggSr)rlower_triangular_solver r*rrr+z-test_lower_triangular_solve..+q!fX55fq!fX6FGrcVtddgddggjtdgSNrrrrrr*rrr+z-test_lower_triangular_solve..-q!fq!f%&==faSkJrc`tddgddggjtddgddggSNrrrrrr*rrr+z-test_lower_triangular_solve..:q!fq!f%&==fq!fqRSfEU>VWra:du:xr) rrrrrrr r r r rrrdurxwr7rBrsols rtest_lower_triangular_solver.s "HI :KL :XYJAq!QJAq!Qq!fq!f%&AaVaV,-A1v1v./A 1Q3!*AaCE 1}q1Q3q5y!m<= >C # #A &# -- - # #A &# -- -rcttdttdttdt d\}}}}t d\}}}}t ||gd|gg}t ||g||gg} t||g||gg} t|||z|z z |z |||z|z z |z g||z ||z gg} |j| | k(sJ|j| | k(sJy)NcTtddggjtddggSr)rupper_triangular_solver r*rrr+z-test_upper_triangular_solve..rrcVtddgddggjtdgSr!r1r*rrr+z-test_upper_triangular_solve..r"rc`tddgddggjtddgddggSr$r1r*rrr+z-test_upper_triangular_solve..r%rr&r'r) rrrrrrr r r r2r(s rtest_upper_triangular_solver5s "HI :KL 9XYJAq!QJAq!Qq!fq!f%&AaVaV,-A1v1v./A A!AIq=1qs1u9a-01Q3!*= >C # #A &# -- - # #A &# -- -rc8td\}}td\}}}}t|dgd|gg}t||g||gg}t||g||gg}t ||z ||z g||z ||z gg} |j || k(sJ|j || k(sJy)Nza dr'r)rrr r r diagonal_solve) rr)r*rxr+r7rr,rr-s rtest_diagonal_solver8s 5>DAqJAq!Qq!fq!f%&AaVaV,-A1v1v./A 1Q3!*qsAaCj) *C  A # %% %  A # %% %rcVtd}tdtgt dgg}|jsJtdtgt dgg}|jsJdtz|d<|jdusJ||d<|jJ|dtz|d<|jdusJy) Nr7rrrrFr-r.)rrr is_hermitian)r7rs rtest_hermitianr;ss Aq!fr1g&'A >>>q!fr1g&'A >>>cAdG >>U "" "AdG >> !! !gaiAdG >>U "" "rN))sympy.core.numbersrrrsympy.core.singletonrsympy.core.symbolrr$sympy.functions.elementary.complexesr sympy.polys.polytoolsr rr r r rrrrrrsympy.testing.pytestrrrrrrrrrrrr rr.r5r8r;r*rrrBs33"/4*222(/O*dO' 7 5H I 0 3...b.(.( & #r