Ignore:
Timestamp:
Apr 15, 2014 11:54:11 AM (5 years ago)
Author:
forrest
Message:

fix some ampl stuff, add ClpSolver? and a few fixes

File:
1 edited

Legend:

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

    r2025 r2030  
    13521352#ifndef CLP_NO_STD
    13531353     if (lengthNames_) {
    1354           // redo row and column names
    1355           if (numberRows_ < newNumberRows) {
     1354          // redo row and column names (make sure clean)
     1355          int numberRowNames =
     1356            CoinMin(static_cast<int>(rowNames_.size()),numberRows_);
     1357          if (numberRowNames < newNumberRows) {
    13561358               rowNames_.resize(newNumberRows);
    13571359               lengthNames_ = CoinMax(lengthNames_, 8);
    13581360               char name[9];
    1359                for (int iRow = numberRows_; iRow < newNumberRows; iRow++) {
     1361               for (int iRow = numberRowNames; iRow < newNumberRows; iRow++) {
    13601362                    sprintf(name, "R%7.7d", iRow);
    13611363                    rowNames_[iRow] = name;
    13621364               }
    13631365          }
    1364           if (numberColumns_ < newNumberColumns) {
     1366          int numberColumnNames =
     1367            CoinMin(static_cast<int>(columnNames_.size()),numberColumns_);
     1368          if (numberColumnNames < newNumberColumns) {
    13651369               columnNames_.resize(newNumberColumns);
    13661370               lengthNames_ = CoinMax(lengthNames_, 8);
    13671371               char name[9];
    1368                for (int iColumn = numberColumns_; iColumn < newNumberColumns; iColumn++) {
     1372               for (int iColumn = numberColumnNames;
     1373                    iColumn < newNumberColumns; iColumn++) {
    13691374                    sprintf(name, "C%7.7d", iColumn);
    13701375                    columnNames_[iColumn] = name;
     
    14101415     whatsChanged_ &= ~(1 + 2 + 4 + 8 + 16 + 32); // all except columns changed
    14111416     int newSize = 0;
    1412      if (maximumRows_ < 0) {
    1413           rowActivity_ = deleteDouble(rowActivity_, numberRows_,
    1414                                       number, which, newSize);
    1415           dual_ = deleteDouble(dual_, numberRows_,
    1416                                number, which, newSize);
    1417           rowObjective_ = deleteDouble(rowObjective_, numberRows_,
    1418                                        number, which, newSize);
    1419           rowLower_ = deleteDouble(rowLower_, numberRows_,
    1420                                    number, which, newSize);
    1421           rowUpper_ = deleteDouble(rowUpper_, numberRows_,
    1422                                    number, which, newSize);
    1423           if (matrix_->getNumRows())
    1424                matrix_->deleteRows(number, which);
    1425           //matrix_->removeGaps();
    1426           // status
    1427           if (status_) {
    1428                if (numberColumns_ + newSize) {
    14291417#define CLP_TIDY_DELETE_ROWS
    14301418#ifdef CLP_TIDY_DELETE_ROWS
     1419     if (status_) {
    14311420                    // try and get right number of basic
    14321421                    int nChange=0;
     
    14511440                        }
    14521441                      }
    1453 #endif
     1442     }
     1443#endif
     1444     if (maximumRows_ < 0) {
     1445          rowActivity_ = deleteDouble(rowActivity_, numberRows_,
     1446                                      number, which, newSize);
     1447          dual_ = deleteDouble(dual_, numberRows_,
     1448                               number, which, newSize);
     1449          rowObjective_ = deleteDouble(rowObjective_, numberRows_,
     1450                                       number, which, newSize);
     1451          rowLower_ = deleteDouble(rowLower_, numberRows_,
     1452                                   number, which, newSize);
     1453          rowUpper_ = deleteDouble(rowUpper_, numberRows_,
     1454                                   number, which, newSize);
     1455          if (matrix_->getNumRows())
     1456               matrix_->deleteRows(number, which);
     1457          //matrix_->removeGaps();
     1458          // status
     1459          if (status_) {
     1460               if (numberColumns_ + newSize) {
    14541461                    unsigned char * tempR  = reinterpret_cast<unsigned char *>
    14551462                                             (deleteChar(reinterpret_cast<char *>(status_) + numberColumns_,
     
    45124519          infeasibilityCost_ = rhs.infeasibilityCost_;
    45134520          pivotTolerance_ = rhs.pivotTolerance_;
    4514           zeroFactorizationTolerance_ = zeroFactorizationTolerance_;
    4515           zeroSimplexTolerance_ = zeroSimplexTolerance_;
     4521          zeroFactorizationTolerance_ = rhs.zeroFactorizationTolerance_;
     4522          zeroSimplexTolerance_ = rhs.zeroSimplexTolerance_;
    45164523          acceptablePivot_ = rhs.acceptablePivot_;
    45174524          objectiveScale_ = rhs.objectiveScale_;
Note: See TracChangeset for help on using the changeset viewer.