Skip to content

Commit a2820c0

Browse files
committed
Add timer for residual and omega
1 parent 933822d commit a2820c0

File tree

3 files changed

+18
-0
lines changed

3 files changed

+18
-0
lines changed

highs/ipm/hipo/ipm/Info.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ struct Info {
4646
double matrix_structure_time{};
4747
double factor_time{};
4848
double solve_time{};
49+
double residual_time{};
50+
double omega_time{};
4951

5052
// Counters
5153
Int factor_number{};

highs/ipm/hipo/ipm/Refine.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,20 @@
55
namespace hipo {
66

77
void Solver::refine(NewtonDir& delta) {
8+
Clock clock;
9+
810
NewtonDir correction(m_, n_);
911
NewtonDir temp(m_, n_);
1012

1113
// compute the residuals of the linear system in it_->ires
14+
clock.start();
1215
it_->residuals6x6(delta);
16+
info_.residual_time += clock.stop();
1317

18+
clock.start();
1419
double omega = computeOmega(delta);
20+
info_.omega_time += clock.stop();
21+
1522
double old_omega{};
1623

1724
for (Int iter = 0; iter < kMaxIterRefine; ++iter) {
@@ -23,10 +30,15 @@ void Solver::refine(NewtonDir& delta) {
2330
temp = delta;
2431
temp.add(correction);
2532

33+
clock.start();
2634
it_->residuals6x6(temp);
35+
info_.residual_time += clock.stop();
2736

2837
old_omega = omega;
38+
39+
clock.start();
2940
omega = computeOmega(temp);
41+
info_.omega_time += clock.stop();
3042

3143
if (omega < old_omega) {
3244
delta = temp;

highs/ipm/hipo/ipm/Solver.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1209,6 +1209,10 @@ void Solver::printSummary() const {
12091209
<< fix(info_.factor_time, 0, 2) << '\n';
12101210
log_stream << textline("Solve time:") << fix(info_.solve_time, 0, 2)
12111211
<< '\n';
1212+
log_stream << textline("Residual time:") << fix(info_.residual_time, 0, 2)
1213+
<< '\n';
1214+
log_stream << textline("Omega time:") << fix(info_.omega_time, 0, 2)
1215+
<< '\n';
12121216
log_stream << textline("Factorisations:") << integer(info_.factor_number)
12131217
<< '\n';
12141218
log_stream << textline("Solves:") << integer(info_.solve_number) << '\n';

0 commit comments

Comments
 (0)