MOOCHO (Single Doxygen Collection)  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Private Types | Private Member Functions | Private Attributes | List of all members
ConstrainedOptPack::QPSolverRelaxedQPOPTSOL Class Referenceabstract

Node base clase for the primal QP solvers QPOPT and QPSOL. More...

#include <ConstrainedOptPack_QPSolverRelaxedQPOPTSOL.hpp>

Inheritance diagram for ConstrainedOptPack::QPSolverRelaxedQPOPTSOL:
Inheritance graph
[legend]

Public Types

enum  EInform { STRONG_LOCAL_MIN, WEAK_LOCAL_MIN, MAX_ITER_EXCEEDED, OTHER_ERROR }
 
- Public Types inherited from ConstrainedOptPack::QPSolverRelaxed
enum  EOutputLevel {
  PRINT_NONE = 0, PRINT_BASIC_INFO = 1, PRINT_ITER_SUMMARY = 2, PRINT_ITER_STEPS = 3,
  PRINT_ITER_ACT_SET = 4, PRINT_ITER_VECTORS = 5, PRINT_EVERY_THING = 6
}
 Enumeration for the amount of output to create from solve_qp(). More...
 
enum  ERunTests { RUN_TESTS, NO_TESTS }
 Enumeration for if to run internal tests or not. More...
 

Public Member Functions

 QPSolverRelaxedQPOPTSOL ()
 
 ~QPSolverRelaxedQPOPTSOL ()
 
virtual const MatrixOp * G () const
 Return a pointer to the matrix G to be used in the calculation of H*x by QPOPT and QPSOL. More...
 
virtual value_type use_as_bigM () const
 Return the value of the "big M" used in the relaxation (called by QPHESS functions). More...
 
QPSolverStats get_qp_stats () const
 
void release_memory ()
 
- Public Member Functions inherited from ConstrainedOptPack::QPSolverRelaxed
 STANDARD_MEMBER_COMPOSITION_MEMBERS (value_type, infinite_bound)
 Set the scalar that will be used to identigy infinite bounds. More...
 
 QPSolverRelaxed ()
 
virtual ~QPSolverRelaxed ()
 
virtual
QPSolverStats::ESolutionType 
solve_qp (std::ostream *out, EOutputLevel olevel, ERunTests test_what, const Vector &g, const MatrixSymOp &G, value_type etaL, const Vector &dL, const Vector &dU, const MatrixOp &E, BLAS_Cpp::Transp trans_E, const Vector &b, const Vector &eL, const Vector &eU, const MatrixOp &F, BLAS_Cpp::Transp trans_F, const Vector &f, value_type *obj_d, value_type *eta, VectorMutable *d, VectorMutable *nu, VectorMutable *mu, VectorMutable *Ed, VectorMutable *lambda, VectorMutable *Fd)
 Solve the QP. More...
 
virtual
QPSolverStats::ESolutionType 
solve_qp (std::ostream *out, EOutputLevel olevel, ERunTests test_what, const Vector &g, const MatrixSymOp &G, value_type etaL, const Vector &dL, const Vector &dU, const MatrixOp &E, BLAS_Cpp::Transp trans_E, const Vector &b, const Vector &eL, const Vector &eU, value_type *obj_d, value_type *eta, VectorMutable *d, VectorMutable *nu, VectorMutable *mu, VectorMutable *Ed)
 Solve the QP without general equality constrants. More...
 
virtual
QPSolverStats::ESolutionType 
solve_qp (std::ostream *out, EOutputLevel olevel, ERunTests test_what, const Vector &g, const MatrixSymOp &G, value_type etaL, const Vector &dL, const Vector &dU, const MatrixOp &F, BLAS_Cpp::Transp trans_F, const Vector &f, value_type *obj_d, value_type *eta, VectorMutable *d, VectorMutable *nu, VectorMutable *lambda, VectorMutable *Fd)
 Solve the QP without general inequality constrants. More...
 
virtual
QPSolverStats::ESolutionType 
solve_qp (std::ostream *out, EOutputLevel olevel, ERunTests test_what, const Vector &g, const MatrixSymOp &G, const Vector &dL, const Vector &dU, value_type *obj_d, VectorMutable *d, VectorMutable *nu)
 Solve the QP without general equality or inequality constrants (no relaxation needed). More...
 
