Changeset 2440


Ignore:
Timestamp:
Apr 4, 2019 10:44:30 AM (7 weeks ago)
Author:
forrest
Message:

need changes in svn as well as git

Location:
trunk/Clp/src
Files:
4 edited

Legend:

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

    r2392 r2440  
    33883388    p.append("boundsint");
    33893389    p.append("boundsall");
     3390    p.append("fixint");
     3391    p.append("fixall");
    33903392    p.setLonghelp(
    33913393      "This changes the amount and format of printing a solution:\nnormal - nonzero column variables \n\
  • trunk/Clp/src/ClpSimplex.cpp

    r2439 r2440  
    76417641  // set problem name
    76427642  setStrParam(ClpProbName, m.getProblemName());
     7643  // set objective function offest
     7644  setDblParam(ClpObjOffset, m.objectiveOffset());
    76437645  // no errors
     7646#ifndef SWITCH_BACK_TO_MAXIMIZATION
     7647#define SWITCH_BACK_TO_MAXIMIZATION 1
     7648#endif
     7649#if SWITCH_BACK_TO_MAXIMIZATION
     7650  double * originalObj = NULL;
     7651  if (m.wasMaximization()) {
     7652    // switch back
     7653    setDblParam(ClpObjOffset, -m.objectiveOffset());
     7654    int numberColumns = m.getNumCols();
     7655    originalObj = CoinCopyOfArray(m.getObjCoefficients(),numberColumns);
     7656    for (int i=0;i < numberColumns;i++)
     7657      originalObj[i] = - originalObj[i];
     7658    setOptimizationDirection(-1.0);
     7659    handler_->message(CLP_GENERAL, messages_)
     7660      << "Switching back to maximization to get correct duals etc"
     7661      << CoinMessageEol;
     7662  }
     7663  loadProblem(*m.getMatrixByRow(), m.getColLower(), m.getColUpper(),
     7664              !originalObj ? m.getObjCoefficients() : originalObj,
     7665              m.getRowLower(), m.getRowUpper());
     7666  delete [] originalObj;
     7667#else
    76447668  loadProblem(*m.getMatrixByRow(), m.getColLower(), m.getColUpper(),
    76457669    m.getObjCoefficients(), m.getRowLower(), m.getRowUpper());
     7670#endif
    76467671
    76477672  if (m.integerColumns()) {
  • trunk/Clp/src/ClpSimplexDual.cpp

    r2385 r2440  
    19431943#endif
    19441944                  // Get rid of objective
    1945                   if ((specialOptions_ & 16384) == 0)
     1945                  if ((specialOptions_ & 16384) == 0 &&
     1946                      (moreSpecialOptions_ & 256) == 0)
    19461947                    objective_ = new ClpLinearObjective(NULL, numberColumns_);
    19471948                }
     
    19621963#endif
    19631964                  // Get rid of objective
    1964                   if ((specialOptions_ & 16384) == 0)
     1965                  if ((specialOptions_ & 16384) == 0 &&
     1966                      (moreSpecialOptions_ & 256) == 0)
    19651967                    objective_ = new ClpLinearObjective(NULL, numberColumns_);
    19661968                }
  • trunk/Clp/src/ClpSolver.cpp

    r2390 r2440  
    24072407              }
    24082408              // Write solution header (suggested by Luigi Poderico)
    2409               double objValue = models[iModel].getObjValue() * models[iModel].getObjSense();
     2409              double objValue = models[iModel].getObjValue();
    24102410              int iStat = models[iModel].status();
    24112411              if (iStat == 0) {
    2412                 fprintf(fp, "optimal\n");
     2412                fprintf(fp, "Optimal");
    24132413              } else if (iStat == 1) {
    24142414                // infeasible
    2415                 fprintf(fp, "infeasible\n");
     2415                fprintf(fp, "Infeasible");
    24162416              } else if (iStat == 2) {
    24172417                // unbounded
    2418                 fprintf(fp, "unbounded\n");
     2418                fprintf(fp, "Unbounded");
    24192419              } else if (iStat == 3) {
    2420                 fprintf(fp, "stopped on iterations or time\n");
     2420                fprintf(fp, "Stopped on iterations or time");
    24212421              } else if (iStat == 4) {
    2422                 fprintf(fp, "stopped on difficulties\n");
     2422                fprintf(fp, "Stopped on difficulties");
    24232423              } else if (iStat == 5) {
    2424                 fprintf(fp, "stopped on ctrl-c\n");
     2424                fprintf(fp, "Stopped on ctrl-c");
    24252425              } else {
    2426                 fprintf(fp, "status unknown\n");
     2426                fprintf(fp, "Status unknown");
    24272427              }
    24282428              char printFormat[50];
    2429               sprintf(printFormat, "Objective value %s\n",
     2429              sprintf(printFormat, " - objective value %s\n",
    24302430                CLP_QUOTE(CLP_OUTPUT_FORMAT));
    24312431              fprintf(fp, printFormat, objValue);
Note: See TracChangeset for help on using the changeset viewer.