20 #include "../MPILib/include/AlgorithmInterface.hpp"
34 const std::vector<MPILib::Potential>& vec_int,
37 _par_neuron (par_neuron),
40 _vec_interpretation (vec_int),
43 _force_small_bins (b_force_small)
61 if (mu == 0.0 && sigma ==0.0){
69 MPILib::Potential h = (mu != 0.0) ? sigma*sigma/mu : std::numeric_limits<double>::max();
71 if (mu != 0 && IsSingleDiffusionProcess(h) ){
73 if (fabs(h) < 2*_min_step && _force_small_bins)
76 MPILib::Rate rate = mu*mu/(sigma*sigma*_par_neuron._tau);
92 double h = _par_diff._diffusion_jump*(_par_neuron._theta - _vec_interpretation[0]);
94 if (fabs(h) < 2*_min_step && _force_small_bins)
97 double tau = _par_neuron._tau;
101 set.
_rate_exc = (sigma*sigma + h*mu)/(2*h*h*tau);
102 set.
_rate_inh = (sigma*sigma - h*mu)/(2*h*h*tau);
116 const std::vector<MPILib::Rate>& vec_rates,
117 const std::vector<MPILib::DelayedConnection>& vec_con,
118 const std::vector<MPILib::NodeType>& vec_type
121 assert(vec_rates.size() == vec_con.size());
122 assert(vec_type.size() == vec_rates.size());
125 if (_vec_set.size() == 0)
127 _vec_set = std::vector<InputParameterSet>(vec_type.size() + 1);
130 _vec_diffusion.clear();
135 _vec_diffusion.push_back(
i);
137 _vec_direct.push_back(
i);
139 this->AddDiffusionParameter (vec_con, vec_rates);
140 this->AddBurstParameters (vec_con, vec_rates);
145 const std::vector<MPILib::DelayedConnection>& vec_con,
146 const std::vector<MPILib::Rate>& vec_rates
150 for(
auto i: _vec_direct){
152 double h = vec_con[
i]._efficacy;
153 double N = vec_con[
i]._number_of_connections;
154 double rate = vec_rates[
i];
157 _vec_set[start]._h_exc = h;
158 _vec_set[start]._h_inh = 0;
159 _vec_set[start]._rate_exc = rate*N;
160 _vec_set[start]._rate_inh = 0.0;
163 _vec_set[start]._h_exc = 0;
164 _vec_set[start]._h_inh = h;
165 _vec_set[start]._rate_exc = 0.0;
166 _vec_set[start]._rate_inh = rate*N;
174 const std::vector<MPILib::DelayedConnection>& vec_con,
175 const std::vector<MPILib::Rate>& vec_rates,
176 std::vector<MPILib::DelayedConnection>* p_vec_con_diff,
177 std::vector<MPILib::Rate>* p_vec_rates_diff
180 for (
auto i: _vec_diffusion){
181 p_vec_con_diff->push_back(vec_con[
i]);
182 p_vec_rates_diff->push_back(vec_rates[i]);
189 const std::vector<MPILib::DelayedConnection>& vec_con,
190 const std::vector<MPILib::Rate>& vec_rates
193 std::vector<MPILib::DelayedConnection> vec_diff_con;
194 std::vector<MPILib::Rate> vec_diff_rates;
196 SortDiffusionInput(vec_con,vec_rates, &vec_diff_con,&vec_diff_rates);
207 par.
_mu += _par_curr._I;
208 par.
_sigma += _par_curr._sigma;
210 SetDiffusionParameters(par,_vec_set[0]);
215 const std::vector<MPILib::Potential>& vec_interpretation
218 assert (vec_interpretation.size() > 0);
219 double min = std::numeric_limits<double>::max();
221 double dif = fabs(vec_interpretation[
i+1] - vec_interpretation[
i]);
Indicates that Dale's law should not be checked for this node.
When to switch to a two Poisson input approximation, and what input jump to use then.
Parameter for setting current compensation values for the neural models that use it.
MPILib::Potential _theta
threshold potential in V
Base class for all exceptions thrown in GeomLib.
Parameters necessary for the configuration of a GeomAlgorithm or an OUAlgorithm.
Indicates that Dale's law should be checked and that the contribution oof this excitatory node is to ...
The objective is find a numerical solution for this equation This requires a numerical representation of the density We will work in the state space of a two dimensional and define a mesh there We first give two examples and then define the general procedure and given in Table for given fixed Delta g see Fig and we will denote coordinates in this dimension by a small letter $v The second dimension can be used to represent parameters as varied as and will represented by $w A strip is constructed by choosing two neighbouring points in state e g and integrating the vector field for a time $T that is assumed to be an integer multiple of a period of time Delta which we assume to be a defining characteristic of the grid Let then the set of points the set of points which is quadrilateral in shape The quadrilateral should be but not necessarily as long as they are but it is convenient to number them in order of creation In the we will assume that strip numbers created by the integration procedure start and are so that the numbers i in each identify a unique strip Strip no is reserved for stationary points There may or more cells in strip The number of cells in strip $i denoted by with $i the strip number and $j the cell as the i
MuSigma Evaluate(const std::vector< MPILib::Rate > &nodeVector, const std::vector< WeightType > &weightVector, MPILib::Time tau) const