XPRBcut
| XPRBcut | 
  Description
 
 
 Methods for modifying and accessing
 cuts and operators for constructing them. Note that all terms in a cut must belong to the same problem as the cut itself.
 
 
  Constructors
 
  
  Methods
 
  
 Add a linear expression to a cut.
 
 int addTerm(XPRBvar& var, double val);
 
int addTerm(double val, XPRBvar& var);
int addTerm(XPRBvar& var);
int addTerm(double val);
 int addTerm(double val, XPRBvar& var);
int addTerm(XPRBvar& var);
int addTerm(double val);
 Add a term to a cut.
  
 Delete a term from a cut.
  
 Get the C modeling object.
  
 Get the classification or identification number of a cut.
  
 Get the RHS value of a cut.
  
 Get the type of a cut.
  
 Test the validity of the cut object.
  
 Print out a cut.
  
 Reset the cut object.
  
 Set the classification or identification number of a cut.
 
 int setTerm(XPRBvar& var, double val);
 
int setTerm(double val, XPRBvar& var);
int setTerm(XPRBvar& var);
int setTerm(double val);
 int setTerm(double val, XPRBvar& var);
int setTerm(XPRBvar& var);
int setTerm(double val);
 Set a cut term.
  
 Set the type of a cut.
 
  Operators
 
 
 Assigning cuts and adding linear expressions:
 
    
 Constructor detail
 
 | 
     XPRBcut
     | |||||
| 
     Synopsis
     | 
     XPRBcut();
      XPRBcut(xbcut *c); XPRBcut(xbcut *c, XPRBrelation& r); | ||||
| 
     Arguments
     | 
 | ||||
| 
     Description
     | 
     Create a new cut object.
     | ||||
|  | |||||
 Method detail
 | 
     add
     | |||||
| 
     Synopsis
     | 
     int add(XPRBexpr& le);
     | ||||
| 
     Argument
     | 
 | ||||
| 
     Return value
     | 
      0 if method executed successfully, 1 otherwise.
      | ||||
| 
     Description
     | |||||
| 
     Example
     | 
      This example defines a cut and then modifies its definition by adding a terms and changing the coefficient of a variable. The resulting cut definitions (as displayed by
      XPRBcut.print) are shown as comments. Please notice in particular the different behavior of
      add and
      addTerm for the addition of constants.
        XPRBvar x,y,b;
 XPRBcut Cut2;
 XPRBprob prob("myprob");
 x = prob.newVar("y", XPRB_PL, 0, 200);
 y = prob.newVar("y", XPRB_PL, 0, 200);
 b = prob.newVar("b", XPRB_BV);
 Cut2 = prob.newCut(y <= 100*b, 1);
 Cut2.add(x+2);                // x + y - 100*b <= -2
 Cut2.delTerm(x);              //     y - 100*b <= -2
 Cut2.setTerm(0);              //     y - 100*b <= 0
 Cut2 += x+2;                  // x + y - 100*b <= -2
 Cut2.addTerm(2);              // x + y - 100*b <= 0
 Cut2.setTerm(y, -5);          // x - 5*y - 100*b <= 0  | ||||
| 
     addTerm
     | |||||
| 
     Synopsis
     | 
     int addTerm(XPRBvar& var, double val);
      int addTerm(double val, XPRBvar& var); int addTerm(XPRBvar& var); int addTerm(double val); | ||||
| 
     Arguments
     | 
 | ||||
| 
     Return value
     | 
      0 if method executed successfully, 1 otherwise.
      | ||||
| 
     Description
     | 
     This method adds a new term to a cut, comprising the variable
     var with coefficient
     val. If the cut already has a term with variable
     var,
     val is added to its coefficient. If no variable is specified, the value
     val is added to the right hand side of the cut. Cut terms can also be added with method
     XPRBcut.add.
     | ||||
| 
     Example
     | 
      See
      XPRBcut.add.
       | ||||
| 
     Related topics
     | 
      Calls
     XPRBaddcutterm
      | ||||
| 
     delTerm
     | |||||
| 
     Synopsis
     | 
     int delTerm(XPRBvar& var);
     | ||||
| 
     Argument
     | 
 | ||||
| 
     Return value
     | 
      0 if method executed successfully, 1 otherwise.
      | ||||
| 
     Description
     | 
     This method removes a variable term from a cut. The constant term (right hand side value) is changed/reset with method
     XPRBcut.setTerm.
     | ||||
| 
     Example
     | 
      See
      XPRBcut.add.
       | ||||
