Пример #1
0
int
CbcParam::intParameter (CbcModel &model) const
{
    int value;
    switch (type_) {
    case CLP_PARAM_INT_LOGLEVEL:
        value = model.messageHandler()->logLevel();
        break;
    case CLP_PARAM_INT_SOLVERLOGLEVEL:
        value = model.solver()->messageHandler()->logLevel();
        break;
    case CBC_PARAM_INT_MAXNODES:
        value = model.getIntParam(CbcModel::CbcMaxNumNode);
        break;
    case CBC_PARAM_INT_STRONGBRANCHING:
        value = model.numberStrong();
        break;
    default:
        abort();
    }
    return value;
}
Пример #2
0
int
CbcParam::setIntParameter (CbcModel &model, int value) const
{
    if (value < lowerIntValue_ || value > upperIntValue_) {
        std::cout << value << " was provided for " << name_ <<
                  " - valid range is " << lowerIntValue_ << " to " <<
                  upperIntValue_ << std::endl;
        return 1;
    } else {
        int oldValue;
        switch (type_) {
        case CLP_PARAM_INT_LOGLEVEL:
            oldValue = model.messageHandler()->logLevel();
            model.messageHandler()->setLogLevel(value);
            break;
        case CLP_PARAM_INT_SOLVERLOGLEVEL:
            oldValue = model.solver()->messageHandler()->logLevel();
            model.solver()->messageHandler()->setLogLevel(value);
            break;
        case CBC_PARAM_INT_MAXNODES:
            oldValue = model.getIntParam(CbcModel::CbcMaxNumNode);
            model.setIntParam(CbcModel::CbcMaxNumNode, value);
            break;
        case CBC_PARAM_INT_STRONGBRANCHING:
            oldValue = model.numberStrong();
            model.setNumberStrong(value);
            break;
        default:
            oldValue = 0; // to avoid compiler message
            abort();
        }
        std::cout << name_ << " was changed from " << oldValue << " to "
                  << value << std::endl;
        return 0;
    }
}