7 #include <gflags/gflags.h>
9 #include <sys/resource.h>
11 DECLARE_bool(statistics);
13 namespace flowlessly {
21 void ResetStatistics();
24 inline double get_arcs_fixing_time() {
25 return arcs_fixing_time_;
28 inline double get_arcs_unfixing_time() {
29 return arcs_unfixing_time_;
32 inline double get_discharge_time() {
33 return discharge_time_;
36 inline double get_global_update_time() {
37 return global_update_time_;
40 inline uint32_t get_num_pushes() {
44 inline uint32_t get_num_refines() {
48 inline uint32_t get_num_relabels() {
52 inline double get_price_refine_time() {
53 return price_refine_time_;
56 inline double get_refine_time_() {
60 inline double get_relabel_time() {
64 inline double get_push_time() {
68 inline double get_time() {
71 return r.ru_utime.tv_sec +
static_cast<double>(r.ru_utime.tv_usec) /
75 inline double get_update_admissible_time() {
76 return update_admissible_time_;
79 inline void increment_num_pushes() {
83 inline void increment_num_refines() {
87 inline void increment_num_relabels() {
91 inline void update_admissible_start_time() {
92 if (FLAGS_statistics) {
93 update_admissible_time_ -= get_time();
97 inline void update_admissible_end_time() {
98 if (FLAGS_statistics) {
99 update_admissible_time_ += get_time();
103 inline void update_arcs_fixing_start_time() {
104 if (FLAGS_statistics) {
105 arcs_fixing_time_ -= get_time();
109 inline void update_arcs_fixing_end_time() {
110 if (FLAGS_statistics) {
111 arcs_fixing_time_ += get_time();
115 inline void update_arcs_unfixing_start_time() {
116 if (FLAGS_statistics) {
117 arcs_unfixing_time_ -= get_time();
121 inline void update_arcs_unfixing_end_time() {
122 if (FLAGS_statistics) {
123 arcs_unfixing_time_ += get_time();
127 inline void update_discharge_start_time() {
128 if (FLAGS_statistics) {
129 discharge_time_ -= get_time();
133 inline void update_discharge_end_time() {
134 if (FLAGS_statistics) {
135 discharge_time_ += get_time();
139 inline void update_global_update_start_time() {
140 if (FLAGS_statistics) {
141 global_update_time_ -= get_time();
145 inline void update_global_update_end_time() {
146 if (FLAGS_statistics) {
147 global_update_time_ += get_time();
151 inline void update_price_refine_start_time() {
152 if (FLAGS_statistics) {
153 price_refine_time_ -= get_time();
157 inline void update_price_refine_end_time() {
158 if (FLAGS_statistics) {
159 price_refine_time_ += get_time();
163 inline void update_push_start_time() {
164 if (FLAGS_statistics) {
165 push_time_ -= get_time();
169 inline void update_push_end_time() {
170 if (FLAGS_statistics) {
171 push_time_ += get_time();
175 inline void update_refine_start_time() {
176 if (FLAGS_statistics) {
177 refine_time_ -= get_time();
181 inline void update_refine_end_time() {
182 if (FLAGS_statistics) {
183 refine_time_ += get_time();
187 inline void update_relabel_start_time() {
188 if (FLAGS_statistics) {
189 relabel_time_ -= get_time();
193 inline void update_relabel_end_time() {
194 if (FLAGS_statistics) {
195 relabel_time_ += get_time();
199 double arcs_fixing_time_;
200 double arcs_unfixing_time_;
202 double discharge_time_;
203 double global_update_time_;
204 double price_refine_time_;
205 double relabel_time_;
207 double update_admissible_time_;
208 uint32_t num_relabels_;
209 uint32_t num_pushes_;
210 uint32_t num_refines_;
Definition: statistics.h:19