Toggle navigation
SCIP Optimization Suite
SCIP
SoPlex
ZIMPL
UG
GCG
Documentation
SoPlex 6.0.3
SoPlex 5.0.2
SoPlex 4.0.2
SoPlex 3.1.0
SoPlex 3.0.1
SoPlex 2.2.1
SoPlex
Sequential object-oriented simPlex
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
soplex-repo
src
wallclocktimer.h
Go to the documentation of this file.
1
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2
/* */
3
/* This file is part of the class library */
4
/* SoPlex --- the Sequential object-oriented simPlex. */
5
/* */
6
/* Copyright (C) 1996-2015 Konrad-Zuse-Zentrum */
7
/* fuer Informationstechnik Berlin */
8
/* */
9
/* SoPlex is distributed under the terms of the ZIB Academic Licence. */
10
/* */
11
/* You should have received a copy of the ZIB Academic License */
12
/* along with SoPlex; see the file COPYING. If not email to soplex@zib.de. */
13
/* */
14
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
15
16
/**@file wallclocktimer.h
17
* @brief WallclockTimer class.
18
*/
19
20
#ifndef _WALLCLOCK_TIMER_H_
21
#define _WALLCLOCK_TIMER_H_
22
23
#include "
spxdefines.h
"
24
#include "
timer.h
"
25
26
namespace
soplex
27
{
28
29
class
WallclockTimer
:
public
Timer
30
{
31
private
:
32
33
//------------------------------------
34
/**@name Data */
35
//@{
36
mutable
long
sec
;
///< seconds
37
mutable
long
usec
;
///< microseconds
38
39
mutable
Real
lasttime
;
40
//@}
41
42
//------------------------------------
43
/**@name Internal helpers */
44
//@{
45
/// convert wallclock time to secounds.
46
Real
wall2sec
(
long
s,
long
us)
const
47
{
48
return
(
Real
)s+ 0.000001 * (
Real
)us;
49
}
50
51
//@}
52
53
public
:
54
55
//------------------------------------
56
/**@name Construction / destruction */
57
//@{
58
/// default constructor
59
WallclockTimer
()
60
:
Timer
(),
sec
(0),
usec
(0),
lasttime
(0.0)
61
{}
62
/// copy constructor
63
WallclockTimer
(
const
WallclockTimer
& old)
64
:
Timer
(),
sec
(old.
sec
),
usec
(old.
usec
),
lasttime
(old.
lasttime
)
65
{}
66
/// assignment operator
67
WallclockTimer
&
operator=
(
const
WallclockTimer
& old)
68
{
69
sec
= old.
sec
;
70
usec
= old.
usec
;
71
lasttime
= old.
lasttime
;
72
return
*
this
;
73
}
74
75
virtual
~WallclockTimer
()
76
{}
77
//@}
78
79
//------------------------------------
80
/**@name Control */
81
//@{
82
/// initialize timer, set timing accounts to zero.
83
virtual
void
reset
()
84
{
85
status
=
RESET
;
86
sec
=
usec
= 0;
87
lasttime
= 0.0;
88
}
89
90
/// start timer, resume accounting user, system and real time.
91
virtual
void
start
();
92
93
/// stop timer, return accounted user time.
94
virtual
Real
stop
();
95
96
/// return type of timer
97
virtual
TYPE
type
()
98
{
99
return
WALLCLOCK_TIME
;
100
}
101
//@}
102
103
//------------------------------------
104
/**@name Access */
105
//@{
106
virtual
Real
time
()
const
;
107
108
virtual
Real
lastTime
()
const
;
109
110
//@}
111
};
112
}
// namespace soplex
113
#endif // _WALLCLOCK_TIMER_H_