sPyNNaker neural_modelling 7.3.1
|
Common code for recurrent timing rules. More...
#include "timing.h"
#include <neuron/plasticity/stdp/weight_dependence/weight_one_term.h>
#include <debug.h>
#include <neuron/plasticity/stdp/maths.h>
#include <neuron/plasticity/stdp/stdp_typedefs.h>
#include "random_util.h"
Go to the source code of this file.
Enumerations | |
enum | recurrent_state_machine_state_t { STATE_IDLE , STATE_PRE_OPEN , STATE_POST_OPEN } |
Synapse states. More... | |
Functions | |
static bool | timing_recurrent_in_pre_window (uint32_t time_since_last_event, update_state_t previous_state) |
API: Check if there was an event in the pre-window. | |
static bool | timing_recurrent_in_post_window (uint32_t time_since_last_event, update_state_t previous_state) |
API: Check if there was an event in the post-window. | |
static update_state_t | timing_recurrent_calculate_pre_window (update_state_t previous_state) |
API: Update the state with the pre-window information. | |
static update_state_t | timing_recurrent_calculate_post_window (update_state_t previous_state) |
API: Update the state with the post-window information. | |
static post_trace_t | timing_get_initial_post_trace (void) |
Get an initial post-synaptic timing trace. | |
static post_trace_t | timing_decay_post (uint32_t time, uint32_t last_time, post_trace_t last_trace) |
static post_trace_t | timing_add_post_spike (uint32_t time, uint32_t last_time, post_trace_t last_trace) |
Add a post spike to the post trace. | |
static pre_trace_t | timing_add_pre_spike (uint32_t time, uint32_t last_time, pre_trace_t last_trace) |
Add a pre spike to the pre trace. | |
static update_state_t | timing_apply_pre_spike (uint32_t time, pre_trace_t trace, uint32_t last_pre_time, pre_trace_t last_pre_trace, uint32_t last_post_time, post_trace_t last_post_trace, update_state_t previous_state) |
Apply a pre-spike timing rule state update. | |
static update_state_t | timing_apply_post_spike (uint32_t time, post_trace_t trace, uint32_t last_pre_time, pre_trace_t last_pre_trace, uint32_t last_post_time, post_trace_t last_post_trace, update_state_t previous_state) |
Apply a post-spike timing rule state update. | |
Common code for recurrent timing rules.
Recurrent timing rules use a small state machine to decide how to react to spike events rather than a simple accumulator.
Definition in file timing_recurrent_common.h.
Synapse states.
Enumerator | |
---|---|
STATE_IDLE | Initial state; neither window is open. |
STATE_PRE_OPEN | Pre-window is open. |
STATE_POST_OPEN | Post-window is open. |
Definition at line 64 of file timing_recurrent_common.h.
|
static |
API: Check if there was an event in the pre-window.
[in] | time_since_last_event | Length of time since last event |
[in] | previous_state | The state we're in right now |
|
static |
API: Check if there was an event in the post-window.
[in] | time_since_last_event | Length of time since last event |
[in] | previous_state | The state we're in right now |
|
static |
API: Update the state with the pre-window information.
[in] | previous_state | The state we're in right now |
|
static |
API: Update the state with the post-window information.
[in] | previous_state | The state we're in right now |
|
inlinestatic |
Get an initial post-synaptic timing trace.
Definition at line 79 of file timing_recurrent_common.h.
|
inlinestatic |
Definition at line 83 of file timing_recurrent_common.h.
|
inlinestatic |
Add a post spike to the post trace.
[in] | time | the time of the spike |
[in] | last_time | the time of the previous spike update |
[in] | last_trace | the post trace to update |
Definition at line 95 of file timing_recurrent_common.h.
|
inlinestatic |
Add a pre spike to the pre trace.
[in] | time | the time of the spike |
[in] | last_time | the time of the previous spike update |
[in] | last_trace | the pre trace to update |
Definition at line 108 of file timing_recurrent_common.h.
|
inlinestatic |
Apply a pre-spike timing rule state update.
[in] | time | the current time |
[in] | trace | the current pre-spike trace |
[in] | last_pre_time | the time of the last pre-spike |
[in] | last_pre_trace | the trace of the last pre-spike |
[in] | last_post_time | the time of the last post-spike |
[in] | last_post_trace | the trace of the last post-spike |
[in] | previous_state | the state to update |
Definition at line 124 of file timing_recurrent_common.h.
|
inlinestatic |
Apply a post-spike timing rule state update.
[in] | time | the current time |
[in] | trace | the current post-spike trace |
[in] | last_pre_time | the time of the last pre-spike |
[in] | last_pre_trace | the trace of the last pre-spike |
[in] | last_post_time | the time of the last post-spike |
[in] | last_post_trace | the trace of the last post-spike |
[in] | previous_state | the state to update |
Definition at line 206 of file timing_recurrent_common.h.