Bonmin
1.7
|
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. | |
QuadRow (const QuadRow &other) | |
Copy constructor. | |
QuadRow & | operator= (const QuadRow &rhs) |
Assignment operator. | |
QuadRow (const QuadCut &cut) | |
Constructor from a quadratic cut. | |
QuadRow & | operator= (const QuadCut &rhs) |
Assignment form a quadrattic &cut. | |
QuadRow (const OsiRowCut &cut) | |
Constructor from a linear cut. | |
QuadRow & | operator= (const OsiRowCut &rhs) |
Assignment form a linear &cut. | |
double | eval_f (const double *x, bool new_x) |
Evaluate quadratic form. | |
int | nnz_grad () |
Get number of non-zeroes in the gradiant. | |
void | gradiant_struct (const int nnz, int *indices, bool offset) |
Get structure of gradiant. | |
void | eval_grad (const int nnz, const double *x, bool new_x, double *values) |
Evaluate gradiant of quadratic form. | |
int | nnz_hessian () |
number of non-zeroes in hessian. | |
bool | isLinear () |
Says if the constraint is linear. | |
void | eval_hessian (double lambda, double *values) |
Return hessian value (i.e. | |
void | add_to_hessian (AdjustableMat &H, bool offset) |
Add row to a bigger hessian. | |
void | remove_from_hessian (AdjustableMat &H) |
Remove row from a bigger hessian. | |
void | print () |
Print quadratic constraint. | |
Private Types | |
typedef std::map< int, std::pair< double, double > > | gStore |
Private Member Functions | |
void | initialize () |
Initialize once quadratic form is know. | |
void | internal_eval_grad (const double *x) |
Does internal work to evaluate gradiant of this in x. | |
Private Attributes | |
double | lb_ |
lower bound. | |
double | ub_ |
upper bound. | |
double | c_ |
Constant term. | |
CoinPackedVector | a_ |
linear term in sparse storage. | |
TMat | Q_ |
Quadratic term. | |
gStore | g_ |
std::vector< gStore::iterator > | a_grad_idx_ |
To have fast access to gradiant entries for a_. | |
std::vector< gStore::iterator > | Q_row_grad_idx_ |
To have fast access to gradient entries for rows Q_. | |
std::vector< gStore::iterator > | Q_col_grad_idx_ |
To have fast access to gradient entries for cols Q_. | |
std::vector < AdjustableMat::iterator > | Q_hessian_idx_ |
To have fast access to entries in full hessian of Q_. | |
bool | grad_evaled_ |
Flag indicating if gradiant has been evaluated. |
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.
typedef std::map<int, std::pair<double, double> > Bonmin::QuadRow::gStore [private] |
Definition at line 106 of file BonQuadRow.hpp.
Bonmin::QuadRow::QuadRow | ( | ) |
Default constructor.
Bonmin::QuadRow::QuadRow | ( | const QuadRow & | other | ) |
Copy constructor.
Bonmin::QuadRow::QuadRow | ( | const QuadCut & | cut | ) |
Constructor from a quadratic cut.
Bonmin::QuadRow::QuadRow | ( | const OsiRowCut & | cut | ) |
Constructor from a linear cut.
QuadRow& Bonmin::QuadRow::operator= | ( | const OsiRowCut & | rhs | ) |
Assignment form a linear &cut.
double Bonmin::QuadRow::eval_f | ( | const double * | x, |
bool | new_x | ||
) |
Evaluate quadratic form.
int Bonmin::QuadRow::nnz_grad | ( | ) |
Get number of non-zeroes in the gradiant.
void Bonmin::QuadRow::gradiant_struct | ( | const int | nnz, |
int * | indices, | ||
bool | offset | ||
) |
Get structure of gradiant.
void Bonmin::QuadRow::eval_grad | ( | const int | nnz, |
const double * | x, | ||
bool | new_x, | ||
double * | values | ||
) |
Evaluate gradiant of quadratic form.
int Bonmin::QuadRow::nnz_hessian | ( | ) | [inline] |
number of non-zeroes in hessian.
Definition at line 66 of file BonQuadRow.hpp.
References Bonmin::TMat::nnz_, and Q_.
bool Bonmin::QuadRow::isLinear | ( | ) | [inline] |
Says if the constraint is linear.
Definition at line 70 of file BonQuadRow.hpp.
References Bonmin::TMat::nnz_, and Q_.
void Bonmin::QuadRow::eval_hessian | ( | double | lambda, |
double * | values | ||
) |
Return hessian value (i.e.
Q_).
void Bonmin::QuadRow::add_to_hessian | ( | AdjustableMat & | H, |
bool | offset | ||
) |
Add row to a bigger hessian.
void Bonmin::QuadRow::remove_from_hessian | ( | AdjustableMat & | H | ) |
Remove row from a bigger hessian.
void Bonmin::QuadRow::print | ( | ) |
Print quadratic constraint.
void Bonmin::QuadRow::initialize | ( | ) | [private] |
Initialize once quadratic form is know.
void Bonmin::QuadRow::internal_eval_grad | ( | const double * | x | ) | [private] |
Does internal work to evaluate gradiant of this in x.
double Bonmin::QuadRow::lb_ [private] |
lower bound.
Definition at line 92 of file BonQuadRow.hpp.
double Bonmin::QuadRow::ub_ [private] |
upper bound.
Definition at line 94 of file BonQuadRow.hpp.
double Bonmin::QuadRow::c_ [private] |
Constant term.
Definition at line 96 of file BonQuadRow.hpp.
CoinPackedVector Bonmin::QuadRow::a_ [private] |
linear term in sparse storage.
Definition at line 98 of file BonQuadRow.hpp.
TMat Bonmin::QuadRow::Q_ [private] |
Quadratic term.
Definition at line 100 of file BonQuadRow.hpp.
Referenced by isLinear(), and nnz_hessian().
gStore Bonmin::QuadRow::g_ [private] |
Definition at line 109 of file BonQuadRow.hpp.
std::vector<gStore::iterator> Bonmin::QuadRow::a_grad_idx_ [private] |
To have fast access to gradiant entries for a_.
Definition at line 111 of file BonQuadRow.hpp.
std::vector<gStore::iterator> Bonmin::QuadRow::Q_row_grad_idx_ [private] |
To have fast access to gradient entries for rows Q_.
Definition at line 113 of file BonQuadRow.hpp.
std::vector<gStore::iterator> Bonmin::QuadRow::Q_col_grad_idx_ [private] |
To have fast access to gradient entries for cols Q_.
Definition at line 115 of file BonQuadRow.hpp.
std::vector<AdjustableMat::iterator> Bonmin::QuadRow::Q_hessian_idx_ [private] |
To have fast access to entries in full hessian of Q_.
Definition at line 117 of file BonQuadRow.hpp.
bool Bonmin::QuadRow::grad_evaled_ [private] |
Flag indicating if gradiant has been evaluated.
Definition at line 119 of file BonQuadRow.hpp.