Changeset 206 for branches


Ignore:
Timestamp:
Sep 5, 2003 5:35:18 PM (16 years ago)
Author:
forrest
Message:

Speed

Location:
branches/pre
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/pre/ClpSimplexPrimal.cpp

    r204 r206  
    459459  // put back original costs and then check
    460460  createRim(4);
    461   gutsOfSolution(NULL,NULL);
     461  gutsOfSolution(NULL,NULL,(firstFree_>=0));
    462462  // Double check reduced costs if no action
    463463  if (progress->lastIterationNumber(0)==numberIterations_) {
     
    10871087      minimumTheta=0.0;
    10881088    // will we need to increase tolerance
    1089 #define CLP_DEBUG
     1089    //#define CLP_DEBUG
    10901090#ifdef CLP_DEBUG
    10911091    bool found=false;
  • branches/pre/Test/ClpMain.cpp

    r205 r206  
    938938    int allowImportErrors=0;
    939939    int keepImportNames=1;
    940     int doIdiot=0;
     940    int doIdiot=-2;
    941941   
    942942    int iModel=0;
     
    12101210              }
    12111211              if (type==DUALSIMPLEX) {
    1212                 if (doIdiot<0)
     1212                if (doIdiot==-1)
    12131213                  model2->crash(1000,1);
    12141214                //int status =model2->saveModel("xx.save");
     
    12171217              } else {
    12181218#ifdef CLP_IDIOT
    1219                 if (doIdiot>0) {
    1220                   Idiot info(*model2);
    1221                   info.crash(doIdiot);
     1219                if (doIdiot==-2||doIdiot>0) {
     1220                  if (doIdiot==-2) {
     1221                    int numberColumns = model2->numberColumns();
     1222                    int numberRows = model2->numberRows();
     1223                    if (numberRows>2000&&numberColumns>2*numberRows) {
     1224                      ClpPackedMatrix* clpMatrix =
     1225                        dynamic_cast< ClpPackedMatrix*>(saveMatrix);
     1226                      if (clpMatrix) {
     1227                        ClpPlusMinusOneMatrix * newMatrix = new ClpPlusMinusOneMatrix(*(clpMatrix->matrix()));
     1228                        if (newMatrix->getIndices()) {
     1229                          saveMatrix = model2->clpMatrix();
     1230                          std::cout<<"** Matrix is valid +- one"<<std::endl;
     1231                          model2->replaceMatrix(newMatrix);
     1232                          int nPasses = 10+numberColumns/1000;
     1233                          nPasses = min(nPasses,100);
     1234                          Idiot info(*model2);
     1235                          info.crash(nPasses);
     1236                        } else {
     1237                          delete newMatrix;
     1238                          int nPasses = 10+numberColumns/100000;
     1239                          if (numberColumns>4*numberRows)
     1240                            nPasses = min(nPasses,50);
     1241                          else
     1242                            nPasses=5;
     1243                          Idiot info(*model2);
     1244                          info.crash(nPasses);
     1245                        }
     1246                      } else {
     1247                        ClpPlusMinusOneMatrix* clpMatrix =
     1248                          dynamic_cast< ClpPlusMinusOneMatrix*>(saveMatrix);
     1249                        if (clpMatrix) {
     1250                          int nPasses = 10+numberColumns/1000;
     1251                          nPasses = min(nPasses,100);
     1252                          Idiot info(*model2);
     1253                          info.crash(nPasses);
     1254                        } else {
     1255                          int nPasses = 10+numberColumns/100000;
     1256                          if (numberColumns>4*numberRows)
     1257                            nPasses = min(nPasses,50);
     1258                          else
     1259                            nPasses=5;
     1260                          Idiot info(*model2);
     1261                          info.crash(nPasses);
     1262                        }
     1263                      }
     1264                    }
     1265                  } else {
     1266                    Idiot info(*model2);
     1267                    info.crash(doIdiot);
     1268                  }
    12221269                }
    12231270#endif
  • branches/pre/Test/unitTest.cpp

    r203 r206  
    518518    CoinMpsIO m;
    519519    std::string fn = mpsDir+"exmip1";
    520     fn = "Test/subGams4";
     520    //fn = "Test/subGams4";
    521521    m.readMps(fn.c_str(),"mps");
    522522    ClpSimplex model;
Note: See TracChangeset for help on using the changeset viewer.