Couenne 0.5.8
Loading...
Searching...
No Matches
Public Member Functions | Protected Attributes | List of all members
Couenne::exprUnary Class Reference

expression class for unary functions (sin, log, etc.) More...

#include <CouenneExprUnary.hpp>

+ Inheritance diagram for Couenne::exprUnary:
+ Collaboration diagram for Couenne::exprUnary:

Public Member Functions

virtual enum nodeType Type () const
 node type
 
 exprUnary (expression *argument)
 Constructor.
 
virtual unary_function F ()
 the operator itself (e.g. sin, log...)
 
virtual ~exprUnary ()
 Destructor.
 
int nArgs () const
 return number of arguments
 
virtual expressionArgument () const
 return argument
 
virtual expression ** ArgPtr ()
 return pointer to argument
 
virtual void print (std::ostream &out=std::cout, bool=false) const
 print this expression to iostream
 
virtual enum pos printPos () const
 print position (PRE, INSIDE, POST)
 
virtual std::string printOp () const
 print operator
 
virtual CouNumber operator() ()
 compute value of unary operator
 
virtual int DepList (std::set< int > &deplist, enum dig_type type=ORIG_ONLY)
 fill in the set with all indices of variables appearing in the expression
 
expressionsimplify ()
 simplification
 
virtual int Linearity ()
 get a measure of "how linear" the expression is (see CouenneTypes.h) for general univariate functions, return nonlinear.
 
virtual exprAuxstandardize (CouenneProblem *, bool addAux=true)
 reduce expression in standard form, creating additional aux variables (and constraints)
 
virtual enum expr_type code ()
 type of operator
 
virtual bool isInteger ()
 is this expression integer?
 
virtual int compare (exprUnary &)
 compare two unary functions
 
virtual int rank ()
 used in rank-based branching variable choice
 
virtual void fillDepSet (std::set< DepNode *, compNode > *dep, DepGraph *g)
 fill in dependence structure
 
virtual void replace (exprVar *, exprVar *)
 replace variable with other
 
virtual void realign (const CouenneProblem *p)
 empty function to redirect variables to proper variable vector
 
- Public Member Functions inherited from Couenne::expression
 expression ()
 Constructor.
 
 expression (const expression &e, Domain *d=NULL)
 Copy constructor.
 
virtual ~expression ()
 Destructor.
 
virtual expressionclone (Domain *d=NULL) const
 Cloning method.
 
virtual int Index () const
 Return index of variable (only valid for exprVar and exprAux)
 
virtual expression ** ArgList () const
 return arglist (when applicable, that is, with N-ary functions)
 
virtual void ArgList (expression **al)
 set arglist (used in deleting nodes without deleting children)
 
virtual expressionImage () const
 return pointer to corresponding expression (for auxiliary variables only)
 
virtual void Image (expression *image)
 set expression associated with this auxiliary variable (for compatibility with exprAux)
 
virtual CouNumber Value () const
 value (empty)
 
virtual const expressionOriginal () const
 If this is an exprClone of a exprClone of an expr???, point to the original expr??? instead of an exprClone – improve computing efficiency.
 
virtual CouNumber gradientNorm (const double *x)
 return l-2 norm of gradient at given point
 
virtual expressiondifferentiate (int)
 differentiation
 
virtual int dependsOn (int *ind, int n, enum dig_type type=STOP_AT_AUX)
 dependence on variable set: return cardinality of subset of the set of indices in first argument which occur in expression.
 
int dependsOn (int singleton, enum dig_type type=STOP_AT_AUX)
 version with one index only
 
virtual bool isDefinedInteger ()
 is this expression defined as an integer?
 
virtual void getBounds (expression *&, expression *&)
 Get lower and upper bound of an expression (if any)
 
virtual void getBounds (CouNumber &, CouNumber &)
 Get lower and upper bound of an expression (if any) – real values.
 
virtual void generateCuts (expression *w, OsiCuts &cs, const CouenneCutGenerator *cg, t_chg_bounds *chg=NULL, int wind=-1, CouNumber lb=-COUENNE_INFINITY, CouNumber ub=COUENNE_INFINITY)
 generate convexification cut for constraint w = this
 
virtual enum convexity convexity () const
 either CONVEX, CONCAVE, AFFINE, or NONCONVEX
 
virtual int compare (expression &)
 compare expressions
 
virtual int compare (exprCopy &)
 compare copies of expressions
 
virtual bool impliedBound (int, CouNumber *, CouNumber *, t_chg_bounds *, enum auxSign=expression::AUX_EQ)
 does a backward implied bound processing on every expression, including exprSums although already done by Clp (useful when repeated within Couenne).
 
virtual int Multiplicity ()
 multiplicity of a variable
 
virtual CouNumber selectBranch (const CouenneObject *obj, const OsiBranchingInformation *info, expression *&var, double *&brpts, double *&brDist, int &way)
 set up branching object by evaluating many branching points for each expression's arguments.
 
virtual void linkDomain (Domain *d)
 empty function to update domain pointer
 
virtual bool isBijective () const
 indicating if function is monotonically increasing
 
virtual CouNumber inverse (expression *vardep) const
 compute the inverse function
 
virtual void closestFeasible (expression *varind, expression *vardep, CouNumber &left, CouNumber &right) const
 closest feasible points in function in both directions
 
virtual bool isCuttable (CouenneProblem *problem, int index) const
 can this expression be further linearized or are we on its concave ("bad") side
 
virtual bool isaCopy () const
 return true if this is a copy of something (i.e. an exprCopy)
 
