Changeset 1429 for trunk/Clp


Ignore:
Timestamp:
Sep 10, 2009 12:21:53 PM (10 years ago)
Author:
forrest
Message:

fixes etc

Location:
trunk/Clp/src
Files:
5 edited

Legend:

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

    r1426 r1429  
    17391739  parameters[numberParameters++]=
    17401740    CbcOrClpParam("diveO!pt","Diving options",
    1741                   -1,200,DIVEOPT,1);
     1741                  -1,200000,DIVEOPT,1);
    17421742  parameters[numberParameters-1].setLonghelp
    17431743    (
     
    19441944    CbcOrClpParam("extra3","Extra integer parameter 3",
    19451945                  -1,COIN_INT_MAX,EXTRA3,0);
     1946  parameters[numberParameters-1].setIntValue(-1);
     1947  parameters[numberParameters++]=
     1948    CbcOrClpParam("extra4","Extra integer parameter 4",
     1949                  -1,COIN_INT_MAX,EXTRA4,0);
    19461950  parameters[numberParameters-1].setIntValue(-1);
    19471951#endif
  • trunk/Clp/src/CbcOrClpParam.hpp

    r1424 r1429  
    6767    STRONGBRANCHING=151,CUTDEPTH, MAXNODES,NUMBERBEFORE,NUMBERANALYZE,
    6868    MIPOPTIONS,MOREMIPOPTIONS,MAXHOTITS,FPUMPITS,MAXSOLS,
    69     FPUMPTUNE,TESTOSI,EXTRA1,EXTRA2,EXTRA3,DEPTHMINIBAB,CUTPASSINTREE,
     69    FPUMPTUNE,TESTOSI,EXTRA1,EXTRA2,EXTRA3,EXTRA4,DEPTHMINIBAB,CUTPASSINTREE,
    7070    THREADS,CUTPASS,VUBTRY,DENSE,EXPERIMENT,DIVEOPT,STRATEGY,SMALLFACT,
    7171    HOPTIONS,CUTLENGTH,FPUMPTUNE2,
  • trunk/Clp/src/ClpSimplex.cpp

    r1428 r1429  
    13791379      }
    13801380      if (!allSlack) {
     1381#define CLP_INVESTIGATE2
     1382#ifdef CLP_INVESTIGATE2
     1383        int numberTotal=numberRows_+numberColumns_;
     1384        double * saveSol = valuesPass ?
     1385          CoinCopyOfArray(solution_,numberTotal) : NULL;
     1386#endif
    13811387        // set values from warm start (if sensible)
    13821388        int numberBasic=0;
     
    15311537          }
    15321538        }
     1539#ifdef CLP_INVESTIGATE2
     1540        if (saveSol) {
     1541          int numberChanged=0;
     1542          double largestChanged=0.0;
     1543          for (int i=0;i<numberTotal;i++) {
     1544            double difference = fabs(solution_[i]-saveSol[i]);
     1545            if (difference>1.0e-7) {
     1546              numberChanged++;
     1547              if (difference>largestChanged)
     1548                largestChanged=difference;
     1549            }
     1550          }
     1551          if (numberChanged)
     1552            printf("%d changed, largest %g\n",numberChanged,largestChanged);
     1553          delete [] saveSol;
     1554        }
     1555#endif
    15331556#if 0
    15341557        if (numberBasic<numberRows_) {
  • trunk/Clp/src/ClpSimplexDual.cpp

    r1427 r1429  
    593593  if (!returnCode)
    594594    gutsOfDual(ifValuesPass,saveDuals,initialStatus,data);
     595  if (!problemStatus_) {
     596    // see if cutoff reached
     597    double limit = 0.0;
     598    getDblParam(ClpDualObjectiveLimit, limit);
     599    if(fabs(limit)<1.0e30&&objectiveValue()*optimizationDirection_>
     600       limit+1.0e-7+1.0e-8*fabs(limit)) {
     601      // actually infeasible on objective
     602      problemStatus_=1;
     603      secondaryStatus_=1;
     604    }
     605  }
    595606  if (problemStatus_==10)
    596607    startFinishOptions |= 1;
     
    61796190  // Stop can skip some things in transposeTimes
    61806191  specialOptions_ &= ~131072;
     6192  if (!problemStatus_) {
     6193    // see if cutoff reached
     6194    double limit = 0.0;
     6195    getDblParam(ClpDualObjectiveLimit, limit);
     6196    if(fabs(limit)<1.0e30&&objectiveValue()*optimizationDirection_>
     6197       limit+1.0e-7+1.0e-8*fabs(limit)) {
     6198      // actually infeasible on objective
     6199      problemStatus_=1;
     6200      secondaryStatus_=1;
     6201    }
     6202  }
    61816203  if (problemStatus_==3)
    61826204    objectiveValue_ = CoinMax(bestObjectiveValue_,objectiveValue_-bestPossibleImprovement_);
  • trunk/Clp/src/ClpSimplexOther.cpp

    r1402 r1429  
    604604  }
    605605  if (formatType>=2)
    606     fprintf(fp,"IEEE");
     606    fprintf(fp,"FREEIEEE");
    607607  else if (writeValues)
    608608    fprintf(fp,"VALUES");
     
    12061206                        int & nBound, bool moreBounds, bool tightenBounds)
    12071207{
    1208 #if 0
    1209   //#ifndef NDEBUG
     1208  //#define CHECK_STATUS
     1209#ifdef CHECK_STATUS
    12101210  {
    12111211    int n=0;
     
    15841584      printf("Row bound %d %g %g\n",i,rowLower_[i],rowUpper_[i]);
    15851585#endif
     1586  }
     1587#endif
     1588#ifdef CHECK_STATUS
     1589  {
     1590    int n=0;
     1591    int i;
     1592    for (i=0;i<small->numberColumns();i++)
     1593      if (small->getColumnStatus(i)==ClpSimplex::basic)
     1594        n++;
     1595    for (i=0;i<small->numberRows();i++)
     1596      if (small->getRowStatus(i)==ClpSimplex::basic)
     1597        n++;
     1598    assert (n==small->numberRows());
    15861599  }
    15871600#endif
Note: See TracChangeset for help on using the changeset viewer.