Ë
    7^(hÑ  ã                   ó°   — d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ  G d„ de«      Zd	„ Z G d
„ de«      Zd„ Zd dlmZmZ d dlmZ d„ Zeed<   y)é    )ÚBasic)ÚExpr)ÚS)Úsympify)ÚNonSquareMatrixError)Ú
MatrixBasec                   ó@   — e Zd ZdZdZd„ Zed„ «       Zed„ «       Zd„ Z	y)ÚDeterminanta  Matrix 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                 ó¼   — t        |«      }|j                  st        dt        |«      z  «      ‚|j                  du rt        d«      ‚t        j                  | |«      S )Nz&Input to Determinant, %s, not a matrixFzDet of a non-square matrix)r   Ú	is_MatrixÚ	TypeErrorÚstrÚ	is_squarer   r   Ú__new__©ÚclsÚmats     úd/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/matrices/expressions/determinant.pyr   zDeterminant.__new__   sP   € Ü�c‹lˆØ�}Š}ÜÐDÄsÈ3ÃxÑOÓPÐPà�=‰=˜EÑ!Ü&Ð'CÓDÐDä�}‰}˜S #Ó&Ð&ó    c                 ó    — | j                   d   S ©Nr   ©Úargs©Úselfs    r   ÚargzDeterminant.arg$   ó   € à�y‰y˜‰|Ðr   c                 óB   — | j                   j                  j                  S ©N)r   ÚkindÚelement_kindr   s    r   r    zDeterminant.kind(   s   € à�x‰x�}‰}×)Ñ)Ð)r   c                 óŽ   — | j                   }|j                  dd«      r |j                  di |¤Ž}|j                  «       }|�|S | S )NÚdeepT© )r   ÚgetÚdoitÚ_eval_determinant)r   Úhintsr   Úresults       r   r&   zDeterminant.doit,   sJ   € Ø�h‰hˆØ�9‰9�V˜TÔ"Ø�#—(‘(Ñ#˜UÑ#ˆCà×&Ñ&Ó(ˆØÐØˆMàˆr   N)
Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úis_commutativer   Úpropertyr   r    r&   r$   r   r   r
   r
   	   s@   „ ñð €Nò'ð ñó ðð ñ*ó ð*ó	r   r
   c                 ó4   — t        | «      j                  «       S )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    r   Údetr3   8   s   € ô �wÓ×$Ñ$Ó&Ð&r   c                   ó.   — e Zd ZdZd„ Zed„ «       Zdd„Zy)Ú	Permanenta  Matrix 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                 óŠ   — t        |«      }|j                  st        dt        |«      z  «      ‚t	        j
                  | |«      S )Nz$Input to Permanent, %s, not a matrix)r   r   r   r   r   r   r   s     r   r   zPermanent.__new__X   s8   € Ü�c‹lˆØ�}Š}ÜÐBÄSÈÃXÑMÓNÐNä�}‰}˜S #Ó&Ð&r   c                 ó    — | j                   d   S r   r   r   s    r   r   zPermanent.arg_   r   r   c                 ón   — t        | j                  t        «      r| j                  j                  «       S | S r   )Ú
isinstancer   r   Úper)r   Úexpandr(   s      r   r&   zPermanent.doitc   s%   € Ü�d—h‘h¤
Ô+Ø—8‘8—<‘<“>Ð!àˆKr   N)F)r*   r+   r,   r-   r   r/   r   r&   r$   r   r   r5   r5   H   s%   „ ñò'ð ñó ðôr   r5   c                 ó4   — t        | «      j                  «       S )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
    )r5   r&   r1   s    r   r:   r:   i   s   € ô" �WÓ×"Ñ"Ó$Ð$r   )ÚaskÚQ)Úhandlers_dictc                 ó\  — t        t        j                  | j                  «      |«      rt        j
                  S t        t        j                  | j                  «      |«      rt        j                  S t        t        j                  | j                  «      |«      rt        j
                  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>   Ú
orthogonalr   r   ÚOneÚsingularÚZeroÚunit_triangular)ÚexprÚassumptionss     r   Úrefine_DeterminantrH   €   sk   € ô Œ1�<‰<˜Ÿ™Ó! ;Ô/Ü�u‰uˆÜ	ŒQ�Z‰Z˜Ÿ™Ó! ;Ô	/Ü�v‰vˆÜ	ŒQ×Ñ˜tŸx™xÓ(¨+Ô	6Ü�u‰uˆà€Kr   N)Úsympy.core.basicr   Úsympy.core.exprr   Úsympy.core.singletonr   Úsympy.core.sympifyr   Úsympy.matrices.exceptionsr   Úsympy.matrices.matrixbaser   r
   r3   r5   r:   Úsympy.assumptions.askr=   r>   Úsympy.assumptions.refiner?   rH   r$   r   r   ú<module>rQ      sT   ðÝ "Ý  Ý "Ý &Ý :Ý 0ô,�$ô ,ò^'ô �ô òB%÷& )Ý 2òð(  2€ˆmÒ r   