44 #include "MoochoPack_QuasiNormalStepStd_Step.hpp"
45 #include "MoochoPack_moocho_algo_conversion.hpp"
46 #include "IterationPack_print_algorithm_step.hpp"
47 #include "AbstractLinAlgPack_VectorMutable.hpp"
48 #include "AbstractLinAlgPack_VectorOut.hpp"
49 #include "AbstractLinAlgPack_MatrixOpNonsing.hpp"
50 #include "AbstractLinAlgPack_LinAlgOpPack.hpp"
52 namespace MoochoPack {
63 using LinAlgOpPack::V_MtV;
65 NLPAlgo &algo = rsqp_algo(_algo);
67 const Range1D equ_decomp = s.equ_decomp();
69 EJournalOutputLevel olevel = algo.algo_cntr().journal_output_level();
73 if( static_cast<int>(olevel) >= static_cast<int>(PRINT_ALGORITHM_STEPS) ) {
74 using IterationPack::print_algorithm_step;
75 print_algorithm_step( algo, step_poss, type, assoc_step_poss, out );
79 IterQuantityAccess<VectorMutable>
83 IterQuantityAccess<MatrixOpNonsing>
85 IterQuantityAccess<MatrixOp>
89 VectorMutable &py_k = py_iq.set_k(0);
90 V_InvMtV( &py_k, R_iq.get_k(0),
no_trans, *c_iq.get_k(0).sub_view(equ_decomp) );
94 V_MtV( &Ypy_iq.set_k(0), Y_iq.get_k(0),
no_trans, py_k );
96 if( static_cast<int>(olevel) >=
static_cast<int>(PRINT_ALGORITHM_STEPS) ) {
97 out <<
"\n||py|| = " << py_iq.get_k(0).norm_inf() << std::endl
98 <<
"\n||Ypy||2 = " << Ypy_iq.get_k(0).norm_2() << std::endl;
101 if( static_cast<int>(olevel) >= static_cast<int>(PRINT_VECTORS) ) {
102 out <<
"\npy_k =\n" << py_iq.get_k(0);
103 out <<
"\nYpy_k =\n" << Ypy_iq.get_k(0);
111 ,
poss_type assoc_step_poss, std::ostream& out,
const std::string& L
115 << L <<
"*** Calculate the range space step\n"
116 << L <<
"py_k = - inv(R_k) * c_k(equ_decomp)\n"
117 << L <<
"Ypy_k = Y_k * py_k\n";
void Vt_S(VectorMutable *v_lhs, const value_type &alpha)
rSQP Algorithm control class.
void V_StV(VectorMutable *v_lhs, value_type alpha, const V &V_rhs)
virtual std::ostream & journal_out() const
Reduced space SQP state encapsulation interface.
void V_InvMtV(VectorMutable *v_lhs, const MatrixNonsing &M_rhs1, BLAS_Cpp::Transp trans_rhs1, const Vector &v_rhs2)
AlgorithmTracker & track()
void print_step(const Algorithm &algo, poss_type step_poss, IterationPack::EDoStepType type, poss_type assoc_step_poss, std::ostream &out, const std::string &leading_str) const
NLPAlgoState & rsqp_state()
<<std aggr>="">> members for algo_cntr
bool do_step(Algorithm &algo, poss_type step_poss, IterationPack::EDoStepType type, poss_type assoc_step_poss)