Empirical
Public Member Functions | Public Attributes | List of all members
emp::EventDrivenGP_AW< AFFINITY_WIDTH >::State Struct Reference

#include <EventDrivenGP.h>

Public Member Functions

 State (mem_val_t _default_mem_val=0.0, bool _is_main=false)
 
 State (const State &)=default
 
 State (State &&)=default
 
void Reset ()
 Reset state object. More...
 
size_t GetFP () const
 Get function pointer. More...
 
size_t GetIP () const
 Get instruction pointer. More...
 
mem_val_t GetDefaultMemValue () const
 Get default memory value. More...
 
void SetIP (size_t ip)
 Set instruction pointer to given value, ip. More...
 
void SetFP (size_t fp)
 Set function pointer to given value, fp. More...
 
void SetDefaultMemValue (mem_val_t val)
 Set default memory value to given value, val. More...
 
void AdvanceIP (size_t inc=1)
 Advance instruction pointer by amount given by inc. More...
 
bool IsMain () const
 Is this a main state? More...
 
memory_tGetLocalMemory ()
 Get a reference to the local memory map for this state. More...
 
memory_tGetInputMemory ()
 Get a reference to the input memory map for this state. More...
 
memory_tGetOutputMemory ()
 Get a reference to the output memory map for this state. More...
 
mem_val_t GetLocal (mem_key_t key) const
 
mem_val_t GetInput (mem_key_t key) const
 
mem_val_t GetOutput (mem_key_t key) const
 
void SetLocal (mem_key_t key, mem_val_t value)
 Set local memory specified by key to value. More...
 
void SetInput (mem_key_t key, mem_val_t value)
 Set input memory specified by key to value. More...
 
void SetOutput (mem_key_t key, mem_val_t value)
 Set output memory specified by key to value. More...
 
mem_val_tAccessLocal (mem_key_t key)
 
mem_val_tAccessInput (mem_key_t key)
 
mem_val_tAccessOutput (mem_key_t key)
 

Public Attributes

memory_t local_mem
 
memory_t input_mem
 
memory_t output_mem
 
double default_mem_val
 
size_t func_ptr
 
size_t inst_ptr
 
emp::vector< Blockblock_stack
 
bool is_main
 

Detailed Description

template<size_t AFFINITY_WIDTH>
struct emp::EventDrivenGP_AW< AFFINITY_WIDTH >::State

Struct to maintain local program state for a given function call. A local program state has an associated: local memory map, input memory map, output memory map, function pointer, instruction pointer, and block stack.

Constructor & Destructor Documentation

template<size_t AFFINITY_WIDTH>
emp::EventDrivenGP_AW< AFFINITY_WIDTH >::State::State ( mem_val_t  _default_mem_val = 0.0,
bool  _is_main = false 
)
inline
template<size_t AFFINITY_WIDTH>
emp::EventDrivenGP_AW< AFFINITY_WIDTH >::State::State ( const State )
default
template<size_t AFFINITY_WIDTH>
emp::EventDrivenGP_AW< AFFINITY_WIDTH >::State::State ( State &&  )
default

Member Function Documentation

template<size_t AFFINITY_WIDTH>
mem_val_t& emp::EventDrivenGP_AW< AFFINITY_WIDTH >::State::AccessInput ( mem_key_t  key)
inline

Access input memory. This function returns a reference to memory location value if that location exists. If the location does not exist, set to default memory value and return reference to memory location value.

template<size_t AFFINITY_WIDTH>
mem_val_t& emp::EventDrivenGP_AW< AFFINITY_WIDTH >::State::AccessLocal ( mem_key_t  key)
inline

Access local memory. This function returns a reference to memory location value if that location exists. If the location does not exist, set to default memory value and return reference to memory location value.

template<size_t AFFINITY_WIDTH>
mem_val_t& emp::EventDrivenGP_AW< AFFINITY_WIDTH >::State::AccessOutput ( mem_key_t  key)
inline

Access output memory. This function returns a reference to memory location value if that location exists. If the location does not exist, set to default memory value and return reference to memory location value.

template<size_t AFFINITY_WIDTH>
void emp::EventDrivenGP_AW< AFFINITY_WIDTH >::State::AdvanceIP ( size_t  inc = 1)
inline

Advance instruction pointer by amount given by inc.

template<size_t AFFINITY_WIDTH>
mem_val_t emp::EventDrivenGP_AW< AFFINITY_WIDTH >::State::GetDefaultMemValue ( ) const
inline

Get default memory value.

template<size_t AFFINITY_WIDTH>
size_t emp::EventDrivenGP_AW< AFFINITY_WIDTH >::State::GetFP ( ) const
inline

