#include <MoochoPack_CheckDecompositionFromPy_Step.hpp>
Inheritance diagram for MoochoPack::CheckDecompositionFromPy_Step:

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 |
| | |
Public Member Functions | |
| STANDARD_COMPOSITION_MEMBERS (NewDecompositionSelection_Strategy, new_decomp_strategy) | |
| | |
| STANDARD_MEMBER_COMPOSITION_MEMBERS (value_type, max_decomposition_cond_change_frac) | |
| | |
| STANDARD_MEMBER_COMPOSITION_MEMBERS (value_type, max_cond) | |
| | |
| CheckDecompositionFromPy_Step (const new_decomp_strategy_ptr_t &new_decomp_strategy, value_type max_decomposition_cond_change_frac=100.0) | |
| | |
| void | reset () |
| Call the reset initialization of all defaults. | |
This steps checks if the decomposition is going singular by looking to see if the computation for the range space step looks bad.
In particular we want to know how cond(R) is changing. We know that:
py = -inv(R) * c --> ||py|| <= ||inv(R)|| * ||c|| --> ||py|| / ||c|| <= ||inv(R)|| --> ( ||py|| / ||c|| ) * ||R|| <= ||inv(R)|| * ||R|| = cond(R)
If we assume ||R|| > 1 we know that cond(R) > beta = ||py||/||c|| so if beta is very large then cond(R) is even larger. Since the best decomposition we can find may be fairly illconditioned we may not want to use and absolute measure of beta to determine if the decomposition is illconditioned. Instead we will look at the change in beta between iterations and if beta gets very much larger than its minimum value (i.e. beta / beta_min > max_cond_change ( default = 10000 ) ) then we will select a new decomposition. Also if beta > max_cond ( default = 0.01 / mach_eps ) then we know we will be computing inacurate solutions so we must select a new decomposition.
Definition at line 63 of file MoochoPack_CheckDecompositionFromPy_Step.hpp.
| MoochoPack::CheckDecompositionFromPy_Step::CheckDecompositionFromPy_Step | ( | const new_decomp_strategy_ptr_t & | new_decomp_strategy, | |
| value_type | max_decomposition_cond_change_frac = 100.0 | |||
| ) |
| MoochoPack::CheckDecompositionFromPy_Step::STANDARD_COMPOSITION_MEMBERS | ( | NewDecompositionSelection_Strategy | , | |
| new_decomp_strategy | ||||
| ) |
| MoochoPack::CheckDecompositionFromPy_Step::STANDARD_MEMBER_COMPOSITION_MEMBERS | ( | value_type | , | |
| max_decomposition_cond_change_frac | ||||
| ) |
| MoochoPack::CheckDecompositionFromPy_Step::STANDARD_MEMBER_COMPOSITION_MEMBERS | ( | value_type | , | |
| max_cond | ||||
| ) |
| void MoochoPack::CheckDecompositionFromPy_Step::reset | ( | ) |
Call the reset initialization of all defaults.
Definition at line 51 of file MoochoPack_CheckDecompositionFromPy_Step.cpp.
| bool MoochoPack::CheckDecompositionFromPy_Step::do_step | ( | Algorithm & | algo, | |
| poss_type | step_poss, | |||
| IterationPack::EDoStepType | type, | |||
| poss_type | assoc_step_poss | |||
| ) |
| void MoochoPack::CheckDecompositionFromPy_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 |
1.4.7