     }
     
     
+    /**
+        Creates an identity matrix of the given size. This means all diagonal elements
+        are equal to 1 and all other elements are equal to 0.
+    
+        :param: size    The size the matrix should have.
+    */
     convenience init(identityOfSize size: Int) {
         
         self.init(filledWith: 0, size: size)

    }
    
    
    subscript(row: Int, columnRange: Range<Int>) -> Vector<T> {
        
        get {

    
    
    /**
        Returns the size of the matrix if the matrix is square. If the matrix is not
        square it returns nil.
    
        :returns: The size of the matrix if the matrix is square or nil otherwise.
    */
    var size: Int? {
        return self.dimensions.size
