K i ddlmZmZmZddlmZGddeZejjeedZ ejjeedZ y))Kind _NumberKind NumberKind)Mulc,eZdZdZeffd ZdZxZS) 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 c6t|||}||_|S)N)super__new__ element_kind)clsr obj __class__s Y/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sympy/matrices/kind.pyr zMatrixKind.__new__@s goc<0' c d|jzS)NzMatrixKind(%s))r )selfs r__repr__zMatrixKind.__repr__Es$"3"333r)__name__ __module__ __qualname____doc__rr r __classcell__)rs@rrrs7p#- 4rrct|ts||}}tj||j}t|S)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. ) isinstancerr_kind_dispatcherr k1k2elemks r num_mat_mulr!Is8 b* %RB  R__ 5E e rcltj|j|j}t|S)zS Return MatrixKind. The element kind is selected by recursive dispatching. )rrr rrs r mat_mat_mulr#[s)  "// BE e rN) sympy.core.kindrrrsympy.core.mulrrrregisterr!r#rrr(sk:9?4?4D{J78"z:67r