Bonmin  1.7
Public Member Functions | Private Types | Private Member Functions | Private Attributes
Bonmin::QuadRow Class Reference

Stores a quadratic row of the form l < c + ax + x^T Q x < u. More...

#include <BonQuadRow.hpp>

List of all members.

Public Member Functions

 QuadRow ()
 Default constructor.
 QuadRow (const QuadRow &other)
 Copy constructor.
QuadRowoperator= (const QuadRow &rhs)
 Assignment operator.
 QuadRow (const QuadCut &cut)
 Constructor from a quadratic cut.
QuadRowoperator= (const QuadCut &rhs)
 Assignment form a quadrattic &cut.
 QuadRow (const OsiRowCut &cut)
 Constructor from a linear cut.
QuadRowoperator= (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.

Detailed Description

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.


Member Typedef Documentation

typedef std::map<int, std::pair<double, double> > Bonmin::QuadRow::gStore [private]

Definition at line 106 of file BonQuadRow.hpp.


Constructor & Destructor Documentation

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.


Member Function Documentation

QuadRow& Bonmin::QuadRow::operator= ( const QuadRow rhs)

Assignment operator.

QuadRow& Bonmin::QuadRow::operator= ( const QuadCut rhs)

Assignment form a quadrattic &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.


Member Data Documentation

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.

Quadratic term.

Definition at line 100 of file BonQuadRow.hpp.

Referenced by isLinear(), and nnz_hessian().

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.

Flag indicating if gradiant has been evaluated.

Definition at line 119 of file BonQuadRow.hpp.


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