virtual
QPSolverStats::ESolutionType 
solve_qp (std::ostream *out, EOutputLevel olevel, ERunTests test_what, const Vector &g, const MatrixSymOp &G, value_type etaL, const Vector *dL, const Vector *dU, const MatrixOp *E, BLAS_Cpp::Transp trans_E, const Vector *b, const Vector *eL, const Vector *eU, const MatrixOp *F, BLAS_Cpp::Transp trans_F, const Vector *f, value_type *obj_d, value_type *eta, VectorMutable *d, VectorMutable *nu, VectorMutable *mu, VectorMutable *Ed, VectorMutable *lambda, VectorMutable *Fd)
 This is a more flexible function where the client can set different constraints to be included. More...
 

Protected Types

typedef std::vector< f_intISTATE_t
 
typedef std::vector< f_intIWORK_t
 
typedef std::vector< f_dbl_precWORK_t
 

Protected Member Functions

QPSolverStats::ESolutionType imp_solve_qp (std::ostream *out, EOutputLevel olevel, ERunTests test_what, const Vector &g, const MatrixSymOp &G, value_type etaL, const Vector *dL, const Vector *dU, const MatrixOp *E, BLAS_Cpp::Transp trans_E, const Vector *b, const Vector *eL, const Vector *eU, const MatrixOp *F, BLAS_Cpp::Transp trans_F, const Vector *f, value_type *obj_d, value_type *eta, VectorMutable *d, VectorMutable *nu, VectorMutable *mu, VectorMutable *Ed, VectorMutable *lambda, VectorMutable *Fd)
 
virtual f_int liwork (f_int N, f_int NCLIN) const =0
 Length of integer workspace. More...
 
virtual f_int lrwork (f_int N, f_int NCLIN) const =0
 Length of real workspace. More...
 
virtual EInform call_qp_solver (bool warm_start)=0
 Solve the QP defined in the protected input data members and set the solution in the protected output data members. More...
 
- Protected Member Functions inherited from ConstrainedOptPack::QPSolverRelaxed

Protected Attributes

QPSolverStats qp_stats_
 

Private Types

typedef std::vector< f_intibnds_t
 

Private Member Functions

 QPSolverRelaxedQPOPTSOL (const QPSolverRelaxedQPOPTSOL &)
 
QPSolverRelaxedQPOPTSOLoperator= (const QPSolverRelaxedQPOPTSOL &)
 

Private Attributes

size_type n_inequ_bnds_
 
ibnds_t i_inequ_bnds_
 
value_type bigM_
 
value_type use_as_bigM_
 
const MatrixOp * G_
 

Public Types

typedef FortranTypes::f_int f_int
 
typedef FortranTypes::f_dbl_prec f_dbl_prec
 
typedef FortranTypes::f_logical f_logical
 

Input/Output parameters common to both QPOPT and QPSOL

These are access and updated by subclasses that call QPOPT and QPSOL.

f_int N_
 
f_int NCLIN_
 
DMatrix A_
 
DVector BL_
 
DVector BU_
 
DVector CVEC_
 
ISTATE_t ISTATE_
 
DVector X_
 
DVector AX_
 
DVector CLAMDA_
 
f_int ITER_
 
f_dbl_prec OBJ_
 
f_int LIWORK_
 
IWORK_t IWORK_
 
f_int LWORK_
 
WORK_t WORK_
 

Detailed Description

Node base clase for the primal QP solvers QPOPT and QPSOL.

In this implementation it is required that G only support the MatrixOp interface and is therefore quite flexible in the QPs it can solve.

Definition at line 60 of file ConstrainedOptPack_QPSolverRelaxedQPOPTSOL.hpp.

Member Typedef Documentation

Member Enumeration Documentation

Enumerator
STRONG_LOCAL_MIN 
WEAK_LOCAL_MIN 
MAX_ITER_EXCEEDED 
OTHER_ERROR 

Definition at line 130 of file ConstrainedOptPack_QPSolverRelaxedQPOPTSOL.hpp.

Constructor & Destructor Documentation

ConstrainedOptPack::QPSolverRelaxedQPOPTSOL::QPSolverRelaxedQPOPTSOL ( )
ConstrainedOptPack::QPSolverRelaxedQPOPTSOL::~QPSolverRelaxedQPOPTSOL ( )
ConstrainedOptPack::QPSolverRelaxedQPOPTSOL::QPSolverRelaxedQPOPTSOL ( const QPSolverRelaxedQPOPTSOL )
private

Member Function Documentation

const MatrixOp * ConstrainedOptPack::QPSolverRelaxedQPOPTSOL::G ( ) const
virtual

Return a pointer to the matrix G to be used in the calculation of H*x by QPOPT and QPSOL.

Definition at line 127 of file ConstrainedOptPack_QPSolverRelaxedQPOPTSOL.cpp.

value_type ConstrainedOptPack::QPSolverRelaxedQPOPTSOL::use_as_bigM ( ) const
virtual

