Changeset 2478


Ignore:
Timestamp:
Jan 28, 2019 8:40:56 AM (3 months ago)
Author:
unxusr
Message:

Cbc_C_interface details

Location:
trunk/Cbc/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Cbc/src/Cbc_C_Interface.cpp

    r2476 r2478  
    16731673}
    16741674
     1675COINLIBAPI void COINLINKAGE
     1676OsiCuts_addRowCut( void *osiCuts, int nz, const int *idx, const double *coef, char sense, double rhs )
     1677{
     1678  sense = toupper(sense);
     1679  OsiCuts *oc = (OsiCuts *) osiCuts;
     1680
     1681  OsiRowCut orc;
     1682  orc.setRow( nz, idx, coef );
     1683
     1684
     1685  orc.setLb(-DBL_MAX);
     1686  orc.setUb(DBL_MAX);
     1687
     1688  switch (toupper(sense)) {
     1689  case '=':
     1690    orc.setLb(rhs);
     1691    orc.setUb(rhs);
     1692    break;
     1693  case 'E':
     1694    orc.setLb(rhs);
     1695    orc.setUb(rhs);
     1696    break;
     1697  case '<':
     1698    orc.setUb(rhs);
     1699    break;
     1700  case 'L':
     1701    orc.setUb(rhs);
     1702    break;
     1703  case '>':
     1704    orc.setLb(rhs);
     1705    break;
     1706  case 'G':
     1707    orc.setLb(rhs);
     1708    break;
     1709  default:
     1710    fprintf(stderr, "unknow row sense %c.", toupper(sense));
     1711    abort();
     1712  }
     1713
     1714  oc->insert(orc);
     1715}
     1716
     1717
     1718
    16751719/** @brief Returns solution vector in OsiSolverInterface object */
    16761720COINLIBAPI const double * COINLINKAGE
     
    16821726}
    16831727
    1684 COINLIBAPI void COINLINKAGE
    1685 OsiCuts_addRowCut( void *osiCuts, int nz, const int idx[], const double coef[], char sense, double rhs )
    1686 {
    1687   sense = toupper(sense);
    1688   OsiCuts *oc = (OsiCuts *) osiCuts;
    1689 
    1690   OsiRowCut orc;
    1691   orc.setRow( nz, idx, coef );
    1692 
    1693   switch (sense)
    1694   {
    1695     case 'L':
    1696     {
    1697       orc.setLb(-COIN_DBL_MAX);
    1698       orc.setUb(rhs);
    1699       break;
    1700     }
    1701     case 'G':
    1702     {
    1703       orc.setLb(rhs);
    1704       orc.setUb(COIN_DBL_MAX);
    1705       break;
    1706     }
    1707     case 'E':
    1708     {
    1709       orc.setLb(rhs);
    1710       orc.setUb(rhs);
    1711       break;
    1712     }
    1713     default:
    1714     {
    1715       fprintf( stderr, "sense not recognized\n" );
    1716       abort();
    1717     }
    1718   }
    1719 
    1720   oc->insert(orc);
    1721 }
    1722 
    17231728#if defined(__MWERKS__)
    17241729#pragma export off
  • trunk/Cbc/src/Cbc_C_Interface.h

    r2473 r2478  
    799799Osi_getColSolution( void *osi );
    800800
     801
    801802/*@}*/
    802803
     
    804805//@{
    805806
    806 COINLIBAPI void COINLINKAGE
    807 OsiCuts_addRowCut( void *osiCuts, int nz, const int idx[], const double coef[], char sense, double rhs );
    808 
     807/** adds a row cut (used in callback) */
     808COINLIBAPI void COINLINKAGE
     809OsiCuts_addRowCut( void *osiCuts, int nz, const int *idx, const double *coef, char sense, double rhs );
    809810
    810811/*@}*/
Note: See TracChangeset for help on using the changeset viewer.