K i ddlmZddlmZddlmZddlmZmZddl m Z ddl m Z ddl mZde d efd Zdee efd efd Zd e d efd Zde d dfdZde d dfdZy)Eq)Expr)Integer)BooleanAnd) MatrixExpr) ShapeError)Unionargsreturnc td|D\}}tgdt|dd|ddDdt|dd|ddDS)aReturn the symbolic condition how ``MatAdd``, ``HadamardProduct`` makes sense. Parameters ========== args The list of arguments of matrices to be tested for. Examples ======== >>> from sympy import MatrixSymbol, symbols >>> from sympy.matrices.expressions._shape import is_matadd_valid >>> m, n, p, q = symbols('m n p q') >>> A = MatrixSymbol('A', m, n) >>> B = MatrixSymbol('B', p, q) >>> is_matadd_valid(A, B) Eq(m, p) & Eq(n, q) c34K|]}|jywNshape.0args g/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sympy/matrices/expressions/_shape.py z"is_matadd_valid.. s1Ssyy1c3:K|]\}}t||ywrrrijs rrz"is_matadd_valid.." 8tq!"Q( 8Nc3:K|]\}}t||ywrrrs rrz"is_matadd_valid..#rrziprr rowscolss ris_matadd_validr' se,1D12JD$   8s49d12h7 8  8s49d12h7 8 c dtd|D\}}tdt|dd|ddDS)aReturn the symbolic condition how ``MatMul`` makes sense Parameters ========== args The list of arguments of matrices and scalar expressions to be tested for. Examples ======== >>> from sympy import MatrixSymbol, symbols >>> from sympy.matrices.expressions._shape import is_matmul_valid >>> m, n, p, q = symbols('m n p q') >>> A = MatrixSymbol('A', m, n) >>> B = MatrixSymbol('B', p, q) >>> is_matmul_valid(A, B) Eq(n, p) c3VK|]!}t|ts|j#ywr) isinstancer rrs rrz"is_matmul_valid..=sPSJsJ4OsyyPs))c3:K|]\}}t||ywrrrs rrz"is_matmul_valid..>s?daAq?rNrr r"r$s ris_matmul_validr-'s<,PDPQJD$ ?c$s)T!"X&>? @@r(rcBt|j|jS)aReturn the symbolic condition how the matrix is assumed to be square Parameters ========== arg The matrix to be tested for. Examples ======== >>> from sympy import MatrixSymbol, symbols >>> from sympy.matrices.expressions._shape import is_square >>> m, n = symbols('m n') >>> A = MatrixSymbol('A', m, n) >>> is_square(A) Eq(m, n) )rr%r&)rs r is_squarer/As( chh !!r(Nctd|D\}}tttd|dkDrt d|tttd|dkDrt d|y)z:Validate matrix shape for addition only for integer valuesc34K|]}|jywrr)rxs rrz*validate_matadd_integer..Zs-1qww-rc.t|ttfSrr+intrr2s rz)validate_matadd_integer..[ 1sGn =r(r z!Matrices have mismatching shape: c.t|ttfSrr4r6s rr7z)validate_matadd_integer..]r8r(N)r#lensetfilterr r$s rvalidate_matadd_integerr=Xsv--.JD$ 3v=tD EFJ-JqTUv7A> >?r()sympy.core.relationalrsympy.core.exprrsympy.core.numbersrsympy.logic.boolalgrr"sympy.matrices.expressions.matexprr sympy.matrices.exceptionsr typingr r'r-r/r=rAr(rrJs$ &,90:':A5T!12AwA4":"W".E:E$E?:?$?r(