     
     
     /**
-        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 {

        }
    }
    
    /**
        Gets or sets the row at the given element.
    
        :param: index   The index of the desired row.
    
        :returns: A vector representing the row at the given index.
    
        :exception: An exception will be thrown when the given index is out
                        of bounds.
    */
    subscript(index: Int) -> Vector<T>  {
        
        get {
