Advertisement
Guest User

Crude log benchmark code

a guest
May 30th, 2012
588
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.48 KB | None | 0 0
  1. #include <math.h>
  2. #include <limits.h>
  3. #include <iostream>
  4. #include <time.h>
  5.  
  6. using namespace std;
  7.  
  8. timespec diff(timespec start, timespec end)
  9. {
  10.     timespec temp;
  11.     if ((end.tv_nsec - start.tv_nsec) < 0)
  12.     {
  13.     temp.tv_sec = end.tv_sec - start.tv_sec - 1;
  14.     temp.tv_nsec = 1000000000 + end.tv_nsec - start.tv_nsec;
  15.     }
  16.     else
  17.     {
  18.     temp.tv_sec = end.tv_sec - start.tv_sec;
  19.     temp.tv_nsec = end.tv_nsec - start.tv_nsec;
  20.     }
  21.     return temp;
  22. }
  23.  
  24. int main(void)
  25. {
  26.     timespec start, end;
  27.     clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &start);
  28.     double sum = 0;
  29.     double m = 0.0;
  30.     for (int n = 1; n < INT_MAX; ++n)
  31.     {
  32.     m = n * 10.1;
  33.     sum += log(m);
  34.     }
  35.     clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &end);
  36.     cout << "ln=";
  37.     cout << diff(start, end).tv_sec << ":" << diff(start, end).tv_nsec << endl;
  38.  
  39.  
  40.     clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &start);
  41.     sum = 0, m = 0.0;
  42.     for (int n = 1; n < INT_MAX; ++n)
  43.     {
  44.     m = n * 10.1;
  45.     sum += log2(m);
  46.     }
  47.     clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &end);
  48.     cout << "lb=";
  49.     cout << diff(start, end).tv_sec << ":" << diff(start, end).tv_nsec << endl;
  50.  
  51.  
  52.     clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &start);
  53.     sum = 0, m = 0.0;
  54.     for (int n = 1; n < INT_MAX; ++n)
  55.     {
  56.     m = n * 10.1;
  57.     sum += log10(n);
  58.     }
  59.     clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &end);
  60.     cout << "lg=";
  61.     cout << diff(start, end).tv_sec << ":" << diff(start, end).tv_nsec << endl;
  62.  
  63.     return 0;
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement