MCPcopy Create free account
hub / github.com/ERGO-Code/HiGHS / Highs_setBasis

Function Highs_setBasis

highs/interfaces/highs_c_api.cpp:668–710  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

666}
667
668HighsInt Highs_setBasis(void* highs, const HighsInt* col_status,
669 const HighsInt* row_status) {
670 HighsBasis basis;
671 const HighsInt num__col = Highs_getNumCol(highs);
672 if (num__col > 0) {
673 basis.col_status.resize(num__col);
674 for (HighsInt i = 0; i < num__col; i++) {
675 if (col_status[i] == (HighsInt)HighsBasisStatus::kLower) {
676 basis.col_status[i] = HighsBasisStatus::kLower;
677 } else if (col_status[i] == (HighsInt)HighsBasisStatus::kBasic) {
678 basis.col_status[i] = HighsBasisStatus::kBasic;
679 } else if (col_status[i] == (HighsInt)HighsBasisStatus::kUpper) {
680 basis.col_status[i] = HighsBasisStatus::kUpper;
681 } else if (col_status[i] == (HighsInt)HighsBasisStatus::kZero) {
682 basis.col_status[i] = HighsBasisStatus::kZero;
683 } else if (col_status[i] == (HighsInt)HighsBasisStatus::kNonbasic) {
684 basis.col_status[i] = HighsBasisStatus::kNonbasic;
685 } else {
686 return (HighsInt)HighsStatus::kError;
687 }
688 }
689 }
690 const HighsInt num__row = Highs_getNumRow(highs);
691 if (num__row > 0) {
692 basis.row_status.resize(num__row);
693 for (HighsInt i = 0; i < num__row; i++) {
694 if (row_status[i] == (HighsInt)HighsBasisStatus::kLower) {
695 basis.row_status[i] = HighsBasisStatus::kLower;
696 } else if (row_status[i] == (HighsInt)HighsBasisStatus::kBasic) {
697 basis.row_status[i] = HighsBasisStatus::kBasic;
698 } else if (row_status[i] == (HighsInt)HighsBasisStatus::kUpper) {
699 basis.row_status[i] = HighsBasisStatus::kUpper;
700 } else if (row_status[i] == (HighsInt)HighsBasisStatus::kZero) {
701 basis.row_status[i] = HighsBasisStatus::kZero;
702 } else if (row_status[i] == (HighsInt)HighsBasisStatus::kNonbasic) {
703 basis.row_status[i] = HighsBasisStatus::kNonbasic;
704 } else {
705 return (HighsInt)HighsStatus::kError;
706 }
707 }
708 }
709 return (HighsInt)((Highs*)highs)->setBasis(basis);
710}
711
712HighsInt Highs_setLogicalBasis(void* highs) {
713 return (HighsInt)((Highs*)highs)->setBasis();

Callers

nothing calls this directly

Calls 4

Highs_getNumColFunction · 0.85
Highs_getNumRowFunction · 0.85
resizeMethod · 0.45
setBasisMethod · 0.45

Tested by

no test coverage detected