             let currentRowStartIndex = nextRowStartIndex
             nextRowStartIndex += self.columns
 
-            return self.grid[currentRowStartIndex..<nextRowStartIndex]
+            return self.elements[currentRowStartIndex..<nextRowStartIndex]
         }
     }
 }

    var error: __CLPK_integer = 0
    var nc = __CLPK_integer(x.columns)

    sgetrf_(&nc, &nc, &(results.grid), &nc, &ipiv, &error)
    sgetri_(&nc, &(results.grid), &nc, &ipiv, &work, &lwork, &error)

    assert(error == 0, "Matrix not invertible")


    precondition(x.columns == y.rows, "Matrix dimensions not compatible with multiplication")

    var results = Matrix<Float>(rows: x.rows, columns: y.columns, repeatedValue: 0.0)
    cblas_sgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans, Int32(x.rows), Int32(y.columns), Int32(x.columns), 1.0, x.elements, Int32(x.columns), y.elements, Int32(y.columns), 0.0, &(results.elements), Int32(results.columns))

    return results
}
