|
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.
1.7.5.1