K i ddlmZddlmZddlmZddlmZddlm Z ddl m Z GddeZ d Z Gd d eZd Zdd lmZmZddlmZdZeed<y))Basic)Expr)S)sympify)NonSquareMatrixError) MatrixBasec@eZdZdZdZdZedZedZdZ y) DeterminantaMatrix Determinant Represents the determinant of a matrix expression. Examples ======== >>> from sympy import MatrixSymbol, Determinant, eye >>> A = MatrixSymbol('A', 3, 3) >>> Determinant(A) Determinant(A) >>> Determinant(eye(3)).doit() 1 Tct|}|jstdt|z|jdur t dt j||S)Nz&Input to Determinant, %s, not a matrixFzDet of a non-square matrix)r is_Matrix TypeErrorstr is_squarerr__new__clsmats l/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sympy/matrices/expressions/determinant.pyrzDeterminant.__new__sPcl}}Ds3xOP P ==E !&'CD D}}S#&&c |jdSNrargsselfs rargzDeterminant.arg$yy|rcB|jjjSN)rkind element_kindrs rr zDeterminant.kind(sxx}})))rc |j}|jddr|jdi|}|j}||S|S)NdeepT)rgetdoit_eval_determinant)rhintsrresults rr&zDeterminant.doit,sJhh 99VT "#((#U#C&&(  M rN) __name__ __module__ __qualname____doc__is_commutativerpropertyrr r&r$rrr r s@ N'** rr c4t|jS)z Matrix Determinant Examples ======== >>> from sympy import MatrixSymbol, det, eye >>> A = MatrixSymbol('A', 3, 3) >>> det(A) Determinant(A) >>> det(eye(3)) 1 )r r&matexprs rdetr38s w  $ $ &&rc.eZdZdZdZedZddZy) PermanentaMatrix Permanent Represents the permanent of a matrix expression. Examples ======== >>> from sympy import MatrixSymbol, Permanent, ones >>> A = MatrixSymbol('A', 3, 3) >>> Permanent(A) Permanent(A) >>> Permanent(ones(3, 3)).doit() 6 ct|}|jstdt|zt j ||S)Nz$Input to Permanent, %s, not a matrix)rr r rrrrs rrzPermanent.__new__Xs8cl}}BSXMN N}}S#&&rc |jdSrrrs rrz Permanent.arg_rrc nt|jtr|jjS|Sr) isinstancerrper)rexpandr(s rr&zPermanent.doitcs% dhh +88<<> !KrN)F)r*r+r,r-rr/rr&r$rrr5r5Hs% 'rr5c4t|jS)a Matrix Permanent Examples ======== >>> from sympy import MatrixSymbol, Matrix, per, ones >>> A = MatrixSymbol('A', 3, 3) >>> per(A) Permanent(A) >>> per(ones(5, 5)) 120 >>> M = Matrix([1, 2, 5]) >>> per(M) 8 )r5r&r1s rr:r:is" W  " " $$r)askQ) handlers_dictc\ttj|j|rtj Sttj |j|rtjSttj|j|rtj S|S)z >>> from sympy import MatrixSymbol, Q, assuming, refine, det >>> X = MatrixSymbol('X', 2, 2) >>> det(X) Determinant(X) >>> with assuming(Q.orthogonal(X)): ... print(refine(det(X))) 1 ) r=r> orthogonalrrOnesingularZerounit_triangular)expr assumptionss rrefine_DeterminantrHsk 1<< !;/uu QZZ !; /vv Q  txx (+ 6uu KrN)sympy.core.basicrsympy.core.exprrsympy.core.singletonrsympy.core.sympifyrsympy.matrices.exceptionsrsympy.matrices.matrixbaserr r3r5r:sympy.assumptions.askr=r>sympy.assumptions.refiner?rHr$rrrQsT" "&:0,$,^' B%&)2( 2 mr