general include file for different compilers More...
Classes | |
class | CouenneAggrProbing |
Cut Generator for aggressive BT; i.e., an aggressive probing. More... | |
class | CouenneBTPerfIndicator |
class | CouenneFixPoint |
Cut Generator for FBBT fixpoint. More... | |
class | CouenneMultiVarProbe |
class | CouenneSparseBndVec |
class | CouenneTwoImplied |
Cut Generator for implied bounds derived from pairs of linear (in)equalities. More... | |
struct | threshold |
struct | indPosPair |
class | CouenneBranchingObject |
"Spatial" branching object. More... | |
class | CouenneSolverInterface |
Solver interface class with a pointer to a Couenne cut generator. More... | |
class | CouenneChooseStrong |
class | CouenneChooseVariable |
Choose a variable for branching. More... | |
class | CouenneComplBranchingObject |
"Spatial" branching object for complementarity constraints. More... | |
class | CouenneComplObject |
OsiObject for complementarity constraints ![]() | |
class | CouenneObject |
OsiObject for auxiliary variables $w=f(x)$. More... | |
class | CouenneOrbitBranchingObj |
"Spatial" branching object. More... | |
class | CouenneSOSBranchingObject |
class | CouenneSOSObject |
class | CouenneThreeWayBranchObj |
Spatial, three-way branching object. More... | |
class | CouenneVarObject |
OsiObject for variables in a MINLP. More... | |
class | CouenneVTObject |
OsiObject for violation transfer on variables in a MINLP. More... | |
class | CouenneCutGenerator |
Cut Generator for linear convexifications. More... | |
class | AuxRelation |
Base class definition for relations between auxiliaries. More... | |
class | SumLogAuxRel |
Identifies 5-ples of variables of the form. More... | |
class | MultiProdRel |
Identifies 5-ples of variables of the form. More... | |
class | BiProdDivRel |
Identifies 5-tuple of the form. More... | |
class | PowRel |
Identifies 5-tuple of the form. More... | |
class | CouenneCrossConv |
Cut Generator that uses relationships between auxiliaries. More... | |
class | CouenneScalar |
class | CouenneSparseVector |
class | CouenneExprMatrix |
class | CouennePSDcon |
Class to represent positive semidefinite constraints //////////////////. More... | |
class | CouenneSdpCuts |
These are cuts of the form. More... | |
class | CouenneDisjCuts |
Cut Generator for linear convexifications. More... | |
class | DomainPoint |
Define a point in the solution space and the bounds around it. More... | |
class | Domain |
Define a dynamic point+bounds, with a way to save and restore previous points+bounds through a LIFO structure. More... | |
class | exprAux |
Auxiliary variable. More... | |
struct | compExpr |
Structure for comparing expressions. More... | |
class | exprLowerBound |
These are bound expression classes. More... | |
class | exprUpperBound |
upper bound More... | |
class | exprClone |
expression clone (points to another expression) More... | |
class | exprConst |
constant-type operator More... | |
class | exprCopy |
class | expression |
Expression base class. More... | |
class | exprIVar |
variable-type operator. More... | |
class | exprOp |
general n-ary operator-type expression: requires argument list. More... | |
class | exprStore |
storage class for previously evaluated expressions More... | |
class | exprUnary |
expression class for unary functions (sin, log, etc.) More... | |
class | exprVar |
variable-type operator More... | |
class | t_chg_bounds |
status of lower/upper bound of a variable, to be checked/modified in bound tightening More... | |
class | CouExpr |
class | exprLBCos |
class to compute lower bound of a cosine based on the bounds of its arguments More... | |
class | exprUBCos |
class to compute lower bound of a cosine based on the bounds of its arguments More... | |
class | exprLBDiv |
class to compute lower bound of a fraction based on the bounds of both numerator and denominator More... | |
class | exprUBDiv |
class to compute upper bound of a fraction based on the bounds of both numerator and denominator More... | |
class | exprLBMul |
class to compute lower bound of a product based on the bounds of both factors More... | |
class | exprUBMul |
class to compute upper bound of a product based on the bounds of both factors More... | |
class | exprLBQuad |
class to compute lower bound of a fraction based on the bounds of both numerator and denominator More... | |
class | exprUBQuad |
class to compute upper bound of a fraction based on the bounds of both numerator and denominator More... | |
class | exprLBSin |
class to compute lower bound of a sine based on the bounds on its arguments More... | |
class | exprUBSin |
class to compute lower bound of a sine based on the bounds on its arguments More... | |
class | exprAbs |
class for ![]() | |
class | exprBinProd |
class for ![]() ![]() | |
class | exprCeil |
class ceiling, ![]() | |
class | exprCos |
class cosine, ![]() | |
class | exprDiv |
class for divisions, ![]() | |
class | exprEvenPow |
Power of an expression (binary operator) with even exponent, ![]() ![]() | |
class | exprExp |
class for the exponential, ![]() | |
class | exprFloor |
class floor, ![]() | |
class | exprGroup |
class Group, with constant, linear and nonlinear terms: ![]() | |
class | exprIf |
class | exprInv |
class inverse: ![]() | |
class | exprLog |
class logarithm, ![]() | |
class | exprMax |
class | exprMin |
class | exprMul |
class for multiplications, ![]() | |
class | exprMultiLin |
another class for multiplications, ![]() | |
class | exprNorm |
Class for ![]() ![]() | |
class | exprOddPow |
Power of an expression (binary operator), ![]() ![]() | |
class | exprOpp |
class opposite, ![]() | |
class | exprPow |
Power of an expression (binary operator), ![]() ![]() | |
class | exprPWLinear |
class | exprQuad |
class exprQuad, with constant, linear and quadratic terms More... | |
class | exprSignPow |
Power of an expression (binary operator), ![]() ![]() | |
class | exprSin |
class for ![]() | |
class | exprSub |
class for subtraction, ![]() | |
class | exprSum |
class sum, ![]() | |
class | exprTrilinear |
class for multiplications More... | |
class | ExprHess |
expression matrices. More... | |
class | ExprJac |
Jacobian of the problem (computed through Couenne expression classes). More... | |
class | InitHeuristic |
A heuristic that stores the initial solution of the NLP. More... | |
class | NlpSolveHeuristic |
class | CouenneFeasPump |
An implementation of the Feasibility pump that uses linearization and Ipopt to find the two sequences of points. More... | |
class | CouenneFPsolution |
Class containing a solution with infeasibility evaluation. More... | |
class | compareSol |
class for comparing solutions (used in tabu list) More... | |
class | CouenneFPpool |
Pool of solutions. More... | |
class | CouenneIterativeRounding |
An iterative rounding heuristic, tailored for nonconvex MINLPs. More... | |
class | CouenneInterface |
class | CouenneMINLPInterface |
This is class provides an Osi interface for a Mixed Integer Linear Program expressed as a TMINLP (so that we can use it for example as the continuous solver in Cbc). More... | |
class | CouenneTNLP |
Class for handling NLPs using CouenneProblem. More... | |
class | CouenneUserInterface |
class | CouenneInfo |
Bonmin class for passing info between components of branch-and-cuts. More... | |
class | SmartAsl |
class | CouenneSetup |
class | CouenneBab |
class | CouenneOSInterface |
class | GlobalCutOff |
class | CouenneProblem |
Class for MINLP problems with symbolic information. More... | |
class | CouenneConstraint |
Class to represent nonlinear constraints. More... | |
class | CouenneObjective |
Objective function. More... | |
class | CouenneRecordBestSol |
struct | compNode |
structure for comparing nodes in the dependence graph More... | |
class | DepNode |
vertex of a dependence graph. More... | |
class | DepGraph |
Dependence graph. More... | |
class | CouenneAmplInterface |
class | quadElem |
class | LinMap |
class | QuadMap |
class | funtriplet |
class | simpletriplet |
class | powertriplet |
class | kpowertriplet |
class | Qroot |
class that stores result of previous calls to rootQ into a map for faster access More... | |
class | CouenneSparseMatrix |
Class for sparse Matrixs (used in modifying distances in FP) More... | |
Typedefs | |
typedef Ipopt::SmartPtr < Ipopt::Journalist > | JnlstPtr |
typedef Ipopt::SmartPtr< const Ipopt::Journalist > | ConstJnlstPtr |
typedef double | CouNumber |
main number type in Couenne More... | |
typedef CouNumber(* | unary_function )(CouNumber) |
unary function, used in all exprUnary More... | |
Enumerations | |
enum | signum { NEG, POS, DN, UP } |
enum | { TWO_LEFT, TWO_RIGHT, TWO_RAND, THREE_LEFT, THREE_CENTER, THREE_RIGHT, THREE_RAND, BRANCH_NONE } |
Define what kind of branching (two- or three-way) and where to start from: left, (center,) or right. More... | |
enum | { COUENNE_INFEASIBLE, COUENNE_TIGHTENED, COUENNE_FEASIBLE } |
enum | nodeType { CONST =0, VAR, UNARY, N_ARY, COPY, AUX, EMPTY } |
type of a node in an expression tree More... | |
enum | linearity_type { ZERO =0, CONSTANT, LINEAR, QUADRATIC, NONLINEAR } |
linearity of an expression, as returned by the method Linearity() More... | |
enum | pos { PRE =0, POST, INSIDE, NONE } |
position where the operator should be printed when printing the expression More... | |
enum | con_sign { COUENNE_EQ, COUENNE_LE, COUENNE_GE, COUENNE_RNG } |
sign of constraint More... | |
enum | conv_type { CURRENT_ONLY, UNIFORM_GRID, AROUND_CURPOINT } |
position and number of convexification cuts added for a lower convex (upper concave) envelope More... | |
enum | expr_type { COU_EXPRESSION, COU_EXPRCONST, COU_EXPRVAR, COU_EXPRLBOUND, COU_EXPRUBOUND, COU_EXPROP, COU_EXPRSUB, COU_EXPRSUM, COU_EXPRGROUP, COU_EXPRQUAD, COU_EXPRMIN, COU_EXPRMUL, COU_EXPRTRILINEAR, COU_EXPRPOW, COU_EXPRSIGNPOW, COU_EXPRMAX, COU_EXPRDIV, COU_EXPRUNARY, COU_EXPRCOS, COU_EXPRABS, COU_EXPREXP, COU_EXPRINV, COU_EXPRLOG, COU_EXPROPP, COU_EXPRSIN, COU_EXPRFLOOR, COU_EXPRCEIL, MAX_COU_EXPR_CODE } |
code returned by the method expression::code() More... | |
enum | convexity { UNSET, NONCONVEX, CONVEX, CONCAVE, AFFINE, CONV_LINEAR, CONV_CONSTANT, CONV_ZERO } |
convexity type of an expression More... | |
enum | monotonicity { MON_UNSET, NONMONOTONE, NDECREAS, NINCREAS, INCLIN, DECLIN, MON_CONST, MON_ZERO } |
monotonicity type of an expression More... | |
enum | dig_type { ORIG_ONLY, STOP_AT_AUX, TAG_AND_RECURSIVE, COUNT } |
type of digging when filling the dependence list More... | |
enum | cou_trig { COU_SINE, COU_COSINE } |
specify which trigonometric function is dealt with in trigEnvelope More... | |
enum | what_to_compare { SUM_NINF = 0, SUM_INF, OBJVAL, ALL_VARS, INTEGER_VARS } |
what term to compare: the sum of infeasibilities, the sum of numbers of infeasible terms, or the objective function More... | |
enum | Solver { EIpopt =0, EFilterSQP, EAll } |
Solvers for solving nonlinear programs. More... | |
enum | TrilinDecompType { rAI, treeDecomp, bi_tri, tri_bi } |
Functions | |
void | updateBranchInfo (const OsiSolverInterface &si, CouenneProblem *p, t_chg_bounds *chg, const CglTreeInfo &info) |
get new bounds from parents' bounds + branching rules More... | |
int | combine (CouenneProblem *p, int n1, int n2, const int *ind1, const int *ind2, double *sa1, double *sa2, const double *a1, const double *a2, double *clb, double *cub, double l1, double l2, double u1, double u2, bool *isInteger, int sign) |
int | compthres (register const void *t1, register const void *t2) |
int | compPair (register const void *p1, register const void *p2) |
CouNumber | minMaxDelta (funtriplet *ft, CouNumber lb, CouNumber ub) |
CouNumber | maxHeight (funtriplet *ft, CouNumber lb, CouNumber ub) |
CouNumber | project (CouNumber a, CouNumber b, CouNumber c, CouNumber x0, CouNumber y0, CouNumber lb, CouNumber ub, int sign, CouNumber *xp=NULL, CouNumber *yp=NULL) |
Compute projection of point (x0, y0) on the segment defined by line ax + by + c <>= 0 (sign provided by parameter sign) and bounds [lb, ub] on x. More... | |
CouNumber | projectSeg (CouNumber x0, CouNumber y0, CouNumber x1, CouNumber y1, CouNumber x2, CouNumber y2, int sign, CouNumber *xp=NULL, CouNumber *yp=NULL) |
Compute projection of point (x0, y0) on the segment defined by two points (x1,y1), (x2, y2) – sign provided by parameter sign. More... | |
static double | oppcos (double x) |
static double | oppsin (double x) |
static double | oppasin (double x) |
CouNumber | trigSelBranch (const CouenneObject *obj, const OsiBranchingInformation *info, expression *&var, double *&brpts, double *&brDist, int &way, enum cou_trig type) |
generalized procedure for both sine and cosine More... | |
double * | computeMulBrDist (const OsiBranchingInformation *info, int xi, int yi, int wi, int brind, double *brpt, int nPts=1) |
compute distance from future convexifications in set ![]() | |
CouNumber | curvDistance (funtriplet *ft, CouNumber lb, CouNumber ub) |
void | sparse2dense (int ncols, t_chg_bounds *chg_bds, int *&changed, int &nchanged) |
translate sparse to dense vector (should be replaced) More... | |
bool | isOptimumCut (const CouNumber *opt, OsiCuts &cs, CouenneProblem *p) |
void | fictitiousBound (OsiCuts &cs, CouenneProblem *p, bool action) |
int | trigEnvelope (const CouenneCutGenerator *, OsiCuts &, expression *, expression *, enum cou_trig) |
convex cuts for sine or cosine More... | |
int | bayEnvelope (const CouenneCutGenerator *, OsiCuts &, int, int, CouNumber, CouNumber, CouNumber, bool &, bool &) |
restrict to quarter of the interval [0,2pi] More... | |
int | findIntersection (CouNumber x0, CouNumber y0, CouNumber x1, CouNumber y1, CouNumber *wl, CouNumber *wu, CouNumber *xA, CouNumber *yA, CouNumber *xB, CouNumber *yB) |
int | genMulCoeff (CouNumber x1, CouNumber y1, CouNumber x2, CouNumber y2, char whichUse, CouNumber &cX, CouNumber &cY, CouNumber &cW) |
void | invertInterval (register double &l, register double &u, register double x) |
void | upperEnvHull (const CouenneCutGenerator *cg, OsiCuts &cs, int xi, CouNumber x0, CouNumber xl, CouNumber xu, int yi, CouNumber y0, CouNumber yl, CouNumber yu, int wi, CouNumber w0, CouNumber wl, CouNumber wu) |
better cuts than those from unifiedProdCuts More... | |
CouNumber | powNewton (CouNumber, CouNumber, unary_function, unary_function, unary_function) |
find proper tangent point to add deepest tangent cut More... | |
CouNumber | powNewton (CouNumber, CouNumber, funtriplet *) |
find proper tangent point to add deepest tangent cut More... | |
CouNumber | trigNewton (CouNumber, CouNumber, CouNumber) |
common convexification method used by both cos and sin More... | |
bool | operator< (const CouenneScalar &first, const CouenneScalar &second) |
void | CoinInvN (register const double *orig, register int n, register double *inverted) |
invert all contents More... | |
void | CoinCopyDisp (register const int *src, register int num, register int *dst, register int displacement) |
a CoinCopyN with a += on each element More... | |
void | draw_cuts (OsiCuts &, const CouenneCutGenerator *, int, expression *, expression *) |
allow to draw function within intervals and cuts introduced More... | |
bool | updateBound (register int sign, register CouNumber *dst, register CouNumber src) |
updates maximum violation. More... | |
int | compareExpr (const void *e0, const void *e1) |
independent comparison More... | |
bool | isInteger (CouNumber x) |
is this number integer? More... | |
expression * | getOriginal (expression *e) |
get original expression (can't make it an expression method as I need a non-const, what "this" would return) More... | |
expression * | Simplified (expression *complicated) |
Macro to return already simplified expression without having to do the if part every time simplify () is called. More... | |
CouNumber | zero_fun (CouNumber x) |
zero function (used by default by exprUnary) More... | |
CouExpr | operator+ (CouExpr &e1, CouExpr &e2) |
CouExpr & | operator/ (CouExpr &e1, CouExpr &e2) |
CouExpr & | operator% (CouExpr &e1, CouExpr &e2) |
CouExpr & | operator- (CouExpr &e1, CouExpr &e2) |
CouExpr & | operator* (CouExpr &e1, CouExpr &e2) |
CouExpr & | operator^ (CouExpr &e1, CouExpr &e2) |
CouExpr & | sin (CouExpr &e) |
CouExpr & | cos (CouExpr &e) |
CouExpr & | log (CouExpr &e) |
CouExpr & | exp (CouExpr &e) |
CouExpr & | operator+ (CouNumber &e1, CouExpr &e2) |
CouExpr & | operator/ (CouNumber &e1, CouExpr &e2) |
CouExpr & | operator% (CouNumber &e1, CouExpr &e2) |
CouExpr & | operator- (CouNumber &e1, CouExpr &e2) |
CouExpr & | operator* (CouNumber &e1, CouExpr &e2) |
CouExpr & | operator^ (CouNumber &e1, CouExpr &e2) |
CouExpr & | sin (CouNumber &e) |
CouExpr & | cos (CouNumber &e) |
CouExpr & | log (CouNumber &e) |
CouExpr & | exp (CouNumber &e) |
CouExpr & | operator+ (CouExpr &e1, CouNumber &e2) |
CouExpr & | operator/ (CouExpr &e1, CouNumber &e2) |
CouExpr & | operator% (CouExpr &e1, CouNumber &e2) |
CouExpr & | operator- (CouExpr &e1, CouNumber &e2) |
CouExpr & | operator* (CouExpr &e1, CouNumber &e2) |
CouExpr & | operator^ (CouExpr &e1, CouNumber &e2) |
static CouNumber | safeDiv (register CouNumber a, register CouNumber b, int sign) |
division that avoids NaN's and considers a sign when returning infinity More... | |
CouNumber | safeProd (register CouNumber a, register CouNumber b) |
product that avoids NaN's More... | |
bool | is_boundbox_regular (register CouNumber b1, register CouNumber b2) |
check if bounding box is suitable for a multiplication/division convexification constraint More... | |
CouNumber | inv (register CouNumber arg) |
the operator itself More... | |
CouNumber | oppInvSqr (register CouNumber x) |
derivative of inv (x) More... | |
CouNumber | inv_dblprime (register CouNumber x) |
inv_dblprime, second derivative of inv (x) More... | |
void | unifiedProdCuts (const CouenneCutGenerator *, OsiCuts &, int, CouNumber, CouNumber, CouNumber, int, CouNumber, CouNumber, CouNumber, int, CouNumber, CouNumber, CouNumber, t_chg_bounds *, enum expression::auxSign) |
unified convexification of products and divisions More... | |
CouNumber | opp (register CouNumber arg) |
operator opp: returns the opposite of a number More... | |
CouNumber | safe_pow (CouNumber base, CouNumber exponent, bool signpower=false) |
compute power and check for integer-and-odd inverse exponent More... | |
void | addPowEnvelope (const CouenneCutGenerator *, OsiCuts &, int, int, CouNumber, CouNumber, CouNumber, CouNumber, CouNumber, int, bool=false) |
add upper/lower envelope to power in convex/concave areas More... | |
CouNumber | modulo (register CouNumber a, register CouNumber b) |
normalize angle within [0,b] (typically, pi or 2pi) More... | |
bool | trigImpliedBound (enum cou_trig, int, int, CouNumber *, CouNumber *, t_chg_bounds *) |
generalized implied bound procedure for sine/cosine More... | |
bool | operator< (const CouenneFPsolution &one, const CouenneFPsolution &two) |
compare, base version More... | |
const Ipopt::EJournalCategory | J_BRANCHING (Ipopt::J_USER1) |
const Ipopt::EJournalCategory | J_BOUNDTIGHTENING (Ipopt::J_USER2) |
const Ipopt::EJournalCategory | J_CONVEXIFYING (Ipopt::J_USER3) |
const Ipopt::EJournalCategory | J_PROBLEM (Ipopt::J_USER4) |
const Ipopt::EJournalCategory | J_NLPHEURISTIC (Ipopt::J_USER5) |
const Ipopt::EJournalCategory | J_DISJCUTS (Ipopt::J_USER6) |
const Ipopt::EJournalCategory | J_REFORMULATE (Ipopt::J_USER7) |
const Ipopt::EJournalCategory | J_COUENNE (Ipopt::J_USER8) |
CouNumber | rootQ (int k) |
Find roots of polynomial $Q^k(x) = ![]() | |
CouNumber | Q (register int k, CouNumber x) |
Variables | |
const CouNumber | default_alpha = 0.25 |
const CouNumber | default_clamp = 0.2 |
const CouNumber | max_pseudocost = 1000. |
const double | large_bound = 1e9 |
if |branching point| > this, change it More... | |
const CouNumber | closeToBounds = .05 |
const int | maxIter = 20 |
const double | Couenne_large_bound = 9.999e12 |
used to declare LP unbounded More... | |
static const CouNumber | pi = M_PI |
static const CouNumber | pi2 = M_PI * 2. |
static const CouNumber | pih = M_PI / 2. |
const double | maxNlpInf_0 = 1e-5 |
A heuristic to call an NlpSolver if all CouenneObjects are close to be satisfied (for other integer objects, rounding is performed, if SOS's are not satisfied it does not run). More... | |
static enum Couenne::what_to_compare | comparedTerm_ |
const CouNumber | feas_tolerance_default = 1e-5 |
general include file for different compilers
typedef Ipopt::SmartPtr< Ipopt::Journalist > Couenne::JnlstPtr |
Definition at line 34 of file CouenneExprVar.hpp.
typedef Ipopt::SmartPtr< const Ipopt::Journalist > Couenne::ConstJnlstPtr |
Definition at line 35 of file CouenneExprVar.hpp.
typedef double Couenne::CouNumber |
main number type in Couenne
Definition at line 100 of file CouenneTypes.hpp.
unary function, used in all exprUnary
Definition at line 103 of file CouenneTypes.hpp.
enum Couenne::signum |
Enumerator | |
---|---|
NEG | |
POS | |
DN | |
UP |
Definition at line 24 of file TwoImpliedIneqCombine.cpp.
anonymous enum |
Define what kind of branching (two- or three-way) and where to start from: left, (center,) or right.
The last is to help diversify branching through randomization, which may help when the same variable is branched upon in several points of the BB tree.
Enumerator | |
---|---|
TWO_LEFT | |
TWO_RIGHT | |
TWO_RAND | |
THREE_LEFT | |
THREE_CENTER | |
THREE_RIGHT | |
THREE_RAND | |
BRANCH_NONE |
Definition at line 40 of file CouenneObject.hpp.
anonymous enum |
Enumerator | |
---|---|
COUENNE_INFEASIBLE | |
COUENNE_TIGHTENED | |
COUENNE_FEASIBLE |
Definition at line 30 of file CouenneDisjCuts.hpp.
enum Couenne::nodeType |
type of a node in an expression tree
Enumerator | |
---|---|
CONST | |
VAR | |
UNARY | |
N_ARY | |
COPY | |
AUX | |
EMPTY |
Definition at line 20 of file CouenneTypes.hpp.
linearity of an expression, as returned by the method Linearity()
Enumerator | |
---|---|
ZERO | |
CONSTANT | |
LINEAR | |
QUADRATIC | |
NONLINEAR |
Definition at line 23 of file CouenneTypes.hpp.
enum Couenne::pos |
enum Couenne::con_sign |
sign of constraint
Enumerator | |
---|---|
COUENNE_EQ | |
COUENNE_LE | |
COUENNE_GE | |
COUENNE_RNG |
Definition at line 33 of file CouenneTypes.hpp.
enum Couenne::conv_type |
position and number of convexification cuts added for a lower convex (upper concave) envelope
Enumerator | |
---|---|
CURRENT_ONLY | |
UNIFORM_GRID | |
AROUND_CURPOINT |
Definition at line 37 of file CouenneTypes.hpp.
enum Couenne::expr_type |
code returned by the method expression::code()
Definition at line 40 of file CouenneTypes.hpp.
enum Couenne::convexity |
convexity type of an expression
Enumerator | |
---|---|
UNSET | |
NONCONVEX | |
CONVEX | |
CONCAVE | |
AFFINE | |
CONV_LINEAR | |
CONV_CONSTANT | |
CONV_ZERO |
Definition at line 56 of file CouenneTypes.hpp.
monotonicity type of an expression
Enumerator | |
---|---|
MON_UNSET | |
NONMONOTONE | |
NDECREAS | |
NINCREAS | |
INCLIN | |
DECLIN | |
MON_CONST | |
MON_ZERO |
Definition at line 59 of file CouenneTypes.hpp.
enum Couenne::dig_type |
type of digging when filling the dependence list
Enumerator | |
---|---|
ORIG_ONLY | |
STOP_AT_AUX | |
TAG_AND_RECURSIVE | |
COUNT |
Definition at line 62 of file CouenneTypes.hpp.
enum Couenne::cou_trig |
specify which trigonometric function is dealt with in trigEnvelope
Enumerator | |
---|---|
COU_SINE | |
COU_COSINE |
Definition at line 23 of file CouenneExprSin.hpp.
what term to compare: the sum of infeasibilities, the sum of numbers of infeasible terms, or the objective function
Enumerator | |
---|---|
SUM_NINF | |
SUM_INF | |
OBJVAL | |
ALL_VARS | |
INTEGER_VARS |
Definition at line 29 of file CouenneFPpool.hpp.
enum Couenne::Solver |
Solvers for solving nonlinear programs.
Enumerator | |
---|---|
EIpopt |
Ipopt interior point algorithm |
EFilterSQP |
filterSQP Sequential Quadratic Programming algorithm |
EAll |
Use all solvers. |
Definition at line 47 of file CouenneMINLPInterface.hpp.
Enumerator | |
---|---|
rAI | |
treeDecomp | |
bi_tri | |
tri_bi |
Definition at line 136 of file CouenneProblem.hpp.
void Couenne::updateBranchInfo | ( | const OsiSolverInterface & | si, |
CouenneProblem * | p, | ||
t_chg_bounds * | chg, | ||
const CglTreeInfo & | info | ||
) |
get new bounds from parents' bounds + branching rules
Get changed bounds due to branching.
Definition at line 21 of file updateBranchInfo.cpp.
int Couenne::combine | ( | CouenneProblem * | p, |
int | n1, | ||
int | n2, | ||
const int * | ind1, | ||
const int * | ind2, | ||
double * | sa1, | ||
double * | sa2, | ||
const double * | a1, | ||
const double * | a2, | ||
double * | clb, | ||
double * | cub, | ||
double | l1, | ||
double | l2, | ||
double | u1, | ||
double | u2, | ||
bool * | isInteger, | ||
int | sign | ||
) |
Definition at line 80 of file TwoImpliedIneqCombine.cpp.
Definition at line 42 of file TwoImpliedIneqCombine.cpp.
Definition at line 63 of file TwoImpliedIneqCombine.cpp.
CouNumber Couenne::minMaxDelta | ( | funtriplet * | ft, |
CouNumber | lb, | ||
CouNumber | ub | ||
) |
Definition at line 49 of file minMaxDelta.cpp.
CouNumber Couenne::maxHeight | ( | funtriplet * | ft, |
CouNumber | lb, | ||
CouNumber | ub | ||
) |
Definition at line 86 of file minMaxDelta.cpp.
CouNumber Couenne::project | ( | CouNumber | a, |
CouNumber | b, | ||
CouNumber | c, | ||
CouNumber | x0, | ||
CouNumber | y0, | ||
CouNumber | lb, | ||
CouNumber | ub, | ||
int | sign, | ||
CouNumber * | xp = NULL , |
||
CouNumber * | yp = NULL |
||
) |
Compute projection of point (x0, y0) on the segment defined by line ax + by + c <>= 0 (sign provided by parameter sign) and bounds [lb, ub] on x.
Return distance from segment, 0 if satisfied
Definition at line 22 of file projections.cpp.
CouNumber Couenne::projectSeg | ( | CouNumber | x0, |
CouNumber | y0, | ||
CouNumber | x1, | ||
CouNumber | y1, | ||
CouNumber | x2, | ||
CouNumber | y2, | ||
int | sign, | ||
CouNumber * | xp = NULL , |
||
CouNumber * | yp = NULL |
||
) |
Compute projection of point (x0, y0) on the segment defined by two points (x1,y1), (x2, y2) – sign provided by parameter sign.
Return distance from segment, 0 if on it.
Definition at line 78 of file projections.cpp.
|
inlinestatic |
Definition at line 20 of file branchExprSinCos.cpp.
|
inlinestatic |
Definition at line 21 of file branchExprSinCos.cpp.
|
inlinestatic |
Definition at line 22 of file branchExprSinCos.cpp.
CouNumber Couenne::trigSelBranch | ( | const CouenneObject * | obj, |
const OsiBranchingInformation * | info, | ||
expression *& | var, | ||
double *& | brpts, | ||
double *& | brDist, | ||
int & | way, | ||
enum cou_trig | type | ||
) |
generalized procedure for both sine and cosine
Definition at line 26 of file branchExprSinCos.cpp.
double * Couenne::computeMulBrDist | ( | const OsiBranchingInformation * | info, |
int | xi, | ||
int | yi, | ||
int | wi, | ||
int | brind, | ||
double * | brpt, | ||
int | nPts = 1 |
||
) |
compute distance from future convexifications in set with x,y,w bounded.
Unified with exprDiv
Definition at line 23 of file computeMulBrDist.cpp.
CouNumber Couenne::curvDistance | ( | funtriplet * | ft, |
CouNumber | lb, | ||
CouNumber | ub | ||
) |
Definition at line 21 of file minMaxDelta.cpp.
translate sparse to dense vector (should be replaced)
Defined in Couenne/src/convex/generateCuts.cpp.
Definition at line 69 of file generateCuts.cpp.
bool Couenne::isOptimumCut | ( | const CouNumber * | opt, |
OsiCuts & | cs, | ||
CouenneProblem * | p | ||
) |
Definition at line 21 of file isOptimumCut.cpp.
void Couenne::fictitiousBound | ( | OsiCuts & | cs, |
CouenneProblem * | p, | ||
bool | action | ||
) |
Definition at line 40 of file generateCuts.cpp.
int Couenne::trigEnvelope | ( | const CouenneCutGenerator * | cg, |
OsiCuts & | cs, | ||
expression * | w, | ||
expression * | arg, | ||
enum cou_trig | which_trig | ||
) |
convex cuts for sine or cosine
real linearization of sine/cosine
Definition at line 104 of file conv-exprSinCos.cpp.
int Couenne::bayEnvelope | ( | const CouenneCutGenerator * | cg, |
OsiCuts & | cs, | ||
int | wi, | ||
int | xi, | ||
CouNumber | x0, | ||
CouNumber | x1, | ||
CouNumber | displacement, | ||
bool & | skip_up, | ||
bool & | skip_dn | ||
) |
restrict to quarter of the interval [0,2pi]
Definition at line 146 of file conv-exprSinCos.cpp.
int Couenne::findIntersection | ( | CouNumber | x0, |
CouNumber | y0, | ||
CouNumber | x1, | ||
CouNumber | y1, | ||
CouNumber * | wl, | ||
CouNumber * | wu, | ||
CouNumber * | xA, | ||
CouNumber * | yA, | ||
CouNumber * | xB, | ||
CouNumber * | yB | ||
) |
Definition at line 307 of file exprMul-upperHull.cpp.
int Couenne::genMulCoeff | ( | CouNumber | x1, |
CouNumber | y1, | ||
CouNumber | x2, | ||
CouNumber | y2, | ||
char | whichUse, | ||
CouNumber & | cX, | ||
CouNumber & | cY, | ||
CouNumber & | cW | ||
) |
Definition at line 367 of file exprMul-upperHull.cpp.
|
inline |
Definition at line 33 of file exprMul-upperHull.cpp.
void Couenne::upperEnvHull | ( | const CouenneCutGenerator * | cg, |
OsiCuts & | cs, | ||
int | xi, | ||
CouNumber | x0, | ||
CouNumber | xl, | ||
CouNumber | xu, | ||
int | yi, | ||
CouNumber | y0, | ||
CouNumber | yl, | ||
CouNumber | yu, | ||
int | wi, | ||
CouNumber | w0, | ||
CouNumber | wl, | ||
CouNumber | wu | ||
) |
better cuts than those from unifiedProdCuts
Definition at line 42 of file exprMul-upperHull.cpp.
CouNumber Couenne::powNewton | ( | CouNumber | xc, |
CouNumber | yc, | ||
unary_function | f, | ||
unary_function | fp, | ||
unary_function | fpp | ||
) |
find proper tangent point to add deepest tangent cut
Definition at line 29 of file powNewton.cpp.
CouNumber Couenne::powNewton | ( | CouNumber | xc, |
CouNumber | yc, | ||
funtriplet * | tri | ||
) |
find proper tangent point to add deepest tangent cut
Definition at line 75 of file powNewton.cpp.
CouNumber Couenne::trigNewton | ( | CouNumber | a, |
CouNumber | l, | ||
CouNumber | u | ||
) |
common convexification method used by both cos and sin
Definition at line 21 of file trigNewton.cpp.
|
inline |
Definition at line 62 of file CouenneMatrix.hpp.
|
inline |
invert all contents
Definition at line 194 of file CouenneDisjCuts.hpp.
|
inline |
a CoinCopyN with a += on each element
Definition at line 203 of file CouenneDisjCuts.hpp.
void Couenne::draw_cuts | ( | OsiCuts & | , |
const CouenneCutGenerator * | , | ||
int | , | ||
expression * | , | ||
expression * | |||
) |
allow to draw function within intervals and cuts introduced
Definition at line 21 of file drawCuts.cpp.
|
inline |
updates maximum violation.
Used with all impliedBound. Returns true if a bound has been modified, false otherwise
Definition at line 279 of file CouenneExpression.hpp.
independent comparison
Definition at line 304 of file CouenneExpression.hpp.
|
inline |
is this number integer?
Definition at line 309 of file CouenneExpression.hpp.
|
inline |
get original expression (can't make it an expression method as I need a non-const, what "this" would return)
Definition at line 315 of file CouenneExpression.hpp.
|
inline |
Macro to return already simplified expression without having to do the if part every time simplify () is called.
Definition at line 323 of file CouenneExpression.hpp.
|
inline |
zero function (used by default by exprUnary)
Definition at line 22 of file CouenneExprUnary.hpp.
Definition at line 16 of file CouExpr.cpp.
CouExpr& Couenne::operator/ | ( | CouExpr & | e1, |
CouExpr & | e2 | ||
) |
CouExpr& Couenne::operator% | ( | CouExpr & | e1, |
CouExpr & | e2 | ||
) |
CouExpr& Couenne::operator- | ( | CouExpr & | e1, |
CouExpr & | e2 | ||
) |
CouExpr& Couenne::operator* | ( | CouExpr & | e1, |
CouExpr & | e2 | ||
) |
CouExpr& Couenne::operator^ | ( | CouExpr & | e1, |
CouExpr & | e2 | ||
) |
CouExpr& Couenne::sin | ( | CouExpr & | e | ) |
CouExpr& Couenne::cos | ( | CouExpr & | e | ) |
CouExpr& Couenne::log | ( | CouExpr & | e | ) |
CouExpr& Couenne::exp | ( | CouExpr & | e | ) |
CouExpr& Couenne::operator+ | ( | CouNumber & | e1, |
CouExpr & | e2 | ||
) |
CouExpr& Couenne::operator/ | ( | CouNumber & | e1, |
CouExpr & | e2 | ||
) |
CouExpr& Couenne::operator% | ( | CouNumber & | e1, |
CouExpr & | e2 | ||
) |
CouExpr& Couenne::operator- | ( | CouNumber & | e1, |
CouExpr & | e2 | ||
) |
CouExpr& Couenne::operator* | ( | CouNumber & | e1, |
CouExpr & | e2 | ||
) |
CouExpr& Couenne::operator^ | ( | CouNumber & | e1, |
CouExpr & | e2 | ||
) |
CouExpr& Couenne::sin | ( | CouNumber & | e | ) |
CouExpr& Couenne::cos | ( | CouNumber & | e | ) |
CouExpr& Couenne::log | ( | CouNumber & | e | ) |
CouExpr& Couenne::exp | ( | CouNumber & | e | ) |
CouExpr& Couenne::operator+ | ( | CouExpr & | e1, |
CouNumber & | e2 | ||
) |
CouExpr& Couenne::operator/ | ( | CouExpr & | e1, |
CouNumber & | e2 | ||
) |
CouExpr& Couenne::operator% | ( | CouExpr & | e1, |
CouNumber & | e2 | ||
) |
CouExpr& Couenne::operator- | ( | CouExpr & | e1, |
CouNumber & | e2 | ||
) |
CouExpr& Couenne::operator* | ( | CouExpr & | e1, |
CouNumber & | e2 | ||
) |
CouExpr& Couenne::operator^ | ( | CouExpr & | e1, |
CouNumber & | e2 | ||
) |
|
inlinestatic |
division that avoids NaN's and considers a sign when returning infinity
Definition at line 19 of file CouenneExprBDiv.hpp.
|
inline |
product that avoids NaN's
Definition at line 25 of file CouenneExprBMul.hpp.
|
inline |
check if bounding box is suitable for a multiplication/division convexification constraint
Definition at line 124 of file CouenneExprDiv.hpp.
|
inline |
the operator itself
Definition at line 19 of file CouenneExprInv.hpp.
|
inline |
derivative of inv (x)
Definition at line 24 of file CouenneExprInv.hpp.
|
inline |
inv_dblprime, second derivative of inv (x)
Definition at line 29 of file CouenneExprInv.hpp.
void Couenne::unifiedProdCuts | ( | const CouenneCutGenerator * | cg, |
OsiCuts & | cs, | ||
int | xi, | ||
CouNumber | x0, | ||
CouNumber | xl, | ||
CouNumber | xu, | ||
int | yi, | ||
CouNumber | y0, | ||
CouNumber | yl, | ||
CouNumber | yu, | ||
int | wi, | ||
CouNumber | w0, | ||
CouNumber | wl, | ||
CouNumber | wu, | ||
t_chg_bounds * | chg, | ||
enum expression::auxSign | sign | ||
) |
unified convexification of products and divisions
Definition at line 96 of file unifiedProdCuts.cpp.
|
inline |
operator opp: returns the opposite of a number
Definition at line 21 of file CouenneExprOpp.hpp.
|
inline |
compute power and check for integer-and-odd inverse exponent
Definition at line 133 of file CouenneExprPow.hpp.
void Couenne::addPowEnvelope | ( | const CouenneCutGenerator * | cg, |
OsiCuts & | cs, | ||
int | wi, | ||
int | xi, | ||
CouNumber | x, | ||
CouNumber | y, | ||
CouNumber | k, | ||
CouNumber | l, | ||
CouNumber | u, | ||
int | sign, | ||
bool | signpower = false |
||
) |
add upper/lower envelope to power in convex/concave areas
Definition at line 26 of file conv-exprPow-envelope.cpp.
|
inline |
normalize angle within [0,b] (typically, pi or 2pi)
Definition at line 27 of file CouenneExprSin.hpp.
bool Couenne::trigImpliedBound | ( | enum cou_trig | type, |
int | wind, | ||
int | xind, | ||
CouNumber * | l, | ||
CouNumber * | u, | ||
t_chg_bounds * | chg | ||
) |
generalized implied bound procedure for sine/cosine
Definition at line 66 of file exprSin.cpp.
|
inline |
compare, base version
Definition at line 76 of file CouenneFPpool.hpp.
const Ipopt::EJournalCategory Couenne::J_BRANCHING | ( | Ipopt::J_USER1 | ) |
const Ipopt::EJournalCategory Couenne::J_BOUNDTIGHTENING | ( | Ipopt::J_USER2 | ) |
const Ipopt::EJournalCategory Couenne::J_CONVEXIFYING | ( | Ipopt::J_USER3 | ) |
const Ipopt::EJournalCategory Couenne::J_PROBLEM | ( | Ipopt::J_USER4 | ) |
const Ipopt::EJournalCategory Couenne::J_NLPHEURISTIC | ( | Ipopt::J_USER5 | ) |
const Ipopt::EJournalCategory Couenne::J_DISJCUTS | ( | Ipopt::J_USER6 | ) |
const Ipopt::EJournalCategory Couenne::J_REFORMULATE | ( | Ipopt::J_USER7 | ) |
const Ipopt::EJournalCategory Couenne::J_COUENNE | ( | Ipopt::J_USER8 | ) |
const CouNumber Couenne::default_alpha = 0.25 |
Definition at line 23 of file CouenneObject.hpp.
const CouNumber Couenne::default_clamp = 0.2 |
Definition at line 24 of file CouenneObject.hpp.
const CouNumber Couenne::max_pseudocost = 1000. |
Definition at line 25 of file CouenneObject.hpp.
const double Couenne::large_bound = 1e9 |
if |branching point| > this, change it
Definition at line 28 of file CouenneObject.hpp.
const CouNumber Couenne::closeToBounds = .05 |
Definition at line 33 of file CouenneObject.hpp.
const int Couenne::maxIter = 20 |
Definition at line 18 of file minMaxDelta.cpp.
const double Couenne::Couenne_large_bound = 9.999e12 |
used to declare LP unbounded
Definition at line 50 of file CouennePrecisions.hpp.
Definition at line 22 of file exprSin.cpp.
Definition at line 23 of file exprSin.cpp.
Definition at line 24 of file exprSin.cpp.
const double Couenne::maxNlpInf_0 = 1e-5 |
A heuristic to call an NlpSolver if all CouenneObjects are close to be satisfied (for other integer objects, rounding is performed, if SOS's are not satisfied it does not run).
Definition at line 26 of file BonNlpHeuristic.hpp.
|
static |
const CouNumber Couenne::feas_tolerance_default = 1e-5 |
Definition at line 159 of file CouenneProblem.hpp.