Пример #1
0
    def _eval_determinant(self):
        from .determinant import det, Determinant
        if not all(a.is_square for a in self.args):
            return Determinant(self)

        m = self.rows
        return prod(det(a)**(m/a.rows) for a in self.args)
Пример #2
0
    def _eval_determinant(self):
        from .determinant import det, Determinant
        if not all(a.is_square for a in self.args):
            return Determinant(self)

        m = self.rows
        return prod(det(a)**(m/a.rows) for a in self.args)
Пример #3
0
    def __new__(cls, *args, check=True):
        args = list(map(sympify, args))
        if all(a.is_Identity for a in args):
            ret = Identity(prod(a.rows for a in args))
            if all(isinstance(a, MatrixBase) for a in args):
                return ret.as_explicit()
            else:
                return ret

        if check:
            validate(*args)
        return super().__new__(cls, *args)
Пример #4
0
    def __new__(cls, *args, **kwargs):
        args = list(map(sympify, args))
        if all(a.is_Identity for a in args):
            ret = Identity(prod(a.rows for a in args))
            if all(isinstance(a, MatrixBase) for a in args):
                return ret.as_explicit()
            else:
                return ret

        check = kwargs.get('check', True)
        if check:
            validate(*args)
        return super(KroneckerProduct, cls).__new__(cls, *args)
Пример #5
0
    def __new__(cls, *args, **kwargs):
        args = list(map(sympify, args))
        if all(a.is_Identity for a in args):
            ret = Identity(prod(a.rows for a in args))
            if all(isinstance(a, MatrixBase) for a in args):
                return ret.as_explicit()
            else:
                return ret

        check = kwargs.get('check', True)
        if check:
            validate(*args)
        return super(KroneckerProduct, cls).__new__(cls, *args)
Пример #6
0
 def _eval_trace(self):
     from .trace import trace
     return prod(trace(a) for a in self.args)
Пример #7
0
 def _eval_trace(self):
     from .trace import trace
     return prod(trace(a) for a in self.args)