Return the value of the "big M" used in the relaxation (called by QPHESS functions).

Definition at line 132 of file ConstrainedOptPack_QPSolverRelaxedQPOPTSOL.cpp.

QPSolverStats ConstrainedOptPack::QPSolverRelaxedQPOPTSOL::get_qp_stats ( ) const
virtual
void ConstrainedOptPack::QPSolverRelaxedQPOPTSOL::release_memory ( )
virtual
QPSolverStats::ESolutionType ConstrainedOptPack::QPSolverRelaxedQPOPTSOL::imp_solve_qp ( std::ostream *  out,
EOutputLevel  olevel,
ERunTests  test_what,
const Vector &  g,
const MatrixSymOp &  G,
value_type  etaL,
const Vector *  dL,
const Vector *  dU,
const MatrixOp *  E,
BLAS_Cpp::Transp  trans_E,
const Vector *  b,
const Vector *  eL,
const Vector *  eU,
const MatrixOp *  F,
BLAS_Cpp::Transp  trans_F,
const Vector *  f,
value_type *  obj_d,
value_type *  eta,
VectorMutable *  d,
VectorMutable *  nu,
VectorMutable *  mu,
VectorMutable *  Ed,
VectorMutable *  lambda,
VectorMutable *  Fd 
)
protectedvirtual
virtual f_int ConstrainedOptPack::QPSolverRelaxedQPOPTSOL::liwork ( f_int  N,
f_int  NCLIN 
) const
protectedpure virtual

Length of integer workspace.

virtual f_int ConstrainedOptPack::QPSolverRelaxedQPOPTSOL::lrwork ( f_int  N,
f_int  NCLIN 
) const
protectedpure virtual

Length of real workspace.

virtual EInform ConstrainedOptPack::QPSolverRelaxedQPOPTSOL::call_qp_solver ( bool  warm_start)
protectedpure virtual

Solve the QP defined in the protected input data members and set the solution in the protected output data members.

QPSolverRelaxedQPOPTSOL& ConstrainedOptPack::QPSolverRelaxedQPOPTSOL::operator= ( const QPSolverRelaxedQPOPTSOL )
private

Member Data Documentation

QPSolverStats ConstrainedOptPack::QPSolverRelaxedQPOPTSOL::qp_stats_
protected
f_int ConstrainedOptPack::QPSolverRelaxedQPOPTSOL::N_
protected
f_int ConstrainedOptPack::QPSolverRelaxedQPOPTSOL::NCLIN_
protected
DMatrix ConstrainedOptPack::QPSolverRelaxedQPOPTSOL::A_
protected
DVector ConstrainedOptPack::QPSolverRelaxedQPOPTSOL::BL_
protected
DVector ConstrainedOptPack::QPSolverRelaxedQPOPTSOL::BU_
protected
DVector ConstrainedOptPack::QPSolverRelaxedQPOPTSOL::CVEC_
protected
ISTATE_t ConstrainedOptPack::QPSolverRelaxedQPOPTSOL::ISTATE_
protected
DVector ConstrainedOptPack::QPSolverRelaxedQPOPTSOL::X_
protected
DVector ConstrainedOptPack::QPSolverRelaxedQPOPTSOL::AX_
protected
DVector ConstrainedOptPack::QPSolverRelaxedQPOPTSOL::CLAMDA_
protected
f_int ConstrainedOptPack::QPSolverRelaxedQPOPTSOL::ITER_
protected
f_dbl_prec ConstrainedOptPack::QPSolverRelaxedQPOPTSOL::OBJ_
protected
f_int ConstrainedOptPack::QPSolverRelaxedQPOPTSOL::LIWORK_
protected
IWORK_t ConstrainedOptPack::QPSolverRelaxedQPOPTSOL::IWORK_
protected
f_int ConstrainedOptPack::QPSolverRelaxedQPOPTSOL::LWORK_
protected
WORK_t ConstrainedOptPack::QPSolverRelaxedQPOPTSOL::WORK_
protected
size_type ConstrainedOptPack::QPSolverRelaxedQPOPTSOL::n_inequ_bnds_
private
ibnds_t ConstrainedOptPack::QPSolverRelaxedQPOPTSOL::i_inequ_bnds_
private
value_type ConstrainedOptPack::QPSolverRelaxedQPOPTSOL::bigM_
private
value_type ConstrainedOptPack::QPSolverRelaxedQPOPTSOL::use_as_bigM_
private
const MatrixOp* ConstrainedOptPack::QPSolverRelaxedQPOPTSOL::G_
private

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