+ else:
+ raise AttributeError("the %s covariance matrix has no diag attribute."%(self.__name,))
+
+ def trace(self, msize=None):
+ "Trace de la matrice"
+ if self.ismatrix():
+ return numpy.trace(self.__C)
+ elif self.isvector():
+ return float(numpy.sum(self.__C))
+ elif self.isscalar():
+ if msize is None:
+ raise ValueError("the size of the %s covariance matrix has to be given in case of definition as a scalar over the diagonal."%(self.__name,))
+ else:
+ return self.__C * int(msize)
+ elif self.isobject():
+ return self.__C.trace()
+ else:
+ raise AttributeError("the %s covariance matrix has no trace attribute."%(self.__name,))