IterationPack Namespace Reference


Classes

class  IterationPack::Algorithm
 Acts as the central hub for an iterative algorithm. More...
class  IterationPack::Algorithm::DoesNotExist
 Thrown if name or id does not exist. More...
class  IterationPack::Algorithm::AlreadyExists
 Thrown if name already exists. More...
class  IterationPack::Algorithm::InvalidControlProtocal
 Thrown if an invalid control protocal is used. More...
class  IterationPack::Algorithm::InvalidRunningState
 Thrown if a member function is called while this is in an invalid running state.. More...
class  IterationPack::Algorithm::InvalidConfigChange
 Thrown if a member function is called while this is in an invalid running state.. More...
class  IterationPack::Algorithm::AlgorithmInterrupted
 Thrown if Algorithm was interrupted by the user. More...
struct  IterationPack::Algorithm::step_ptr_and_name< T_Step_ptr >
  More...
struct  IterationPack::Algorithm::assoc_steps_ele_t
  More...
class  IterationPack::Algorithm::name_comp< T_ele >
  More...
class  IterationPack::AlgorithmSetOptions
 Set options for Algorithm from an OptionsFromStream object. More...
class  IterationPack::AlgorithmState
 Abstacts a set of iteration quantities for an iterative algorithm. More...
class  IterationPack::AlgorithmState::DoesNotExist
 Thrown if name or id does not exist. More...
class  IterationPack::AlgorithmState::AlreadyExists
 Thrown if name already exists. More...
class  IterationPack::AlgorithmStep
 Base type for all objects that perform steps in an Algorithm. More...
class  IterationPack::AlgorithmTracker
 Used to ouput iteration results and other information. More...
class  IterationPack::AlgorithmTrackerComposite
 This class acts a composite container for other AlgorithmTracker objects. More...
class  IterationPack::CastIQMemberBase
 Base class for some of the implementation features of CastIQMember. More...
class  IterationPack::CastIQMember< T >
 Template class to be used to lookup an interation quantity, cast it to an IterQuantityAccess<T> object and cache the iq_id for fast access later. More...
class  IterationPack::IterQuantity
 Iterface for information about Iteration Quantities. More...
class  IterationPack::IterQuantity::NoStorageAvailable
 Thrown memory if attempted to be set that storage can not be allocated to. More...
class  IterationPack::IterQuantity::QuanityNotSet
 Thrown when memory access is attempted when it has not yet been updated. More...
class  IterationPack::IterQuantityAccess< T_info >
 Interface to typed iteration quantities. More...
class  IterationPack::IterQuantityAccessContiguous< T_info >
 Iteration Quanities subclass for contiguous iterations. More...
class  IterationPack::InvalidTypeCastException
  More...
class  IterationPack::AlgorithmStepTesting
 Testing class. More...
class  IterationPack::AlgorithmTrackTesting
 Testing class. More...
class  IterationPack::MinorLoop1Step
class  IterationPack::ControledLoop1Step
class  IterationPack::RuntimeConfigChangeStep

Enumerations

enum  EAssocStepType { PRE_STEP = 0, POST_STEP = 1 }
  More...
enum  EDoStepType { DO_MAIN_STEP = 0, DO_PRE_STEP = 1, DO_POST_STEP = 2 }
  More...
enum  EAlgoReturn {
  TERMINATE_TRUE, TERMINATE_FALSE, MAX_ITER_EXCEEDED, MAX_RUN_TIME_EXCEEDED,
  INTERRUPTED_TERMINATE_TRUE, INTERRUPTED_TERMINATE_FALSE
}
  More...

Functions

template<class T>
IterQuantityAccess< T > & cast_iq (AlgorithmState &state, const std::string &iq_name)
 Lookup an iteration quantity by name and cast it to an IterQuantityAccess<T> of the given type T. If the iteration quantity of that name does not exist then a AlgorithmState::DoesNotExist exception will be thrown. If the type of the iteration quantity is not of the type IterQuantityAcess<T> (as determined by dynamic_cast<T>) then the exception InvalidTypeCastException: will be thrown with a helpful error message.
template<class T>
const IterQuantityAccess<
T > & 
cast_iq (const AlgorithmState &state, const std::string &iq_name)
 