Get function pointer.

template<size_t AFFINITY_WIDTH>
mem_val_t emp::EventDrivenGP_AW< AFFINITY_WIDTH >::State::GetInput ( mem_key_t  key) const
inline

Get value at requested input memory location (key) if that memory location exists. Otherwise, return default memory value.

template<size_t AFFINITY_WIDTH>
memory_t& emp::EventDrivenGP_AW< AFFINITY_WIDTH >::State::GetInputMemory ( )
inline

Get a reference to the input memory map for this state.

template<size_t AFFINITY_WIDTH>
size_t emp::EventDrivenGP_AW< AFFINITY_WIDTH >::State::GetIP ( ) const
inline

Get instruction pointer.

template<size_t AFFINITY_WIDTH>
mem_val_t emp::EventDrivenGP_AW< AFFINITY_WIDTH >::State::GetLocal ( mem_key_t  key) const
inline

Get value at requested local memory location (key) if that memory location exists. Otherwise, return default memory value.

template<size_t AFFINITY_WIDTH>
memory_t& emp::EventDrivenGP_AW< AFFINITY_WIDTH >::State::GetLocalMemory ( )
inline

Get a reference to the local memory map for this state.

template<size_t AFFINITY_WIDTH>
mem_val_t emp::EventDrivenGP_AW< AFFINITY_WIDTH >::State::GetOutput ( mem_key_t  key) const
inline

Get value at requested output memory location (key) if that memory location exists. Otherwise, return default memory value.

template<size_t AFFINITY_WIDTH>
memory_t& emp::EventDrivenGP_AW< AFFINITY_WIDTH >::State::GetOutputMemory ( )
inline

Get a reference to the output memory map for this state.

template<size_t AFFINITY_WIDTH>
bool emp::EventDrivenGP_AW< AFFINITY_WIDTH >::State::IsMain ( ) const
inline

Is this a main state?

template<size_t AFFINITY_WIDTH>
void emp::EventDrivenGP_AW< AFFINITY_WIDTH >::State::Reset ( )
inline

Reset state object.

template<size_t AFFINITY_WIDTH>
void emp::EventDrivenGP_AW< AFFINITY_WIDTH >::State::SetDefaultMemValue ( mem_val_t  val)
inline

Set default memory value to given value, val.

template<size_t AFFINITY_WIDTH>
void emp::EventDrivenGP_AW< AFFINITY_WIDTH >::State::SetFP ( size_t  fp)
inline

Set function pointer to given value, fp.

template<size_t AFFINITY_WIDTH>
void emp::EventDrivenGP_AW< AFFINITY_WIDTH >::State::SetInput ( mem_key_t  key,
mem_val_t  value 
)
inline

Set input memory specified by key to value.

template<size_t AFFINITY_WIDTH>
void emp::EventDrivenGP_AW< AFFINITY_WIDTH >::State::SetIP ( size_t  ip)
inline

Set instruction pointer to given value, ip.

template<size_t AFFINITY_WIDTH>
void emp::EventDrivenGP_AW< AFFINITY_WIDTH >::State::SetLocal ( mem_key_t  key,
mem_val_t  value 
)
inline

Set local memory specified by key to value.

template<size_t AFFINITY_WIDTH>
void emp::EventDrivenGP_AW< AFFINITY_WIDTH >::State::SetOutput ( mem_key_t  key,
mem_val_t  value 
)
inline

Set output memory specified by key to value.

Member Data Documentation

template<size_t AFFINITY_WIDTH>
emp::vector<Block> emp::EventDrivenGP_AW< AFFINITY_WIDTH >::State::block_stack
template<size_t AFFINITY_WIDTH>
double emp::EventDrivenGP_AW< AFFINITY_WIDTH >::State::default_mem_val
template<size_t AFFINITY_WIDTH>
size_t emp::EventDrivenGP_AW< AFFINITY_WIDTH >::State::func_ptr
template<size_t AFFINITY_WIDTH>
memory_t emp::EventDrivenGP_AW< AFFINITY_WIDTH >::State::input_mem
template<size_t AFFINITY_WIDTH>
size_t emp::EventDrivenGP_AW< AFFINITY_WIDTH >::State::inst_ptr
template<size_t AFFINITY_WIDTH>
bool emp::EventDrivenGP_AW< AFFINITY_WIDTH >::State::is_main
template<size_t AFFINITY_WIDTH>
memory_t emp::EventDrivenGP_AW< AFFINITY_WIDTH >::State::local_mem
template<size_t AFFINITY_WIDTH>
memory_t emp::EventDrivenGP_AW< AFFINITY_WIDTH >::State::output_mem

The documentation for this struct was generated from the following file: