COIN-OR::LEMON - Graph Library

Changeset 2361:f2ef1aa8189a in lemon-0.x


Ignore:
Timestamp:
02/14/07 14:50:25 (13 years ago)
Author:
athos
Branch:
default
Phase:
public
Convert:
svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@3167
Message:

Implemented virtual functions of class LpCplex?.

Location:
lemon
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • lemon/lp_cplex.cc

    r2328 r2361  
    148148  }
    149149
     150  LpCplex::Value LpCplex::_getCoeff(int row, int col)
     151  {
     152    LpCplex::Value value;
     153    CPXgetcoef(env, lp, row, col, &value);
     154    return value;
     155  }
     156
    150157  void LpCplex::_setColLowerBound(int i, Value value)
    151158  {
     
    159166 
    160167  }
     168
     169  LpCplex::Value LpCplex::_getColLowerBound(int i)
     170  {
     171    LpCplex::Value x;
     172    CPXgetlb (env, lp, &x, i, i);
     173    return x;
     174  }
    161175 
    162176  void LpCplex::_setColUpperBound(int i, Value value)
     
    169183    bd[0]=value;
    170184    status = CPXchgbds(env, lp, 1, indices, lu, bd);
     185  }
     186
     187  LpCplex::Value LpCplex::_getColUpperBound(int i)
     188  {
     189    LpCplex::Value x;
     190    CPXgetub (env, lp, &x, i, i);
     191    return x;
    171192  }
    172193
     
    243264//   }
    244265 
     266  void LpCplex::_getRowBounds(int i, Value &lb, Value &ub)
     267  {
     268    char sense;
     269    CPXgetsense(env, lp, &sense,i,i);
     270    lb=-INF;
     271    ub=INF;
     272    switch (sense)
     273      {
     274      case 'L':
     275        CPXgetcoef(env, lp, i, -1, &ub);
     276        break;
     277      case 'G':
     278        CPXgetcoef(env, lp, i, -1, &lb);
     279        break;
     280      case 'E':
     281        CPXgetcoef(env, lp, i, -1, &lb);
     282        ub=lb;
     283        break;
     284      case 'R':
     285        CPXgetcoef(env, lp, i, -1, &lb);
     286        Value x;
     287        CPXgetcoef(env, lp, i, -2, &x);
     288        ub=lb+x;
     289        break;
     290      }
     291  }
     292
    245293  void LpCplex::_setObjCoeff(int i, Value obj_coef)
    246294  {
    247295    CPXchgcoef(env, lp, -1, i, obj_coef);
     296  }
     297
     298  LpCplex::Value LpCplex::_getObjCoeff(int i)
     299  {
     300    Value x;
     301    CPXgetcoef(env, lp, -1, i, &x);
     302    return x;
    248303  }
    249304
     
    565620    CPXchgobjsen(env, lp, CPX_MIN);
    566621   }
     622
     623  bool LpCplex::_isMax()
     624  {
     625    if (CPXgetobjsen(env, lp)==CPX_MAX)
     626      return true;
     627    else
     628      return false;
     629  }
    567630 
    568631} //namespace lemon
  • lemon/lp_cplex.h

    r2312 r2361  
    5656    virtual LpSolverBase &_copyLp();
    5757
     58
    5859    virtual int _addCol();
    5960    virtual int _addRow();
     
    6566    virtual void _setColCoeffs(int i, LpColIterator b, LpColIterator e);
    6667    virtual void _setCoeff(int row, int col, Value value);
     68    virtual Value _getCoeff(int row, int col);
     69
    6770    virtual void _setColLowerBound(int i, Value value);
     71    virtual Value _getColLowerBound(int i);
    6872    virtual void _setColUpperBound(int i, Value value);
     73    virtual Value _getColUpperBound(int i);
     74
    6975//     virtual void _setRowLowerBound(int i, Value value);
    7076//     virtual void _setRowUpperBound(int i, Value value);
    7177    virtual void _setRowBounds(int i, Value lower, Value upper);
     78    virtual void _getRowBounds(int i, Value &lb, Value &ub);
    7279    virtual void _setObjCoeff(int i, Value obj_coef);
     80    virtual Value _getObjCoeff(int i);
    7381    virtual void _clearObj();
    74     ///\e
     82
    7583   
    7684    virtual SolveExitStatus _solve();
     
    8896    virtual void _setMin();
    8997
     98    virtual bool _isMax();
     99
    90100  };
    91101} //END OF NAMESPACE LEMON
Note: See TracChangeset for help on using the changeset viewer.