virtual expressionCopy () const
 return copy of this expression (only makes sense in exprCopy)
 

Protected Attributes

expressionargument_
 single argument taken by this expression
 

Additional Inherited Members

- Public Types inherited from Couenne::expression
enum  auxSign { AUX_UNDEF =-2 , AUX_LEQ =-1 , AUX_EQ , AUX_GEQ }
 "sign" of the constraint defining an auxiliary. More...
 

Detailed Description

expression class for unary functions (sin, log, etc.)

univariate operator-type expression: requires single argument. All unary functions are derived from this base class, which has a lot of common methods that need not be re-implemented by any univariate class.

Definition at line 33 of file CouenneExprUnary.hpp.

Constructor & Destructor Documentation

◆ exprUnary()

Couenne::exprUnary::exprUnary ( expression * argument)
inline

Constructor.

Definition at line 47 of file CouenneExprUnary.hpp.

◆ ~exprUnary()

virtual Couenne::exprUnary::~exprUnary ( )
inlinevirtual

Destructor.

Definition at line 56 of file CouenneExprUnary.hpp.

Member Function Documentation

◆ Type()

virtual enum nodeType Couenne::exprUnary::Type ( ) const
inlinevirtual

node type

Reimplemented from Couenne::expression.

Definition at line 43 of file CouenneExprUnary.hpp.

◆ F()

virtual unary_function Couenne::exprUnary::F ( )
inlinevirtual

◆ nArgs()

int Couenne::exprUnary::nArgs ( ) const
inlinevirtual

return number of arguments

Reimplemented from Couenne::expression.

Definition at line 60 of file CouenneExprUnary.hpp.

◆ Argument()

virtual expression * Couenne::exprUnary::Argument ( ) const
inlinevirtual

return argument

Reimplemented from Couenne::expression.

Definition at line 64 of file CouenneExprUnary.hpp.

◆ ArgPtr()

virtual expression ** Couenne::exprUnary::ArgPtr ( )
inlinevirtual

return pointer to argument

Reimplemented from Couenne::expression.

Definition at line 68 of file CouenneExprUnary.hpp.

◆ print()

virtual void Couenne::exprUnary::print ( std::ostream & out = std::cout,
bool = false ) const
virtual

print this expression to iostream

Reimplemented from Couenne::expression.

Reimplemented in Couenne::exprOpp, and Couenne::exprInv.

◆ printPos()

virtual enum pos Couenne::exprUnary::printPos ( ) const
inlinevirtual

print position (PRE, INSIDE, POST)

Definition at line 75 of file CouenneExprUnary.hpp.

◆ printOp()

virtual std::string Couenne::exprUnary::printOp ( ) const
inlinevirtual

◆ operator()()

virtual CouNumber Couenne::exprUnary::operator() ( )
inlinevirtual

compute value of unary operator

Implements Couenne::expression.

Definition at line 83 of file CouenneExprUnary.hpp.

◆ DepList()

virtual int Couenne::exprUnary::DepList ( std::set< int > & deplist,
enum dig_type type = ORIG_ONLY )
inlinevirtual

fill in the set with all indices of variables appearing in the expression

Reimplemented from Couenne::expression.

Definition at line 88 of file CouenneExprUnary.hpp.

◆ simplify()

expression * Couenne::exprUnary::simplify ( )
virtual

simplification

Reimplemented from Couenne::expression.

◆ Linearity()

virtual int Couenne::exprUnary::Linearity ( )
inlinevirtual

get a measure of "how linear" the expression is (see CouenneTypes.h) for general univariate functions, return nonlinear.

Reimplemented from Couenne::expression.

Reimplemented in Couenne::exprInv, and Couenne::exprOpp.

Definition at line 96 of file CouenneExprUnary.hpp.

◆ standardize()

virtual exprAux * Couenne::exprUnary::standardize ( CouenneProblem * ,
bool addAux = true )
virtual

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

Reimplemented from Couenne::expression.

Reimplemented in Couenne::exprOpp.

◆ code()

virtual enum expr_type Couenne::exprUnary::code ( )
inlinevirtual

◆ isInteger()

virtual bool Couenne::exprUnary::isInteger ( )
virtual

is this expression integer?

Reimplemented from Couenne::expression.

Reimplemented in Couenne::exprAbs, and Couenne::exprOpp.

◆ compare()

virtual int Couenne::exprUnary::compare ( exprUnary & )
virtual

compare two unary functions

◆ rank()

virtual int Couenne::exprUnary::rank ( )
inlinevirtual

used in rank-based branching variable choice

Reimplemented from Couenne::expression.

Definition at line 114 of file CouenneExprUnary.hpp.

◆ fillDepSet()

virtual void Couenne::exprUnary::fillDepSet ( std::set< DepNode *, compNode > * dep,
DepGraph * g )
inlinevirtual

fill in dependence structure

Reimplemented from Couenne::expression.

Definition at line 118 of file CouenneExprUnary.hpp.

◆ replace()

virtual void Couenne::exprUnary::replace ( exprVar * ,
exprVar *  )
virtual

replace variable with other

Reimplemented from Couenne::expression.

◆ realign()

virtual void Couenne::exprUnary::realign ( const CouenneProblem * p)
inlinevirtual

empty function to redirect variables to proper variable vector

Reimplemented from Couenne::expression.

Definition at line 125 of file CouenneExprUnary.hpp.

Member Data Documentation

◆ argument_

expression* Couenne::exprUnary::argument_
protected

single argument taken by this expression

Definition at line 38 of file CouenneExprUnary.hpp.


The documentation for this class was generated from the following file: