#include <iostream>
#include <chrono>
#include <math.h>
int clog(int base, int n) {
return (n > base - 1)
? 1 + clog(n / base, base)
: 0;
}
int main() {
std::chrono::steady_clock::time_point begin = std::chrono::steady_clock::now();
clog(10,1024);
std::chrono::steady_clock::time_point end = std::chrono::steady_clock::now();
std::cout << "Time difference of custom log= " << std::chrono::duration_cast<std::chrono::nanoseconds>(end - begin).count() << "[µs]" << std::endl;
begin = std::chrono::steady_clock::now();
std::log(10);
end = std::chrono::steady_clock::now();
std::cout << "Time difference of std log= " << std::chrono::duration_cast<std::chrono::nanoseconds>(end - begin).count() << "[µs]" << std::endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y2hyb25vPgojaW5jbHVkZSA8bWF0aC5oPgoKCmludCBjbG9nKGludCBiYXNlLCBpbnQgbikgewogICAgcmV0dXJuIChuID4gYmFzZSAtIDEpCiAgICAgICAgICAgID8gMSArIGNsb2cobiAvIGJhc2UsIGJhc2UpCiAgICAgICAgICAgIDogMDsKfQppbnQgbWFpbigpIHsKCQoJc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6dGltZV9wb2ludCBiZWdpbiA9IHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6Om5vdygpOwoJY2xvZygxMCwxMDI0KTsKCXN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6OnRpbWVfcG9pbnQgZW5kID0gc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCk7CglzdGQ6OmNvdXQgPDwgIlRpbWUgZGlmZmVyZW5jZSBvZiBjdXN0b20gbG9nPSAiIDw8IHN0ZDo6Y2hyb25vOjpkdXJhdGlvbl9jYXN0PHN0ZDo6Y2hyb25vOjpuYW5vc2Vjb25kcz4oZW5kIC0gYmVnaW4pLmNvdW50KCkgPDwgIlvCtXNdIiA8PCBzdGQ6OmVuZGw7CgkKCQoJYmVnaW4gPSBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpub3coKTsKCXN0ZDo6bG9nKDEwKTsKCWVuZCA9IHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6Om5vdygpOwoJc3RkOjpjb3V0IDw8ICJUaW1lIGRpZmZlcmVuY2Ugb2Ygc3RkIGxvZz0gIiA8PCBzdGQ6OmNocm9ubzo6ZHVyYXRpb25fY2FzdDxzdGQ6OmNocm9ubzo6bmFub3NlY29uZHM+KGVuZCAtIGJlZ2luKS5jb3VudCgpIDw8ICJbwrVzXSIgPDwgc3RkOjplbmRsOwp9