Bonmin::QuadRow Class Reference

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

#include <BonQuadRow.hpp>

Collaboration diagram for Bonmin::QuadRow:
Collaboration graph
[legend]

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.

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.


Member Function Documentation

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

Assignment operator.

Definition at line 37 of file BonQuadRow.cpp.

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

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.

void Bonmin::QuadRow::gradiant_struct ( const int  nnz,
int *  indices,
bool  offset 
)

Get structure of gradiant.

Definition at line 188 of file BonQuadRow.cpp.

void Bonmin::QuadRow::eval_grad ( const int  nnz,
const double *  x,
bool  new_x,
double *  values 
)

Evaluate gradiant of quadratic form.

Definition at line 199 of file BonQuadRow.cpp.

int Bonmin::QuadRow::nnz_hessian (  )  [inline]

number of non-zeroes in hessian.

Definition at line 66 of file BonQuadRow.hpp.

bool Bonmin::QuadRow::isLinear (  )  [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.

void Bonmin::QuadRow::initialize (  )  [private]

Initialize once quadratic form is know.

Definition at line 103 of file BonQuadRow.cpp.

void Bonmin::QuadRow::internal_eval_grad ( const double *  x  )  [private]

Does internal work to evaluate gradiant of this in x.

Definition at line 223 of file BonQuadRow.cpp.


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.

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 files:

Generated on 16 Feb 2012 by  doxygen 1.6.1