Changeset 742 for branches


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

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

Location:
branches/BSP/trunk/Cbc
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • branches/BSP/trunk/Cbc/src/CbcMain.cpp

    r737 r742  
    304304      CbcParam("directory","Set Default import directory",
    305305              DIRECTORY);
     306    parameters[numberParameters++]=
     307      CbcParam("dirSample","Set directory where the COIN-OR sample problems are.",
     308               DIRSAMPLE);
     309    parameters[numberParameters++]=
     310      CbcParam("dirNetlib","Set directory where the netlib problems are.",
     311               DIRNETLIB);
     312    parameters[numberParameters++]=
     313      CbcOrClpParam("dirMiplib","Set directory where the miplib 2003 problems are.",
     314                    DIRMIPLIB);
    306315    parameters[numberParameters++]=
    307316      CbcParam("solver!","Set the solver used by cbc",
     
    726735
    727736    const char dirsep =  CoinFindDirSeparator();
    728     std::string directory = (dirsep == '/' ? "./" : ".\\");
     737    std::string directory;
     738    std::string dirSample;
     739    std::string dirNetlib;
     740    std::string dirMiplib;
     741    if (dirsep == '/') {
     742      directory = "./";
     743      dirSample = "../../Data/Sample/";
     744      dirNetlib = "../../Data/Netlib/";
     745      dirMiplib = "../../Data/miplib3/";
     746    } else {
     747      directory = ".\\";
     748      dirSample = "..\\..\\Data\\Sample\\";
     749      dirNetlib = "..\\..\\Data\\Netlib\\";
     750      dirMiplib = "..\\..\\Data\\miplib3\\";
     751    }
    729752    std::string field;
    730753/*
     
    14171440              directory += '/' ;
    14181441            break ; }
     1442          case DIRSAMPLE:
     1443          { dirSample = getString(argc,argv);
     1444            if (dirSample[dirSample.length()-1] != '/')
     1445              dirSample += '/' ;
     1446            break ; }
     1447          case DIRNETLIB:
     1448          { dirNetlib = getString(argc,argv);
     1449            if (dirNetlib[dirNetlib.length()-1] != '/')
     1450              dirNetlib += '/' ;
     1451            break ; }
     1452          case DIRMIPLIB:
     1453          { dirMiplib = getString(argc,argv);
     1454            if (dirMiplib[dirMiplib.length()-1] != '/')
     1455              dirMiplib += '/' ;
     1456            break ; }
    14191457          case STDIN:
    14201458            read_mode=-1;
     
    14761514              // create fields for test
    14771515              const char * fields[3];
    1478               int nFields=1;
     1516              int nFields=3;
    14791517              fields[0]="fake main for miplib";
    1480               std::string dirfield="-miplibDir=";
    1481               if (directory!="./") {
    1482                 dirfield+=directory.c_str();
    1483                 fields[1]=dirfield.c_str();
    1484                 nFields=2;
    1485               }
     1518              std::string mpsfield = "-mpsDir=";
     1519              mpsfield += dirSample.c_str();
     1520              fields[1]=mpsfield.c_str();
     1521              std::string mipfield = "-miplibDir=";
     1522              mipfield += dirMiplib.c_str();
     1523              fields[2]=mipfield.c_str();
    14861524              mainTest(nFields,fields);
    14871525            }
  • branches/BSP/trunk/Cbc/src/CbcModel.hpp

    r715 r742  
    20602060// When we want to load up CbcModel with options first
    20612061void CbcMain0 (CbcModel & babSolver);
    2062 int CbcMain1 (int argc, const char *argv[],CbcModel & babSolver);
     2062int CbcMain1 (int argc, const char *argv[],CbcModel & babSolver,
     2063              int call_CbcClpUnitTest_on_777 = 0);
    20632064// two ways of calling
    20642065int callCbc(const char * input2, CbcModel & babSolver);
  • branches/BSP/trunk/Cbc/src/CbcSolver.cpp

    r733 r742  
    13121312  establishParams(numberParameters,parameters) ;
    13131313  const char dirsep =  CoinFindDirSeparator();
    1314   std::string directory = (dirsep == '/' ? "./" : ".\\");
     1314  std::string directory;
     1315  std::string dirSample;
     1316  std::string dirNetlib;
     1317  std::string dirMiplib;
     1318  if (dirsep == '/') {
     1319    directory = "./";
     1320    dirSample = "../../Data/Sample/";
     1321    dirNetlib = "../../Data/Netlib/";
     1322    dirMiplib = "../../Data/miplib3/";
     1323  } else {
     1324    directory = ".\\";
     1325    dirSample = "..\\..\\Data\\Sample\\";
     1326    dirNetlib = "..\\..\\Data\\Netlib\\";
     1327    dirMiplib = "..\\..\\Data\\miplib3\\";
     1328  }
    13151329  std::string defaultDirectory = directory;
    13161330  std::string importFile ="";
     
    13381352  parameters[whichParam(PRINTMASK,numberParameters,parameters)].setStringValue(printMask);
    13391353  parameters[whichParam(DIRECTORY,numberParameters,parameters)].setStringValue(directory);
     1354  parameters[whichParam(DIRSAMPLE,numberParameters,parameters)].setStringValue(dirSample);
     1355  parameters[whichParam(DIRNETLIB,numberParameters,parameters)].setStringValue(dirNetlib);
     1356  parameters[whichParam(DIRMIPLIB,numberParameters,parameters)].setStringValue(dirMiplib);
    13401357  parameters[whichParam(DUALBOUND,numberParameters,parameters)].setDoubleValue(lpSolver->dualBound());
    13411358  parameters[whichParam(DUALTOLERANCE,numberParameters,parameters)].setDoubleValue(lpSolver->dualTolerance());
     
    14081425}
    14091426int CbcMain1 (int argc, const char *argv[],
    1410              CbcModel  & model)
     1427              CbcModel  & model, int call_CbcClpUnitTest_on_777)
    14111428{
    14121429  /* Note
     
    16881705    double tightenFactor=0.0;
    16891706    const char dirsep =  CoinFindDirSeparator();
    1690     std::string directory = (dirsep == '/' ? "./" : ".\\");
     1707    std::string directory;
     1708    std::string dirSample;
     1709    std::string dirNetlib;
     1710    std::string dirMiplib;
     1711    if (dirsep == '/') {
     1712      directory = "./";
     1713      dirSample = "../../Data/Sample/";
     1714      dirNetlib = "../../Data/Netlib/";
     1715      dirMiplib = "../../Data/miplib3/";
     1716    } else {
     1717      directory = ".\\";
     1718      dirSample = "..\\..\\Data\\Sample\\";
     1719      dirNetlib = "..\\..\\Data\\Netlib\\";
     1720      dirMiplib = "..\\..\\Data\\miplib3\\";
     1721    }
    16911722    std::string defaultDirectory = directory;
    16921723    std::string importFile ="";
     
    47314762                }
    47324763                model = *babModel;
     4764                /* LL: this was done in CoinSolve.cpp: main(argc, argv).
     4765                   I have moved it here so that the miplib directory location
     4766                   could be passed to CbcClpUnitTest. */
     4767                if (call_CbcClpUnitTest_on_777 == 777) {
     4768                  void CbcClpUnitTest (const CbcModel & saveModel,
     4769                                       std::string& dirMiplib);
     4770                  CbcClpUnitTest(model, dirMiplib);
     4771                }
    47334772                return 777;
    47344773              } else {
     
    59595998            }
    59605999            break;
     6000          case DIRSAMPLE:
     6001            {
     6002              std::string name = CoinReadGetString(argc,argv);
     6003              if (name!="EOL") {
     6004                int length=name.length();
     6005                if (name[length-1]=='/'||name[length-1]=='\\')
     6006                  dirSample=name;
     6007                else
     6008                  dirSample = name+"/";
     6009                parameters[iParam].setStringValue(dirSample);
     6010              } else {
     6011                parameters[iParam].printString();
     6012              }
     6013            }
     6014            break;
     6015          case DIRNETLIB:
     6016            {
     6017              std::string name = CoinReadGetString(argc,argv);
     6018              if (name!="EOL") {
     6019                int length=name.length();
     6020                if (name[length-1]=='/'||name[length-1]=='\\')
     6021                  dirNetlib=name;
     6022                else
     6023                  dirNetlib = name+"/";
     6024                parameters[iParam].setStringValue(dirNetlib);
     6025              } else {
     6026                parameters[iParam].printString();
     6027              }
     6028            }
     6029            break;
     6030          case DIRMIPLIB:
     6031            {
     6032              std::string name = CoinReadGetString(argc,argv);
     6033              if (name!="EOL") {
     6034                int length=name.length();
     6035                if (name[length-1]=='/'||name[length-1]=='\\')
     6036                  dirMiplib=name;
     6037                else
     6038                  dirMiplib = name+"/";
     6039                parameters[iParam].setStringValue(dirMiplib);
     6040              } else {
     6041                parameters[iParam].printString();
     6042              }
     6043            }
     6044            break;
    59616045          case STDIN:
    59626046            CbcOrClpRead_mode=-1;
  • branches/BSP/trunk/Cbc/src/CoinSolve.cpp

    r720 r742  
    190190//  End any fake main program
    191191//#############################################################################
    192 void CbcClpUnitTest (const CbcModel & saveModel);
     192// void CbcClpUnitTest (const CbcModel & saveModel);
    193193int main (int argc, const char *argv[])
    194194{
     
    215215  setCbcOrClpPrinting(false);
    216216#endif
    217   int returnCode = CbcMain1 (argc, argv,model);
     217  int returnCode = CbcMain1 (argc, argv,model, 777);
     218#if 0
     219  /* The call to CbcClpUnitTest was moved into CbcMain1. To make sure
     220     CbcMain1 behaves as it did before for any other call, I have added one more
     221     argument to indicate that it was called from here. */
    218222  if (returnCode!=777) {
    219223    //const CoinWarmStartBasis* debugws =
     
    227231    return 0;
    228232  }
    229 }
     233#else
     234  if (returnCode!=777) {
     235    return returnCode;
     236  } else {
     237    return 0;
     238  }
     239#endif
     240}
     241
    230242/*
    231243  Version 1.00.00 November 16 2005.
  • branches/BSP/trunk/Cbc/src/unitTestClp.cpp

    r737 r742  
    17671767#endif 
    17681768}
    1769 void CbcClpUnitTest (const CbcModel & saveModel)
     1769void CbcClpUnitTest (const CbcModel & saveModel, std::string& miplibDir)
    17701770{
    17711771  unsigned int m ;
     
    17761776 
    17771777  // Set directory containing miplib data files.
    1778   std::string miplibDir;
    1779   miplibDir = dirsep == '/' ? "../../Data/miplib3/" : "..\\..\\Data\\miplib3\\";
    17801778  std::string test1 = miplibDir +"p0033";
    17811779  fp=fopen(test1.c_str(),"r");
  • branches/BSP/trunk/Cbc/test/Makefile.am

    r737 r742  
    2727
    2828test_cbc: ../src/cbc$(EXEEXT)
    29         if test x"$(MIPLIBDIR)" != x; then \
    30                 ../src/clp$(EXEEXT) -unitTest -directory $(MIPLIBDIR) -miplib; \
    31         else \
    32                 ../src/clp$(EXEEXT) -unitTest; \
    33         fi
     29        if test x"$(DIRMIPLIB)" != x; then \
     30                MIPLIBARG="-dirMiplib $(DIRMIPLIB) -miplib"; \
     31        fi; \
     32        if test x"$(DIRSAMPLE)" != x; then \
     33                SAMPLEARG="-dirSample $(DIRSAMPLE)"; \
     34        fi; \
     35        ../src/cbc$(EXEEXT) $$SAMPLEARG -unitTest $$MIPLIBARG
    3436
    3537test_cbc_generic: ../src/cbc-generic$(EXEEXT)
  • branches/BSP/trunk/Cbc/test/Makefile.in

    r737 r742  
    437437
    438438test_cbc: ../src/cbc$(EXEEXT)
    439         if test x"$(MIPLIBDIR)" != x; then \
    440                 ../src/clp$(EXEEXT) -unitTest -directory $(MIPLIBDIR) -miplib; \
    441         else \
    442                 ../src/clp$(EXEEXT) -unitTest; \
    443         fi
     439        if test x"$(DIRMIPLIB)" != x; then \
     440                MIPLIBARG="-dirMiplib $(DIRMIPLIB) -miplib"; \
     441        fi; \
     442        if test x"$(DIRSAMPLE)" != x; then \
     443                SAMPLEARG="-dirSample $(DIRSAMPLE)"; \
     444        fi; \
     445        ../src/cbc$(EXEEXT) $$SAMPLEARG -unitTest $$MIPLIBARG
    444446
    445447test_cbc_generic: ../src/cbc-generic$(EXEEXT)
Note: See TracChangeset for help on using the changeset viewer.