Changeset 43bbd6 in git for factory/libfac/factor
- Timestamp:
- Feb 22, 2012, 1:27:08 PM (12 years ago)
- Branches:
- (u'spielwiese', 'a719bcf0b8dbc648b128303a49777a094b57592c')
- Children:
- e2c18174ad1b4c2b871cb7dbdd0d2d4fc6ec8296
- Parents:
- 0b618a776fb1b77afc08df17205c01272c15f277
- git-author:
- Martin Lee <martinlee84@web.de>2012-02-22 13:27:08+01:00
- git-committer:
- Martin Lee <martinlee84@web.de>2012-02-22 15:31:05+01:00
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
factory/libfac/factor/timing.h
r0b618a7 r43bbd6 1 //////////////////////////////////////////////////////////// 2 // emacs edit mode for this file is -*- C++ -*- 3 // $Id$ 4 //////////////////////////////////////////////////////////// 5 // It is possible to include this file multiple times for different 6 // settings of TIMING (but now this isn't used) 1 /* emacs edit mode for this file is -*- C++ -*- */ 2 /* $Id$ */ 3 4 /* It should be possible to include this file multiple times for different */ 5 /* settings of TIMING */ 7 6 8 7 #undef TIMING_START 9 8 #undef TIMING_END 9 #undef TIMING_END_AND_PRINT 10 10 #undef TIMING_DEFINE_PRINT 11 11 #undef TIMING_DEFINE_PRINTPROTO … … 14 14 #ifdef TIMING 15 15 #include <time.h> 16 #if ! defined(WINNT) || defined(__GNUC__) 16 17 #include <sys/times.h> 17 #ifdef HAVE_IOSTREAM 18 #include <iostream> 19 #define OSTREAM std::ostream 20 #define ISTREAM std::istream 21 #elif defined(HAVE_IOSTREAM_H) 22 #include <iostream.h> 23 #define OSTREAM ostream 24 #define ISTREAM istream 18 #include <sys/param.h> 25 19 #endif 20 #ifndef NOSTREAMIO 21 #ifdef HAVE_CSTDIO 22 #include <cstdio> 23 #else 24 #include <stdio.h> 25 #endif 26 #endif 27 28 // need to be adjusted on your machine: 29 // the number of ticks per second: HZ 30 #if ! defined (HZ) && defined (CLOCKS_PER_SEC) 31 #define HZ CLOCKS_PER_SEC 32 #endif 33 #if ! defined (HZ) && defined (CLK_TCK) 34 #define HZ CLK_TCK 35 #endif 36 #ifndef HZ 37 #ifdef sun 38 #define HZ 60.0 39 #else 40 #define HZ 100.0 41 #endif 42 #endif 43 44 #if defined(WINNT) && ! defined(__GNUC__) 45 46 #define TIMING_START(t) { clock_t timing_ ## t ## _start, timing_ ## t ## _end; \ 47 timing_ ## t ## _start = clock(); 48 #define TIMING_END(t) timing_ ## t ## _end = clock(); \ 49 timing_ ## t ## _time += timing_ ## t ## _end - timing_ ## t ## _start; } 50 #define TIMING_END_AND_PRINT(t, msg) times( &timing_ ## t ## _end ); \ 51 fprintf( stderr, "%s%.2f sec\n", msg, \ 52 float( timing_ ## t ## _end - timing_ ## t ## _start ) / HZ ); \ 53 timing_ ## t ## _time += timing_ ## t ## _end - timing_ ## t ## _start; } 54 #define TIMING_DEFINE_PRINT(t) clock_t timing_ ## t ## _time; \ 55 void timing_print_ ## t ( char * msg ) { \ 56 fprintf( stderr, "%s%.2f sec\n", msg, float(timing_ ## t ## _time) / HZ ); \ 57 } \ 58 void timing_reset_ ## t () { \ 59 timing_ ## t ## _time = 0; \ 60 } 61 62 #else /* ! WINNT */ 63 26 64 #define TIMING_START(t) { struct tms timing_ ## t ## _start, timing_ ## t ## _end; \ 27 65 times( &timing_ ## t ## _start ); 28 66 #define TIMING_END(t) times( &timing_ ## t ## _end ); \ 29 67 timing_ ## t ## _time += timing_ ## t ## _end.tms_utime - timing_ ## t ## _start.tms_utime; } 68 #define TIMING_END_AND_PRINT(t, msg) times( &timing_ ## t ## _end ); \ 69 fprintf( stderr, "%s%.2f sec\n", msg, \ 70 float( timing_ ## t ## _end.tms_utime - timing_ ## t ## _start.tms_utime ) / HZ ); \ 71 timing_ ## t ## _time += timing_ ## t ## _end.tms_utime - timing_ ## t ## _start.tms_utime; } 30 72 #define TIMING_DEFINE_PRINT(t) long timing_ ## t ## _time; \ 31 void timing_print_ ## t ( char * msg ) { CERR.setf( ios::fixed, ios::floatfield); CERR.precision(2); \ 32 CERR << msg << float(timing_ ## t ## _time) / 60 << " sec" << "\n"; } 33 #define TIMING_PRINT(t,msg) timing_print_ ## t ( msg ); 34 #define TIMING_DEFINE_PRINTPROTO(t) void timing_print_ ## t ( char * ); 35 #else 73 void timing_print_ ## t ( char * msg ) { \ 74 fprintf( stderr, "%s%.2f sec\n", msg, float(timing_ ## t ## _time) / HZ ); \ 75 } \ 76 void timing_reset_ ## t () { \ 77 timing_ ## t ## _time = 0; \ 78 } 79 #endif /* ! WINNT */ 80 81 /* macros common to all platforms */ 82 #define TIMING_DEFINE_PRINTPROTO(t) void timing_print_ ## t ( char * ); \ 83 void timing_reset_ ## t (); 84 #define TIMING_PRINT(t, msg) timing_print_ ## t ( msg ); 85 #define TIMING_RESET(t) timing_reset_ ## t (); 86 87 #else /* TIMING */ 36 88 #define TIMING_START(t) 37 89 #define TIMING_END(t) 90 #define TIMING_END_AND_PRINT(t, msg) 38 91 #define TIMING_DEFINE_PRINT(t) 39 #define TIMING_PRINT(t,msg)40 92 #define TIMING_DEFINE_PRINTPROTO(t) 93 #define TIMING_PRINT(t, msg) 94 #define TIMING_RESET(t) 41 95 #endif /* TIMING */ 42
Note: See TracChangeset
for help on using the changeset viewer.