Ignore:
Timestamp:
Aug 10, 2007 5:15:23 PM (12 years ago)
Author:
ladanyi
Message:

Added new parameters to indicate location of Sample/Netlib?/mplib problems

Location:
branches/BSP/trunk/Clp
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • branches/BSP/trunk/Clp/src/CbcOrClpParam.cpp

    r1073 r1077  
    14131413    (
    14141414     "This sets the directory which import, export, saveModel, restoreModel etc will use.\
    1415   This is also the directory where the netlib problems are read from when unitTest\
    1416   is invoked with -netlib or -netlibp.\
    14171415  It is initialized to './'"
     1416     );
     1417  parameters[numberParameters++]=
     1418    CbcOrClpParam("dirSample","Set directory where the COIN-OR sample problems are.",
     1419                  DIRSAMPLE);
     1420  parameters[numberParameters-1].setLonghelp
     1421    (
     1422     "This sets the directory where the COIN-OR sample problems reside. It is\
     1423 used only when -unitTest is passed to clp. clp will pick up the test problems\
     1424 from this directory.\
     1425 It is initialized to '../../Data/Sample'"
     1426     );
     1427  parameters[numberParameters++]=
     1428    CbcOrClpParam("dirNetlib","Set directory where the netlib problems are.",
     1429                  DIRNETLIB);
     1430  parameters[numberParameters-1].setLonghelp
     1431    (
     1432     "This sets the directory where the netlib problems reside. One can get\
     1433 the netlib problems from COIN-OR or from the main netlib site. This\
     1434 parameter is used only when -netlib is passed to clp. clp will pick up the\
     1435 netlib problems from this directory. If clp is built without zlib support\
     1436 then the problems must be uncompressed.\
     1437 It is initialized to '../../Data/Netlib'"
     1438     );
     1439  parameters[numberParameters++]=
     1440    CbcOrClpParam("dirMiplib","Set directory where the miplib 2003 problems are.",
     1441                  DIRMIPLIB);
     1442  parameters[numberParameters-1].setLonghelp
     1443    (
     1444     "This sets the directory where the miplib 2003 problems reside. One can\
     1445 get the miplib problems from COIN-OR or from the main miplib site. This\
     1446 parameter is used only when -miplib is passed to cbc. cbc will pick up the\
     1447 miplib problems from this directory. If cbc is built without zlib support\
     1448 then the problems must be uncompressed.\
     1449 It is initialized to '../../Data/miplib3'"
    14181450     );
    14191451#ifdef COIN_HAS_CLP
  • branches/BSP/trunk/Clp/src/CbcOrClpParam.hpp

    r1061 r1077  
    8181    LANDPCUTS,RINS,RESIDCUTS,
    8282   
    83     DIRECTORY=301,IMPORT,EXPORT,RESTORE,SAVE,DUALSIMPLEX,PRIMALSIMPLEX,EITHERSIMPLEX,
     83    DIRECTORY=301,DIRSAMPLE,DIRNETLIB,DIRMIPLIB,IMPORT,EXPORT,RESTORE,SAVE,DUALSIMPLEX,PRIMALSIMPLEX,EITHERSIMPLEX,
    8484    MAXIMIZE,MINIMIZE,EXIT,STDIN,UNITTEST,NETLIB_EITHER,NETLIB_DUAL,NETLIB_PRIMAL,SOLUTION,SAVESOL,
    8585    TIGHTEN,FAKEBOUND,HELP,PLUSMINUS,NETWORK,ALLSLACK,REVERSE,BARRIER,NETLIB_BARRIER,NETLIB_TUNE,
  • branches/BSP/trunk/Clp/src/ClpMain.cpp

    r1075 r1077  
    9797    models->messageHandler()->setPrefix(false);
    9898    const char dirsep =  CoinFindDirSeparator();
    99     std::string directory = (dirsep == '/' ? "./" : ".\\");
     99    std::string directory;
     100    std::string dirSample;
     101    std::string dirNetlib;
     102    std::string dirMiplib;
     103    if (dirsep == '/') {
     104      directory = "./";
     105      dirSample = "../../Data/Sample/";
     106      dirNetlib = "../../Data/Netlib/";
     107      dirMiplib = "../../Data/miplib3/";
     108    } else {
     109      directory = ".\\";
     110      dirSample = "..\\..\\Data\\Sample\\";
     111      dirNetlib = "..\\..\\Data\\Netlib\\";
     112      dirMiplib = "..\\..\\Data\\miplib3\\";
     113    }
    100114    std::string defaultDirectory = directory;
    101115    std::string importFile ="";
     
    118132    parameters[whichParam(PRINTMASK,numberParameters,parameters)].setStringValue(printMask);
    119133    parameters[whichParam(DIRECTORY,numberParameters,parameters)].setStringValue(directory);
     134    parameters[whichParam(DIRSAMPLE,numberParameters,parameters)].setStringValue(dirSample);
     135    parameters[whichParam(DIRNETLIB,numberParameters,parameters)].setStringValue(dirNetlib);
     136    parameters[whichParam(DIRMIPLIB,numberParameters,parameters)].setStringValue(dirMiplib);
    120137    parameters[whichParam(DUALBOUND,numberParameters,parameters)].setDoubleValue(models->dualBound());
    121138    parameters[whichParam(DUALTOLERANCE,numberParameters,parameters)].setDoubleValue(models->dualTolerance());
     
    13621379            }
    13631380            break;
     1381          case DIRSAMPLE:
     1382            {
     1383              std::string name = CoinReadGetString(argc,argv);
     1384              if (name!="EOL") {
     1385                int length=name.length();
     1386                if (name[length-1]=='/'||name[length-1]=='\\')
     1387                  dirSample=name;
     1388                else
     1389                  dirSample = name+"/";
     1390                parameters[iParam].setStringValue(dirSample);
     1391              } else {
     1392                parameters[iParam].printString();
     1393              }
     1394            }
     1395            break;
     1396          case DIRNETLIB:
     1397            {
     1398              std::string name = CoinReadGetString(argc,argv);
     1399              if (name!="EOL") {
     1400                int length=name.length();
     1401                if (name[length-1]=='/'||name[length-1]=='\\')
     1402                  dirNetlib=name;
     1403                else
     1404                  dirNetlib = name+"/";
     1405                parameters[iParam].setStringValue(dirNetlib);
     1406              } else {
     1407                parameters[iParam].printString();
     1408              }
     1409            }
     1410            break;
     1411          case DIRMIPLIB:
     1412            {
     1413              std::string name = CoinReadGetString(argc,argv);
     1414              if (name!="EOL") {
     1415                int length=name.length();
     1416                if (name[length-1]=='/'||name[length-1]=='\\')
     1417                  dirMiplib=name;
     1418                else
     1419                  dirMiplib = name+"/";
     1420                parameters[iParam].setStringValue(dirMiplib);
     1421              } else {
     1422                parameters[iParam].printString();
     1423              }
     1424            }
     1425            break;
    13641426          case STDIN:
    13651427            CbcOrClpRead_mode=-1;
     
    13721434            {
    13731435              // create fields for unitTest
    1374               const char * fields[3];
    1375               std::string dirfield;
    1376               int nFields=2;
     1436              const char * fields[4];
     1437              int nFields=4;
    13771438              fields[0]="fake main from unitTest";
    1378               fields[1]="-netlib";
    1379               if (directory!=defaultDirectory) {
    1380                 dirfield = "-netlibDir=";
    1381                 dirfield += directory.c_str();
    1382                 fields[2]=dirfield.c_str();
    1383                 nFields=3;
    1384               }
     1439              std::string mpsfield = "-mpsDir=";
     1440              mpsfield += dirSample.c_str();
     1441              fields[1]=mpsfield.c_str();
     1442              std::string netfield = "-netlibDir=";
     1443              netfield += dirNetlib.c_str();
     1444              fields[2]=netfield.c_str();
     1445              fields[3]="-netlib";
    13851446              int algorithm;
    13861447              if (type==NETLIB_DUAL) {
     
    14111472            {
    14121473              // create fields for unitTest
    1413               const char * fields[3];
    1414               int nFields=1;
     1474              const char * fields[2];
     1475              int nFields=2;
    14151476              fields[0]="fake main from unitTest";
     1477              std::string dirfield = "-mpsDir=";
     1478              dirfield += dirSample.c_str();
     1479              fields[1]=dirfield.c_str();
    14161480              int specialOptions = models[iModel].specialOptions();
    14171481              models[iModel].setSpecialOptions(0);
  • branches/BSP/trunk/Clp/test/Makefile.am

    r1075 r1077  
    1515# We are using the CLP solver executable to do the unit test
    1616test: ../src/clp$(EXEEXT)
    17         if test x"$(NETLIBDIR)" != x; then \
    18                 ../src/clp$(EXEEXT) -directory $(NETLIBDIR) -unitTest -netlib; \
    19         else \
    20                 ../src/clp$(EXEEXT) -unitTest; \
    21         fi
     17        if test x"$(DIRNETLIB)" != x; then \
     18                NETLIBARG="-dirNetlib $(DIRNETLIB) -netlib"; \
     19        fi; \
     20        if test x"$(DIRSAMPLE)" != x; then \
     21                SAMPLEARG="-dirSample $(DIRSAMPLE)"; \
     22        fi; \
     23        ../src/clp$(EXEEXT) $$SAMPLEARG -unitTest $$NETLIBARG
    2224
    2325.PHONY: test
  • branches/BSP/trunk/Clp/test/Makefile.in

    r1075 r1077  
    371371# We are using the CLP solver executable to do the unit test
    372372test: ../src/clp$(EXEEXT)
    373         if test x"$(NETLIBDIR)" != x; then \
    374                 ../src/clp$(EXEEXT) -directory $(NETLIBDIR) -unitTest -netlib; \
    375         else \
    376                 ../src/clp$(EXEEXT) -unitTest; \
    377         fi
     373        if test x"$(DIRNETLIB)" != x; then \
     374                NETLIBARG="-dirNetlib $(DIRNETLIB) -netlib"; \
     375        fi; \
     376        if test x"$(DIRSAMPLE)" != x; then \
     377                SAMPLEARG="-dirSample $(DIRSAMPLE)"; \
     378        fi; \
     379        ../src/clp$(EXEEXT) $$SAMPLEARG -unitTest $$NETLIBARG
    378380
    379381.PHONY: test
Note: See TracChangeset for help on using the changeset viewer.