def __init__(self, arr, scalarMultiplier=1.0, size=0): # assert arr.ndim <= 1 self.diag = arr.copy() if arr is not None else None # may be None, then n has to be provided self.scalarMultiplier = ( scalarMultiplier if isscalar(scalarMultiplier) else asscalar(scalarMultiplier) if type(scalarMultiplier) == ndarray else scalarMultiplier[0, 0] if scipyInstalled and SP.isspmatrix(scalarMultiplier) else raise_except() ) self.size = arr.size if size == 0 else size if arr is None: self.isOnes = True
def Diag(x, *args, **kw): if isscalar(x): return x else: return diagonal(asfarray(x) if x is not None else x, *args, **kw)
def __rmul__(self, item): return self.__mul__(item) if isscalar(item) else self.__mul__(item.T).T