Doxygen Generated Documentation of Ben-Jose Trainable SAT Solver Library
bj_time.h
1 
2 
3 /*************************************************************
4 
5 This file is part of ben-jose.
6 
7 ben-jose is free software: you can redistribute it and/or modify
8 it under the terms of the version 3 of the GNU General Public
9 License as published by the Free Software Foundation.
10 
11 ben-jose is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15 
16 You should have received a copy of the GNU General Public License
17 along with ben-jose. If not, see <http://www.gnu.org/licenses/>.
18 
19 ------------------------------------------------------------
20 
21 Copyright (C) 2007-2012, 2014-2016. QUIROGA BELTRAN, Jose Luis.
22 Id (cedula): 79523732 de Bogota - Colombia.
23 See https://github.com/joseluisquiroga/ben-jose
24 
25 ben-jose is free software thanks to The Glory of Our Lord
26  Yashua Melej Hamashiaj.
27 Our Resurrected and Living, both in Body and Spirit,
28  Prince of Peace.
29 
30 ------------------------------------------------------------
31 
32 bj_stream.h
33 
34 Wrapper for time funcs.
35 
36 --------------------------------------------------------------*/
37 
38 
39 #ifndef BJ_TIME_H
40 #define BJ_TIME_H
41 
42 #ifdef WIN32
43 #include <ctime>
44 static inline double cpu_time(void){
45  // time in seconds
46  // This is a slow function use with care in performance code
47  clock_t ct = clock();
48  if(ct == -1){ return (double)ct; }
49  return (((double)ct) / CLOCKS_PER_SEC);
50 }
51 #endif
52 
53 #ifdef __linux
54 #include <sys/time.h>
55 #include <sys/resource.h>
56 static inline double cpu_time(void){
57  // time in seconds
58  // This is a slow function use with care in performance code
59  struct rusage ru;
60  getrusage(RUSAGE_SELF, &ru);
61  return (double)ru.ru_utime.tv_sec + (double)ru.ru_utime.tv_usec / 1000000;
62 }
63 #endif
64 
65 #endif // BJ_TIME_H
66 
67