71 NLP &nlp = algo.nlp();
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)
Calculates the multiplier step for the upper bounds.
rSQP Algorithm control class.
virtual std::ostream & journal_out() const
Return a reference to a std::ostream to be used to output debug information and the like...
EJournalOutputLevel
enum for journal output.
T_To & dyn_cast(T_From &from)
void print_algorithm_step(const Algorithm &algo, Algorithm::poss_type step_poss, EDoStepType type, Algorithm::poss_type assoc_step_poss, std::ostream &out)
Prints to 'out' the algorithm step.
void ele_wise_prod(const value_type &alpha, const Vector &v_rhs1, const Vector &v_rhs2, VectorMutable *v_lhs)
v_lhs(i) += alpha * v_rhs1(i) * v_rhs2(i), i = 1,,,dim.
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
AbstractLinAlgPack::value_type value_type
Acts as the central hub for an iterative algorithm.
void lowerbound_multipliers_step(const value_type mu, const Vector &invXl, const Vector &vl, const Vector &d_k, VectorMutable *dvl)
Calculates the multiplier step for lower bounds.
NLPAlgo & rsqp_algo(Algorithm &algo)
Convert from a Algorithm to a NLPAlgo.