Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
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]

Public Member Functions

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

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.

TMat Bonmin::QuadRow::Q_
private

Quadratic term.

Definition at line 100 of file BonQuadRow.hpp.

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.


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