K iS8ddlmZddlmZmZddlmZddlmZddl m Z ddl m Z ddl mZddlmZdd lmZmZmZmZdd lmZmZmZdd lmZmZdd lmZd ZdZ dZ!dZ"dZ#dZ$dZ%dZ&dZ'dZ(dZ)edZ*y)) expand_mul)IRational)S)Symbol)sqrt)Abs)simplify)NonSquareMatrixError)Matrixzeroseye SparseMatrix)xyz)raisesslow)allclosectgdgdgdgdg}|j\}}}|jsJ|jsJ||zj |d|z t dk(sJtgdgdgd gd g}|j\}}}|jsJ|jsJ||zj |d|z t dk(sJtgd gd gd gdg}|jd\}}}|jsJ|jsJ||zj |d|z t ddk(sJtgd gdgd g}|jd\}}}|jsJ|jsJ||zj |d|z t dk(sJtdt dfdtdftdtffj\}}}|jsJ|jsJ||zj |dz t dk(sJtd}|jdusJ|jdusJtd}|jdusJ|jdusJtgdgdgdgj\}}}}|z||jz|zk(sJtgdgdgdgdgj\}}}}|z||jz|zk(sJtgd gd!gd"gj\}}}}|z||jz|zk(sJtgd gd gd gttfd#y)$N)r)rr)rrr)rrbackwardr)rrrr)rrrr)rrr)irrrr rrrrrrr ) F rankcheckr)rrrr rr)r rrrrrT)r!)rrr)r rr)rrr)rrrr rrr)rrr)rr rr)rr-rr)rrr r+)rr rc(jdS)NTr()LUdecomposition_Simple)Msn/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sympy/matrices/tests/test_decompositions.pyztest_LUdecomp..bs 8 84 8 H) r LUdecompositionis_loweris_upper permute_rowsr rrrLUdecompositionFFinvr ValueError) testmatLUpmLmUPDeer0s @r1 test_LUdecomprCsl""#%&G%%'GAq! ::: ::: aC  a ,w 6%( BB Bm"##%&G%%'GAq! ::: ::: aC  a ,w 6%( BB Bi"$%G%%%6GAq! ::: ::: aC  a ,w 6%1+ EE Ei!"G%%%6GAq! ::: ::: aC  a ,w 6%( BB BAq Aq!9q!Qi01A!GAq! ::: ::: aC  a ,q 0E!H << <  B ;;$   ;;%    B ;;%   ;;$     A&&(LAq#q Q3!CGGI+a-    !A&&(LAq#q Q3!CGGI+a-    A&&(LAq#q Q3!CGGI+a-      A  :HIr3ctddgddgg}|j\}}}||z|jz|k(sJ|j|zt|jk(sJ|j|zt|jk(sJtddgg}|j\}}}||z|jz|k(sJ|j|zt|jk(sJ|j|zt|jk(sJtgdgdgdgdg}|j\}}}||z|jz|k(sJ|j|zt|jk(sJ|j|zt|jk(sJtt ddt dgdt dd gg}|j\}}}t|j|zt|jk(sJt|j|zt|jk(sJt||z|jz|k(sJy) Nr r)r rrrr)rrrrr)rrrrr)rrrrrrrr)r singular_value_decompositionTrcolsrrr )Ar=rVBCDs r1"test_singular_value_decompositionDrMds&AA A,,.GAq! q5133;!   337c!&&k !! ! 337c!&&k !! !AxA,,.GAq! q5133;!   337c!&&k !! ! 337c!&&k !! !  A,,.GAq! q5133;!   337c!&&k !! ! 337c!&&k !! !!Qa)Ax1~+>?@A,,.GAq! ACC!G AFF ++ + ACC!G AFF ++ + AEACCK A %% %r3c .tddgddgg}|j\}}t}|td|ddz|ddz |ddz |ddzzgdd|ddzz|d dz |ddz |ddzzggk(sJ|td|ddzdd|ddzzgd|ddz |ddzggk(sJ||z|k(sJ|j|zt dk(sJtgdgd gd g}|j\}}|j|zt |j k(sJ|j sJ|||zk(sJtgd gd gd g}|j\}}|j|zt |j k(sJ|j sJ|||zk(sJtd}t|g}|j\}}|t|t|z gk(sJ|tt|gk(sJt|dgd|gg}|j\}}||t|z tddgddggzk(sJ|t|tddgddggzk(sJy)Nr rrrr-rrr r r )r r r)rrr)r'ri)rr)rr) r QRdecompositionrrFrrGr6rr )rHQrRrs r1test_QRrVsAA A   DAqA  aAh;!A$q&1Q46Ab!H"445 1aAh;!A$q1Q46Ab!H"44578 88 8 AaGQq!B({]3a!A$q&1Q79J5KLM MM M Q3!8O8 337c!f   9i01A   DAq 337c!&&k !! ! ::: !8O8 k;78A   DAq 337c!&&k !! ! ::: !8O8s As A   DAq CF |$ $$ $ Ax  AA A   DAq CF VaVaV$455 55 5 A!Q!Q 011 11 1r3ctgdgdgdgdg}|j\}}|j|zt|jk(sJ|j sJ|||zk(sJtgdgdgdgdg}|j\}}|j|zt|jk(sJ|j sJ|||zk(sJtd d d d g}|j\}}|j|zt|jk(sJ|j sJ|||zk(sJtgd gd g}|j\}}|j|zt|jk(sJ|j sJ|||zk(sJtgd gdgdg}|j\}}|j|zt|jk(sJ|j sJ|||zk(sJtd d d d g}|j\}}|j|zt|jk(sJ|j sJ|||zk(sJy)N)r$r)r'r)rrr)rrZ)r r-r)r rr)r rr)r r-rrr r!r"r,)r rr$)r r@r rSrFrrGr6rHrTrUs r1test_QR_non_squarer`s0 KK@AA   DAq 337c!&&k !! ! ::: !8O8 J :>?A   DAq 337c!&&k !! ! ::: !8O8q!aVA   DAq 337c!&&k !! ! ::: !8O8  9%&A   DAq 337c!&&k !! ! ::: !8O8 m^<=A   DAq 337c!&&k !! ! ::: !8O8q!aVA   DAq 337c!&&k !! ! ::: !8O8r3cB tgdgdgdg}|j\}}|j|zt|jk(sJ|j sJ|||zk(sJtgdgdgdgdg}|j\}}|j|zt|jk(sJ|j sJ|||zk(sJtgdgdgdgdgj}|j\}}|j|zt|jk(sJ|j sJ|||zk(sJtgdg}|j\}}|j|zt|jk(sJ|j sJ|||zk(sJtgdgj}|j\}}|j|zt|jk(sJ|j sJ|||zk(sJtgdgdg}|j\}}|j|zt|jk(sJ|j sJ|||zk(sJtgdgdgj}|j\}}|j|zt|jk(sJ|j sJ|||zk(sJtgdgdgj}|j\}}|j|zt|jk(sJ|j sJ|||zk(sJtgd gd gd gj}|j\}}|j|zt|jk(sJ|j sJ|||zk(sJtgd gd gd gd gj}|j\}}|j|zt|jk(sJ|j sJ|||zk(sJtgdgdgdgdgj}|j\}}|j|zt|jk(sJ|j sJ|||zk(sJy) Nr!r"r#rO)rrr)rrr)rrr)rrr)rrrrr,)rrrrr^r_s r1test_QR_trivialrbs 9i01A   DAq 337c!&&k !! ! ::: !8O8 9i;>A   DAq 337c!&&k !! ! ::: !8O8  {A   DAq 337c!&&k !! ! ::: !8O8 {A   DAq 337c!&&k !! ! ::: !8O8 9%&A   DAq 337c!&&k !! ! ::: !8O8 9%&((A   DAq 337c!&&k !! ! ::: !8O8  9%&((A   DAq 337c!&&k !! ! ::: !8O8 lL9:<>A   DAq 337c!&&k !! ! ::: !8O8r3cHtddgddgg}|j\}}t||z|sJt||jztjdsJt|j|ztjdsJtddgddgg}|j\}}t||z|sJt||jztjdsJt|j|ztjdsJy)Nr g)\(?rgjt?)r rSrrFrr_s r1 test_QR_floatrdsAD "#A   DAq AE1   AGVZZ] ++ + ACC!GVZZ] ++ +AE #$A   DAq AE1   AGVZZ] ++ + ACC!GVZZ] ++ +r3cdfd} tddgddggj|\}}J#t$r}|jdk(sJYd}~yd}~wwxYw)NI got passed in!ctNr:value magic_strings r1 goofyiszeroz;test_LUdecomposition_Simple_iszerofunc..goofyiszero)&&r3r r iszerofunc)r r/r:args)rmlur>errrls @r1&test_LUdecomposition_Simple_iszerofuncrt%so&L'AA'(??;?WA 5 sxx{***s$0 AAAcdfd} tddgddggj|\}}}J#t$r}|jdk(sJYd}~yd}~wwxYw)Nrfctrhrirjs r1rmz4test_LUdecomposition_iszerofunc..goofyiszero8rnr3r rro)r r4r:rq)rmlur>rsrls @r1test_LUdecomposition_iszerofuncry4sq&L'1a&1a&)*::k:R1a 5 sxx{***s%1 AAAc ttdttdttdttdttdtd}|j d\}}||z|j z|k(sJtd }|j \}}||z|j z|k(sJ|j sJ|tgd td d d dgtdd td d d ggk(sJ|jsJ|tgdgdgdgk(sJtddtzddtzzfdtzddtzfddtzz dtz dff}|j \}}t||z|jz|k(sJ|jtgd tdz d dgtjtdz z dd ggk(sJ|jtdk(sJttdttdttdttdttdtd}|j d\}}||z|j z|k(sJtd }|j \}}||z|j z|k(sJ|j sJ|tgd td d d dgtdd td d d ggk(sJ|jsJ|tgdgdgdgk(sJtddtzddtzzfdtzddtzfddtzz dtz dff}|j \}}t||z|jz|k(sJ|td tdz d dftjtdz z dd ffk(sJ|tdk(sJy)Nc4tdjSNr rr LDLdecompositionr3r1r2z'test_LDLdecomposition..Ds)H)H)Jr3c4tdjSNr})rrr~rr3r1r2z'test_LDLdecomposition..Ev&67HHJr3cJtdtzdfdfjSNrr)rr )r rrrr3r1r2z'test_LDLdecomposition..Fs!vAqz6&:;LLNr3c4tdjSN)r r)rr r~rr3r1r2z'test_LDLdecomposition..Grr3c8tdjdSNrF hermitianr~rr3r1r2z'test_LDLdecomposition..Hsv&67HHSXHYr3rFr)))rr)rrr&r*rrr rr-)rrr)rr$rrrr$rrrr&))rrr)rr rrc4tdjSr|rrrr3r1r2z'test_LDLdecomposition..Ysf)=)N)N)Pr3c4tdjSrrrr3r1r2z'test_LDLdecomposition..Z|,<=NNPr3cJtdtzdfdfjSr)rrrrr3r1r2z'test_LDLdecomposition..[s!|a!eQZ,@ARRTr3c4tdjSrrrr3r1r2z'test_LDLdecomposition..\rr3c8tdjdSrrrr3r1r2z'test_LDLdecomposition..]s|,<=NNY^N_r3)rr r:r rrFr5r is_diagonalrrHexpandrHalfr)rHr<rLs r1test_LDLdecompositionrCs !JK :JK :NO :JK :YZ A    .DAq q5133;!  78A   DAq q5133;!   :::  Xa^Q#:Xb!_hWXZ[n^_<`ab bb b ==??  Iy9: :: :BqD!ac'"QqS!R!V$4q1Q3wQ6KLMA   DAq a!eacck "a '' ' 88:QqS!QK!&&1Q3,19M NO OO O 88: AB BB B !PQ :PQ :TU :PQ :_`%&A    .DAq q5133;!  =>A   DAq q5133;!   :::  Xa^Q#:Xb!_hWXZ[n^_<`ab bb b ==??  Iy9: :: :q"Q$AaC(1Q326*:Q1Wb1fb`Urr[r)E8r6r)r%r[)rr)rr%0Zr)rrrrrrRD)method)r pinvr r)AsrHA_pinvAApApAs r11test_pinv_succeeds_with_rank_decomposition_methodrns    Bt$&jqja A%%%f %///uu||uu||r3cntddg}|j\}}|jsJ|j|jcxk(r|j k(sJJ||z|k(sJtdddg}|j\}}|jsJ|j|jcxk(r|j k(sJJ||z|k(sJtddgd}|j\}}|jsJ|j|jcxk(r|j k(sJJ||z|k(sJtgdgdgdgd g}|j\}}|jsJ|j|jcxk(r|j k(sJJ||z|k(sJy) Nrr rr) r rrr rrr rr)rrr rrrr)r-rrrr rYr)rrrrZrZrr)r-rrr-rr r)r rank_decomposition is_echelonrGrowsrank)acfs r1test_rank_decompositionrsq!RA   !DAq <<< 66QVV 'qvvx '' '' ' q5A::q!aSA   !DAq <<< 66QVV 'qvvx '' '' ' q5A::q!01A   !DAq <<< 66QVV 'qvvx '' '' ' q5A::! " #A   !DAq <<< 66QVV 'qvvx '' '' ' q5A::r3c tddtdgtdtdddgdtdddgg}|j\}}t ||j zt |jk(sJt |j |zt |jk(sJ|jsJt ||z|j z|k(sJtgdgdgdg}|j\}}t ||j zt |jk(sJt |j |zt |jk(sJ|jsJt ||z|j z|k(sJtdtdddggd dddtd ggd g}|j\}}t ||j zt |jk(sJt |j |zt |jk(sJ|jsJt ||z|j z|k(sJtgd gd gdg}|j\}}t ||j zt |jk(sJt |j |zt |jk(sJ|jsJt ||z|j z|k(sJtgdgdgdgdg}|j\}}t ||j zt |jk(sJt |j |zt |jk(sJ|jsJt ||z|j z|k(sJy)Nr rrrr)r rr%)rrr)rr'")rrrrr)rrrrr!)rZrr)rir$)r rrr)rr rr)r r rr )r r r r) r rrupper_hessenberg_decompositionr rrrGis_upper_hessenberg)rHrrArJrKrLEs r1#test_upper_hessenberg_decompositionrsl AtAw a(1a.!$ HQNA A + + -DAq AG AFF ++ + ACC!G AFF ++ +  QUQSS[ !a '' '  A + + -DAq AG AFF ++ + ACC!G AFF ++ +  AEACCK A %% % DGQ Aq$q'  A + + -DAq AG AFF ++ + ACC!G AFF ++ +  AEACCK A %% % A + + -DAq AG AFF ++ + ACC!G AFF ++ +  AEACCK A %% %  A + + -DAq AG AFF ++ + ACC!G AFF ++ +  AEACCK A %% %r3N)+sympy.core.functionrsympy.core.numbersrrsympy.core.singletonrsympy.core.symbolr(sympy.functions.elementary.miscellaneousr$sympy.functions.elementary.complexesr sympy.simplify.simplifyr sympy.matrices.exceptionsr sympy.matricesr r rr sympy.abcrrrsympy.testing.pytestrrsympy.testing.matricesrrCrMrVr`rbrdrtryrrrrrr3r1rs**"$94,:;;-+SJj&D 2F%NDN ,  ):V$<;&;&r3