Changeset 996 for branches


Ignore:
Timestamp:
May 2, 2007 5:50:48 AM (12 years ago)
Author:
forrest
Message:

Lou's names and start nonlinear constraints

Location:
branches/devel/Clp/src
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • branches/devel/Clp/src/ClpCholeskyDense.cpp

    r895 r996  
    724724  }
    725725}
     726#ifdef CHOL_USING_BLAS
     727// using simple blas interface
     728extern "C"
     729{
     730  /** BLAS Fortran subroutine DGEMM. */
     731  void F77_FUNC(dgemm,DGEMM)(char* transa, char* transb,
     732                             ipfint *m, ipfint *n, ipfint *k,
     733                             const double *alpha, const double *a, ipfint *lda,
     734                             const double *b, ipfint *ldb, const double *beta,
     735                             double *c, ipfint *ldc,
     736                             int transa_len, int transb_len);
     737}
     738#endif
    726739/* Non leaf recursive rectangle rectangle update,
    727740   nUnder is number of rows in iBlock,
     
    734747            int numberBlocks)
    735748{
     749#ifdef CHOL_USING_BLAS
     750    recRecLeaf(above , aUnder ,  aOther, diagonal,work, nUnderK);
     751void
     752ClpCholeskyDense::recRecLeaf(longDouble * above,
     753                             longDouble * aUnder, longDouble *aOther, longDouble * diagonal, longDouble * work,
     754                             int nUnder)
     755  aa = aOther-BLOCK;
     756  for (j = 0; j < BLOCK; j ++) {
     757    aa+=BLOCK;
     758    for (i=0;i< nUnderK;i++) {
     759      longDouble t00=aa[i+0*BLOCK];
     760      for (k=0;k<BLOCK;k++) {
     761        longDouble a00=aUnder[i+k*BLOCK]*work[k];
     762        t00 -= a00 * above[j + k * BLOCK];
     763      }
     764      aa[i]=t00;
     765    }
     766  return;
     767#endif
    736768  if (nDo<=BLOCK&&nUnder<=BLOCK&&nUnderK<=BLOCK) {
     769    assert (nDo==BLOCK&&nUnder==BLOCK);
    737770    recRecLeaf(above , aUnder ,  aOther, diagonal,work, nUnderK);
    738771  } else if (nDo<=nUnderK&&nUnder<=nUnderK) {
  • branches/devel/Clp/src/ClpModel.cpp

    r989 r996  
    8787  intParam_[ClpMaxNumIteration] = 2147483647;
    8888  intParam_[ClpMaxNumIterationHotStart] = 9999999;
     89  intParam_[ClpNameDiscipline] = 0;
    8990
    9091  dblParam_[ClpDualObjectiveLimit] = COIN_DBL_MAX;
     
    649650  intParam_[ClpMaxNumIterationHotStart] =
    650651    rhs.intParam_[ClpMaxNumIterationHotStart];
     652  intParam_[ClpNameDiscipline] = rhs.intParam_[ClpNameDiscipline] ;
    651653
    652654  dblParam_[ClpDualObjectiveLimit] = rhs.dblParam_[ClpDualObjectiveLimit];
     
    826828    break;
    827829  case ClpMaxNumIterationHotStart:
     830    if (value < 0)
     831      return false;
     832    break;
     833  case ClpNameDiscipline:
    828834    if (value < 0)
    829835      return false;
     
    27642770  intParam_[ClpMaxNumIterationHotStart] =
    27652771    rhs->intParam_[ClpMaxNumIterationHotStart];
     2772  intParam_[ClpNameDiscipline] = rhs->intParam_[ClpNameDiscipline] ;
    27662773
    27672774  dblParam_[ClpDualObjectiveLimit] = rhs->dblParam_[ClpDualObjectiveLimit];
  • branches/devel/Clp/src/ClpParameters.hpp

    r754 r996  
    1515      terminating */
    1616  ClpMaxNumIterationHotStart,
     17  /** The name discipline; specifies how the solver will handle row and
     18      column names.
     19    - 0: Auto names: Names cannot be set by the client. Names of the form
     20         Rnnnnnnn or Cnnnnnnn are generated on demand when a name for a
     21         specific row or column is requested; nnnnnnn is derived from the row
     22         or column index. Requests for a vector of names return a vector with
     23         zero entries.
     24    - 1: Lazy names: Names supplied by the client are retained. Names of the
     25         form Rnnnnnnn or Cnnnnnnn are generated on demand if no name has been
     26         supplied by the client. Requests for a vector of names return a
     27         vector sized to the largest index of a name supplied by the client;
     28         some entries in the vector may be null strings.
     29    - 2: Full names: Names supplied by the client are retained. Names of the
     30         form Rnnnnnnn or Cnnnnnnn are generated on demand if no name has been
     31         supplied by the client. Requests for a vector of names return a
     32         vector sized to match the constraint system, and all entries will
     33         contain either the name specified by the client or a generated name.
     34  */
     35  ClpNameDiscipline,
    1736  /** Just a marker, so that we can allocate a static sized array to store
    1837      parameters. */
  • branches/devel/Clp/src/ClpSimplexPrimal.cpp

    r989 r996  
    13231323    CoinMemcpyN(columnActivityWork_,numberColumns_,savedSolution_);
    13241324  }
     1325  // see if in Cbc etc
     1326  bool inCbcOrOther = (specialOptions_&0x03000000)!=0;
     1327  bool disaster=false;
     1328  if (disasterArea_&&inCbcOrOther&&disasterArea_->check()) {
     1329    disasterArea_->saveInfo();
     1330    disaster=true;
     1331  }
     1332  if (disaster)
     1333    problemStatus_=3;
    13251334  if (doFactorization) {
    13261335    // restore weights (if saved) - also recompute infeasibility list
  • branches/devel/Clp/src/Makefile.am

    r837 r996  
    2323        ClpCholeskyDense.cpp ClpCholeskyDense.hpp \
    2424        ClpCholeskyUfl.cpp ClpCholeskyUfl.hpp \
     25        ClpConstraint.cpp ClpConstraint.hpp \
     26        ClpConstraintLinear.cpp ClpConstraintLinear.hpp \
    2527        Clp_C_Interface.cpp Clp_C_Interface.h \
    2628        ClpDualRowDantzig.cpp ClpDualRowDantzig.hpp \
     
    119121        ClpCholeskyDense.hpp \
    120122        ClpCholeskyWssmp.hpp \
     123        ClpConstraint.hpp \
     124        ClpConstraintLinear.hpp \
    121125        ClpDualRowDantzig.hpp \
    122126        ClpDualRowPivot.hpp \
  • branches/devel/Clp/src/Makefile.in

    r918 r996  
    6969libClp_la_LIBADD =
    7070am_libClp_la_OBJECTS = ClpCholeskyBase.lo ClpCholeskyDense.lo \
    71         ClpCholeskyUfl.lo Clp_C_Interface.lo ClpDualRowDantzig.lo \
    72         ClpDualRowPivot.lo ClpDualRowSteepest.lo ClpDummyMatrix.lo \
    73         ClpDynamicExampleMatrix.lo ClpDynamicMatrix.lo \
    74         ClpEventHandler.lo ClpFactorization.lo ClpGubDynamicMatrix.lo \
    75         ClpGubMatrix.lo ClpHelperFunctions.lo ClpInterior.lo \
    76         ClpLinearObjective.lo ClpMatrixBase.lo ClpMessage.lo \
    77         ClpModel.lo ClpNetworkBasis.lo ClpNetworkMatrix.lo \
    78         ClpNonLinearCost.lo ClpObjective.lo ClpPackedMatrix.lo \
    79         ClpPlusMinusOneMatrix.lo ClpPredictorCorrector.lo \
    80         ClpPresolve.lo ClpPrimalColumnDantzig.lo \
    81         ClpPrimalColumnPivot.lo ClpPrimalColumnSteepest.lo \
    82         ClpQuadraticObjective.lo ClpSimplex.lo ClpSimplexDual.lo \
    83         ClpSimplexNonlinear.lo ClpSimplexOther.lo ClpSimplexPrimal.lo \
    84         ClpSolve.lo Idiot.lo IdiSolve.lo
     71        ClpCholeskyUfl.lo ClpCholeskyWssmp.lo ClpCholeskyWssmpKKT.lo \
     72        ClpConstraint.lo ClpConstraintLinear.lo Clp_C_Interface.lo \
     73        ClpDualRowDantzig.lo ClpDualRowPivot.lo ClpDualRowSteepest.lo \
     74        ClpDummyMatrix.lo ClpDynamicExampleMatrix.lo \
     75        ClpDynamicMatrix.lo ClpEventHandler.lo ClpFactorization.lo \
     76        ClpGubDynamicMatrix.lo ClpGubMatrix.lo ClpHelperFunctions.lo \
     77        ClpInterior.lo ClpLinearObjective.lo ClpMatrixBase.lo \
     78        ClpMessage.lo ClpModel.lo ClpNetworkBasis.lo \
     79        ClpNetworkMatrix.lo ClpNonLinearCost.lo ClpObjective.lo \
     80        ClpPackedMatrix.lo ClpPlusMinusOneMatrix.lo \
     81        ClpPredictorCorrector.lo ClpPresolve.lo \
     82        ClpPrimalColumnDantzig.lo ClpPrimalColumnPivot.lo \
     83        ClpPrimalColumnSteepest.lo ClpQuadraticObjective.lo \
     84        ClpSimplex.lo ClpSimplexDual.lo ClpSimplexNonlinear.lo \
     85        ClpSimplexOther.lo ClpSimplexPrimal.lo ClpSolve.lo Idiot.lo \
     86        IdiSolve.lo
    8587libClp_la_OBJECTS = $(am_libClp_la_OBJECTS)
    8688binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
     
    274276        ClpCholeskyDense.cpp ClpCholeskyDense.hpp \
    275277        ClpCholeskyUfl.cpp ClpCholeskyUfl.hpp \
     278        ClpCholeskyWssmp.cpp ClpCholeskyWssmp.hpp \
     279        ClpCholeskyWssmpKKT.cpp ClpCholeskyWssmpKKT.hpp \
     280        ClpConstraint.cpp ClpConstraint.hpp \
     281        ClpConstraintLinear.cpp ClpConstraintLinear.hpp \
    276282        Clp_C_Interface.cpp Clp_C_Interface.h \
    277283        ClpDualRowDantzig.cpp ClpDualRowDantzig.hpp \
     
    363369        ClpCholeskyDense.hpp \
    364370        ClpCholeskyWssmp.hpp \
     371        ClpConstraint.hpp \
     372        ClpConstraintLinear.hpp \
    365373        ClpDualRowDantzig.hpp \
    366374        ClpDualRowPivot.hpp \
     
    506514@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ClpCholeskyDense.Plo@am__quote@
    507515@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ClpCholeskyUfl.Plo@am__quote@
     516@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ClpCholeskyWssmp.Plo@am__quote@
     517@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ClpCholeskyWssmpKKT.Plo@am__quote@
     518@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ClpConstraint.Plo@am__quote@
     519@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ClpConstraintLinear.Plo@am__quote@
    508520@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ClpDualRowDantzig.Plo@am__quote@
    509521@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ClpDualRowPivot.Plo@am__quote@
Note: See TracChangeset for help on using the changeset viewer.