Changeset 2149


Ignore:
Timestamp:
Jun 25, 2015 4:17:28 PM (4 years ago)
Author:
forrest
Message:

add PE code

Location:
trunk/Clp/src
Files:
10 added
13 edited

Legend:

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

    r2147 r2149  
    21202120     parameters[numberParameters-1].append("partial");
    21212121     parameters[numberParameters-1].append("steep!est");
     2122     parameters[numberParameters-1].append("PEsteep!est");
     2123     parameters[numberParameters-1].append("PEdantzig");
    21222124     parameters[numberParameters-1].setLonghelp
    21232125     (
     
    21272129 are two variants which keep all weights updated but only scan a subset each iteration.\
    21282130 Partial switches this on while automatic decides at each iteration based on information\
    2129  about the factorization."
     2131 about the factorization. \n\
     2132** NEWS - the Positive Edge criterion has been added. \
     2133This selects incoming variables to try and avoid degenerate moves. See definition of psi."
    21302134     );
    21312135     parameters[numberParameters++] =
     
    31603164     parameters[numberParameters-1].append("change");
    31613165     parameters[numberParameters-1].append("sprint");
     3166     parameters[numberParameters-1].append("PEsteep!est");
     3167     parameters[numberParameters-1].append("PEdantzig");
    31623168     parameters[numberParameters-1].setLonghelp
    31633169     (
     
    31673173 are two variants which keep all weights updated but only scan a subset each iteration.\
    31683174 Partial switches this on while change initially does dantzig until the factorization\
    3169  becomes denser.  This is still a work in progress."
     3175 becomes denser.  This is still a work in progress. \n\
     3176** NEWS - the Positive Edge criterion has been added. \
     3177This selects incoming variables to try and avoid degenerate moves. Code \
     3178donated by Jeremy Omer.  See \
     3179Towhidi, M., Desrosiers, J., Soumis, F., The positive edge criterion within COIN-OR’s CLP. and \
     3180Omer, J., Towhidi, M., Soumis, F., The positive edge pricing rule for the dual simplex."
    31703181     );
    31713182     parameters[numberParameters++] =
     
    32033214  OSL had a heuristic to\
    32043215 adjust bounds, maybe we need that here."
     3216     );
     3217     CLP_PARAM_DBL_PSI,
     3218     parameters[numberParameters++] =
     3219          CbcOrClpParam("psi", "Two-dimension pricing factor for Positive edge",
     3220                        -1.1, 1.1, CLP_PARAM_DBL_PSI);
     3221     parameters[numberParameters-1].setDoubleValue(-0.5);
     3222     parameters[numberParameters-1].setLonghelp
     3223     (
     3224          "The Positive Edge criterion has been added to \
     3225select incoming variables to try and avoid degenerate moves. \
     3226Variables not in promising set have their infeasibility weight multiplied by psi \
     3227so 0.01 would mean that if there were any promising variables, then they would always be chosen, \
     3228while 1.0 effectively switches algorithm off. \
     3229There are two ways of switching on this feature.  One way is to set psi positive and then \
     3230the Positive Edge criterion will be used for Primal and Dual.  The other way is to select pesteep \
     3231in dualpivot choice (for example), then the absolute value of psi is used - default 0.5. \
     3232Until this settles down it is only implemented in clp. \
     3233Code donated by Jeremy Omer.  See \
     3234Towhidi, M., Desrosiers, J., Soumis, F., The positive edge criterion within COIN-OR’s CLP. and \
     3235Omer, J., Towhidi, M., Soumis, F., The positive edge pricing rule for the dual simplex."
    32053236     );
    32063237#endif
  • trunk/Clp/src/CbcOrClpParam.hpp

    r2070 r2149  
    5959     CLP_PARAM_DBL_RHSSCALE,
    6060     CLP_PARAM_DBL_ZEROTOLERANCE,
     61     CLP_PARAM_DBL_PSI,
    6162
    6263     CBC_PARAM_DBL_INFEASIBILITYWEIGHT = 51,
  • trunk/Clp/src/ClpDualRowSteepest.hpp

    r2070 r2149  
    125125     //---------------------------------------------------------------------------
    126126
    127 private:
    128      ///@name Private member data
     127protected:
     128     ///@name Protected member data
    129129     /** Status
    130130         0) Normal
  • trunk/Clp/src/ClpFactorization.cpp

    r2117 r2149  
    11491149     goDenseThreshold_ = -1;
    11501150     goSmallThreshold_ = -1;
     1151     doStatistics_ = true;
    11511152     memset(&shortestAverage_,0,3*(sizeof(double)+sizeof(int)));
    11521153}
     
    11711172     goDenseThreshold_ = rhs.goDenseThreshold_;
    11721173     goSmallThreshold_ = rhs.goSmallThreshold_;
     1174     doStatistics_ = rhs.doStatistics_;
    11731175     int goDense = 0;
    11741176#ifdef CLP_REUSE_ETAS
     
    12471249     goDenseThreshold_ = -1;
    12481250     goSmallThreshold_ = -1;
     1251     doStatistics_ = true;
    12491252     assert (!coinFactorizationA_ || !coinFactorizationB_);
    12501253     memset(&shortestAverage_,0,3*(sizeof(double)+sizeof(int)));
     
    12661269     goDenseThreshold_ = -1;
    12671270     goSmallThreshold_ = -1;
     1271     doStatistics_ = true;
    12681272#ifdef CLP_FACTORIZATION_INSTRUMENT
    12691273     factorization_instrument(1);
     
    13091313          goDenseThreshold_ = rhs.goDenseThreshold_;
    13101314          goSmallThreshold_ = rhs.goSmallThreshold_;
     1315          doStatistics_ = rhs.doStatistics_;
    13111316          memcpy(&shortestAverage_,&rhs.shortestAverage_,3*(sizeof(double)+sizeof(int)));
    13121317          if (rhs.coinFactorizationA_) {
     
    27992804          int returnCode;
    28002805          if (coinFactorizationA_) {
    2801                coinFactorizationA_->setCollectStatistics(true);
     2806               coinFactorizationA_->setCollectStatistics(doStatistics_);
    28022807               returnCode = coinFactorizationA_->updateColumn(regionSparse,
    28032808                            regionSparse2,
     
    29852990
    29862991          if (coinFactorizationA_) {
    2987                coinFactorizationA_->setCollectStatistics(true);
     2992               coinFactorizationA_->setCollectStatistics(doStatistics_);
    29882993               returnCode =  coinFactorizationA_->updateColumnTranspose(regionSparse,
    29892994                             regionSparse2);
  • trunk/Clp/src/ClpFactorization.hpp

    r2078 r2149  
    376376     /// Says whether to redo pivot order
    377377     bool needToReorder() const;
     378     /// To switch statistics on or off
     379     inline void doStatistics(bool trueFalse) const
     380     { doStatistics_ = trueFalse;}
    378381#ifndef SLIM_CLP
    379382     /// Says if a network basis
     
    427430     mutable int effectiveStartNumberU_;
    428431#endif
     432     /// To switch statistics on or off
     433     mutable bool doStatistics_;
    429434     //@}
    430435};
  • trunk/Clp/src/ClpPrimalColumnSteepest.hpp

    r1665 r2149  
    195195     //---------------------------------------------------------------------------
    196196
    197 private:
    198      ///@name Private member data
     197protected:
     198     ///@name Protected member data
    199199     // Update weight
    200200     double devex_;
  • trunk/Clp/src/ClpSimplex.cpp

    r2146 r2149  
    795795           largestPrimalError_=0.0;
    796796           largestDualError_=0.0;
    797            returnCode=1;
     797           returnCode=-123456789;
    798798         }
    799799       }
  • trunk/Clp/src/ClpSimplex.hpp

    r2146 r2149  
    11221122          return valueOut_;
    11231123     }
     1124     /// Lower of out variable
     1125     inline double lowerOut() const {
     1126          return lowerOut_ ;
     1127     }
     1128     /// Upper of out variable
     1129     inline double upperOut() const {
     1130          return upperOut_ ;
     1131     }
    11241132     /// Set value of out variable
    11251133     inline void setValueOut(double value) {
     
    12051213          return theta_;
    12061214     }
     1215     /// Lower Bound on In variable
     1216     inline double lowerIn() const
     1217     { return lowerIn_;}
     1218     /// Value of In variable
     1219     inline double valueIn() const
     1220     { return valueIn_;}
     1221     /// Upper Bound on In variable
     1222     inline double upperIn() const
     1223     { return upperIn_;}
    12071224     /** Best possible improvement using djs (primal) or
    12081225         obj change by flipping bounds to make dual feasible (dual) */
     
    16091626     /// Sequence of In variable
    16101627     int sequenceIn_;
    1611      /// Direction of In, 1 going up, -1 going down, 0 not a clude
     1628     /// Direction of In, 1 going up, -1 going down, 0 not a clue
    16121629     int directionIn_;
    16131630     /// Sequence of Out variable
  • trunk/Clp/src/ClpSimplexDual.cpp

    r2146 r2149  
    40574057                         // If we have done pivots and things look bad set alpha_ 0.0 to force factorization
    40584058                         if (sumBadPivots > 1.0e4) {
    4059                               if (handler_->logLevel() > 1)
     4059                              if (handler_->logLevel() > 3)
    40604060                                   *handler_ << "maybe forcing re-factorization - sum " << sumBadPivots << " " << factorization_->pivots() << " pivots" << CoinMessageEol;
    40614061                              if(factorization_->pivots() > 3) {
     
    42554255     if ((badSumPivots ||
    42564256               fabs(theta_ * badFree) > 10.0 * dualTolerance_) && factorization_->pivots()) {
    4257           if (handler_->logLevel() > 1)
     4257          if (handler_->logLevel() > 3)
    42584258               *handler_ << "forcing re-factorization" << CoinMessageEol;
    42594259          //printf("badSumPivots %g theta_ %g badFree %g\n",badSumPivots,theta_,badFree);
  • trunk/Clp/src/ClpSimplexPrimal.cpp

    r2080 r2149  
    989989               problemStatus_ = tentativeStatus;
    990990               doFactorization = true;
    991                if (numberPivots) {
     991               if (numberPivots||numberThrownOut==-123456789) {
    992992                    // go back
    993993                    // trouble - restore solution
  • trunk/Clp/src/ClpSolver.cpp

    r2146 r2149  
    5555#include "ClpDualRowSteepest.hpp"
    5656#include "ClpDualRowDantzig.hpp"
     57#include "ClpPEDualRowSteepest.hpp"
     58#include "ClpPEDualRowDantzig.hpp"
     59#include "ClpPEPrimalColumnSteepest.hpp"
     60#include "ClpPEPrimalColumnDantzig.hpp"
    5761#include "ClpLinearObjective.hpp"
    5862#include "ClpPrimalColumnSteepest.hpp"
     
    690694                                        models[iModel].setDualRowPivotAlgorithm(steep2);
    691695#endif
    692                                    } else {
     696                                   } else if (action == 3) {
    693697                                        ClpDualRowSteepest steep;
    694698                                        thisModel->setDualRowPivotAlgorithm(steep);
     
    697701                                        models[iModel].setDualRowPivotAlgorithm(steep2);
    698702#endif
     703                                   } else if (action == 4) {
     704                                     // Positive edge steepest
     705                                     ClpPEDualRowSteepest p(fabs(parameters[whichParam(CLP_PARAM_DBL_PSI, numberParameters, parameters)].doubleValue()));
     706                                     thisModel->setDualRowPivotAlgorithm(p);
     707                                   } else if (action == 5) {
     708                                     // Positive edge Dantzig
     709                                     ClpPEDualRowDantzig p(fabs(parameters[whichParam(CLP_PARAM_DBL_PSI, numberParameters, parameters)].doubleValue()));
     710                                     thisModel->setDualRowPivotAlgorithm(p);
    699711                                   }
    700712                                   break;
     
    721733                                        ClpPrimalColumnSteepest steep(10);
    722734                                        thisModel->setPrimalColumnPivotAlgorithm(steep);
     735                                   } else if (action == 7) {
     736                                     // Positive edge steepest
     737                                     ClpPEPrimalColumnSteepest p(fabs(parameters[whichParam(CLP_PARAM_DBL_PSI, numberParameters, parameters)].doubleValue()));
     738                                     thisModel->setPrimalColumnPivotAlgorithm(p);
     739                                   } else if (action == 8) {
     740                                     // Positive edge Dantzig
     741                                     ClpPEPrimalColumnDantzig p(fabs(parameters[whichParam(CLP_PARAM_DBL_PSI, numberParameters, parameters)].doubleValue()));
     742                                     thisModel->setPrimalColumnPivotAlgorithm(p);
    723743                                   }
    724744                                   break;
     
    824844                         case CBC_PARAM_ACTION_BAB:
    825845                              if (goodModels[iModel]) {
     846#ifndef ABC_INHERIT
     847                                ClpSimplex * clpModel = models+iModel;
     848#else
     849                                ClpSimplex * clpModel = static_cast<ClpSimplex *>(models+iModel);
     850#endif
    826851                                //openblas_set_num_threads(4);
     852                                // deal with positive edge
     853                                double psi = parameters[whichParam(CLP_PARAM_DBL_PSI, numberParameters, parameters)].doubleValue();
     854                                if (psi>0.0) {
     855                                  ClpDualRowPivot * dualp = clpModel->dualRowPivot();
     856                                  ClpDualRowSteepest * d1 = dynamic_cast<ClpDualRowSteepest *>(dualp);
     857                                  ClpDualRowDantzig * d2 = dynamic_cast<ClpDualRowDantzig *>(dualp);
     858                                  if (d1) {
     859                                    ClpPEDualRowSteepest p(psi,d1->mode());
     860                                    clpModel->setDualRowPivotAlgorithm(p);
     861                                  } else if (d2) {
     862                                    ClpPEDualRowDantzig p(psi);
     863                                    clpModel->setDualRowPivotAlgorithm(p);
     864                                  }
     865                                  ClpPrimalColumnPivot * primalp = clpModel->primalColumnPivot();
     866                                  ClpPrimalColumnSteepest * p1 = dynamic_cast<ClpPrimalColumnSteepest *>(primalp);
     867                                  ClpPrimalColumnDantzig * p2 = dynamic_cast<ClpPrimalColumnDantzig *>(primalp);
     868                                  if (p1) {
     869                                    ClpPEPrimalColumnSteepest p(psi,p1->mode());
     870                                    clpModel->setPrimalColumnPivotAlgorithm(p);
     871                                  } else if (p2) {
     872                                    ClpPEPrimalColumnDantzig p(psi);
     873                                    clpModel->setPrimalColumnPivotAlgorithm(p);
     874                                  }
     875                                }
    827876                                if (type==CLP_PARAM_ACTION_EITHERSIMPLEX||
    828877                                    type==CBC_PARAM_ACTION_BAB)
  • trunk/Clp/src/Makefile.am

    r2030 r2149  
    6666        ClpSolve.cpp ClpSolve.hpp \
    6767        Idiot.cpp Idiot.hpp \
    68         IdiSolve.cpp
     68        IdiSolve.cpp \
     69        ClpPESimplex.cpp ClpPESimplex.hpp \
     70        ClpPEPrimalColumnDantzig.cpp ClpPEPrimalColumnDantzig.hpp \
     71        ClpPEPrimalColumnSteepest.cpp ClpPEPrimalColumnSteepest.hpp \
     72        ClpPEDualRowDantzig.cpp ClpPEDualRowDantzig.hpp \
     73        ClpPEDualRowSteepest.cpp ClpPEDualRowSteepest.hpp
    6974
    7075if COIN_HAS_ABC
     
    237242        ClpSolve.hpp \
    238243        CbcOrClpParam.hpp \
    239         Idiot.hpp
     244        Idiot.hpp \
     245        ClpPESimplex.hpp \
     246        ClpPEPrimalColumnDantzig.hpp \
     247        ClpPEPrimalColumnSteepest.hpp \
     248        ClpPEDualRowDantzig.hpp \
     249        ClpPEDualRowSteepest.hpp
    240250
    241251if COIN_HAS_ABC
  • trunk/Clp/src/Makefile.in

    r2129 r2149  
    166166        ClpSimplexOther.hpp ClpSimplexPrimal.cpp ClpSimplexPrimal.hpp \
    167167        ClpSolve.cpp ClpSolve.hpp Idiot.cpp Idiot.hpp IdiSolve.cpp \
    168         AbcCommon.hpp AbcDualRowDantzig.cpp AbcDualRowDantzig.hpp \
    169         AbcDualRowPivot.cpp AbcDualRowPivot.hpp AbcDualRowSteepest.cpp \
    170         AbcDualRowSteepest.hpp AbcMatrix.cpp AbcMatrix.hpp \
    171         AbcNonLinearCost.cpp AbcNonLinearCost.hpp \
     168        ClpPESimplex.cpp ClpPESimplex.hpp ClpPEPrimalColumnDantzig.cpp \
     169        ClpPEPrimalColumnDantzig.hpp ClpPEPrimalColumnSteepest.cpp \
     170        ClpPEPrimalColumnSteepest.hpp ClpPEDualRowDantzig.cpp \
     171        ClpPEDualRowDantzig.hpp ClpPEDualRowSteepest.cpp \
     172        ClpPEDualRowSteepest.hpp AbcCommon.hpp AbcDualRowDantzig.cpp \
     173        AbcDualRowDantzig.hpp AbcDualRowPivot.cpp AbcDualRowPivot.hpp \
     174        AbcDualRowSteepest.cpp AbcDualRowSteepest.hpp AbcMatrix.cpp \
     175        AbcMatrix.hpp AbcNonLinearCost.cpp AbcNonLinearCost.hpp \
    172176        AbcPrimalColumnDantzig.cpp AbcPrimalColumnDantzig.hpp \
    173177        AbcPrimalColumnPivot.cpp AbcPrimalColumnPivot.hpp \
     
    251255        ClpQuadraticObjective.lo ClpSimplex.lo ClpSimplexDual.lo \
    252256        ClpSimplexNonlinear.lo ClpSimplexOther.lo ClpSimplexPrimal.lo \
    253         ClpSolve.lo Idiot.lo IdiSolve.lo $(am__objects_1) \
     257        ClpSolve.lo Idiot.lo IdiSolve.lo ClpPESimplex.lo \
     258        ClpPEPrimalColumnDantzig.lo ClpPEPrimalColumnSteepest.lo \
     259        ClpPEDualRowDantzig.lo ClpPEDualRowSteepest.lo $(am__objects_1) \
    254260        $(am__objects_2) $(am__objects_3) $(am__objects_4) \
    255261        $(am__objects_5) $(am__objects_6)
     
    302308        ClpSimplexNonlinear.hpp ClpSimplexOther.hpp ClpSimplexDual.hpp \
    303309        ClpSimplexPrimal.hpp ClpSolve.hpp CbcOrClpParam.hpp Idiot.hpp \
    304         AbcSimplex.hpp CoinAbcCommon.hpp AbcCommon.hpp \
    305         AbcNonLinearCost.hpp ClpCholeskyUfl.hpp ClpCholeskyMumps.hpp \
    306         ClpCholeskyWssmp.hpp ClpCholeskyWssmpKKT.hpp CbcOrClpParam.cpp
     310        ClpPESimplex.hpp ClpPEPrimalColumnDantzig.hpp \
     311        ClpPEPrimalColumnSteepest.hpp ClpPEDualRowDantzig.hpp \
     312        ClpPEDualRowSteepest.hpp AbcSimplex.hpp CoinAbcCommon.hpp \
     313        AbcCommon.hpp AbcNonLinearCost.hpp ClpCholeskyUfl.hpp \
     314        ClpCholeskyMumps.hpp ClpCholeskyWssmp.hpp \
     315        ClpCholeskyWssmpKKT.hpp CbcOrClpParam.cpp
    307316includecoinHEADERS_INSTALL = $(INSTALL_HEADER)
    308317HEADERS = $(includecoin_HEADERS)
     
    433442GLPK_LIBS = @GLPK_LIBS@
    434443GLPK_LIBS_INSTALLED = @GLPK_LIBS_INSTALLED@
     444GREP = @GREP@
    435445HAVE_EXTERNALS_FALSE = @HAVE_EXTERNALS_FALSE@
    436446HAVE_EXTERNALS_TRUE = @HAVE_EXTERNALS_TRUE@
     
    499509PACKAGE_STRING = @PACKAGE_STRING@
    500510PACKAGE_TARNAME = @PACKAGE_TARNAME@
     511PACKAGE_URL = @PACKAGE_URL@
    501512PACKAGE_VERSION = @PACKAGE_VERSION@
    502513PATH_SEPARATOR = @PATH_SEPARATOR@
     
    521532abs_source_dir = @abs_source_dir@
    522533ac_c_preproc_warn_flag = @ac_c_preproc_warn_flag@
    523 ac_ct_AR = @ac_ct_AR@
    524534ac_ct_CC = @ac_ct_CC@
    525535ac_ct_CXX = @ac_ct_CXX@
    526536ac_ct_F77 = @ac_ct_F77@
    527 ac_ct_PKG_CONFIG = @ac_ct_PKG_CONFIG@
    528 ac_ct_RANLIB = @ac_ct_RANLIB@
    529 ac_ct_STRIP = @ac_ct_STRIP@
    530537ac_cxx_preproc_warn_flag = @ac_cxx_preproc_warn_flag@
    531538am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
     
    552559coin_have_latex = @coin_have_latex@
    553560datadir = @datadir@
     561datarootdir = @datarootdir@
     562docdir = @docdir@
     563dvidir = @dvidir@
    554564exec_prefix = @exec_prefix@
    555565have_autoconf = @have_autoconf@
     
    562572host_os = @host_os@
    563573host_vendor = @host_vendor@
     574htmldir = @htmldir@
    564575includedir = @includedir@
    565576infodir = @infodir@
     
    567578libdir = @libdir@
    568579libexecdir = @libexecdir@
     580localedir = @localedir@
    569581localstatedir = @localstatedir@
    570582mandir = @mandir@
    571583mkdir_p = @mkdir_p@
    572584oldincludedir = @oldincludedir@
     585pdfdir = @pdfdir@
    573586prefix = @prefix@
    574587program_transform_name = @program_transform_name@
     588psdir = @psdir@
    575589sbindir = @sbindir@
    576590sharedstatedir = @sharedstatedir@
     
    623637        ClpSimplexOther.hpp ClpSimplexPrimal.cpp ClpSimplexPrimal.hpp \
    624638        ClpSolve.cpp ClpSolve.hpp Idiot.cpp Idiot.hpp IdiSolve.cpp \
    625         $(am__append_1) $(am__append_2) $(am__append_3) \
    626         $(am__append_4) $(am__append_5) $(am__append_6)
     639        ClpPESimplex.cpp ClpPESimplex.hpp ClpPEPrimalColumnDantzig.cpp \
     640        ClpPEPrimalColumnDantzig.hpp ClpPEPrimalColumnSteepest.cpp \
     641        ClpPEPrimalColumnSteepest.hpp ClpPEDualRowDantzig.cpp \
     642        ClpPEDualRowDantzig.hpp ClpPEDualRowSteepest.cpp \
     643        ClpPEDualRowSteepest.hpp $(am__append_1) $(am__append_2) \
     644        $(am__append_3) $(am__append_4) $(am__append_5) \
     645        $(am__append_6)
    627646libClpSolver_la_SOURCES = \
    628647        ClpSolver.cpp \
     
    687706        ClpSimplexNonlinear.hpp ClpSimplexOther.hpp ClpSimplexDual.hpp \
    688707        ClpSimplexPrimal.hpp ClpSolve.hpp CbcOrClpParam.hpp Idiot.hpp \
    689         $(am__append_9) $(am__append_10) $(am__append_11) \
    690         $(am__append_12) $(am__append_13) $(am__append_14) \
    691         CbcOrClpParam.cpp
     708        ClpPESimplex.hpp ClpPEPrimalColumnDantzig.hpp \
     709        ClpPEPrimalColumnSteepest.hpp ClpPEDualRowDantzig.hpp \
     710        ClpPEDualRowSteepest.hpp $(am__append_9) $(am__append_10) \
     711        $(am__append_11) $(am__append_12) $(am__append_13) \
     712        $(am__append_14) CbcOrClpParam.cpp
    692713all: config.h config_clp.h
    693714        $(MAKE) $(AM_MAKEFLAGS) all-am
     
    912933@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MyEventHandler.Plo@am__quote@
    913934@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MyMessageHandler.Plo@am__quote@
     935@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ClpPEDualRowDantzig.Plo@am__quote@
     936@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ClpPEDualRowSteepest.Plo@am__quote@
     937@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ClpPEPrimalColumnDantzig.Plo@am__quote@
     938@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ClpPEPrimalColumnSteepest.Plo@am__quote@
     939@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ClpPESimplex.Plo@am__quote@
    914940@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unitTest.Plo@am__quote@
    915941
Note: See TracChangeset for help on using the changeset viewer.