+
    i                         ^ RI Ht ^ RIHt ^ RIHt ^ RIHt ^ RIH	t	 ^ RI
Ht  ! R R]4      tR	 t ! R
 R]4      tR t^ RIHtHt ^ RIHt R t]]R&   R# )    )Basic)Expr)S)sympify)NonSquareMatrixError)
MatrixBasec                   T   a  ] tR t^	t o RtRtR t]R 4       t]R 4       t	R t
RtV tR# )	DeterminantzMatrix 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
Tc                    \        V4      pVP                  '       g   \        R \        V4      ,          4      hVP                  RJ d   \        R4      h\        P                  ! W4      # )z&Input to Determinant, %s, not a matrixFzDet of a non-square matrix)r   	is_Matrix	TypeErrorstr	is_squarer   r   __new__clsmats   &&چ/Users/tonyclaw/.openclaw/workspace/skills/math-calculator/venv/lib/python3.14/site-packages/sympy/matrices/expressions/determinant.pyr   Determinant.__new__   sP    cl}}}Ds3xOPP==E!&'CDD}}S&&    c                (    V P                   ^ ,          # r   argsselfs   &r   argDeterminant.arg$       yy|r   c                B    V P                   P                  P                  # N)r   kindelement_kindr   s   &r   r"   Determinant.kind(   s    xx}})))r   c                    V P                   pVP                  R R4      '       d   VP                  ! R/ VB pVP                  4       pVe   V# V # )deepT )r   getdoit_eval_determinant)r   hintsr   results   &,  r   r)   Determinant.doit,   sK    hh99VT""((#U#C&&(Mr   r'   N)__name__
__module____qualname____firstlineno____doc__is_commutativer   propertyr   r"   r)   __static_attributes____classdictcell____classdict__s   @r   r
   r
   	   sH      N'   * *	 	r   r
   c                4    \        V 4      P                  4       # )zMatrix Determinant

Examples
========

>>> from sympy import MatrixSymbol, det, eye
>>> A = MatrixSymbol('A', 3, 3)
>>> det(A)
Determinant(A)
>>> det(eye(3))
1
)r
   r)   matexprs   &r   detr<   8   s     w$$&&r   c                   D   a  ] tR t^Ht o RtR t]R 4       tRR ltRt	V t
R# )	PermanentzMatrix 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
c                    \        V4      pVP                  '       g   \        R \        V4      ,          4      h\        P
                  ! W4      # )z$Input to Permanent, %s, not a matrix)r   r   r   r   r   r   r   s   &&r   r   Permanent.__new__X   s8    cl}}}BSXMNN}}S&&r   c                (    V P                   ^ ,          # r   r   r   s   &r   r   Permanent.arg_   r   r   c                z    \        V P                  \        4      '       d   V P                  P                  4       # V # r!   )
isinstancer   r   per)r   expandr+   s   &&,r   r)   Permanent.doitc   s(    dhh
++88<<>!Kr   r'   N)F)r.   r/   r0   r1   r2   r   r4   r   r)   r5   r6   r7   s   @r   r>   r>   H   s-     '   r   r>   c                4    \        V 4      P                  4       # )zMatrix 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
)r>   r)   r:   s   &r   rE   rE   i   s    " W""$$r   )askQ)handlers_dictc                   \        \        P                  ! V P                  4      V4      '       d   \        P
                  # \        \        P                  ! V P                  4      V4      '       d   \        P                  # \        \        P                  ! V P                  4      V4      '       d   \        P
                  # V # )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
)	rI   rJ   
orthogonalr   r   OnesingularZerounit_triangular)exprassumptionss   &&r   refine_DeterminantrT      st     1<<!;//uu	QZZ!;	/	/vv	Qtxx(+	6	6uuKr   N)sympy.core.basicr   sympy.core.exprr   sympy.core.singletonr   sympy.core.sympifyr   sympy.matrices.exceptionsr   sympy.matrices.matrixbaser   r
   r<   r>   rE   sympy.assumptions.askrI   rJ   sympy.assumptions.refinerK   rT   r'   r   r   <module>r]      sT    "   " & : 0,$ ,^'  B%& ) 2(  2m r   