#include #include double cachedSin(double angle) { static std::map results; std::map::iterator i; i = results.find(angle); if (i != results.end()) { return i->second; } else { double result = sin(angle); results[angle] = result; return result; } }