Kaspersky Neuromorphic Platform  1.0.0
API Reference
Loading...
Searching...
No Matches
blifat.h
Go to the documentation of this file.
1
22#pragma once
23
24#include <limits>
25#include <numeric>
26#include <utility>
27
28#include "type_traits.h"
29
33namespace knp::neuron_traits
34{
35
39struct BLIFATNeuron;
40
41
45template <>
46struct default_values<BLIFATNeuron>
47{
51 constexpr static std::size_t n_time_steps_since_last_firing_ = std::numeric_limits<std::size_t>::max();
52
57 constexpr static double reversal_inhibitory_potential_ = -0.3;
58
62 constexpr static double min_potential_ = -1.0e9;
63
67 constexpr static double activation_threshold_ = 1.0;
68
74 constexpr static double dynamic_threshold_ = 0.;
79 constexpr static double threshold_decay_ = 0.;
80
84 constexpr static double threshold_increment_ = 0.;
85
89 constexpr static double postsynaptic_trace_ = 0.;
90
96 constexpr static double postsynaptic_trace_decay_ = 0.;
97
102 constexpr static double postsynaptic_trace_increment_ = 0.;
103
107 constexpr static double inhibitory_conductance_ = 0.;
108
112 constexpr static double inhibitory_conductance_decay_ = 0.;
113
117 constexpr static double potential_ = 0;
118
123 constexpr static double pre_impact_potential_ = 0;
124
128 constexpr static double potential_decay_ = 0;
129
133 constexpr static unsigned bursting_phase_ = 0;
134
139 constexpr static unsigned bursting_period_ = 0;
140
144 constexpr static double reflexive_weight_ = 0;
145
149 constexpr static unsigned absolute_refractory_period_ = 0;
150
154 constexpr static double potential_reset_value_ = 0.;
155
160 constexpr static int64_t total_blocking_period_ = std::numeric_limits<int64_t>::max();
161
165 constexpr static double dopamine_value_ = 0.0;
166};
167
168
172template <>
173struct neuron_parameters<BLIFATNeuron>
174{
178 std::size_t n_time_steps_since_last_firing_ = default_values<BLIFATNeuron>::n_time_steps_since_last_firing_;
179
183 double activation_threshold_ = default_values<BLIFATNeuron>::activation_threshold_;
188 double dynamic_threshold_ = default_values<BLIFATNeuron>::dynamic_threshold_;
193 double threshold_decay_ = default_values<BLIFATNeuron>::threshold_decay_;
197 double threshold_increment_ = default_values<BLIFATNeuron>::threshold_increment_;
201 double postsynaptic_trace_ = default_values<BLIFATNeuron>::postsynaptic_trace_;
207 double postsynaptic_trace_decay_ = default_values<BLIFATNeuron>::postsynaptic_trace_decay_;
212 double postsynaptic_trace_increment_ = default_values<BLIFATNeuron>::postsynaptic_trace_increment_;
216 double inhibitory_conductance_ = default_values<BLIFATNeuron>::inhibitory_conductance_;
217
221 double inhibitory_conductance_decay_ = default_values<BLIFATNeuron>::inhibitory_conductance_decay_;
225 double potential_ = default_values<BLIFATNeuron>::potential_;
230 double pre_impact_potential_ = default_values<BLIFATNeuron>::pre_impact_potential_;
234 double potential_decay_ = default_values<BLIFATNeuron>::potential_decay_;
235
239 unsigned bursting_phase_ = default_values<BLIFATNeuron>::bursting_phase_;
240
245 unsigned bursting_period_ = default_values<BLIFATNeuron>::bursting_period_;
249 double reflexive_weight_ = default_values<BLIFATNeuron>::reflexive_weight_;
250
254 double reversal_inhibitory_potential_ = default_values<BLIFATNeuron>::reversal_inhibitory_potential_;
255
259 unsigned absolute_refractory_period_ = default_values<BLIFATNeuron>::absolute_refractory_period_;
263 double potential_reset_value_ = default_values<BLIFATNeuron>::potential_reset_value_;
264
268 double min_potential_ = default_values<BLIFATNeuron>::min_potential_;
273 int64_t total_blocking_period_ = default_values<BLIFATNeuron>::total_blocking_period_;
277 double dopamine_value_ = default_values<BLIFATNeuron>::dopamine_value_;
278};
279
280} // namespace knp::neuron_traits
Namespace for neuron traits.
Definition all_traits.h:37
Common neuron type traits.
Structure for neuron default values.
Definition type_traits.h:43
Structure for neuron parameters.
Definition type_traits.h:36