Cached inverse functions for programming assignment 2