44 #include "ConstrainedOptPack_QPSchurInitKKTSystemHessianRelaxed.hpp"
45 #include "ConstrainedOptPack_MatrixSymHessianRelaxNonSing.hpp"
46 #include "AbstractLinAlgPack/src/AbstractLinAlgPack_GenPermMatrixSlice.hpp"
47 #include "AbstractLinAlgPack_GenPermMatrixSliceOp.hpp"
48 #include "AbstractLinAlgPack_SpVectorOp.hpp"
49 #include "DenseLinAlgPack_LinAlgOpPack.hpp"
50 #include "Midynamic_cast_verbose.h"
52 namespace LinAlgOpPack {
57 namespace ConstrainedOptPack {
63 ,
const SpVectorSlice& dL
64 ,
const SpVectorSlice& dU
67 ,
const DVectorSlice* f
68 ,
const DVectorSlice& d
69 ,
const SpVectorSlice& nu
72 ,i_x_fixed_t* i_x_fixed
73 ,bnd_fixed_t* bnd_fixed
74 ,j_f_decomp_t* j_f_decomp
83 const MatrixSymHessianRelaxNonSing
84 *G_relax_ptr =
dynamic_cast<const MatrixSymHessianRelaxNonSing*
>(&G);
86 if( G_relax_ptr == NULL ) {
88 g,G,etaL,dL,dU,F,trans_F,f,d,nu,n_R,i_x_free,i_x_fixed,bnd_fixed
89 ,j_f_decomp,b_X,Ko,fo);
93 const MatrixSymHessianRelaxNonSing
94 &G_relax = *G_relax_ptr;
97 const MatrixSymWithOpFactorized
98 &G_orig = G_relax.G(),
111 i_x_free->resize(no);
113 (*i_x_free)[l-1] = l;
116 i_x_fixed->resize(nr+1);
120 (*i_x_fixed)[l-1] = no+l;
122 (*i_x_fixed)[nr] = nd+1;
124 bnd_fixed->resize(nr+1);
127 std::fill_n( bnd_fixed->begin(), nr,
LOWER );
129 (*bnd_fixed)[nr] =
LOWER;
131 j_f_decomp->resize(0);
140 *Ko = G_relax.G_ptr();
void Vp_StV(VectorMutable *v_lhs, const value_type &alpha, const Vector &v_rhs)
void V_StV(VectorMutable *v_lhs, value_type alpha, const V &V_rhs)
void initialize_kkt_system(const DVectorSlice &g, const MatrixOp &G, value_type etaL, const SpVectorSlice &dL, const SpVectorSlice &dU, const MatrixOp *F, BLAS_Cpp::Transp trans_F, const DVectorSlice *f, const DVectorSlice &d, const SpVectorSlice &nu, size_type *n_R, i_x_free_t *i_x_free, i_x_fixed_t *i_x_fixed, bnd_fixed_t *bnd_fixed, j_f_decomp_t *j_f_decomp, DVector *b_X, Ko_ptr_t *Ko, DVector *fo) const
Initialize the KKT system where the original variables are initiallly free and all the relaxation var...
void assign(MatrixOp *M_lhs, const MatrixOp &M_rhs, BLAS_Cpp::Transp trans_rhs)
void Vp_StMtV(VectorMutable *v_lhs, value_type alpha, const MatrixOp &M_rhs1, BLAS_Cpp::Transp trans_rhs1, const Vector &v_rhs2, value_type beta=1.0)
void initialize_kkt_system(const Vector &g, const MatrixOp &G, value_type etaL, const Vector *dL, const Vector *dU, const MatrixOp *F, BLAS_Cpp::Transp trans_F, const Vector *f, const Vector *d, const Vector *nu, size_type *n_R, i_x_free_t *i_x_free, i_x_fixed_t *i_x_fixed, bnd_fixed_t *bnd_fixed, j_f_decomp_t *j_f_decomp, DVector *b_X, Ko_ptr_t *Ko, DVector *fo) const
Initialize the KKT system where all variables (except the relaxation variable) are initially free and...
#define TEUCHOS_TEST_FOR_EXCEPT(throw_exception_test)