Changeset 361


Ignore:
Timestamp:
Nov 16, 2009 7:54:04 AM (10 years ago)
Author:
bjarni
Message:

Move coinComputeIntVariables to CoinProblem?

Location:
trunk/CoinMP/src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/CoinMP/src/CoinMP.cpp

    r360 r361  
    297297        PCOIN pCoin = (PCOIN)hProb;
    298298        PPROBLEM pProblem = pCoin->pProblem;
    299         int i;
    300299
    301300        if (pProblem->ColCount == 0) {
     
    311310        memcpy(pProblem->ColType, ColType, pProblem->ColCount * sizeof(char));
    312311
    313         pProblem->IsInt = (char* )malloc(pProblem->ColCount * sizeof(char));
    314         if (!pProblem->IsInt) {
    315                 return SOLV_CALL_FAILED;
    316         }
    317         for (i = 0; i < pProblem->ColCount; i++ ) {
    318                 switch (ColType[i]) {
    319                         case 'B':
    320                                 pProblem->BinCount++;
    321                                 pProblem->IsInt[i] = 1;
    322                                 break;
    323 
    324                         case 'I':
    325                                 pProblem->IntCount++;
    326                                 pProblem->IsInt[i] = 1;
    327                                 break;
    328 
    329                         default:
    330                                 pProblem->IsInt[i] = 0;
    331                                 break;
    332                 }
    333         }
    334         pProblem->numInts = pProblem->IntCount + pProblem->BinCount;
    335         if (pProblem->numInts > 0) {
    336                 pProblem->SolveAsMIP = 1;
    337         }
     312        if (!coinComputeIntVariables(pProblem)) {
     313                return SOLV_CALL_FAILED;
     314        }
     315        pProblem->SolveAsMIP = 1;
    338316        return SOLV_CALL_SUCCESS;
    339317}
  • trunk/CoinMP/src/CoinProblem.c

    r360 r361  
    189189
    190190
     191int coinComputeIntVariables(PPROBLEM pProblem)
     192{
     193        int i;
     194
     195        pProblem->IsInt = (char* )malloc(pProblem->ColCount * sizeof(char));
     196        if (!pProblem->IsInt) {
     197                return 0;
     198        }
     199        for (i = 0; i < pProblem->ColCount; i++ ) {
     200                switch (pProblem->ColType[i]) {
     201                        case 'B':
     202                                pProblem->BinCount++;
     203                                pProblem->IsInt[i] = 1;
     204                                break;
     205
     206                        case 'I':
     207                                pProblem->IntCount++;
     208                                pProblem->IsInt[i] = 1;
     209                                break;
     210
     211                        default:
     212                                pProblem->IsInt[i] = 0;
     213                                break;
     214                }
     215        }
     216        pProblem->numInts = pProblem->IntCount + pProblem->BinCount;
     217        return pProblem->numInts;
     218}
     219
    191220
    192221int coinGetLenNameBuf(const char* NameBuf, int Count)
  • trunk/CoinMP/src/CoinProblem.h

    r360 r361  
    8181int coinComputeRowLowerUpper(PPROBLEM pProblem, double CoinDblMax);
    8282
     83int coinComputeIntVariables(PPROBLEM pProblem);
     84
    8385int coinGetLenNameBuf(const char* NameBuf, int Count);
    8486int coinGetLenNameListBuf(char** NameList, int Count);
Note: See TracChangeset for help on using the changeset viewer.