00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef OR_TOOLS_UTIL_CACHED_LOG_H_
00015 #define OR_TOOLS_UTIL_CACHED_LOG_H_
00016
00017 #include <math.h>
00018 #include <vector>
00019
00020 #include "base/basictypes.h"
00021 #include "base/integral_types.h"
00022 #include "base/logging.h"
00023 #include "base/macros.h"
00024
00025 namespace operations_research {
00026
00027
00028
00029
00030
00031
00032 class CachedLog {
00033 public:
00034 CachedLog();
00035 ~CachedLog();
00036
00037
00038 void Init(int cache_size);
00039
00040
00041 double Log2(int64 input) const;
00042 private:
00043 std::vector<double> cache_;
00044 DISALLOW_COPY_AND_ASSIGN(CachedLog);
00045 };
00046 }
00047
00048 #endif // OR_TOOLS_UTIL_CACHED_LOG_H_