#include <MoochoPack_DampenCrossTermStd_Step.hpp>
Public Member Functions  
STANDARD_MEMBER_COMPOSITION_MEMBERS (value_type, frac_descent)  
«std comp» members for frac_descent  
DampenCrossTermStd_Step (const value_type &frac_descent=0.9)  
 
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 

This condition Gf'*Z*pz <= 0 is needed to ensure descent of many merit functions.
This implementation ensures that Gf'*Z*pz <= 0 only if there will not be any active constraints when the reduced QP subproblem is solved (nu_k = 0) and there are no undecomposed equality constraints or if there they are linearly dependent (lambda_k(undecomp_con) = 0).
In particular this implementation computes zeta_k such that:
Gf'*Z*pz <= frac_descent * rGf'inv(B)*rGf
where: 0 < frac_descent < 1
To ensure strong descent (and hopefully deal with the cases where nu_k != 0 and lambda_k(undecomp_con) != 0) the parameter frac_descent is set to frac_descent = 0.9 by default.
The basis derivation goes like this:
ToDo: Finish documentation!
Definition at line 62 of file MoochoPack_DampenCrossTermStd_Step.hpp.
MoochoPack::DampenCrossTermStd_Step::DampenCrossTermStd_Step  (  const value_type &  frac_descent = 0.9 
) 
MoochoPack::DampenCrossTermStd_Step::STANDARD_MEMBER_COMPOSITION_MEMBERS  (  value_type  ,  
frac_descent  
) 
«std comp» members for frac_descent
bool MoochoPack::DampenCrossTermStd_Step::do_step  (  Algorithm &  algo,  
poss_type  step_poss,  
IterationPack::EDoStepType  type,  
poss_type  assoc_step_poss  
) 
void MoochoPack::DampenCrossTermStd_Step::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 