     convenience init(diagonal: [T]) {
         
         self.init(filledWith: 0, size: diagonal.count)
-        
         self.diagonalElements = diagonal
     }
     

    var description: String {
        
        return self.elements.description
    }
    
    
    /**
        Returns the dimensions of matrix.
    
        :returns: The dimensions of the matrix.
    */
    var dimensions: Dimensions {
        
        var dimensions = Dimensions(elements.count, elements[0].count)
        
        if dimensions == Dimensions(1, 0) {
            dimensions = Dimensions(0, 0)
        }
        
        return dimensions
    }
    
    

    }
    
    
    init(filledWith element: T, dimensions: Dimensions) {
        
        self.dimensions = dimensions
        self.elementsList = [T](count: dimensions.rows * dimensions.columns, repeatedValue: element)
    }
    
    
    convenience init(identityOfSize size: Int) {
        
        self.init(filledWith: 0, size: size)
        self.fillDiagonal(1)
    }
    
