Changeset 344


Ignore:
Timestamp:
Nov 11, 2009 11:59:31 PM (10 years ago)
Author:
bjarni
Message:

Move PSOLVER handling to separate source file CoinSolver?.c and CoinSolver?.h

Location:
trunk/CoinMP
Files:
2 added
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/CoinMP/MSVisualStudio/v9/CoinMP/CoinMP.vcproj

    r342 r344  
    217217                        </File>
    218218                        <File
     219                                RelativePath="..\..\..\src\CoinSolver.c"
     220                                >
     221                        </File>
     222                        <File
    219223                                RelativePath="..\..\..\..\Cbc\src\unitTestClp.cpp"
    220224                                >
     
    243247                        </File>
    244248                        <File
     249                                RelativePath="..\..\..\src\CoinSolver.h"
     250                                >
     251                        </File>
     252                        <File
    245253                                RelativePath=".\resource.h"
    246254                                >
  • trunk/CoinMP/src/CoinMP.cpp

    r341 r344  
    2323#include "CoinProblem.h"
    2424#include "CoinResult.h"
     25#include "CoinSolver.h"
    2526
    2627
     
    396397                                PPROBLEM  pProblem;
    397398                                PRESULT   pResult;
    398 
    399                                 MSGLOGCALLBACK  MessageLogCallback;
    400                                 ITERCALLBACK    IterationCallback;
    401                                 MIPNODECALLBACK MipNodeCallback;
     399                                PSOLVER   pSolver;
     400
    402401                                } COININFO, *PCOIN;
    403402 
     
    431430        pCoin->pProblem = coinCreateProblemObject();
    432431        pCoin->pResult = coinCreateResultObject();
     432        pCoin->pSolver = coinCreateSolverObject();
    433433
    434434        coinSetProblemName(pCoin->pProblem, ProblemName);
    435 
    436         pCoin->MessageLogCallback = NULL;
    437         pCoin->IterationCallback = NULL;
    438         pCoin->MipNodeCallback = NULL;
    439435
    440436        return (HPROB)pCoin;
     
    990986        va_start(pVa,FormatStr);
    991987        vsprintf(strbuf,FormatStr,pVa);
    992         if (global_pCoin->MessageLogCallback) {
    993                 global_pCoin->MessageLogCallback(strbuf);
     988        if (global_pCoin->pSolver->MsgLogCallback) {
     989                global_pCoin->pSolver->MsgLogCallback(strbuf);
    994990        }
    995991        return SOLV_CALL_SUCCESS;
     
    10091005                }
    10101006        }
    1011         if (global_pCoin->IterationCallback) {
    1012                 global_pCoin->IterationCallback(IterCount, ObjectValue, IsFeasible, InfeasValue);
     1007        if (global_pCoin->pSolver->IterCallback) {
     1008                global_pCoin->pSolver->IterCallback(IterCount, ObjectValue, IsFeasible, InfeasValue);
    10131009        }
    10141010        return SOLV_CALL_SUCCESS;
     
    10221018                                   NodeCount, (IsMipImproved) ? "*" : " ", BestBound, BestObject);
    10231019        }
    1024         if (global_pCoin->MipNodeCallback) {
    1025                 global_pCoin->MipNodeCallback(IterCount, NodeCount, BestBound, BestObject, IsMipImproved);
     1020        if (global_pCoin->pSolver->MipNodeCallback) {
     1021                global_pCoin->pSolver->MipNodeCallback(IterCount, NodeCount, BestBound, BestObject, IsMipImproved);
    10261022        }
    10271023        return SOLV_CALL_SUCCESS;
     
    10351031        PCOIN pCoin = (PCOIN)hProb;
    10361032
    1037         pCoin->MessageLogCallback = MsgLogCallback;
     1033        pCoin->pSolver->MsgLogCallback = MsgLogCallback;
    10381034        delete pCoin->msghandler;
    10391035        pCoin->msghandler = new CBMessageHandler();
     
    10521048        PCOIN pCoin = (PCOIN)hProb;
    10531049
    1054         pCoin->IterationCallback = IterCallback;
     1050        pCoin->pSolver->IterCallback = IterCallback;
    10551051        delete pCoin->iterhandler;
    10561052        pCoin->iterhandler = new CBIterHandler(pCoin->clp);
     
    10651061        PCOIN pCoin = (PCOIN)hProb;
    10661062
    1067         pCoin->MipNodeCallback = MipNodeCallback;
     1063        pCoin->pSolver->MipNodeCallback = MipNodeCallback;
    10681064        delete pCoin->nodehandler;
    10691065
     
    15791575SOLVAPI int SOLVCALL CoinOpenLogFile(HPROB hProb, const char* logFilename)
    15801576{
     1577        PCOIN pCoin = (PCOIN)hProb;
     1578
     1579        strcpy(pCoin->pSolver->LogFilename, logFilename);
    15811580        return SOLV_CALL_SUCCESS;
    15821581}
     
    15941593/************************************************************************/
    15951594
    1596 #undef MAXINT
    1597 #undef MAXREAL
    1598 
    1599 #define MAXINT          2100000000L
    1600 #define MAXREAL         COIN_DBL_MAX
    1601 
    1602 #define ROUND(x)       (((x)>0)?((long)((x)+0.5)):((long)((x)-0.5)))
    1603 
    1604 
    1605 #define OPT_NONE                        0
    1606 #define OPT_ONOFF                       1
    1607 #define OPT_LIST                        2
    1608 #define OPT_INT                         3
    1609 #define OPT_REAL                        4
    1610 #define OPT_STRING                      5
    1611 
    1612 #define GRP_NONE                        0
    1613 #define GRP_OTHER                       0
    1614 
    1615 #define GRP_SIMPLEX                     1
    1616 #define GRP_PREPROC                     2
    1617 #define GRP_LOGFILE                     3
    1618 #define GRP_LIMITS                      4
    1619 #define GRP_MIPSTRAT            5
    1620 #define GRP_MIPCUTS                     6
    1621 #define GRP_MIPTOL                      7
    1622 #define GRP_BARRIER                     8
    1623 #define GRP_NETWORK                     9
    1624 
    1625 
    1626 
    1627 
    1628 typedef int    OPTINT;
    1629 typedef double OPTVAL;
    1630 
    1631 typedef struct {
    1632                         char   OptionName[32];
    1633                         char   ShortName[32];
    1634                         int    GroupType;
    1635                         OPTVAL DefaultValue;
    1636                         OPTVAL CurrentValue;
    1637                         OPTVAL MinValue;
    1638                         OPTVAL MaxValue;
    1639                         int             OptionType;
    1640                         int    changed;
    1641                         int    OptionID;
    1642         } SOLVOPTINFO, *PSOLVOPT;
    1643 
    1644 
    16451595#define OPTIONCOUNT    68
    1646 
    16471596
    16481597
Note: See TracChangeset for help on using the changeset viewer.