Couenne::exprSub Class Reference

class for subtraction, $ f(x) - g(x) $ More...

#include <CouenneExprSub.hpp>

Inheritance diagram for Couenne::exprSub:

Inheritance graph
[legend]
Collaboration diagram for Couenne::exprSub:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 exprSub (expression **al, int n=2)
 Constructor.
 exprSub (expression *arg0, expression *arg1)
 Constructor with two explicit elements.
expressionclone (Domain *d=NULL) const
 Cloning method.
std::string printOp () const
 print operator
CouNumber operator() ()
 Compute difference.
expressiondifferentiate (int index)
 Differentiation.
expressionsimplify ()
 Simplification.
virtual int Linearity ()
 Get a measure of "how linear" the expression is (see CouenneTypes.h).
void getBounds (expression *&, expression *&)
 Get lower and upper bound of an expression (if any).
void getBounds (CouNumber &lb, CouNumber &ub)
 Get value of lower and upper bound of an expression (if any).
virtual exprAuxstandardize (CouenneProblem *p, bool addAux=true)
 Reduce expression in standard form, creating additional aux variables (and constraints).
virtual void generateCuts (expression *, OsiCuts &, const CouenneCutGenerator *, t_chg_bounds *=NULL, int=-1, CouNumber=-COUENNE_INFINITY, CouNumber=COUENNE_INFINITY)
 Special version for linear constraints.
virtual enum expr_type code ()
 Code for comparisons.
bool impliedBound (int, CouNumber *, CouNumber *, t_chg_bounds *, enum auxSign=expression::AUX_EQ)
 Implied bound processing.

Detailed Description

class for subtraction, $ f(x) - g(x) $

Definition at line 22 of file CouenneExprSub.hpp.


Constructor & Destructor Documentation

Couenne::exprSub::exprSub ( expression **  al,
int  n = 2 
) [inline]

Constructor.

Definition at line 27 of file CouenneExprSub.hpp.

Referenced by clone(), differentiate(), and getBounds().

Couenne::exprSub::exprSub ( expression arg0,
expression arg1 
) [inline]

Constructor with two explicit elements.

Definition at line 31 of file CouenneExprSub.hpp.


Member Function Documentation

expression* Couenne::exprSub::clone ( Domain d = NULL  )  const [inline, virtual]

Cloning method.

Reimplemented from Couenne::expression.

Definition at line 35 of file CouenneExprSub.hpp.

References Couenne::exprOp::clonearglist(), exprSub(), and Couenne::exprOp::nargs_.

std::string Couenne::exprSub::printOp (  )  const [inline, virtual]

print operator

Reimplemented from Couenne::exprOp.

Definition at line 39 of file CouenneExprSub.hpp.

CouNumber Couenne::exprSub::operator() (  )  [inline, virtual]

Compute difference.

Implements Couenne::expression.

Definition at line 88 of file CouenneExprSub.hpp.

References Couenne::exprOp::arglist_.

expression * exprSub::differentiate ( int  index  )  [virtual]

Differentiation.

Reimplemented from Couenne::expression.

Definition at line 75 of file exprSub.cpp.

References Couenne::exprOp::arglist_, Couenne::expression::dependsOn(), exprSub(), and Couenne::exprOp::nargs_.

expression * exprSub::simplify (  )  [virtual]

Simplification.

Reimplemented from Couenne::exprOp.

Definition at line 22 of file exprSub.cpp.

References Couenne::exprOp::arglist_, Couenne::exprOp::compare(), Couenne::CONST, COUENNE_EPS_SIMPL, Couenne::exprOp::simplify(), Couenne::exprOp::Type(), and Couenne::expression::Value().

virtual int Couenne::exprSub::Linearity (  )  [inline, virtual]

Get a measure of "how linear" the expression is (see CouenneTypes.h).

Reimplemented from Couenne::exprOp.

Definition at line 52 of file CouenneExprSub.hpp.

References Couenne::exprOp::arglist_.

void exprSub::getBounds ( expression *&  ,
expression *&   
) [virtual]

Get lower and upper bound of an expression (if any).

Reimplemented from Couenne::expression.

Definition at line 89 of file exprSub.cpp.

References Couenne::exprOp::arglist_, and exprSub().

Referenced by generateCuts(), and getBounds().

void exprSub::getBounds ( CouNumber lb,
CouNumber ub 
) [virtual]

Get value of lower and upper bound of an expression (if any).

Reimplemented from Couenne::expression.

Definition at line 103 of file exprSub.cpp.

References Couenne::exprOp::arglist_, COUENNE_INFINITY, and getBounds().

exprAux * exprSub::standardize ( CouenneProblem p,
bool  addAux = true 
) [virtual]

Reduce expression in standard form, creating additional aux variables (and constraints).

1) an exprGroup, if only linear terms are present 2) an exprQuad, if some quadratic/bilinear terms exist

Reimplemented from Couenne::exprOp.

Definition at line 124 of file sumStandardize.cpp.

References Couenne::exprOp::arglist_.

void exprSub::generateCuts ( expression ,
OsiCuts &  ,
const CouenneCutGenerator ,
t_chg_bounds = NULL,
int  = -1,
CouNumber  = -COUENNE_INFINITY,
CouNumber  = COUENNE_INFINITY 
) [virtual]

Special version for linear constraints.

Reimplemented from Couenne::expression.

Definition at line 21 of file conv-exprSub.cpp.

References Couenne::exprOp::arglist_, Couenne::expression::AUX_GEQ, Couenne::expression::AUX_LEQ, COUENNE_EPS, createCut(), getBounds(), Couenne::expression::Index(), Couenne::expression::Value(), w, and x.

virtual enum expr_type Couenne::exprSub::code (  )  [inline, virtual]

Code for comparisons.

Reimplemented from Couenne::exprOp.

Definition at line 79 of file CouenneExprSub.hpp.

References Couenne::COU_EXPRSUB.

bool exprSub::impliedBound ( int  ,
CouNumber ,
CouNumber ,
t_chg_bounds ,
enum  auxSign = expression::AUX_EQ 
)

Implied bound processing.

Definition at line 123 of file exprSub.cpp.

References Couenne::exprOp::arglist_, Couenne::expression::AUX_GEQ, Couenne::expression::AUX_LEQ, Couenne::t_chg_bounds::CHANGED, COUENNE_EPS, COUENNE_INFINITY, Couenne::expression::Index(), Couenne::exprOp::isInteger(), Couenne::t_chg_bounds::setLower(), Couenne::t_chg_bounds::setUpper(), Couenne::updateBound(), and Couenne::expression::Value().


The documentation for this class was generated from the following files:
Generated on Wed Nov 30 03:13:26 2011 by  doxygen 1.4.7