+
    i                         ^ RI HtHtHt ^ RIHt  ! R R]4      t]P                  P                  ]]4      R 4       t	]P                  P                  ]]4      R 4       t
R# )    )Kind_NumberKind
NumberKind)Mulc                   B   a a ] tR t^t oRt]3V 3R lltR tRtVt	V ;t
# )
MatrixKinda  
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   < \         SV `  W4      pWn        V# )N)super__new__element_kind)clsr   obj	__class__s   && s/Users/tonyclaw/.openclaw/workspace/skills/math-calculator/venv/lib/python3.14/site-packages/sympy/matrices/kind.pyr   MatrixKind.__new__@   s    goc0'
    c                (    R V P                   ,          # )zMatrixKind(%s))r   )selfs   &r   __repr__MatrixKind.__repr__E   s    $"3"333r    )__name__
__module____qualname____firstlineno____doc__r   r   r   __static_attributes____classdictcell____classcell__)r   __classdict__s   @@r   r   r      s     7p #- 
4 4r   r   c                    \        V\        4      '       g   Yr\        P                  ! WP                  4      p\        V4      # )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  __5Eer   c                n    \         P                  ! V P                  VP                  4      p\        V4      # )zK
Return MatrixKind. The element kind is selected by recursive dispatching.
)r   r#   r   r   r$   s   && r   mat_mat_mulr*   [   s)    
   "//BEer   N)sympy.core.kindr   r   r   sympy.core.mulr   r   r#   registerr(   r*   r   r   r   <module>r.      sk    : 9 ?4 ?4D {J7 8" z:6 7r   