diff --git a/src/Cbc_C_Interface.cpp b/src/Cbc_C_Interface.cpp index 21fa3ea4f..a73fb82e4 100644 --- a/src/Cbc_C_Interface.cpp +++ b/src/Cbc_C_Interface.cpp @@ -1756,6 +1756,29 @@ static int cbc_callb(CbcModel *cbcModel, int whereFrom) { return 0; } +void CBC_LINKAGE +Osi_setColSolution(Cbc_Model* model, double* solution) { + model->solver_->setColSolution(solution); +} + +void CBC_LINKAGE +Osi_setRowPrice(Cbc_Model* model, double* price) { + model->solver_->setRowPrice(price); +} + +void CBC_LINKAGE +Osi_setBasisStatus(Cbc_Model* model, int* vardata, int* condata) { + model->solver_->setBasisStatus(vardata, condata); +} + +void CBC_LINKAGE +Osi_getBasisStatus(Cbc_Model* model, int* vardata, int* condata) { + model->solver_->getBasisStatus(vardata, condata); +} + + + + // adds all sos objects to the current cbcModel_ object static void Cbc_addAllSOS( Cbc_Model *model, CbcModel &cbcModel ); diff --git a/src/Cbc_C_Interface.h b/src/Cbc_C_Interface.h index 67cf5744c..ee0f3134c 100644 --- a/src/Cbc_C_Interface.h +++ b/src/Cbc_C_Interface.h @@ -1530,6 +1530,9 @@ Osi_getObjSense(); CBCLIB_EXPORT const double * CBC_LINKAGE Osi_getColSolution( void *osi ); + + + /** @brief Returns vector of reduced costs */ CBCLIB_EXPORT const double * CBC_LINKAGE Osi_getReducedCost( void *osi ); @@ -1760,6 +1763,22 @@ OsiCuts_senseRowCut( void *osiCuts, int iRowCut ); CBCLIB_EXPORT void CBC_LINKAGE OsiCuts_delete( void *osiCuts ); +/** Set a starting solution */ +CBCLIB_EXPORT void CBC_LINKAGE +Osi_setColSolution(Cbc_Model *model, double* solution); + +/** Set a starting dual solution */ +CBCLIB_EXPORT void CBC_LINKAGE +Osi_setRowPrice(Cbc_Model *model, double *price); + +/** Set basis statuses */ +CBCLIB_EXPORT void CBC_LINKAGE +Osi_setBasisStatus(Cbc_Model *model, int* vardata, int* condata); + +/** Get basis statuses */ +CBCLIB_EXPORT void CBC_LINKAGE +Osi_getBasisStatus(Cbc_Model *model, int *vardata, int *condata); + /*@}*/