Class Name:
VoltageSpikingSynapses
Parameter Structure:
struct voltage_spiking_synapses_parameters_struct {
std::vector<int> pairwise_connect_presynaptic; // list of pre-synaptic neuron ids for PAIRWISE connections
std::vector<int> pairwise_connect_postsynaptic; // list of post-synaptic neuron ids for PAIRWISE connections
std::vector<int> pairwise_connect_weight; // list of weight values for PAIRWISE connections
std::vector<int> pairwise_connect_delay; // list of delay values for PAIRWISE connections - timesteps
float weight_range[2] = {0.0f, 0.0f}; // Weight range for initialization (if not loaded)
float weight_scaling_constant = 1.0; // Weight scale factor (helps to set the units of weights)
float random_connectivity_probability; // Connection probability if RANDOM connectivity (SEE BELOW)
int connectivity_type; // The connectivity type (SEE BELOW)
std::vector<Plasticity*> plasticity_vec; // The list of plasticity rules to apply to the synapse set
float delay_range[2]; // Seconds (2 element array [lowerbound, upperbound])
}
The delay_range and weight_range parameters are used to draw initial weights/delays from a random uniform distribution between the lower and upperbound values.
Weights are in units of Volts (after multiplication by the weight scaling constant).
The connectivity_type has the following options:
CONNECTIVITY_TYPE_ALL_TO_ALL // Connects all pre to all post-synaptic neurons
CONNECTIVITY_TYPE_ONE_TO_ONE // Connects every pre to it's corresponding post-synaptic neuron
CONNECTIVITY_TYPE_RANDOM // Connects neurons with probability random_connectivity_probability^^
CONNECTIVITY_TYPE_PAIRWISE
// Connects each neuron in the pairwise_connect_presynaptic list to each neuron in the pairwise_connect_postsynaptic list. If the pairwise_connect_weight and pairwise_connect_delay lists exist and are of the right size, these values are used for weights and delays (delays in timesteps).