| 
     Related topics
     | 
      Calls
     XPRBdelcutterm
      | ||||
| 
     getCRef
     | |||||
| 
     Synopsis
     | 
     xbcut *getCRef();
     | ||||
| 
     Return value
     | 
      The underlying modeling object in BCL C.
      | ||||
| 
     Description
     | 
     This method returns the cut object in BCL C that belongs to the C++ cut object.
     | ||||
| 
     getID
     | |||||
| 
     Synopsis
     | 
     int getID();
     | ||||
| 
     Return value
     | 
      Classification or identification number.
      | ||||
| 
     Description
     | |||||
| 
     Example
     | 
      See
      XPRBcut.setID.
       | ||||
| 
     Related topics
     | 
      Calls
     XPRBgetcutid
      | ||||
| 
     getRHS
     | |||||
| 
     Synopsis
     | 
     double getRHS();
     | ||||
| 
     Return value
     | 
      Right hand side (RHS) value (default 0).
      | ||||
| 
     Description
     | |||||
| 
     Related topics
     | 
      Calls
     XPRBgetcutrhs
      | ||||
| 
     getType
     | |||||
| 
     Synopsis
     | 
     int getType();
     | ||||
| 
     Return value
     | |||||
| 
     Description
     | |||||
| 
     Related topics
     | 
      Calls
     XPRBgetcuttype
      | ||||
| 
     isValid
     | |||||
| 
     Synopsis
     | 
     bool isValid();
     | ||||
| 
     Return value
     | 
      true if object is valid,
      false otherwise.
      | ||||
| 
     Description
     | |||||
| 
     print
     | |||||
| 
     Synopsis
     | 
     int print();
     | ||||
| 
     Return value
     | 
      0 if function executed successfully, 1 otherwise.
      | ||||
| 
     Description
     | |||||
| 
     Example
     | 
      See
      XPRBcut.setID.
       | ||||
| 
     Related topics
     | 
      Calls
     XPRBprintcut
      | ||||
| 
     reset
     | |||||
| 
     Synopsis
     | 
     void reset();
     | ||||
| 
     Description
     | |||||
| 
     setID
     | |||||
| 
     Synopsis
     | 
     int setID(int id);
     | ||||
| 
     Argument
     | 
 | ||||
| 
     Return value
     | 
      0 if method executed successfully, 1 otherwise.
      | ||||
| 
     Description
     | 
     
     This function changes the classification or identification number of a previously defined cut. This change does not have any effect on the cut definition in Xpress Optimizer if the cut has already been added to the matrix with
     XPRBprob.addCuts.
     | ||||
| 
     Example
     | 
      This example defines a cut and then modifies its ID and relation type. The resulting output is shown in the comment.
       XPRBvar y,b;
XPRBcut Cut1;
XPRBprob prob("myprob");
y = prob.newVar("y", XPRB_PL, 0, 200);
b = prob.newVar("b", XPRB_BV);
Cut1 = prob.newCut(y == 100*b);
Cut1.setID(1);
if (Cut1.getID()>0)  Cut1.setType(XPRB_G);
Cut1.print();             // CUT(1):  y - 100*b >= 0  | ||||
| 
     Related topics
     | 
      Calls
     XPRBsetcutid
      | ||||
| 
     setTerm
     | |||||
| 
     Synopsis
     | 
     int setTerm(XPRBvar& var, double val);
      int setTerm(double val, XPRBvar& var); int setTerm(XPRBvar& var); int setTerm(double val); | ||||
| 
     Arguments
     | 
 | ||||
| 
     Return value
     | 
      0 if method executed successfully, 1 otherwise.
      | ||||
| 
     Description
     | |||||
| 
     Example
     | 
      See
      XPRBcut.add.
       | ||||
| 
     Related topics
     | 
      Calls
     XPRBsetcutterm
      | ||||
| 
     setType
     | |||||
| 
     Synopsis
     | 
     int setType(int type);
     | ||||
| 
     Argument
     | |||||
| 
     Return value
     | 
      0 if method executed successfully, 1 otherwise.
      | ||||
| 
     Description
     | 
     
     This function changes the type of the given cut. This change does not have any effect on the cut definition in Xpress Optimizer if the cut has already been added to the matrix with the method
     XPRBprob.addCuts.
     | ||||
| 
     Example
     | 
      See
      XPRBcut.setID.
       | ||||
| 
     Related topics
     | 
      Calls
     XPRBsetcuttype
      | ||||
|  | |||||
 
