             
             var element:T = left[row, 0] * right[0][column]
             
-            for i in 1 ..< v {
+            for i in 1 ..< left.dimensions.columns {
                 
                 element = element + left[row, i] * right[i, column]
             }


// MARK: Matrix Addition

func + <T: MatrixCompatible> (left: Matrix<T>, right: Matrix<T>) -> Matrix<T> {
    
    if left.dimensions != right.dimensions {

    return mcombine(left, right){ $0 + $1 }
}

/**
    Returns the sum of the two matrices.

    :param: left    The left matrix in the sum.
    :param: right   The right matrix in the sum.

    :returns: A matrix of the same dimensions as the two
                given matrices.

    :exception: Throws an exception when the dimensions of the two matrices are not equal.
*/
func + (left: Matrix<Float>, right: Matrix<Float>) -> Matrix<Float> {
    
    if left.dimensions != right.dimensions {
