Buckets:
MisterAI/LocalAI_Demo_backends / cpu-diffusers.upgrade-tmp /venv /lib /python3.10 /site-packages /sympy /matrices /kind.py
| # sympy.matrices.kind | |
| from sympy.core.kind import Kind, _NumberKind, NumberKind | |
| from sympy.core.mul import Mul | |
| class MatrixKind(Kind): | |
| """ | |
| 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 | |
| """ | |
| def __new__(cls, element_kind=NumberKind): | |
| obj = super().__new__(cls, element_kind) | |
| obj.element_kind = element_kind | |
| return obj | |
| def __repr__(self): | |
| return "MatrixKind(%s)" % self.element_kind | |
| def num_mat_mul(k1, k2): | |
| """ | |
| Return MatrixKind. The element kind is selected by recursive dispatching. | |
| Do not need to dispatch in reversed order because KindDispatcher | |
| searches for this automatically. | |
| """ | |
| # Deal with Mul._kind_dispatcher's commutativity | |
| # XXX: this function is called with either k1 or k2 as MatrixKind because | |
| # the Mul kind dispatcher is commutative. Maybe it shouldn't be. Need to | |
| # swap the args here because NumberKind does not have an element_kind | |
| # attribute. | |
| if not isinstance(k2, MatrixKind): | |
| k1, k2 = k2, k1 | |
| elemk = Mul._kind_dispatcher(k1, k2.element_kind) | |
| return MatrixKind(elemk) | |
| def mat_mat_mul(k1, k2): | |
| """ | |
| Return MatrixKind. The element kind is selected by recursive dispatching. | |
| """ | |
| elemk = Mul._kind_dispatcher(k1.element_kind, k2.element_kind) | |
| return MatrixKind(elemk) | |
Xet Storage Details
- Size:
- 2.84 kB
- Xet hash:
- b4ec5d96849be9cc958b52c0c455d0ef397f130ccd40a4ce5fef3655c52e564b
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.