# Couenne::CouenneVarObject Class Reference

OsiObject for variables in a MINLP. More...

`#include <CouenneVarObject.hpp>`

Inheritance diagram for Couenne::CouenneVarObject:

List of all members.

## Public Member Functions
| CouenneVarObject (CouenneCutGenerator *c, CouenneProblem *p, exprVar *ref, Bonmin::BabSetupBase *base, JnlstPtr jnlst, int varSelection)
| Constructor with information for branching point selection strategy.
| CouenneVarObject (const CouenneVarObject &src)
| Copy constructor.
| ~CouenneVarObject ()
| Destructor.
virtual CouenneObject * | clone () const
| Cloning method.
virtual double | infeasibility (const OsiBranchingInformation *info, int &way) const
| compute infeasibility of this variable x as the sum/min/max of all infeasibilities of auxiliaries w whose defining function depends on x |w - f(x)|
virtual double | checkInfeasibility (const OsiBranchingInformation *info) const
| compute infeasibility of this variable, |w - f(x)|, where w is the auxiliary variable defined as w = f(x)
virtual OsiBranchingObject * | createBranch (OsiSolverInterface *, const OsiBranchingInformation *, int) const
| create CouenneBranchingObject or CouenneThreeWayBranchObj based on this object
virtual double | feasibleRegion (OsiSolverInterface *, const OsiBranchingInformation *) const
| fix nonlinear coordinates of current integer-nonlinear feasible solution
virtual bool | isCuttable () const
| are we on the bad or good side of the expression?
## Protected Member Functions
CouNumber | computeBranchingPoint (const OsiBranchingInformation *info, int &bestWay, const CouenneObject *&criticalObject) const
| Method computing the branching point.
## Protected Attributes
int | varSelection_
| branching scheme used.

## Detailed Description

OsiObject for variables in a MINLP.

Definition at line 22 of file CouenneVarObject.hpp.

## Constructor & Destructor Documentation

Couenne::CouenneVarObject::CouenneVarObject | ( | CouenneCutGenerator * | c,
|  | CouenneProblem * | p,
|  | exprVar * | ref,
|  | Bonmin::BabSetupBase * | base,
|  | JnlstPtr | jnlst,
|  | int | varSelection |
| ) |  |  |

Constructor with information for branching point selection strategy.

Referenced by clone().

Couenne::CouenneVarObject::CouenneVarObject | ( | const CouenneVarObject & | src | ) | `[inline]`

Copy constructor.

Definition at line 35 of file CouenneVarObject.hpp.

Couenne::CouenneVarObject::~CouenneVarObject | ( |  | ) | `[inline]`

Destructor.

Definition at line 40 of file CouenneVarObject.hpp.

## Member Function Documentation

virtual CouenneObject* Couenne::CouenneVarObject::clone | ( |  | ) | const`[inline, virtual]`

Cloning method.

Reimplemented from Couenne::CouenneObject.

Reimplemented in Couenne::CouenneVTObject.

Definition at line 43 of file CouenneVarObject.hpp.

References CouenneVarObject().

virtual double Couenne::CouenneVarObject::infeasibility | ( | const OsiBranchingInformation * | info,
|  | int & | way |
| ) |  |  | const`[virtual]`

compute infeasibility of this variable x as the sum/min/max of all infeasibilities of auxiliaries w whose defining function depends on x |w - f(x)|

TODO: suggest way

Reimplemented from Couenne::CouenneObject.

Reimplemented in Couenne::CouenneVTObject.

virtual double Couenne::CouenneVarObject::checkInfeasibility | ( | const OsiBranchingInformation * | info | ) | const`[virtual]`

compute infeasibility of this variable, |w - f(x)|, where w is the auxiliary variable defined as w = f(x)

Reimplemented from Couenne::CouenneObject.

virtual OsiBranchingObject* Couenne::CouenneVarObject::createBranch | ( | OsiSolverInterface * | ,
|  | const OsiBranchingInformation * | ,
|  | int |  |
| ) |  |  | const`[virtual]`

create CouenneBranchingObject or CouenneThreeWayBranchObj based on this object

Reimplemented from Couenne::CouenneObject.

virtual double Couenne::CouenneVarObject::feasibleRegion | ( | OsiSolverInterface * | ,
|  | const OsiBranchingInformation * |  |
| ) |  |  | const`[virtual]`

fix nonlinear coordinates of current integer-nonlinear feasible solution

Reimplemented from Couenne::CouenneObject.

virtual bool Couenne::CouenneVarObject::isCuttable | ( |  | ) | const`[virtual]`

are we on the bad or good side of the expression?

Reimplemented from Couenne::CouenneObject.

CouNumber Couenne::CouenneVarObject::computeBranchingPoint | ( | const OsiBranchingInformation * | info,
|  | int & | bestWay,
|  | const CouenneObject *& | criticalObject |
| ) |  |  | const`[protected]`

Method computing the branching point.

## Member Data Documentation

int Couenne::CouenneVarObject::varSelection_`[protected]`

branching scheme used.

Experimental: still figuring out why plain LP branching doesn't work with strong/reliability branching

Definition at line 73 of file CouenneVarObject.hpp.

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

- CouenneVarObject.hpp

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines