Changeset 1407 for trunk/Clp


Ignore:
Timestamp:
Jul 30, 2009 11:12:03 AM (10 years ago)
Author:
forrest
Message:

fix for ray and warning messages

Location:
trunk/Clp/src
Files:
7 edited

Legend:

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

    r1402 r1407  
    893893/// returns number of elements in column part of basis,
    894894CoinBigIndex
    895 ClpGubMatrix::countBasis(ClpSimplex * /*model*/,
    896                            const int * whichColumn,
    897                            int numberBasic,
     895ClpGubMatrix::countBasis(const int * whichColumn,
    898896                         int & numberColumnBasic)
    899897{
     
    902900  const int * columnLength = matrix_->getVectorLengths();
    903901  int numberRows = getNumRows();
    904   int saveNumberBasic=numberBasic;
     902  int numberBasic=0;
    905903  CoinBigIndex numberElements=0;
    906904  int lastSet=-1;
     
    966964  delete [] mark;
    967965  // update number of column basic
    968   numberColumnBasic = numberBasic-saveNumberBasic;
     966  numberColumnBasic = numberBasic;
    969967  return numberElements;
    970968}
  • trunk/Clp/src/ClpGubMatrix.hpp

    r1370 r1407  
    2626  virtual ClpMatrixBase * reverseOrderedCopy() const;
    2727  /// Returns number of elements in column part of basis
    28   virtual CoinBigIndex countBasis(ClpSimplex * model,
    29                                  const int * whichColumn,
    30                                  int numberRowBasic,
     28  virtual CoinBigIndex countBasis(const int * whichColumn,
    3129                                  int & numberColumnBasic);
    3230  /// Fills in column part of basis
  • trunk/Clp/src/ClpMain.cpp

    r1402 r1407  
    17121712                int numberRows=models[iModel].numberRows();
    17131713                int lengthName = models[iModel].lengthNames(); // 0 if no names
     1714                int lengthPrint = CoinMax(lengthName,8);
    17141715                // in general I don't want to pass around massive
    17151716                // amounts of data but seems simpler here
     
    17251726                double * rowUpper = models[iModel].rowUpper();
    17261727                double primalTolerance = models[iModel].primalTolerance();
    1727                 char format[6];
    1728                 sprintf(format,"%%-%ds",CoinMax(lengthName,8));
    17291728                bool doMask = (printMask!=""&&lengthName);
    17301729                int * maskStarts=NULL;
     
    18431842                    if (type) {
    18441843                      fprintf(fp,"%7d ",iRow);
    1845                       if (lengthName)
    1846                         fprintf(fp,format,rowNames[iRow].c_str());
     1844                      if (lengthName) {
     1845                        const char * name = rowNames[iRow].c_str();
     1846                        int n=strlen(name);
     1847                        int i;
     1848                        for (i=0;i<n;i++)
     1849                          fprintf(fp,"%c",name[i]);
     1850                        for (;i<lengthPrint;i++)
     1851                          fprintf(fp," ");
     1852                      }
    18471853                      fprintf(fp," %15.8g        %15.8g\n",primalRowSolution[iRow],
    18481854                              dualRowSolution[iRow]);
     
    18741880                  if (type) {
    18751881                    fprintf(fp,"%7d ",iColumn);
    1876                     if (lengthName)
    1877                       fprintf(fp,format,columnNames[iColumn].c_str());
     1882                    if (lengthName) {
     1883                      const char * name = columnNames[iColumn].c_str();
     1884                      int n=strlen(name);
     1885                      int i;
     1886                      for (i=0;i<n;i++)
     1887                        fprintf(fp,"%c",name[i]);
     1888                      for (;i<lengthPrint;i++)
     1889                        fprintf(fp," ");
     1890                    }
    18781891                    fprintf(fp," %15.8g        %15.8g\n",
    18791892                            primalColumnSolution[iColumn],
  • trunk/Clp/src/ClpModel.hpp

    r1397 r1407  
    838838      8 - Safe to use dense initial factorization
    839839      16 -Just use basic variables for operation if column generation
    840       32 -Clean up with primal before strong branching
     840      32 -Create ray even in BAB
    841841      64 -Treat problem as feasible until last minute (i.e. minimize infeasibilities)
    842842      128 - Switch off all matrix sanity checks
  • trunk/Clp/src/ClpPlusMinusOneMatrix.cpp

    r1402 r1407  
    16761676ClpPlusMinusOneMatrix::transposeTimes2(const ClpSimplex * model,
    16771677                                 const CoinIndexedVector * pi1, CoinIndexedVector * dj1,
    1678                                  const CoinIndexedVector * pi2, CoinIndexedVector * ,
     1678                                 const CoinIndexedVector * pi2,
    16791679                                 CoinIndexedVector * spare,
    16801680                                 double referenceIn, double devex,
  • trunk/Clp/src/ClpPlusMinusOneMatrix.hpp

    r1402 r1407  
    173173  virtual void transposeTimes2(const ClpSimplex * model,
    174174                               const CoinIndexedVector * pi1, CoinIndexedVector * dj1,
    175                                const CoinIndexedVector * pi2, CoinIndexedVector * dj2,
     175                               const CoinIndexedVector * pi2,
    176176                               CoinIndexedVector * spare,
    177177                               double referenceIn, double devex,
  • trunk/Clp/src/ClpSimplexDual.cpp

    r1402 r1407  
    17051705          //&&goodAccuracy()) {
    17061706          // If not in branch and bound etc save ray
    1707           if ((specialOptions_&(1024|4096))==0) {
     1707          delete [] ray_;
     1708          if ((specialOptions_&(1024|4096))==0||(specialOptions_&32)!=0) {
    17081709            // create ray anyway
    1709             delete [] ray_;
    17101710            ray_ = new double [ numberRows_];
    17111711            rowArray_[0]->expand(); // in case packed
    17121712            CoinMemcpyN(rowArray_[0]->denseVector(),numberRows_,ray_);
     1713          } else {
     1714            ray_ = NULL;
    17131715          }
    17141716          // If we have just factorized and infeasibility reasonable say infeas
Note: See TracChangeset for help on using the changeset viewer.