ó
    ‰*£h  ã                   óÂ   • S SK JrJrJr  S SKJr   " S S\5      r\R                  R                  \\5      S 5       r	\R                  R                  \\5      S 5       r
g)é    )ÚKindÚ_NumberKindÚ
NumberKind)ÚMulc                   ó8   ^ • \ rS rSrSr\4U 4S jjrS rSrU =r	$ )Ú
MatrixKindé   a  
Kind for all matrices in SymPy.

Basic class for this kind is ``MatrixBase`` and ``MatrixExpr``,
but any expression representing the matrix can have this.

Parameters
==========

element_kind : Kind
    Kind of the element. Default is
    :class:`sympy.core.kind.NumberKind`,
    which means that the matrix contains only numbers.

Examples
========

Any instance of matrix class has kind ``MatrixKind``:

>>> from sympy import MatrixSymbol
>>> A = MatrixSymbol('A', 2, 2)
>>> A.kind
MatrixKind(NumberKind)

An expression representing a matrix may not be an instance of
the Matrix class, but it will have kind ``MatrixKind``:

>>> from sympy import MatrixExpr, Integral
>>> from sympy.abc import x
>>> intM = Integral(A, x)
>>> isinstance(intM, MatrixExpr)
False
>>> intM.kind
MatrixKind(NumberKind)

Use ``isinstance()`` to check for ``MatrixKind`` without specifying the
element kind. Use ``is`` to check the kind including the element kind:

>>> from sympy import Matrix
>>> from sympy.core import NumberKind
>>> from sympy.matrices import MatrixKind
>>> M = Matrix([1, 2])
>>> isinstance(M.kind, MatrixKind)
True
>>> M.kind is MatrixKind(NumberKind)
True

See Also
========

sympy.core.kind.NumberKind
sympy.core.kind.UndefinedKind
sympy.core.containers.TupleKind
sympy.sets.sets.SetKind

c                 ó2   >• [         TU ]  X5      nXl        U$ )N)ÚsuperÚ__new__Úelement_kind)Úclsr   ÚobjÚ	__class__s      €ÚP/home/mande/repo/quber/.venv/lib/python3.13/site-packages/sympy/matrices/kind.pyr   ÚMatrixKind.__new__@   s   ø€ Ü‰g‰o˜cÓ0ˆØ'ÔØˆ
ó    c                 ó    • SU R                   -  $ )NzMatrixKind(%s))r   )Úselfs    r   Ú__repr__ÚMatrixKind.__repr__E   s   € Ø $×"3Ñ"3Ñ3Ð3r   © )
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   r   Ú__static_attributes__Ú__classcell__)r   s   @r   r   r      s   ø† ñ7ðp #-÷ ÷
4ð 4r   r   c                 ó†   • [        U[        5      (       d  Xp[        R                  " XR                  5      n[        U5      $ )z­
Return MatrixKind. The element kind is selected by recursive dispatching.
Do not need to dispatch in reversed order because KindDispatcher
searches for this automatically.
)Ú
isinstancer   r   Ú_kind_dispatcherr   ©Úk1Úk2Úelemks      r   Únum_mat_mulr'   I   s5   € ô �bœ*×%Ñ%ØˆBÜ× Ò  §_¡_Ó5€EÜ�eÓÐr   c                 ón   • [         R                  " U R                  UR                  5      n[        U5      $ )zK
Return MatrixKind. The element kind is selected by recursive dispatching.
)r   r"   r   r   r#   s      r   Úmat_mat_mulr)   [   s)   € ô
 × Ò  §¡°"·/±/ÓB€EÜ�eÓÐr   N)Úsympy.core.kindr   r   r   Úsympy.core.mulr   r   r"   Úregisterr'   r)   r   r   r   Ú<module>r-      sk   ð÷ :Ñ 9Ý ô?4�ô ?4ðD ×Ñ×Ñ˜{¨JÓ7ñó 8ðð" ×Ñ×Ñ˜z¨:Ó6ñó 7ñr   