ConstrainedOptPack: C++ Tools for Constrained (and Unconstrained) Optimization  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Member Functions | List of all members
ConstrainedOptPack::MatrixHessianSuperBasicInitDiagonal Class Reference

Matrix class that adds the ability to initialize to a diagonal to a MatrixHessainSuperBasic object. More...

#include <ConstrainedOptPack_MatrixHessianSuperBasicInitDiagonal.hpp>

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

Public Member Functions

 MatrixHessianSuperBasicInitDiagonal ()
 Constructs to uninitialized. More...
 
- Public Member Functions inherited from ConstrainedOptPack::MatrixHessianSuperBasic
 MatrixHessianSuperBasic ()
 Constructs to uninitialized. More...
 
const GenPermMatrixSlice & Q_R () const
 
const GenPermMatrixSlice & Q_X () const
 
const bnd_fixed_tbnd_fixed () const
 
const B_RR_ptr_tB_RR_ptr () const
 
const B_RX_ptr_tB_RX_ptr () const
 
BLAS_Cpp::Transp B_RX_trans () const
 
const B_XX_ptr_tB_XX_ptr () const
 
size_type rows () const
 
void Vp_StMtV (DVectorSlice *vs_lhs, value_type alpha, BLAS_Cpp::Transp trans_rhs1, const DVectorSlice &vs_rhs2, value_type beta) const
 
void Vp_StMtV (DVectorSlice *vs_lhs, value_type alpha, BLAS_Cpp::Transp trans_rhs1, const SpVectorSlice &sv_rhs2, value_type beta) const
 
void Vp_StPtMtV (DVectorSlice *vs_lhs, value_type alpha, const GenPermMatrixSlice &P_rhs1, BLAS_Cpp::Transp P_rhs1_trans, BLAS_Cpp::Transp M_rhs2_trans, const DVectorSlice &sv_rhs3, value_type beta) const
 
value_type transVtMtV (const SpVectorSlice &sv_rhs1, BLAS_Cpp::Transp trans_rhs2, const SpVectorSlice &sv_rhs3) const
 

Overridden from MatrixHessianSuperBasic.

void initialize (size_type n, size_type n_R, const size_type i_x_free[], const size_type i_x_fixed[], const EBounds bnd_fixed[], const B_RR_ptr_t &B_RR_ptr, const B_RX_ptr_t &B_RX_ptr, BLAS_Cpp::Transp B_RX_trans, const B_XX_ptr_t &B_XX_ptr)
 Initialize the matrix and require B_RR to support #MatrixSymInitDiag#. More...
 

Overridden from MatrixSymInitDiag.

These function call the corresponding functions on B_RR_ptr()# and then call the equivalent of: {verbatim} MatrixHessianSuperBasic::initialize( this->B_RR_ptr()->rows(),this->B_RR_ptr()->cols() ,NULL,NULL,NULL ,this->B_RR_ptr() ,this->B_RX_ptr(),this->B_RX_trans() ,this->B_XX_ptr() ); {verbatim}

void init_identity (size_type n, value_type alpha)
 
void init_diagonal (const DVectorSlice &diag)
 

Additional Inherited Members

- Public Types inherited from ConstrainedOptPack::MatrixHessianSuperBasic
typedef Teuchos::RCP< const
MatrixSymWithOpFactorized > 
B_RR_ptr_t
 
typedef Teuchos::RCP< const
MatrixOp > 
B_RX_ptr_t
 
typedef Teuchos::RCP< const
MatrixSymOp > 
B_XX_ptr_t
 
typedef std::vector< EBounds > bnd_fixed_t
 
- Protected Member Functions inherited from ConstrainedOptPack::MatrixHessianSuperBasic
void assert_initialized () const
 

Detailed Description

Matrix class that adds the ability to initialize to a diagonal to a MatrixHessainSuperBasic object.

Essentially, the matrix #B_RR# must support the #MatrixSymInitDiag# interface.

Definition at line 59 of file ConstrainedOptPack_MatrixHessianSuperBasicInitDiagonal.hpp.

Constructor & Destructor Documentation

ConstrainedOptPack::MatrixHessianSuperBasicInitDiagonal::MatrixHessianSuperBasicInitDiagonal ( )

Constructs to uninitialized.

Member Function Documentation

void ConstrainedOptPack::MatrixHessianSuperBasicInitDiagonal::initialize ( size_type  n,
size_type  n_R,
const size_type  i_x_free[],
const size_type  i_x_fixed[],
const EBounds  bnd_fixed[],
const B_RR_ptr_t B_RR_ptr,
const B_RX_ptr_t B_RX_ptr,
BLAS_Cpp::Transp  B_RX_trans,
const B_XX_ptr_t B_XX_ptr 
)
virtual

Initialize the matrix and require B_RR to support #MatrixSymInitDiag#.

Preconditions:{itemize} #dynamic_cast<MatrixSymInitDiag*>(const_cast<MatrixSymWithOpFactorized*>(B_RR_ptr.get())) != NULL# {itemize}

This overridden function is a little bit of a hack but it is better than the alternatives that I could think of. What is important is that the #MatrixSymInitDiag# interface for this class will be supported as long as this function executes succesfully on initialization. This is far better than waiting until later when dynamic casting would be done and failed. We need to catch any mistakes right away.

In this manner we will have given up some compile-time checking but the run-time check will be very good.

Reimplemented from ConstrainedOptPack::MatrixHessianSuperBasic.

void ConstrainedOptPack::MatrixHessianSuperBasicInitDiagonal::init_identity ( size_type  n,
value_type  alpha 
)

void ConstrainedOptPack::MatrixHessianSuperBasicInitDiagonal::init_diagonal ( const DVectorSlice &  diag)


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