makeCacheMatrix() and cacheSolve() functions are implemented in cachematrix.R