diff --git a/src/Cbc_C_Interface.cpp b/src/Cbc_C_Interface.cpp index cdaec46d7..f2658fbd3 100644 --- a/src/Cbc_C_Interface.cpp +++ b/src/Cbc_C_Interface.cpp @@ -3523,6 +3523,17 @@ Cbc_setInteger(Cbc_Model *model, int iColumn) model->solver_->setInteger(iColumn); } +/** Change matrix coefficients */ +void CBC_LINKAGE +Cbc_modifyCoefficient(Cbc_Model *model, int row, int column, double newValue ) +{ + Cbc_flush(model); + VALIDATE_ROW_INDEX(row, model); + VALIDATE_COL_INDEX(column, model); + + model->solver_->modifyCoefficient(row, column, newValue); +} + /** Adds a new column */ void CBC_LINKAGE Cbc_addCol(Cbc_Model *model, const char *name, double lb, diff --git a/src/Cbc_C_Interface.h b/src/Cbc_C_Interface.h index f3c8afd11..718bac547 100644 --- a/src/Cbc_C_Interface.h +++ b/src/Cbc_C_Interface.h @@ -409,6 +409,16 @@ Cbc_setContinuous(Cbc_Model *model, int iColumn); CBCLIB_EXPORT void CBC_LINKAGE Cbc_setInteger(Cbc_Model *model, int iColumn); +/** @brief Change matrix coefficients + * + * @param model problem object + * @param row row index + * @param column column index + * @param newValue new value of the coefficient + **/ +CBCLIB_EXPORT void CBC_LINKAGE +Cbc_modifyCoefficient(Cbc_Model *model, int row, int column, double newValue); + /** @brief Frees memory of model object * * @param model problem object */