Template Class Core

Class Documentation

template<typename Spec>
class sgpl::Core

Public Types

using registers_t = std::array<float, Spec::num_registers>

Public Functions

Core() = default
Core(global_jump_table_array_t &global_jump_tables_)
Core(const registers_t &registers_)
void Terminate() noexcept
__attribute__((hot)) inline bool HasTerminated() const noexcept
__attribute__((hot)) inline size_t GetProgramCounter() const noexcept
__attribute__((hot)) void AdvanceProgramCounter(const size_t program_length) noexcept
bool HasLocalAnchors() const noexcept
void LoadLocalAnchors(const sgpl::Program<Spec> &program) noexcept
void JumpToGlobalAnchorMatch(const tag_t &query, const size_t jt_idx = 0) noexcept
void JumpToLocalAnchorMatch(const tag_t &query) noexcept
auto &GetLocalJumpTable() noexcept
auto &GetGlobalJumpTable(const size_t jt_idx = 0) noexcept
bool RequestFork(const tag_t &tag) noexcept
void ResetRegisters() noexcept
void SetRegisters(const registers_t &set) noexcept
const registers_t &GetRegisters() noexcept
void Reset() noexcept
void SetGlobalJumpTables(global_jump_table_array_t &j_tables) noexcept
void DecayRegulators() noexcept
bool operator==(const Core &other) const

Public Members

registers_t registers = {}
sgpl::CappedSet<tag_t, Spec::num_fork_requests> fork_requests = {}