Changeset 409


Ignore:
Timestamp:
Aug 23, 2004 3:19:24 AM (16 years ago)
Author:
forrest
Message:

stuff

Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/ClpModel.cpp

    r399 r409  
    11051105  delete [] columnScale_;
    11061106  columnScale_ = NULL;
     1107}
     1108// chgRowLower
     1109void
     1110ClpModel::chgRowLower(const double * rowLower)
     1111{
     1112  int numberRows = numberRows_;
     1113  int iRow;
     1114  if (rowLower) {
     1115    for (iRow = 0; iRow < numberRows; iRow++) {
     1116      double value = rowLower[iRow];
     1117      if (value<-1.0e20)
     1118                 value = -COIN_DBL_MAX;
     1119      rowLower_[iRow]= value;
     1120    }
     1121  } else {
     1122    for (iRow = 0; iRow < numberRows; iRow++) {
     1123      rowLower_[iRow]= -COIN_DBL_MAX;
     1124    }
     1125  }
     1126}
     1127// chgRowUpper
     1128void
     1129ClpModel::chgRowUpper(const double * rowUpper)
     1130{
     1131  int numberRows = numberRows_;
     1132  int iRow;
     1133  if (rowUpper) {
     1134    for (iRow = 0; iRow < numberRows; iRow++) {
     1135      double value = rowUpper[iRow];
     1136      if (value>1.0e20)
     1137                 value = COIN_DBL_MAX;
     1138      rowUpper_[iRow]= value;
     1139    }
     1140  } else {
     1141    for (iRow = 0; iRow < numberRows; iRow++) {
     1142      rowUpper_[iRow]= COIN_DBL_MAX;;
     1143    }
     1144  }
     1145}
     1146// chgColumnLower
     1147void
     1148ClpModel::chgColumnLower(const double * columnLower)
     1149{
     1150  int numberColumns = numberColumns_;
     1151  int iColumn;
     1152  if (columnLower) {
     1153    for (iColumn = 0; iColumn < numberColumns; iColumn++) {
     1154      double value = columnLower[iColumn];
     1155      if (value<-1.0e20)
     1156                 value = -COIN_DBL_MAX;
     1157      columnLower_[iColumn]= value;
     1158    }
     1159  } else {
     1160    for (iColumn = 0; iColumn < numberColumns; iColumn++) {
     1161      columnLower_[iColumn]= 0.0;
     1162    }
     1163  }
     1164}
     1165// chgColumnUpper
     1166void
     1167ClpModel::chgColumnUpper(const double * columnUpper)
     1168{
     1169  int numberColumns = numberColumns_;
     1170  int iColumn;
     1171  if (columnUpper) {
     1172    for (iColumn = 0; iColumn < numberColumns; iColumn++) {
     1173      double value = columnUpper[iColumn];
     1174      if (value>1.0e20)
     1175                 value = COIN_DBL_MAX;
     1176      columnUpper_[iColumn]= value;
     1177    }
     1178  } else {
     1179    for (iColumn = 0; iColumn < numberColumns; iColumn++) {
     1180      columnUpper_[iColumn]= COIN_DBL_MAX;;
     1181    }
     1182  }
     1183}
     1184// chgObjCoefficients
     1185void
     1186ClpModel::chgObjCoefficients(const double * objIn)
     1187{
     1188  double * obj = objective();
     1189  int numberColumns = numberColumns_;
     1190  int iColumn;
     1191  if (objIn) {
     1192    for (iColumn = 0; iColumn < numberColumns; iColumn++) {
     1193      obj[iColumn] = objIn[iColumn];
     1194    }
     1195  } else {
     1196    for (iColumn = 0; iColumn < numberColumns; iColumn++) {
     1197      obj[iColumn]= 0.0;
     1198    }
     1199  }
    11071200}
    11081201// Infeasibility/unbounded ray (NULL returned if none/wrong)
  • trunk/Clp_C_Interface.cpp

    r406 r409  
    324324                            columnStarts,rows,elements);
    325325}
     326/* Change row lower bounds */
     327CLPLIBAPI void CLPLINKAGE
     328Clp_chgRowLower(Clp_Simplex * model, const double * rowLower)
     329{
     330  model->model_->chgRowLower(rowLower);
     331}
     332/* Change row upper bounds */
     333CLPLIBAPI void CLPLINKAGE
     334Clp_chgRowUpper(Clp_Simplex * model, const double * rowUpper)
     335{
     336  model->model_->chgRowUpper(rowUpper);
     337}
     338/* Change column lower bounds */
     339CLPLIBAPI void CLPLINKAGE
     340Clp_chgColumnLower(Clp_Simplex * model, const double * columnLower)
     341{
     342  model->model_->chgColumnLower(columnLower);
     343}
     344/* Change column upper bounds */
     345CLPLIBAPI void CLPLINKAGE
     346Clp_chgColumnUpper(Clp_Simplex * model, const double * columnUpper)
     347{
     348  model->model_->chgColumnUpper(columnUpper);
     349}
     350/* Change objective coefficients */
     351CLPLIBAPI void CLPLINKAGE
     352Clp_chgObjCoefficients(Clp_Simplex * model, const double * objIn)
     353{
     354  model->model_->chgObjCoefficients(objIn);
     355}
    326356/* Drops names - makes lengthnames 0 and names empty */
    327357CLPLIBAPI void CLPLINKAGE
  • trunk/include/ClpModel.hpp

    r407 r409  
    157157                  const double * objective,
    158158               const CoinPackedVectorBase * const * columns);
     159  /** Change row lower bounds */
     160  void chgRowLower(const double * rowLower);
     161  /** Change row upper bounds */
     162  void chgRowUpper(const double * rowUpper);
     163  /** Change column lower bounds */
     164  void chgColumnLower(const double * columnLower);
     165  /** Change column upper bounds */
     166  void chgColumnUpper(const double * columnUpper);
     167  /** Change objective coefficients */
     168  void chgObjCoefficients(const double * objIn);
    159169  /** Borrow model.  This is so we don't have to copy large amounts
    160170      of data around.  It assumes a derived class wants to overwrite
  • trunk/include/Clp_C_Interface.h

    r406 r409  
    7979                  const int * columnStarts, const int * rows,
    8080                  const double * elements);
     81  /** Change row lower bounds */
     82  CLPLIBAPI void CLPLINKAGE Clp_chgRowLower(Clp_Simplex * model, const double * rowLower);
     83  /** Change row upper bounds */
     84  CLPLIBAPI void CLPLINKAGE Clp_chgRowUpper(Clp_Simplex * model, const double * rowUpper);
     85  /** Change column lower bounds */
     86  CLPLIBAPI void CLPLINKAGE Clp_chgColumnLower(Clp_Simplex * model, const double * columnLower);
     87  /** Change column upper bounds */
     88  CLPLIBAPI void CLPLINKAGE Clp_chgColumnUpper(Clp_Simplex * model, const double * columnUpper);
     89  /** Change objective coefficients */
     90  CLPLIBAPI void CLPLINKAGE Clp_chgObjCoefficients(Clp_Simplex * model, const double * objIn);
    8191  /** Drops names - makes lengthnames 0 and names empty */
    8292  CLPLIBAPI void CLPLINKAGE Clp_dropNames(Clp_Simplex * model);
Note: See TracChangeset for help on using the changeset viewer.