@@ -174,7 +174,8 @@ VariableIndex POIHighsModel::add_variable(VariableDomain domain, double lb, doub
174
174
}
175
175
if (name)
176
176
{
177
- m_var_names.insert ({variable.index , name});
177
+ error = highs::Highs_passColName (m_model.get (), column, name);
178
+ check_error (error);
178
179
}
179
180
180
181
m_n_variables++;
@@ -196,7 +197,6 @@ void POIHighsModel::delete_variable(const VariableIndex &variable)
196
197
binary_variables.erase (variable.index );
197
198
198
199
m_n_variables--;
199
- m_var_names.erase (variable.index );
200
200
}
201
201
202
202
void POIHighsModel::delete_variables (const Vector<VariableIndex> &variables)
@@ -223,7 +223,6 @@ void POIHighsModel::delete_variables(const Vector<VariableIndex> &variables)
223
223
for (int i = 0 ; i < n_variables; i++)
224
224
{
225
225
m_variable_index.delete_index (variables[i].index );
226
- m_var_names.erase (variables[i].index );
227
226
}
228
227
m_n_variables -= columns.size ();
229
228
}
@@ -297,7 +296,8 @@ ConstraintIndex POIHighsModel::add_linear_constraint(const ScalarAffineFunction
297
296
}
298
297
if (name)
299
298
{
300
- m_con_names.insert ({constraint.index , name});
299
+ error = highs::Highs_passRowName (m_model.get (), row, name);
300
+ check_error (error);
301
301
}
302
302
303
303
m_n_constraints++;
@@ -324,7 +324,6 @@ void POIHighsModel::delete_constraint(const ConstraintIndex &constraint)
324
324
check_error (error);
325
325
326
326
m_linear_constraint_index.delete_index (constraint.index );
327
- m_con_names.erase (constraint.index );
328
327
329
328
m_n_constraints--;
330
329
}
@@ -632,20 +631,18 @@ double POIHighsModel::get_raw_info_double(const char *info_name)
632
631
633
632
std::string POIHighsModel::get_variable_name (const VariableIndex &variable)
634
633
{
635
- auto iter = m_var_names.find (variable.index );
636
- if (iter != m_var_names.end ())
637
- {
638
- return iter->second ;
639
- }
640
- else
641
- {
642
- return fmt::format (" x{}" , variable.index );
643
- }
634
+ auto column = _checked_variable_index (variable);
635
+ char name[kHighsMaximumStringLength ];
636
+ auto error = highs::Highs_getColName (m_model.get (), column, name);
637
+ check_error (error);
638
+ return std::string (name);
644
639
}
645
640
646
641
void POIHighsModel::set_variable_name (const VariableIndex &variable, const char *name)
647
642
{
648
- m_var_names[variable.index ] = name;
643
+ auto column = _checked_variable_index (variable);
644
+ auto error = highs::Highs_passColName (m_model.get (), column, name);
645
+ check_error (error);
649
646
}
650
647
651
648
VariableDomain POIHighsModel::get_variable_type (const VariableIndex &variable)
@@ -732,20 +729,18 @@ void POIHighsModel::set_variable_upper_bound(const VariableIndex &variable, doub
732
729
733
730
std::string POIHighsModel::get_constraint_name (const ConstraintIndex &constraint)
734
731
{
735
- auto iter = m_con_names.find (constraint.index );
736
- if (iter != m_con_names.end ())
737
- {
738
- return iter->second ;
739
- }
740
- else
741
- {
742
- return fmt::format (" con{}" , constraint.index );
743
- }
732
+ auto row = _checked_constraint_index (constraint);
733
+ char name[kHighsMaximumStringLength ];
734
+ auto error = highs::Highs_getRowName (m_model.get (), row, name);
735
+ check_error (error);
736
+ return std::string (name);
744
737
}
745
738
746
739
void POIHighsModel::set_constraint_name (const ConstraintIndex &constraint, const char *name)
747
740
{
748
- m_con_names[constraint.index ] = name;
741
+ auto row = _checked_constraint_index (constraint);
742
+ auto error = highs::Highs_passRowName (m_model.get (), row, name);
743
+ check_error (error);
749
744
}
750
745
751
746
double POIHighsModel::get_constraint_primal (const ConstraintIndex &constraint)
0 commit comments