31 _p_dyn (boost::shared_ptr<AbstractNeuralDynamics>(dyn.
Clone())),
32 _t_period (_p_dyn->TPeriod()),
33 _t_step (_p_dyn->TStep()),
36 _buffer_mass (this->InitializeDensity()),
37 _i_reset (this->InitializeResetBin()),
38 _i_reversal (this->InitializeReversalBin()),
40 _map_cache (vector<MPILib::Index>(0)),
41 _number_of_bins (_buffer_interpretation.size())
49 _p_dyn (boost::shared_ptr<AbstractNeuralDynamics>(sys.
_p_dyn->Clone())),
102 double* array_interpretation,
109 array_interpretation[
i] = _buffer_interpretation[
i];
110 array_mass[
i] = _buffer_mass[ MapPotentialToProbabilityBin(
i)]/(_buffer_interpretation[
i+1]-_buffer_interpretation[
i]);
113 array_interpretation[n_bins-1] = _buffer_interpretation[n_bins-1];
114 array_mass[n_bins-1] = _buffer_mass[MapPotentialToProbabilityBin(n_bins-1)]/(this->_par._par_pop._theta - _buffer_interpretation[n_bins-1]);
119 vector<MPILib::Density>& buffer_mass = *p_vec;
121 Number n_bins = p_vec->size();
124 assert (par_ode.
_par_dens.
_mu <= this->_par._par_pop._theta);
127 if ( j == n_bins - 1 )
136 vector<MPILib::Density>& buffer_mass = *p_vec_dense;
138 Number n_bins = p_vec_dense->size();
143 buffer_mass[
i] = exp(-sqr);
161 vector<MPILib::Density>* p_vec
166 vector<MPILib::Density>& buffer_mass = *p_vec;
168 Number n_bins = p_vec->size() - 1;
173 buffer_mass[
i] *= (_buffer_interpretation[
i+1] - _buffer_interpretation[
i]);
176 buffer_mass[n_bins-1] *= (this->_par._par_pop._theta - _buffer_interpretation.back());
179 sum += buffer_mass[i];
182 buffer_mass[i] /= sum;
MPILib::Index FindBin(Potential) const
Find which bin in the interpretation array contains this potential.
A geometric grid to represent population densities.
void InitializeSingleBin(vector< MPILib::Density > *) const
MPILib::Potential _V_reset
reset potential in V
Contains the parameters necessary to configure a concrete OdeSystem instance. See AbstractOdeSystem a...
vector< MPILib::Potential > _buffer_interpretation
void InitializeGaussian(vector< MPILib::Density > *) const
The configuration of a GeomAlgorithm requires that the neural dynamics is defined somewhere...
MPILib::Index _i_reversal
NeuronParameter _par_pop
The neuron parameter.
void NormaliseDensity(vector< MPILib::Density > *) const
MPILib::Potential _theta
threshold potential in V
MPILib::Index InitializeResetBin() const
vector< MPILib::Index > _map_cache
const OdeParameter & Par() const
Access to the OdeParameter of the system. It is often time-critical, therefore implemented as referen...
const OdeParameter & _par
virtual ~AbstractOdeSystem()=0
pure virtual destructor for base class
virtual AbstractNeuralDynamics * Clone() const =0
virtual construction mechanism
MPILib::Index InitializeReversalBin() const
Base class for all exceptions thrown in GeomLib.
void PrepareReport(double *, double *) const
Represents the current density profile. Both double pointers must point to contiguous memory at least...
InitialDensityParameter _par_dens
Specifies the initial density profile.
boost::shared_ptr< AbstractNeuralDynamics > _p_dyn
vector< MPILib::Density > _buffer_mass
vector< MPILib::Density > InitializeDensity() const
MPILib::Potential _V_reversal
reversal potential in V
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
AbstractOdeSystem(const AbstractNeuralDynamics &)
Constructor using neural dynamics object (see AbstractNeuralDynamics and derived classes).
virtual std::vector< Potential > InterpretationArray() const =0
Generate the bin boundaries for geometric binning based on the dyn.