working inverse matrix caching functions