Changeset 383 for trunk/Test/ClpMain.cpp


Ignore:
Timestamp:
Jun 1, 2004 2:38:34 PM (16 years ago)
Author:
forrest
Message:

add barrier

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Test/ClpMain.cpp

    r374 r383  
    1414#include "CoinPragma.hpp"
    1515#include "CoinHelperFunctions.hpp"
    16 #define CLPVERSION "0.99.6"
     16#define CLPVERSION "0.99.7"
    1717
    1818#include "CoinMpsIO.hpp"
     
    5050#endif
    5151
    52 int mainTest (int argc, const char *argv[],bool doDual,
     52int mainTest (int argc, const char *argv[],int algorithm,
    5353              ClpSimplex empty, bool doPresolve,int doIdiot);
    5454enum ClpParameterType {
    55   GENERALQUERY=-100,
     55  GENERALQUERY=-100,FULLGENERALQUERY,
    5656 
    5757  DUALTOLERANCE=1,PRIMALTOLERANCE,DUALBOUND,PRIMALWEIGHT,MAXTIME,OBJSCALE,
     
    6666  DIRECTORY=301,IMPORT,EXPORT,RESTORE,SAVE,DUALSIMPLEX,PRIMALSIMPLEX,
    6767  MAXIMIZE,MINIMIZE,EXIT,STDIN,UNITTEST,NETLIB_DUAL,NETLIB_PRIMAL,SOLUTION,
    68   TIGHTEN,FAKEBOUND,HELP,PLUSMINUS,NETWORK,ALLSLACK,REVERSE,BARRIER,
     68  TIGHTEN,FAKEBOUND,HELP,PLUSMINUS,NETWORK,ALLSLACK,REVERSE,BARRIER,NETLIB_BARRIER,
    6969
    7070  INVALID=1000
     
    897897      ClpItem("?","For help",GENERALQUERY,-1,false);
    898898    parameters[numberParameters++]=
     899      ClpItem("???","For help",FULLGENERALQUERY,-1,false);
     900    parameters[numberParameters++]=
    899901      ClpItem("-","From stdin",
    900902              STDIN,299,false);
     
    922924      (
    923925       "This command solves the current model using the  primal dual predictor \
    924 corrector algorithm.  This is not a sophisticated version just something JJF\
    925 knocked up\
    926 ** another slight drawback (early December) is that it does not work"
     926corrector algorithm.  This is not a sophisticated version just something JJF \
     927knocked up"
    927928
    928929       );
     
    11501151The user can set options before e.g. clp -presolve off -netlib"
    11511152       );
     1153#ifdef REAL_BARRIER
     1154    parameters[numberParameters++]=
     1155      ClpItem("netlibB!arrier","Solve entire netlib test set with barrier",
     1156              NETLIB_BARRIER);
     1157    parameters[numberParameters-1].setLonghelp
     1158      (
     1159       "This exercises the unit test for clp and then solves the netlib test set using barrier.\
     1160The user can set options before e.g. clp -presolve off -netlib"
     1161       );
     1162#endif
    11521163    parameters[numberParameters++]=
    11531164      ClpItem("netlibP!rimal","Solve entire netlib test set (primal)",
     
    14441455      // see if ? at end
    14451456      int numberQuery=0;
    1446       if (field!="?") {
     1457      if (field!="?"&&field!="???") {
    14471458        int length = field.length();
    14481459        int i;
     
    15001511              int type = parameters[iParam].indexNumber();
    15011512              if (parameters[iParam].displayThis()&&type>=limits[iType]
     1513                  &&type<limits[iType+1]) {
     1514                if (!across)
     1515                  std::cout<<"  ";
     1516                std::cout<<parameters[iParam].matchName()<<"  ";
     1517                across++;
     1518                if (across==maxAcross) {
     1519                  std::cout<<std::endl;
     1520                  across=0;
     1521                }
     1522              }
     1523            }
     1524            if (across)
     1525              std::cout<<std::endl;
     1526          }
     1527        } else if (type==FULLGENERALQUERY) {
     1528          std::cout<<"Full list of ommands is:"<<std::endl;
     1529          int maxAcross=5;
     1530          int limits[]={1,101,201,301,401};
     1531          std::vector<std::string> types;
     1532          types.push_back("Double parameters:");
     1533          types.push_back("Int parameters:");
     1534          types.push_back("Keyword parameters and others:");
     1535          types.push_back("Actions:");
     1536          int iType;
     1537          for (iType=0;iType<4;iType++) {
     1538            int across=0;
     1539            std::cout<<types[iType]<<std::endl;
     1540            for ( iParam=0; iParam<numberParameters; iParam++ ) {
     1541              int type = parameters[iParam].indexNumber();
     1542              if (type>=limits[iType]
    15021543                  &&type<limits[iType+1]) {
    15031544                if (!across)
     
    21302171            break;
    21312172          case NETLIB_DUAL:
     2173          case NETLIB_BARRIER:
    21322174          case NETLIB_PRIMAL:
    21332175            {
     
    21422184                nFields=4;
    21432185              }
    2144               if (type==NETLIB_DUAL)
     2186              int algorithm;
     2187              if (type==NETLIB_DUAL) {
    21452188                std::cerr<<"Doing netlib with dual agorithm"<<std::endl;
    2146               else
     2189                algorithm =0;
     2190              } else if (type==NETLIB_BARRIER) {
     2191                std::cerr<<"Doing netlib with barrier agorithm"<<std::endl;
     2192                algorithm =2;
     2193              } else {
    21472194                std::cerr<<"Doing netlib with primal agorithm"<<std::endl;
    2148               mainTest(nFields,fields,(type==NETLIB_DUAL),models[iModel],
     2195                algorithm=1;
     2196              }
     2197              mainTest(nFields,fields,algorithm,models[iModel],
    21492198                       (preSolve!=0),doIdiot);
    21502199            }
Note: See TracChangeset for help on using the changeset viewer.