Functions to add the ability to cache the inverse of a Matrix