Repository navigation
Conversation
…mensions and legalHessianDimensions
…Warning if any of the HighsLp vectors or HighsHessian::start_ have greater size than required by HighsLp::num_col_ and HighsLp::num_row_. They are resized, with logging when this occurs
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## latest #3372 +/- ##
==========================================
+ Coverage 75.44% 75.56% +0.11%
==========================================
Files 461 461
Lines 113172 113621 +449
Branches 17879 17903 +24
==========================================
+ Hits 85385 85858 +473
+ Misses 27499 27475 -24
Partials 288 288 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
…; trimDimensions in HighsLp and HighsHessian
…atrixDimension and trimHessianDimension
…from calling parameters; created HighsSparseMatrix::trimDimensions
…ing it to be set when each HiGHS "entry" method is called. Hence Highs::logHeader() generalised to Highs::onFirstEntry(), and Highs::written_log_header_ generalised to Highs::made_first_call_
fwesselm
left a comment
There was a problem hiding this comment.
@jajhall, just one more question. Would it be possible to have a
mutable std::once_flag log_header_flag_;
member in Highs.h:
void Highs::logHeader() const {
// Defer logging the header until output is switched on
if (!*options_.log_options.output_flag) return;
std::call_once(log_header_flag_, [this]() {
highsLogHeader(options_.log_options, options_.log_githash);
});
}
This would allow for making the methods const again and every Highs instance would have its own flag.
|
@jajhall, I merged with latest (there were conflicts) |
…for presolve-initial-sweep-all
…cols with illegal/small values returns the correct status and (if illegal) isn't added
|
Sorry @fwesselm, this is getting horrible to review. Don't look at this yet, as I'll write some commentary about the reasoning for the changes |
…nsistent with name
…and HighsSparseMatrix::numVec()
|
Not much has changed since this was last reviewed by @fwesselm, other than all the changes due to If a model with illegal data is passed, it is never retained (giving the user the chance to correct that illegal data). The incumbent model in the Highs instance is cleared. Many changes to unit tests are because the "group" name in several files was |
…of vectors and vector dimension is zero
Description
Observing an assert when experimenting with #3364, I decided that trimming
HighsLpvectors that are too large (and logging) would be good for users and developers.lpDimensionsOkand its parameter list have been modified to be consistent withassessHessianDimensionsand "legal" used to distinguish them from "trim", as intrimHessianDimensionNB @fwesselm I spotted that if
num_col=iColthenlp_.col_names_[num_col] = std::move(lp_.col_names_[iCol]);leads tolp_.col_names_[num_col]being an empty string.Checklist
latestbranchRelated issue
Closes #3366