alpar@2244: #include alpar@2244: #include alpar@2244: #include alpar@2244: alpar@2244: using namespace lemon; alpar@2244: alpar@2244: void f_no() alpar@2244: { alpar@2244: } alpar@2244: alpar@2244: inline void f_noi() alpar@2244: { alpar@2244: } alpar@2244: alpar@2244: inline void f_i() alpar@2244: { alpar@2244: static int r; alpar@2244: r=5; alpar@2244: } alpar@2244: alpar@2244: inline void f_l() alpar@2244: { alpar@2244: static long int r; alpar@2244: r=5; alpar@2244: } alpar@2244: alpar@2244: inline void f_d() alpar@2244: { alpar@2244: static double r; alpar@2244: r=5; alpar@2244: } alpar@2244: alpar@2244: inline void f_rand() alpar@2244: { alpar@2244: static int r; alpar@2244: r=rand(); alpar@2244: } alpar@2244: alpar@2244: inline void f_random() alpar@2244: { alpar@2244: static long int r; alpar@2244: r=random(); alpar@2244: } alpar@2244: alpar@2244: inline void f_drand48() alpar@2244: { alpar@2244: static double r; alpar@2244: r=drand48(); alpar@2244: } alpar@2244: alpar@2244: inline void f_rnd_d() alpar@2244: { alpar@2244: static double r; alpar@2244: r=rnd(); alpar@2244: } alpar@2244: inline void f_rnd_int1000() alpar@2244: { alpar@2244: static int r; alpar@2244: r=rnd[1000]; alpar@2244: } alpar@2244: inline void f_rnd_bool() alpar@2244: { alpar@2244: static bool r; alpar@2244: r=rnd.boolean(); alpar@2244: } alpar@2244: alpar@2244: // inline void f_() alpar@2244: // { alpar@2244: // static double r; alpar@2244: // r=; alpar@2244: // } alpar@2244: alpar@2244: int main() alpar@2244: { alpar@2244: TimeStamp full; alpar@2244: TimeStamp t; alpar@2244: unsigned int n; alpar@2244: alpar@2244: const double TEST_DURATION=10; alpar@2244: alpar@2244: t=runningTimeTest(f_no,2,&n,&full); alpar@2244: alpar@2244: t=runningTimeTest(f_no,TEST_DURATION,&n,&full); alpar@2244: std::cout << "EMPTY: "; alpar@2244: std::cout << t.userTime() << " (" << n << " tests)\n"; alpar@2244: alpar@2244: t=runningTimeTest(f_noi,TEST_DURATION,&n,&full); alpar@2244: std::cout << "INLINED EMPTY: "; alpar@2244: std::cout << t.userTime() << " (" << n << " tests)\n"; alpar@2244: alpar@2244: TimeStamp ti=t=runningTimeTest(f_i,TEST_DURATION,&n,&full); alpar@2244: std::cout << "INT COPY: "; alpar@2244: std::cout << t.userTime() << " (" << n << " tests)\n"; alpar@2244: alpar@2244: TimeStamp tl=t=runningTimeTest(f_l,TEST_DURATION,&n,&full); alpar@2244: std::cout << "LONG COPY: "; alpar@2244: std::cout << t.userTime() << " (" << n << " tests)\n"; alpar@2244: alpar@2244: TimeStamp td=t=runningTimeTest(f_d,TEST_DURATION,&n,&full); alpar@2244: std::cout << "DOUBLE COPY: "; alpar@2244: std::cout << t.userTime() << " (" << n << " tests)\n"; alpar@2244: alpar@2244: t=runningTimeTest(f_rand,TEST_DURATION,&n,&full); alpar@2244: std::cout << "rand(): "; alpar@2244: std::cout << (t-ti).userTime() << " (" << n << " tests)\n"; alpar@2244: alpar@2244: t=runningTimeTest(f_random,TEST_DURATION,&n,&full); alpar@2244: std::cout << "random(): "; alpar@2244: std::cout << (t-tl).userTime() << " (" << n << " tests)\n"; alpar@2244: alpar@2244: t=runningTimeTest(f_drand48,TEST_DURATION,&n,&full); alpar@2244: std::cout << "drand48(): "; alpar@2244: std::cout << (t-td).userTime() << " (" << n << " tests)\n"; alpar@2244: alpar@2244: t=runningTimeTest(f_rnd_d,TEST_DURATION,&n,&full); alpar@2244: std::cout << "rnd(): "; alpar@2244: std::cout << (t-td).userTime() << " (" << n << " tests)\n"; alpar@2244: alpar@2244: t=runningTimeTest(f_rnd_int1000,TEST_DURATION,&n,&full); alpar@2244: std::cout << "rnd[1000]: "; alpar@2244: std::cout << (t-ti).userTime() << " (" << n << " tests)\n"; alpar@2244: alpar@2244: t=runningTimeTest(f_rnd_bool,TEST_DURATION,&n,&full); alpar@2244: std::cout << "rnd.boolean(): "; alpar@2244: std::cout << (t-ti).userTime() << " (" << n << " tests)\n"; alpar@2244: alpar@2244: // t=runningTimeTest(f_,TEST_DURATION,&n,&full); alpar@2244: // std::cout << "\n"; alpar@2244: // std::cout << t << " (" << n << " tests)\n"; alpar@2244: // std::cout << "Total: " << full << "\n\n"; alpar@2244: alpar@2244: return 0; alpar@2244: }