
    Ed$                     V    d dl mZ d dlmZmZ d dlmZ d dlmZ  G d de          Z	dS )    )Basic)adjoint	conjugate)	transpose)
MatrixExprc                   f    e Zd ZdZdZd Zed             Zed             Zd Z	d Z
d Zd	 Zd
 ZdS )Adjointa,  
    The Hermitian adjoint of a matrix expression.

    This is a symbolic object that simply stores its argument without
    evaluating it. To actually compute the adjoint, use the ``adjoint()``
    function.

    Examples
    ========

    >>> from sympy import MatrixSymbol, Adjoint, adjoint
    >>> A = MatrixSymbol('A', 3, 5)
    >>> B = MatrixSymbol('B', 5, 3)
    >>> Adjoint(A*B)
    Adjoint(A*B)
    >>> adjoint(A*B)
    Adjoint(B)*Adjoint(A)
    >>> adjoint(A*B) == Adjoint(A*B)
    False
    >>> adjoint(A*B) == Adjoint(A*B).doit()
    True
    Tc                     | j         }|                    dd          r/t          |t                    rt	           |j        di |          S t	          | j                   S )NdeepT )argget
isinstancer   r   doit)selfhintsr   s      Blib/python3.11/site-packages/sympy/matrices/expressions/adjoint.pyr   zAdjoint.doit    s`    h99VT"" 	%z#u'='= 	%838,,e,,---48$$$    c                     | j         d         S )Nr   )argsr   s    r   r   zAdjoint.arg'   s    y|r   c                 ,    | j         j        d d d         S )N)r   shaper   s    r   r   zAdjoint.shape+   s    x~ddd##r   c                 D    t           | j        j        ||fi |          S N)r   r   _entry)r   ijkwargss       r   r   zAdjoint._entry/   s(    A8888999r   c                     | j         S r   )r   r   s    r   _eval_adjointzAdjoint._eval_adjoint2   s	    xr   c                 *    t          | j                  S r   )r   r   r   s    r   _eval_conjugatezAdjoint._eval_conjugate5       """r   c                 H    ddl m} t           || j                            S )Nr   )Trace) sympy.matrices.expressions.tracer'   r   r   )r   r'   s     r   _eval_tracezAdjoint._eval_trace8   s,    ::::::tx)))r   c                 *    t          | j                  S r   )r   r   r   s    r   _eval_transposezAdjoint._eval_transpose<   r%   r   N)__name__
__module____qualname____doc__
is_Adjointr   propertyr   r   r   r"   r$   r)   r+   r   r   r   r	   r	      s         , J% % %   X $ $ X$: : :  # # #* * *# # # # #r   r	   N)

sympy.corer   sympy.functionsr   r   $sympy.matrices.expressions.transposer   "sympy.matrices.expressions.matexprr   r	   r   r   r   <module>r6      s          . . . . . . . . : : : : : : 9 9 9 9 9 96# 6# 6# 6# 6#j 6# 6# 6# 6# 6#r   