@@ -3716,20 +3716,15 @@ void HighsUserScaleData::initialise(const HighsInt& user_cost_scale_,
37163716 this ->small_matrix_value = small_matrix_value_;
37173717 this ->large_matrix_value = large_matrix_value_;
37183718 this ->num_infinite_costs = 0 ;
3719+ this ->num_infinite_hessian_values = 0 ;
37193720 this ->num_infinite_col_bounds = 0 ;
37203721 this ->num_infinite_row_bounds = 0 ;
37213722 this ->num_small_matrix_values = 0 ;
37223723 this ->num_large_matrix_values = 0 ;
37233724}
37243725
3725- bool HighsUserScaleData::scaleError () const {
3726- return this ->num_infinite_costs + this ->num_infinite_col_bounds +
3727- this ->num_infinite_row_bounds + this ->num_large_matrix_values >
3728- 0 ;
3729- }
3730-
37313726bool HighsUserScaleData::scaleError (std::string& message) const {
3732- if (this ->num_infinite_costs + this ->num_infinite_col_bounds +
3727+ if (this ->num_infinite_costs + this ->num_infinite_hessian_values + this -> num_infinite_col_bounds +
37333728 this ->num_infinite_row_bounds + this ->num_large_matrix_values ==
37343729 0 )
37353730 return false ;
@@ -3749,8 +3744,21 @@ bool HighsUserScaleData::scaleError(std::string& message) const {
37493744 ss << " " << this ->num_infinite_costs << " infinite cost" ;
37503745 if (this ->num_infinite_costs > 1 ) ss << " s" ;
37513746 }
3752- if (this ->num_infinite_col_bounds ) {
3747+ if (this ->num_infinite_hessian_values ) {
37533748 if (this ->num_infinite_costs ) {
3749+ if (this ->num_infinite_col_bounds ||
3750+ this ->num_infinite_row_bounds ) {
3751+ ss << " ," ;
3752+ } else {
3753+ ss << " and" ;
3754+ }
3755+ }
3756+ ss << " " << this ->num_infinite_hessian_values << " infinite Hessian values" ;
3757+ if (this ->num_infinite_hessian_values > 1 ) ss << " s" ;
3758+ }
3759+ if (this ->num_infinite_col_bounds ) {
3760+ if (this ->num_infinite_costs ||
3761+ this ->num_infinite_hessian_values ) {
37543762 if (this ->num_infinite_row_bounds ) {
37553763 ss << " ," ;
37563764 } else {
@@ -3761,13 +3769,17 @@ bool HighsUserScaleData::scaleError(std::string& message) const {
37613769 if (this ->num_infinite_col_bounds > 1 ) ss << " s" ;
37623770 }
37633771 if (this ->num_infinite_row_bounds ) {
3764- if (this ->num_infinite_costs || this ->num_infinite_col_bounds ) ss << " and" ;
3772+ if (this ->num_infinite_costs ||
3773+ this ->num_infinite_hessian_values ||
3774+ this ->num_infinite_col_bounds ) ss << " and" ;
37653775 ss << " " << this ->num_infinite_row_bounds << " infinite row bound" ;
37663776 if (this ->num_infinite_row_bounds > 1 ) ss << " s" ;
37673777 }
37683778 if (this ->num_large_matrix_values ) {
3769- if (this ->num_infinite_costs + this ->num_infinite_col_bounds +
3770- this ->num_infinite_row_bounds >
3779+ if (this ->num_infinite_costs +
3780+ this ->num_infinite_hessian_values +
3781+ this ->num_infinite_col_bounds +
3782+ this ->num_infinite_row_bounds >
37713783 0 )
37723784 ss << " , and" ;
37733785 ss << " " << this ->num_large_matrix_values << " large matrix value" ;
0 commit comments