     
     
     /**
-        Returns the size of the matrix if the matrix is square. If the matrix is not square, an exception will be raised.
-    
-        :returns: The size of the matrix if the matrix is square.
+        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

    }
    
    
    subscript(rowRange: Range<Int>, columnRange: Range<Int>) -> Matrix<T> {
        
        get {

    
    // MARK: Subscript Methods
    
    /**
        Gets or sets the element at the given row and column.
    
        :param: row     The row of the desired element.
        :param: column  The column of the desired element.
    
        :returns: The element at the given row and column.
    
        :exception: An exception will be thrown when either of the indices
                        is out of bounds.
    */
    subscript(row: Int, column: Int) -> T {
    
        get {
