Skip to content

Commit 48ed004

Browse files
committed
Added QN |memory| to statistics
1 parent b322f16 commit 48ed004

File tree

10 files changed

+24
-0
lines changed

10 files changed

+24
-0
lines changed

uno/ingredients/hessian_models/ExactHessian.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,11 @@
77

88
namespace uno {
99
void ExactHessian::initialize(const Model& /*model*/) {
10+
// do nothing
11+
}
12+
13+
void ExactHessian::initialize_statistics(Statistics& /*statistics*/, const Options& /*options*/) const {
14+
// do nothing
1015
}
1116

1217
size_t ExactHessian::number_nonzeros(const Model& model) const {

uno/ingredients/hessian_models/ExactHessian.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ namespace uno {
1111
~ExactHessian() override = default;
1212

1313
void initialize(const Model& model) override;
14+
void initialize_statistics(Statistics& statistics, const Options& options) const override;
1415
[[nodiscard]] size_t number_nonzeros(const Model& model) const override;
1516
void notify_accepted_iterate(const Model& model, Iterate& current_iterate, Iterate& trial_iterate) override;
1617
void evaluate_hessian(Statistics& statistics, const Model& model, const Vector<double>& primal_variables, double objective_multiplier,

uno/ingredients/hessian_models/HessianModel.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ namespace uno {
2525
size_t evaluation_count{0};
2626

2727
virtual void initialize(const Model& model) = 0;
28+
virtual void initialize_statistics(Statistics& statistics, const Options& options) const = 0;
2829
[[nodiscard]] virtual size_t number_nonzeros(const Model& model) const = 0;
2930
virtual void notify_accepted_iterate(const Model& model, Iterate &current_iterate, Iterate &trial_iterate) = 0;
3031
virtual void evaluate_hessian(Statistics& statistics, const Model& model, const Vector<double>& primal_variables,

uno/ingredients/hessian_models/IdentityHessian.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ namespace uno {
1111
// do nothing
1212
}
1313

14+
void IdentityHessian::initialize_statistics(Statistics& /*statistics*/, const Options& /*options*/) const {
15+
// do nothing
16+
}
17+
1418
size_t IdentityHessian::number_nonzeros(const Model& model) const {
1519
return model.number_variables;
1620
}

uno/ingredients/hessian_models/IdentityHessian.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ namespace uno {
1212
IdentityHessian() = default;
1313

1414
void initialize(const Model& model) override;
15+
void initialize_statistics(Statistics& statistics, const Options& options) const override;
1516
[[nodiscard]] size_t number_nonzeros(const Model& model) const override;
1617
void notify_accepted_iterate(const Model& model, Iterate& current_iterate, Iterate& trial_iterate) override;
1718
void evaluate_hessian(Statistics& statistics, const Model& model, const Vector<double>& primal_variables,

uno/ingredients/hessian_models/ZeroHessian.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,11 @@
77

88
namespace uno {
99
void ZeroHessian::initialize(const Model& /*model*/) {
10+
// do nothing
11+
}
12+
13+
void ZeroHessian::initialize_statistics(Statistics& /*statistics*/, const Options& /*options*/) const {
14+
// do nothing
1015
}
1116

1217
size_t ZeroHessian::number_nonzeros(const Model& /*model*/) const {

uno/ingredients/hessian_models/ZeroHessian.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ namespace uno {
1111
~ZeroHessian() override = default;
1212

1313
void initialize(const Model& model) override;
14+
void initialize_statistics(Statistics& statistics, const Options& options) const override;
1415
[[nodiscard]] size_t number_nonzeros(const Model& model) const override;
1516
void notify_accepted_iterate(const Model& model, Iterate& current_iterate, Iterate& trial_iterate) override;
1617
void evaluate_hessian(Statistics& statistics, const Model& model, const Vector<double>& primal_variables, double objective_multiplier,

uno/ingredients/hessian_models/quasi_newton/LBFGSHessian.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,10 @@ namespace uno {
3333
this->Hessian_approximation = DenseMatrix<double>(this->dimension, this->dimension);
3434
}
3535

36+
void LBFGSHessian::initialize_statistics(Statistics& statistics, const Options& options) const {
37+
statistics.add_column("QN |memory|", Statistics::double_width - 4, options.get_int("statistics_quasi_newton_memory_size"));
38+
}
39+
3640
size_t LBFGSHessian::number_nonzeros(const Model& model) const {
3741
// upper triangular matrix
3842
return (model.number_variables * (model.number_variables + 1))/2;

uno/ingredients/hessian_models/quasi_newton/LBFGSHessian.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ namespace uno {
2323
~LBFGSHessian() override = default;
2424

2525
void initialize(const Model& model) override;
26+
void initialize_statistics(Statistics& statistics, const Options& options) const override;
2627
[[nodiscard]] size_t number_nonzeros(const Model& model) const override;
2728
void notify_accepted_iterate(const Model& model, Iterate& current_iterate, Iterate& trial_iterate) override;
2829
void evaluate_hessian(Statistics& statistics, const Model& model, const Vector<double>& primal_variables,

uno/layers/SubproblemLayer.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ namespace uno {
2727
}
2828

2929
void initialize_statistics(Statistics& statistics, const Options& options) const {
30+
this->hessian_model->initialize_statistics(statistics, options);
3031
this->regularization_strategy->initialize_statistics(statistics, options);
3132
}
3233

0 commit comments

Comments
 (0)