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 values (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.

References initialize().

Bonmin::QuadRow::QuadRow ( const QuadCut cut  ) 

Constructor from a quadratic cut.

Definition at line 54 of file BonQuadRow.cpp.

References initialize().

Bonmin::QuadRow::QuadRow ( const OsiRowCut &  cut  ) 

Constructor from a linear cut.

Definition at line 79 of file BonQuadRow.cpp.

References initialize().


Member Function Documentation

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

Assignment operator.

Definition at line 37 of file BonQuadRow.cpp.

References a_, a_grad_idx_, c_, g_, grad_evaled_, initialize(), Q_, Q_col_grad_idx_, Q_hessian_idx_, and Q_row_grad_idx_.

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

Assignment form a quadrattic &cut.

Definition at line 63 of file BonQuadRow.cpp.

References a_, a_grad_idx_, Bonmin::QuadCut::c(), c_, g_, initialize(), Bonmin::TMat::make_upper_triangular(), Bonmin::QuadCut::Q(), Q_, Q_col_grad_idx_, Q_row_grad_idx_, and Bonmin::QuadCut::type().

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

Assignment form a linear &cut.

Definition at line 88 of file BonQuadRow.cpp.

References a_, a_grad_idx_, c_, g_, initialize(), Q_, Q_col_grad_idx_, and Q_row_grad_idx_.

double Bonmin::QuadRow::eval_f ( const double *  x,
bool  new_x 
)

Evaluate quadratic form.

Definition at line 160 of file BonQuadRow.cpp.

References a_, c_, g_, internal_eval_grad(), and n.

int Bonmin::QuadRow::nnz_grad (  ) 

Get number of non-zeroes in the gradiant.

Definition at line 184 of file BonQuadRow.cpp.

References g_.

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

Get structure of gradiant.

Definition at line 188 of file BonQuadRow.cpp.

References g_, and n.

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.

References DEBUG, g_, internal_eval_grad(), and n.

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 values (i.e.

Q_).

Definition at line 296 of file BonQuadRow.cpp.

References DEBUG, Bonmin::TMat::nnz_, Q_, Q_hessian_idx_, and Bonmin::TMat::value_.

void Bonmin::QuadRow::add_to_hessian ( AdjustableMat H,
bool  offset 
)

Add row to a bigger hessian.

Definition at line 262 of file BonQuadRow.cpp.

References e, Bonmin::TMat::iRow_, Bonmin::TMat::jCol_, Bonmin::TMat::nnz_, Q_, and Q_hessian_idx_.

void Bonmin::QuadRow::remove_from_hessian ( AdjustableMat H  ) 

Remove row from a bigger hessian.

Definition at line 283 of file BonQuadRow.cpp.

References Bonmin::TMat::nnz_, Q_, and Q_hessian_idx_.

void Bonmin::QuadRow::print (  ) 

Print quadratic constraint.

Definition at line 146 of file BonQuadRow.cpp.

References a_, c_, and n.

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

Initialize once quadratic form is know.

Definition at line 103 of file BonQuadRow.cpp.

References a_, a_grad_idx_, g_, grad_evaled_, Bonmin::TMat::iRow_, Bonmin::TMat::jCol_, n, Bonmin::TMat::nnz_, Bonmin::TMat::nonEmptyCols(), Bonmin::TMat::nonEmptyRows(), Bonmin::TMat::numNonEmptyCols(), Bonmin::TMat::numNonEmptyRows(), Q_, Q_col_grad_idx_, and Q_row_grad_idx_.

Referenced by operator=(), and QuadRow().

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.

References Bonmin::TMat::columnOrdering_, g_, grad_evaled_, Bonmin::TMat::iRow_, Bonmin::TMat::jCol_, k, Bonmin::TMat::nonEmptyCols(), Bonmin::TMat::nonEmptyRows(), Q_, Q_col_grad_idx_, Q_row_grad_idx_, Bonmin::TMat::rowOrdering_, and Bonmin::TMat::value_.

Referenced by eval_f(), and eval_grad().


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.

Referenced by eval_f(), operator=(), and print().

CoinPackedVector Bonmin::QuadRow::a_ [private]

linear term in sparse storage.

Definition at line 98 of file BonQuadRow.hpp.

Referenced by eval_f(), initialize(), operator=(), and print().

TMat Bonmin::QuadRow::Q_ [private]

Quadratic term.

Definition at line 100 of file BonQuadRow.hpp.

Referenced by add_to_hessian(), eval_hessian(), initialize(), internal_eval_grad(), isLinear(), nnz_hessian(), operator=(), and remove_from_hessian().

gStore Bonmin::QuadRow::g_ [private]

Definition at line 109 of file BonQuadRow.hpp.

Referenced by eval_f(), eval_grad(), gradiant_struct(), initialize(), internal_eval_grad(), nnz_grad(), and operator=().

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.

Referenced by initialize(), and operator=().

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.

Referenced by initialize(), internal_eval_grad(), and operator=().

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.

Referenced by initialize(), internal_eval_grad(), and operator=().

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.

Referenced by add_to_hessian(), eval_hessian(), operator=(), and remove_from_hessian().

bool Bonmin::QuadRow::grad_evaled_ [private]

Flag indicating if gradiant has been evaluated.

Definition at line 119 of file BonQuadRow.hpp.

Referenced by initialize(), internal_eval_grad(), and operator=().


The documentation for this class was generated from the following files:
Generated on Mon May 3 03:13:52 2010 by  doxygen 1.4.7