COIN-OR::LEMON - Graph Library

Changeset 1508:389a94a1d9eb in lemon-0.x


Ignore:
Timestamp:
06/21/05 17:58:57 (14 years ago)
Author:
athos
Branch:
default
Phase:
public
Convert:
svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@1989
Message:

cplex test included

Files:
4 edited

Legend:

Unmodified
Added
Removed
  • lemon/lp_base.h

    r1493 r1508  
    152152          UNKNOWN = 4
    153153      };
    154      
     154
    155155    ///The floating point type used by the solver
    156156    typedef double Value;
  • lemon/lp_cplex.cc

    r1473 r1508  
    4646    //object and copy all the problem data from an existing problem
    4747    //object to it. Solution and starting information is not copied.
    48     newlp->lp = CPXcloneprob (env, lp, &status);
     48    newlp->lp = CPXcloneprob(env, lp, &status);
    4949    return *newlp;
    5050  }
     
    5252  int LpCplex::_addCol()
    5353  {
    54     int i = CPXgetnumcols (env, lp);
     54    int i = CPXgetnumcols(env, lp);
    5555    Value lb[1],ub[1];
    5656    lb[0]=-INF;//-CPX_INFBOUND;
    5757    ub[0]=INF;//CPX_INFBOUND;
    58     status = CPXnewcols (env, lp, 1, NULL, lb, ub, NULL, NULL);
     58    status = CPXnewcols(env, lp, 1, NULL, lb, ub, NULL, NULL);
    5959    return i;
    6060  }
     
    6868    Value rhs[1];
    6969    rhs[0]=INF;
    70     int i = CPXgetnumrows (env, lp);
    71     status = CPXnewrows (env, lp, 1, rhs, sense, NULL, NULL);
     70    int i = CPXgetnumrows(env, lp);
     71    status = CPXnewrows(env, lp, 1, rhs, sense, NULL, NULL);
    7272    return i;
    7373  }
     
    7575
    7676  void LpCplex::_eraseCol(int i) {
    77     CPXdelcols (env, lp, i, i);
     77    CPXdelcols(env, lp, i, i);
    7878  }
    7979 
    8080  void LpCplex::_eraseRow(int i) {
    81     CPXdelrows (env, lp, i, i);
     81    CPXdelrows(env, lp, i, i);
    8282  }
    8383
     
    120120  void LpCplex::_setCoeff(int row, int col, Value value)
    121121  {
    122     CPXchgcoef (env, lp, row, col, value);
     122    CPXchgcoef(env, lp, row, col, value);
    123123  }
    124124
     
    131131    Value bd[1];
    132132    bd[0]=value;
    133     status = CPXchgbds (env, lp, 1, indices, lu, bd);
     133    status = CPXchgbds(env, lp, 1, indices, lu, bd);
    134134 
    135135  }
     
    143143    Value bd[1];
    144144    bd[0]=value;
    145     status = CPXchgbds (env, lp, 1, indices, lu, bd);
     145    status = CPXchgbds(env, lp, 1, indices, lu, bd);
    146146  }
    147147
     
    161161    if (lb==-INF){
    162162      sense[0]='L';
    163       CPXchgsense (env, lp, cnt, indices, sense);
    164       CPXchgcoef (env, lp, i, -1, ub);
     163      CPXchgsense(env, lp, cnt, indices, sense);
     164      CPXchgcoef(env, lp, i, -1, ub);
    165165     
    166166    }
     
    168168      if (ub==INF){
    169169        sense[0]='G';
    170         CPXchgsense (env, lp, cnt, indices, sense);
    171         CPXchgcoef (env, lp, i, -1, lb);
     170        CPXchgsense(env, lp, cnt, indices, sense);
     171        CPXchgcoef(env, lp, i, -1, lb);
    172172      }
    173173      else{
    174174        if (lb == ub){
    175175          sense[0]='E';
    176           CPXchgsense (env, lp, cnt, indices, sense);
    177           CPXchgcoef (env, lp, i, -1, lb);
     176          CPXchgsense(env, lp, cnt, indices, sense);
     177          CPXchgcoef(env, lp, i, -1, lb);
    178178        }
    179179        else{
    180180          sense[0]='R';
    181           CPXchgsense (env, lp, cnt, indices, sense);
    182           CPXchgcoef (env, lp, i, -1, lb);
    183           CPXchgcoef (env, lp, i, -2, ub-lb);     
     181          CPXchgsense(env, lp, cnt, indices, sense);
     182          CPXchgcoef(env, lp, i, -1, lb);
     183          CPXchgcoef(env, lp, i, -2, ub-lb);     
    184184        }
    185185      }
     
    198198// //     //type of the problem
    199199// //     char sense[1];
    200 // //     status = CPXgetsense (env, lp, sense, i, i);
     200// //     status = CPXgetsense(env, lp, sense, i, i);
    201201// //     Value rhs[1];
    202 // //     status = CPXgetrhs (env, lp, rhs, i, i);
     202// //     status = CPXgetrhs(env, lp, rhs, i, i);
    203203
    204204// //     switch (sense[0]) {
     
    215215// //     }
    216216
    217 // //     status = CPXchgcoef (env, lp, i, -2, value_rng);
     217// //     status = CPXchgcoef(env, lp, i, -2, value_rng);
    218218//   }
    219219 
    220220  void LpCplex::_setObjCoeff(int i, Value obj_coef)
    221221  {
    222     CPXchgcoef (env, lp, -1, i, obj_coef);
     222    CPXchgcoef(env, lp, -1, i, obj_coef);
    223223  }
    224224
    225225  void LpCplex::_clearObj()
    226226  {
    227     for (int i=0;i< CPXgetnumcols (env, lp);++i){
    228       CPXchgcoef (env, lp, -1, i, 0);
     227    for (int i=0;i< CPXgetnumcols(env, lp);++i){
     228      CPXchgcoef(env, lp, -1, i, 0);
    229229    }
    230230   
     
    242242  {
    243243    //CPX_PARAM_LPMETHOD
    244     status = CPXlpopt (env, lp);
     244    status = CPXlpopt(env, lp);
    245245    if (status == 0){
    246246      //We want to exclude some cases
    247       switch (CPXgetstat (env, lp)){
     247      switch (CPXgetstat(env, lp)){
    248248      case CPX_OBJ_LIM:
    249249      case CPX_IT_LIM_FEAS:
     
    264264  {
    265265    Value x;
    266     CPXgetx (env, lp, &x, i, i);
     266    CPXgetx(env, lp, &x, i, i);
    267267    return x;
    268268  }
     
    272272    Value objval;
    273273    //method = CPXgetmethod (env, lp);
    274     status = CPXgetobjval (env, lp, &objval);
     274    //printf("CPXgetprobtype %d \n",CPXgetprobtype(env,lp));
     275    status = CPXgetobjval(env, lp, &objval);
     276    //printf("Objective value: %g \n",objval);
    275277    return objval;
    276278  }
     
    330332  LpCplex::SolutionStatus LpCplex::_getPrimalStatus()
    331333  {
    332     int stat = CPXgetstat (env, lp);
     334    int stat = CPXgetstat(env, lp);
     335    //printf("A primal status: %d, CPX_OPTIMAL=%d \n",stat,CPX_OPTIMAL);
    333336    switch (stat) {
    334337    case 0:
     
    380383  LpCplex::SolutionStatus LpCplex::_getDualStatus()
    381384  {
    382     int stat = CPXgetstat (env, lp);
     385    int stat = CPXgetstat(env, lp);
    383386    switch (stat) {
    384387    case 0:
     
    396399  LpCplex::ProblemTypes LpCplex::_getProblemType()
    397400  {
    398     int stat = CPXgetstat (env, lp);
     401    int stat = CPXgetstat(env, lp);
    399402    switch (stat) {
    400403    case CPX_OPTIMAL://Optimal
     
    415418  void LpCplex::_setMax()
    416419  {
    417     CPXchgobjsen (env, lp, CPX_MAX);
     420    CPXchgobjsen(env, lp, CPX_MAX);
    418421   }
    419422  void LpCplex::_setMin()
    420423  {
    421     CPXchgobjsen (env, lp, CPX_MIN);
     424    CPXchgobjsen(env, lp, CPX_MIN);
    422425   }
    423426 
  • lemon/lp_skeleton.h

    r1460 r1508  
    2323///\brief A skeleton file to implement LP solver interfaces
    2424namespace lemon {
    25  
     25
    2626  ///A skeleton class to implement LP solver interfaces
    2727  class LpSkeleton :public LpSolverBase {
  • test/lp_test.cc

    r1493 r1508  
    1818void lpTest(LpSolverBase & lp)
    1919{
     20
     21
     22
    2023  typedef LpSolverBase LP;
    2124
     
    2326  //  for(int i=0;i<10;i++) x.push_back(lp.addCol());
    2427  lp.addColSet(x);
     28
     29#ifndef GYORSITAS
    2530
    2631  std::vector<LP::Col> y(10);
     
    175180  }
    176181 
    177 
     182#endif
    178183}
    179184
     
    241246
    242247#ifdef HAVE_CPLEX
    243 //  LpCplex lp_cplex;
    244 //  lpTest(lp_cplex);
     248  LpCplex lp_cplex;
     249  lpTest(lp_cplex);
     250  aTest(lp_cplex);
    245251#endif
    246252
Note: See TracChangeset for help on using the changeset viewer.