alpar@2391: /* -*- C++ -*- alpar@2391: * alpar@2391: * This file is a part of LEMON, a generic C++ optimization library alpar@2391: * alpar@2553: * Copyright (C) 2003-2008 alpar@2391: * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport alpar@2391: * (Egervary Research Group on Combinatorial Optimization, EGRES). alpar@2391: * alpar@2391: * Permission to use, modify and distribute this software is granted alpar@2391: * provided that this copyright notice appears in all copies. For alpar@2391: * precise terms see the accompanying LICENSE file. alpar@2391: * alpar@2391: * This software is provided "AS IS" with no warranty of any kind, alpar@2391: * express or implied, and with no claim as to its suitability for any alpar@2391: * purpose. alpar@2391: * alpar@2391: */ alpar@2391: 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: }