46 #include "MoochoPack_CalcD_vStep_Step.hpp"
47 #include "MoochoPack_IpState.hpp"
48 #include "MoochoPack_moocho_algo_conversion.hpp"
49 #include "IterationPack_print_algorithm_step.hpp"
51 #include "AbstractLinAlgPack_MatrixSymDiagStd.hpp"
52 #include "AbstractLinAlgPack_VectorMutable.hpp"
53 #include "AbstractLinAlgPack_VectorStdOps.hpp"
54 #include "AbstractLinAlgPack_VectorAuxiliaryOps.hpp"
55 #include "AbstractLinAlgPack_VectorOut.hpp"
56 #include "AbstractLinAlgPack_LinAlgOpPack.hpp"
57 #include "Teuchos_dyn_cast.hpp"
64 using IterationPack::print_algorithm_step;
69 NLPAlgo &algo = rsqp_algo(_algo);
71 NLP &nlp = algo.nlp();
73 EJournalOutputLevel olevel = algo.algo_cntr().journal_output_level();
77 if( static_cast<int>(olevel) >= static_cast<int>(PRINT_ALGORITHM_STEPS) )
79 using IterationPack::print_algorithm_step;
80 print_algorithm_step( algo, step_poss, type, assoc_step_poss, out );
84 const value_type& mu = s.barrier_parameter().get_k(0);
85 const Vector &d_k = s.d().get_k(0);
86 const MatrixSymDiagStd& invXl = s.invXl().get_k(0);
87 const MatrixSymDiagStd& invXu = s.invXu().get_k(0);
88 const MatrixSymDiagStd& Vl = s.Vl().get_k(0);
89 const MatrixSymDiagStd& Vu = s.Vu().get_k(0);
91 VectorMutable& dvl_k = s.dvl().set_k(0);
92 VectorMutable& dvu_k = s.dvu().set_k(0);
123 if( static_cast<int>(olevel) >=
static_cast<int>(PRINT_VECTORS) )
125 out <<
"\nx_k = \n" << s.x().get_k(0)
126 <<
"\nxl = \n" << nlp.xl()
127 <<
"\nxu = \n" << nlp.xu()
128 <<
"\ndvl_k = \n" << dvl_k
129 <<
"\ndvu_k = \n" << dvu_k;
137 , std::ostream& out,
const std::string& L )
const
140 << L <<
"*** Calculates the search direction for the dual variables\n"
141 << L <<
"dvl_k = mu*invXl_k*e - vl_k - invXl_k*Vl_k*d_k\n"
142 << L <<
"dvu_k = mu*invXu_k*e - vu_k + invXu_k*Vu_k*d_k\n";
void upperbound_multipliers_step(const value_type mu, const Vector &invXu, const Vector &vu, const Vector &d_k, VectorMutable *dvu)
T_To & dyn_cast(T_From &from)
rSQP Algorithm control class.
virtual std::ostream & journal_out() const
void ele_wise_prod(const value_type &alpha, const Vector &v_rhs1, const Vector &v_rhs2, VectorMutable *v_lhs)
AlgorithmTracker & track()
bool do_step(Algorithm &algo, poss_type step_poss, IterationPack::EDoStepType type, poss_type assoc_step_poss)
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
void lowerbound_multipliers_step(const value_type mu, const Vector &invXl, const Vector &vl, const Vector &d_k, VectorMutable *dvl)