template<class T>
IterQuantityAccess< T > & cast_iq (AlgorithmState &state, const AlgorithmState::iq_id_type iq_id, const std::string &iq_name)
 Lookup an iteration quantity using its id and cast it to an IterQuantityAccess<T> of the given type T.
template<class T>
const IterQuantityAccess<
T > & 
cast_iq (const AlgorithmState &state, const AlgorithmState::iq_id_type iq_id, const std::string &iq_name)
 
void imp_cast_iq_throw_error (const std::string &iq_name, const std::string &iq_is_type_name, const std::string &iq_want_type_name)
void imp_cast_iq_throw_error (const AlgorithmState::iq_id_type iq_id, const std::string &iq_name, const std::string &iq_is_type_name, const std::string &iq_want_type_name)
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.


Enumeration Type Documentation

enum EAssocStepType
 

Enumeration values:
PRE_STEP 
POST_STEP 

Definition at line 39 of file IterationPack_Types.hpp.

enum EDoStepType
 

Enumeration values:
DO_MAIN_STEP 
DO_PRE_STEP 
DO_POST_STEP 

Definition at line 44 of file IterationPack_Types.hpp.

enum EAlgoReturn
 

Enumeration values:
TERMINATE_TRUE 
TERMINATE_FALSE 
MAX_ITER_EXCEEDED 
MAX_RUN_TIME_EXCEEDED 
INTERRUPTED_TERMINATE_TRUE 
INTERRUPTED_TERMINATE_FALSE 

Definition at line 50 of file IterationPack_Types.hpp.


Function Documentation

template<class T>
IterQuantityAccess< T > & IterationPack::cast_iq AlgorithmState &  state,
const std::string &  iq_name
 

Lookup an iteration quantity by name and cast it to an IterQuantityAccess<T> of the given type T. If the iteration quantity of that name does not exist then a AlgorithmState::DoesNotExist exception will be thrown. If the type of the iteration quantity is not of the type IterQuantityAcess<T> (as determined by dynamic_cast<T>) then the exception InvalidTypeCastException: will be thrown with a helpful error message.

Note that using this function always cost O(s.num_iter_quantities()) everytime it is called. Therefore, the developer should consider using the class CastIQMember instead if it is appropriate.

Definition at line 106 of file IterationPack_cast_iq.hpp.

template<class T>
const IterQuantityAccess< T > & IterationPack::cast_iq const AlgorithmState &  state,
const std::string &  iq_name
 

Definition at line 121 of file IterationPack_cast_iq.hpp.

template<class T>
IterQuantityAccess< T > & IterationPack::cast_iq AlgorithmState &  state,
const AlgorithmState::iq_id_type  iq_id,
const std::string &  iq_name
 

Lookup an iteration quantity using its id and cast it to an IterQuantityAccess<T> of the given type T.

Parameters:
state [in]
If the iteration quantity with that id does not exist then a AlgorithmState::DoesNotExist exception will be thrown. If the type of the iteration quantity is not of the type IterQuantityAcess<T> (as determined by dynamic_cast<T>) then the exception InvalidTypeCastException: will be thrown with a helpful error message.

Note that using this function always cost just O(1) everytime it is called.

Definition at line 136 of file IterationPack_cast_iq.hpp.

template<class T>
const IterQuantityAccess< T > & IterationPack::cast_iq const AlgorithmState &  state,
const AlgorithmState::iq_id_type  iq_id,
const std::string &  iq_name
 

Definition at line 151 of file IterationPack_cast_iq.hpp.

void IterationPack::imp_cast_iq_throw_error const std::string &  iq_name,
const std::string &  iq_is_type_name,
const std::string &  iq_want_type_name
 

Definition at line 32 of file IterationPack_cast_iq.cpp.

void IterationPack::imp_cast_iq_throw_error const AlgorithmState::iq_id_type  iq_id,
const std::string &  iq_name,
const std::string &  iq_is_type_name,
const std::string &  iq_want_type_name
 

Definition at line 45 of file IterationPack_cast_iq.cpp.

void IterationPack::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.

This function can be used by AlgorithmStep subclasses in their AlgorithmStep::print_step() methods to print the header for the algorithm step. This will print the number of the step in the algorithm, its name, and the name of its concreate subclass.

Definition at line 33 of file IterationPack_print_algorithm_step.cpp.


Generated on Thu Sep 18 12:36:17 2008 for MOOCHO (Single Doxygen Collection) by doxygen 1.3.9.1