K i'WddlZddlmZddlmZmZddlmZddlm Z m Z ddl m Z ddl mZddlmZmZdd lmZmZmZmZmZmZdd lmZdd lmZdd lmZdd lmZddl m!Z!ddl"m#Z#m$Z$dZ%dZ&dZ'dZ(dZ)dZ*dZ+dZ,dZ-dZ.dZ/dZ0dZ1dZ2dZ3dZ4d Z5ejljod!d"d#gejljod$egd%gd&gd'ged(d)gd*fegd%gd&gd'ged)d+gd(d,gd-d.ggfed+d+e d/ed+d)e d0fgd1Z8ejljod2d"efeefgd3Z9d4Z:y)5N) expand_mul)IRational)S)Symbolsymbols)sympify)simplify) ShapeErrorNonSquareMatrixError)ImmutableMatrixMatrixeyeonesImmutableDenseMatrix dotprodsimp) _det_laplace)raises)NonInvertibleMatrixError) DMShapeError)linsolve)xycttd}td5|jt ddttdtddgfk(sJ dddy#1swYyxYw)N[ [ -3/4, 45/32 - 37*I/16, 0, 0], [-149/64 + 49*I/32, -177/128 - 1369*I/128, 0, -2063/256 + 541*I/128], [ 0, 9/4 + 55*I/16, 2473/256 + 137*I/64, 0], [ 0, 0, 0, -177/128 - 1369*I/128]]T[ [ -32549314808672/3306971225785 - 17397006745216*I/3306971225785], [ 67439348256/3306971225785 - 9167503335872*I/3306971225785], [-15091965363354518272/21217636514687010905 + 16890163109293858304*I/21217636514687010905], [ -11328/952745 + 87616*I/952745]]r)rrrgauss_jordan_solverMs g/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sympy/matrices/tests/test_solvers.py%test_issue_17247_expression_blowup_29r#sqcd eA T @##DAJ/F1>kz)test_LUsolve_iszerofunc..@saiikUt) iszerofunc)rrLUsolve)r!b is_zero_funcx_exps r"test_LUsolve_iszerofuncr3;s !a%!q!taczA~.2QF; ?E AIIaLI9 9faVn LL Lr-c ttdzdtz ddgdtz tdzdtdzgddtz tdzdgdddtdzgg}td5|jt ddttdzdtzz gtdz dtzz gtdzdtzz gdtdzz ggk(sJ dddy#1swYyxYw)NrrTr)rrrr/rr s r"%test_issue_17247_expression_blowup_32r5Gs QA1!$ QA1a!e$ Aq1u!$ A1a!e$ & 'A T yya$!eac]O!eac]O!eac]OAEO 0) s #A/CC%c :tgdgdgdgtddgd}|zj}||k(sJtgdgdgd gtddgd }|zj}||k(sJtd dgdd gdd ggtgd jtddgk(sJtgdttfdtgdgdgd gdgdgdgtgd}|zj}||k(sJtgdgdgtgd}|zttfdtdddtj ddtt fdy)Nr(r8r(r8r;r8rr8r9rr(r9 r?r=r8rrAr(r9r(r)r8rr)r8rr(c&jSNr/Ar0sr"r,ztest_LUsolve..gsqyy|r-)r(r)rAr(rc&jSrGrHrIsr"r,ztest_LUsolve..us ! r-rc&|dk7r d||zdzz SdS)Nr8rr)ijs r"r,ztest_LUsolve..wsqAv!QqSU)1r-c&jSrGrHrIsr"r,ztest_LUsolve..ysQYYq\r-)rr/r ValueErrorNotImplementedErrorzerosrrsolnrJr0s @@r" test_LUsolverWTs  A q!YA !A 99Q )) )yA :+,   A zA !A 99Qr(rr9r;r@rBrDrEr?r= rC )rQRsolve)rJrr0rVs r" test_QRsolverjs  A q!YA !A 99Q.s)vqc{226Aq6Aq6:J3KLr-)rr rNr-r" test_errorsrms  :LMr-chtgdgdgdg}tddgd}||z}|j|}||k(sJtgdgdgd g}tddgd }||z}|j|}||k(sJtd }td }||z}|j|}||k(sJtd dtzfdtzdff}td}||z}|j|}t||k(sJtd tzdfdtzdff}tddtzzdf}||z}|j|}t||k(sJt d\}}}}}t||f||ff}t||f}|j|}t ||z|k(sJy)Nr7r:r<r8rr>r@rBrDrE))rr9)r9r)rrfror9rr(rAza00, a01, a11, b0, b1)rr%rrrr ) rJrr0rVa00a01a11rarbs r"test_cholesky_solverus  A q!YA !A  A D 199  A q!Z A !A  A D 199 AwA !A  A D 199AaC2a4)$%AwA !A  A D d q  1a261+&'AAaC}A !A  A D d q  #$;<Cc2rc S#J'(ABxA A AaC=A  r-cNtgdgdgdgtddgd}|zj}||k(sJtgdgdgd gtddgd }|zj}||k(sJtd dtzfd tzd fftd}|zj}t||k(sJtd tzdfd tzd fftddtzzdf}|zj}t||k(sJtdtd}|zj}t||k(sJtgdgdgtdgdgdgg}|zt t fdy)Nr7r:r<r8rr>r@rBrDrErfror9rpr(rA))rfr8)r8rf)rr)rorK)roir?r=r?rqc&jSrG)LDLsolverIsr"r,ztest_LDLsolve..s 1 r-)rryrrrrSrUs @@r" test_LDLsolverzs  A q!YA !A ::a=D 199  A q!Z A !A ::a=D 199AaC2a4)$%AwA !A ::a=D d q  1a261+&'AAaC}A !A ::a=D d q   AvA AA ::a=D d q   k*+AaS2$ A AA  56r-cHttdttdttdt ddgddgg}t t t gt t gg}t ddgdd gg}|j||k(sJ|j||k(sJy) NcPtddgjtddgSNrrrlower_triangular_solverNr-r"r,z-test_lower_triangular_solve..!1v55faVnEr-cVtddgddggjtdgSr}r~rNr-r"r,z-test_lower_triangular_solve..)AA'(??s Lr-c`tddgddggjtddgddggSNr(rrr~rNr-r"r,z-test_lower_triangular_solve..8AA'(?? QFQF# $&r-rrrr=r(rf)rr r rRrrrrrJBCs r"test_lower_triangular_solvers EG :LN : &' AA AAA AAA A # #A &! ++ + # #A &! ++ +r-cHttdttdttdt ddgddgg}t t t gt t gg}t ddgdd gg}|j||k(sJ|j||k(sJy) NcPtddgjtddgSr}rupper_triangular_solverNr-r"r,z-test_upper_triangular_solve.. rr-cVtddgddggjtdgSr}rrNr-r"r,z-test_upper_triangular_solve.. rr-c`tddgddggjtddgddggSrrrNr-r"r,z-test_upper_triangular_solve.. rr-rrr(rr8r=)rr r TypeErrorrrrrrs r"test_upper_triangular_solvers EG :LN 9 &' AA AAA AAA A # #A &! ++ + # #A &! ++ +r-cttdtddgddggdztttgttggj dz k(sJtddgddggttfdy)NcNtddgjtdgS)Nr)rdiagonal_solverNr-r"r,z%test_diagonal_solve..sfaVn;;FA3KHr-rrr(c&jSrG)rrJrsr"r,z%test_diagonal_solve..sa..q1r-)rrrrrrrs@@r"test_diagonal_solvers 9HIAA "AAA A  A !A# %% %AA A 912r-c tddgddgg}tddg}|j||j|k(sJ|j||j|k(sJ|j|tt dt dgk(sJ||j z|z|k(sJtgd gd g}|j||j|k(sJ|j||j|k(sJ|j|tgd gd gd z k(sJ||j z|z|k(sJtgdgdg}tddg}|j|}i}|j tD]}|||j<|t|ddz |ddz z|ddz z dzg|ddz |ddz z|ddz z dzg|d dz |ddz z |ddz zdzggk(sJ||j z|z|k(sJtddgddgddgg}tgd}|j|tddgk(sJ||j z|z|k7sJy)Nrr9r?rfrh z-43/26z71/26)rhr))iii)EKQ)rrr)rrrw0_0r8w1_0w2_0rr)r8r(r) r pinv_solver%ryr pinvatomsrname)rJrsolutionwss r"test_pinv_solver!sAA ABxA <<?a..q1 11 1 <<?ajjm ++ + <<?fgh&79I%JK KK K qvvx.q33A6r-)rr9r8)r(rr;)rr?rf)rrr8)rrrr)rrrrc&jSrGrrIsr"r,z)test_gauss_jordan_solve..rr-c&jSrGrrsr"r,z)test_gauss_jordan_solve..rr-c&jSrGrrsr"r,z)test_gauss_jordan_solve..rr-)r(rCr;)r8rrfror9)rrrrc&jSrGrrIsr"r,z)test_gauss_jordan_solve..rr-)rfrCrrhr)r(rr;r=)rrrz_tau0 _tau1 _tau2 tau1)rrrrrrc&jSrGrrIsr"r,z)test_gauss_jordan_solve..rr-)rrrr)rrrrrrrrrRrHalfrr __class__r) solparamsrrrx0x1x2_x0r!rJrr0s @@@r"test_gauss_jordan_solverks   9j12AyA&&q)KC &2$aS)* ** * VAq"% %% % AA lO<=A&&q)KC !8O8 VAq"% %% %  9i01AyA//4/@C A YYv !&&  &1V9q=/BqyL1,<+=& {KL LL L Vai[M* ** * qc>>  9i01AAAB()A//4/@C A YYv !&&  &1V9q=!F)hq!n*DEai>  9i01AyA&&q)KC A YYv !&&  &2ai2BCD DD D VAq"% %% %  9i;A|A&&q)KC A YYv !&&  &2aiA|A :67  lN;-?!F)&' '' ' Vai[M* ** *  lL9:AyA&&q)KC A YYv !&&  &1V9q6{2QVV;<QvY,1V94x1~EFF)qyk34 44 4 Vai[1V9+67 77 767OBB"Q1aC$89:A !SbS& A !RS& A&&q)KC VAq2r2,/ // / &AAr334 44 4  lL9:AyA :67 !Q!Q()AAA&&q)KC /1a&) )) ) _Q2. .. . ==0 00 0   3 33 3  l+,A1vA&&q)KC A YYv !&&  &1#& {QvYK!=> >> > Vai[1V9+67 77 7r-ctgdgdgdgdgdgdgdgdg}tgd }|j|\}}i}|jtD]}|||j<|t|d g|d g|d g|d g|dg|dggk(sJ|tdd|d zz g|d gdd|d zz |d zg|d g|d |dzgd|d zd|dzz d|d zz gdd|d zz g|d g|d g|d g|dgdd|dzz g|dgdggk(sJddlm}m}tgddddddddd| g dddddddd|g g}ttt|d}td\} } } } } |t| |z | z | z| zdzg|| z | z | z g| g| g|| z | z | z g| g| g| ggk(sJ|ddddf|z|dddfz }|tdgdgdggk(sJy)N)rrrrrrrrrrrrrr)rrrrrrrrrrrrrr)rrrrrrrrrrrrrr)rrrrrrrrrrrrrr)rrrrrrrrrrrrrr)rrrrrrrrrrrrrr)rrrrrrrrrrrrrr)rrrrrrrrrrrrrr)rr(rrrrrr(rrrtau3tau4tau5rrAr)rPf) rrrrrrrrrztau:5) rrrrr sympy.abcrPrlistrr)rJrrrrrrPrsol_1rrrrrsol_2s r"4test_linsolve_underdetermined_AND_gauss_jordan_solvers::::::::< =A ( )A&&q)KC A YYv !&&  Vai[1V9+& {i[1V9+& {DE EE E &1q6{?+V9+q6{?QvY67V9+V9qy01air(rr9r;rYr[ct|j|||j|z tj|j |j k(sJyN)r)r cramer_solver/rrTrowscols)rr!rhss r"test_cramer_solverMsM ANN3:N>3O affchh7 88 8r-zdet_method, errorchtgdgdgtddgt|fdy)Nr@rBrqrc*jSr)r)rJr0rsr"r,z*test_cramer_solve_errors.._s!..z.Br-)rr)rerrorrJr0s` @@r"test_cramer_solve_errorsrYs-  J'(ABxA 5BCr-ctddgddggtdgdggttfdtdgdggttfdy)Nrr(rr8c&jSrGsolverIsr"r,ztest_solve..eqwwqzr-r=c&jSrGrrIsr"r,ztest_solve..grr-)rrrRrIs@@r" test_solverbsS1!u~AaSzA :)*!qc{A :)*r-);pytestsympy.core.functionrsympy.core.numbersrrsympy.core.singletonrsympy.core.symbolrrsympy.core.sympifyr sympy.simplify.simplifyr sympy.matrices.exceptionsr r sympy.matricesr rrrrrsympy.matrices.determinantrsympy.testing.pytestrrsympy.polys.matrices.exceptionsrsympy.solvers.solvesetrrrrr#r&r3r5rWrdrjrmrurzrrrrrrrmark parametrizerrrrNr-r"rs *,"/&,HKK3'>8+ @ m8 M %;P 2N"J&7R,$,$3!B'!Re8P7,t ':; Y 9 -.q!Y0GH Y 9 -. aVaVaV $%' Aq'%.!6!Q#?@ $ 8 <8 , \\+?@/BCDCD+r-