MoochoPack : Framework for Large-Scale Optimization Algorithms  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Member Functions | List of all members
MoochoPack::CheckDecompositionFromRPy_Step Class Reference

Check if the decomposition is going singular and if it is select a new decomposition. More...

#include <MoochoPack_CheckDecompositionFromRPy_Step.hpp>

Inheritance diagram for MoochoPack::CheckDecompositionFromRPy_Step:
Inheritance graph
[legend]

Public Member Functions

 STANDARD_COMPOSITION_MEMBERS (NewDecompositionSelection_Strategy, new_decomp_strategy)
 <<std comp>="">> members for Decomposition Select Strategy object. More...
 
 STANDARD_MEMBER_COMPOSITION_MEMBERS (value_type, max_decomposition_cond_change_frac)
 Set the maximum change in the relative error in the range space step before the selection of a new decomposition is triggered. More...
 
 CheckDecompositionFromRPy_Step (const new_decomp_strategy_ptr_t &new_decomp_strategy, value_type max_decomposition_cond_change_frac=1e+4)
 
void reset ()
 Call the reset initialization of all defaults. More...
 

Overridden from AlgorithmStep

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
 

Detailed Description

Check if the decomposition is going singular and if it is select a new decomposition.

This steps checks if the decomposition is going singular if the computation for the range space step looks like it is becomming more inaccurate.

In particular we want to know how cond(C) is changing. To do this we will monitor increases in the error in solving the equation:

  R*py + c(equ_decomp) = 0

Therefore we will check for increases in the ratio:

  ratio = ||R*py + c(equ_decomp)||inf / ||c(equ_decomp)||inf

If this ratio goes up dramatically, then this is a tail tell sign that R is becomming illconditioned. See the algorithm printout for a more detailed description what what is going on.

Definition at line 73 of file MoochoPack_CheckDecompositionFromRPy_Step.hpp.

Constructor & Destructor Documentation

MoochoPack::CheckDecompositionFromRPy_Step::CheckDecompositionFromRPy_Step ( const new_decomp_strategy_ptr_t &  new_decomp_strategy,
value_type  max_decomposition_cond_change_frac = 1e+4 
)

Member Function Documentation

MoochoPack::CheckDecompositionFromRPy_Step::STANDARD_COMPOSITION_MEMBERS ( NewDecompositionSelection_Strategy  ,
new_decomp_strategy   
)

<<std comp>="">> members for Decomposition Select Strategy object.

MoochoPack::CheckDecompositionFromRPy_Step::STANDARD_MEMBER_COMPOSITION_MEMBERS ( value_type  ,
max_decomposition_cond_change_frac   
)

Set the maximum change in the relative error in the range space step before the selection of a new decomposition is triggered.

void MoochoPack::CheckDecompositionFromRPy_Step::reset ( )

Call the reset initialization of all defaults.

Definition at line 63 of file MoochoPack_CheckDecompositionFromRPy_Step.cpp.

bool MoochoPack::CheckDecompositionFromRPy_Step::do_step ( Algorithm algo,
poss_type  step_poss,
IterationPack::EDoStepType  type,
poss_type  assoc_step_poss 
)
void MoochoPack::CheckDecompositionFromRPy_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

The documentation for this class was generated from the following files: