Stores a quadratic row of the form l < c + ax + x^T Q x < u. More...
#include <BonQuadRow.hpp>
Public Member Functions | |
QuadRow () | |
Default constructor. More... | |
QuadRow (const QuadRow &other) | |
Copy constructor. More... | |
QuadRow & | operator= (const QuadRow &rhs) |
Assignment operator. More... | |
QuadRow (const QuadCut &cut) | |
Constructor from a quadratic cut. More... | |
QuadRow & | operator= (const QuadCut &rhs) |
Assignment form a quadrattic &cut. More... | |
QuadRow (const OsiRowCut &cut) | |
Constructor from a linear cut. More... | |
QuadRow & | operator= (const OsiRowCut &rhs) |
Assignment form a linear &cut. More... | |
double | eval_f (const double *x, bool new_x) |
Evaluate quadratic form. More... | |
int | nnz_grad () |
Get number of non-zeroes in the gradiant. More... | |
void | gradiant_struct (const int nnz, int *indices, bool offset) |
Get structure of gradiant. More... | |
void | eval_grad (const int nnz, const double *x, bool new_x, double *values) |
Evaluate gradiant of quadratic form. More... | |
int | nnz_hessian () |
number of non-zeroes in hessian. More... | |
bool | isLinear () |
Says if the constraint is linear. More... | |
void | eval_hessian (double lambda, double *values) |
Return hessian value (i.e. More... | |
void | add_to_hessian (AdjustableMat &H, bool offset) |
Add row to a bigger hessian. More... | |
void | remove_from_hessian (AdjustableMat &H) |
Remove row from a bigger hessian. More... | |
void | print () |
Print quadratic constraint. More... | |
Private Types | |
typedef std::map< int, std::pair< double, double > > | gStore |
Private Member Functions | |
void | initialize () |
Initialize once quadratic form is know. More... | |
void | internal_eval_grad (const double *x) |
Does internal work to evaluate gradiant of this in x. More... | |
Private Attributes | |
double | lb_ |
lower bound. More... | |
double | ub_ |
upper bound. More... | |
double | c_ |
Constant term. More... | |
CoinPackedVector | a_ |
linear term in sparse storage. More... | |
TMat | Q_ |
Quadratic term. More... | |
gStore | g_ |
std::vector< gStore::iterator > | a_grad_idx_ |
To have fast access to gradiant entries for a_. More... | |
std::vector< gStore::iterator > | Q_row_grad_idx_ |
To have fast access to gradient entries for rows Q_. More... | |
std::vector< gStore::iterator > | Q_col_grad_idx_ |
To have fast access to gradient entries for cols Q_. More... | |
std::vector < AdjustableMat::iterator > | Q_hessian_idx_ |
To have fast access to entries in full hessian of Q_. More... | |
bool | grad_evaled_ |
Flag indicating if gradiant has been evaluated. More... | |
Stores a quadratic row of the form l < c + ax + x^T Q x < u.
Does computation usefull for nlp-solver. It can only be initialized from a QuadCut.
Definition at line 32 of file BonQuadRow.hpp.
|
private |
Definition at line 106 of file BonQuadRow.hpp.
Bonmin::QuadRow::QuadRow | ( | ) |
Default constructor.
Definition at line 15 of file BonQuadRow.cpp.
Bonmin::QuadRow::QuadRow | ( | const QuadRow & | other | ) |
Copy constructor.
Definition at line 23 of file BonQuadRow.cpp.
Bonmin::QuadRow::QuadRow | ( | const QuadCut & | cut | ) |
Constructor from a quadratic cut.
Definition at line 54 of file BonQuadRow.cpp.
Bonmin::QuadRow::QuadRow | ( | const OsiRowCut & | cut | ) |
Constructor from a linear cut.
Definition at line 79 of file BonQuadRow.cpp.
Assignment operator.
Definition at line 37 of file BonQuadRow.cpp.
Assignment form a quadrattic &cut.
Definition at line 63 of file BonQuadRow.cpp.
QuadRow & Bonmin::QuadRow::operator= | ( | const OsiRowCut & | rhs | ) |
Assignment form a linear &cut.
Definition at line 88 of file BonQuadRow.cpp.
double Bonmin::QuadRow::eval_f | ( | const double * | x, |
bool | new_x | ||
) |
Evaluate quadratic form.
Definition at line 160 of file BonQuadRow.cpp.
int Bonmin::QuadRow::nnz_grad | ( | ) |
Get number of non-zeroes in the gradiant.
Definition at line 184 of file BonQuadRow.cpp.
Get structure of gradiant.
Definition at line 188 of file BonQuadRow.cpp.
Evaluate gradiant of quadratic form.
Definition at line 199 of file BonQuadRow.cpp.
|
inline |
number of non-zeroes in hessian.
Definition at line 66 of file BonQuadRow.hpp.
|
inline |
Says if the constraint is linear.
Definition at line 70 of file BonQuadRow.hpp.
void Bonmin::QuadRow::eval_hessian | ( | double | lambda, |
double * | values | ||
) |
Return hessian value (i.e.
Return hessian values (i.e.
Q_).
Q_) in values.
Definition at line 296 of file BonQuadRow.cpp.
void Bonmin::QuadRow::add_to_hessian | ( | AdjustableMat & | H, |
bool | offset | ||
) |
Add row to a bigger hessian.
Definition at line 262 of file BonQuadRow.cpp.
void Bonmin::QuadRow::remove_from_hessian | ( | AdjustableMat & | H | ) |
Remove row from a bigger hessian.
Definition at line 283 of file BonQuadRow.cpp.
void Bonmin::QuadRow::print | ( | ) |
Print quadratic constraint.
Definition at line 146 of file BonQuadRow.cpp.
|
private |
Initialize once quadratic form is know.
Definition at line 103 of file BonQuadRow.cpp.
|
private |
Does internal work to evaluate gradiant of this in x.
Definition at line 223 of file BonQuadRow.cpp.
|
private |
lower bound.
Definition at line 92 of file BonQuadRow.hpp.
|
private |
upper bound.
Definition at line 94 of file BonQuadRow.hpp.
|
private |
Constant term.
Definition at line 96 of file BonQuadRow.hpp.
|
private |
linear term in sparse storage.
Definition at line 98 of file BonQuadRow.hpp.
|
private |
Quadratic term.
Definition at line 100 of file BonQuadRow.hpp.
|
private |
Definition at line 109 of file BonQuadRow.hpp.
|
private |
To have fast access to gradiant entries for a_.
Definition at line 111 of file BonQuadRow.hpp.
|
private |
To have fast access to gradient entries for rows Q_.
Definition at line 113 of file BonQuadRow.hpp.
|
private |
To have fast access to gradient entries for cols Q_.
Definition at line 115 of file BonQuadRow.hpp.
|
private |
To have fast access to entries in full hessian of Q_.
Definition at line 117 of file BonQuadRow.hpp.
|
private |
Flag indicating if gradiant has been evaluated.
Definition at line 119 of file BonQuadRow.hpp.