134 unsigned long m_lTotalSpikesCollected;
136 #ifndef STD_DO_NOT_ADD_BOOST
137 boost::interprocess::interprocess_mutex m_AccessRecentSpikes;
146 virtual void SetCARLSimulation();
150 virtual void NeuronCount(
unsigned int iVal);
151 virtual unsigned int NeuronCount();
153 virtual void NeuralType(std::string strType);
154 virtual void NeuralType(
int iVal);
155 virtual int NeuralType();
157 virtual void GroupID(
int iVal);
158 virtual int GroupID();
160 virtual void A(
float fltVal);
163 virtual void StdA(
float fltVal);
164 virtual float StdA();
166 virtual void B(
float fltVal);
169 virtual void StdB(
float fltVal);
170 virtual float StdB();
172 virtual void C(
float fltVal);
175 virtual void StdC(
float fltVal);
176 virtual float StdC();
178 virtual void D(
float fltVal);
181 virtual void StdD(
float fltVal);
182 virtual float StdD();
184 virtual void EnableCOBA(
bool bVal);
185 virtual bool EnableCOBA();
187 virtual void TauAMPA(
float fltVal);
188 virtual float TauAMPA();
190 virtual void TauNMDA(
float fltVal);
191 virtual float TauNMDA();
193 virtual void TauGABAa(
float fltVal);
194 virtual float TauGABAa();
196 virtual void TauGABAb(
float fltVal);
197 virtual float TauGABAb();
199 virtual void EnableSTP(
bool bVal);
200 virtual bool EnableSTP();
202 virtual void U(
float fltVal);
205 virtual void TauDepression(
float fltVal);
206 virtual float TauDepression();
208 virtual void TauFacilitation(
float fltVal);
209 virtual float TauFacilitation();
211 virtual void EnableSTDP(
bool bVal);
212 virtual bool EnableSTDP();
214 virtual void MaxLTP(
float fltVal);
215 virtual float MaxLTP();
217 virtual void TauLTP(
float fltVal);
218 virtual float TauLTP();
220 virtual void MaxLTD(
float fltVal);
221 virtual float MaxLTD();
223 virtual void TauLTD(
float fltVal);
224 virtual float TauLTD();
226 virtual void CollectFromWholePopulation(
bool bVal);
227 virtual bool CollectFromWholePopulation();
229 virtual std::multimap<int, unsigned long> *SpikeTimes();
231 #ifndef STD_DO_NOT_ADD_BOOST
232 boost::interprocess::interprocess_mutex *AccessRecentSpikes() {
return &m_AccessRecentSpikes;};
235 boost::signals2::signal<void (int, int, long)> MonitoredSpikeEvent;
238 virtual void IncrementCollectSpikeDataForNeuron(
int iIdx);
239 virtual void DecrementCollectSpikeDataForNeuron(
int iIdx);
240 virtual bool CollectingSpikeDataForNeuron(
int iIdx);
242 virtual void update(
CpuSNN* s,
int grpId,
unsigned int* NeuronIds,
unsigned int *timeCounts,
unsigned int total_spikes,
float firing_Rate);
244 virtual void AddExternalNodeInput(
int iTargetDataType,
float fltInput);
247 virtual void SetSystemPointers(Simulator *lpSim, Structure *lpStructure, NeuralModule *lpModule, Node *lpNode,
bool bVerify);
248 virtual void VerifySystemPointers();
249 virtual void Initialize();
250 virtual void StepSimulation();
251 virtual void ResetSimulation();
253 #pragma region DataAccesMethods
254 virtual bool SetData(
const std::string &strDataType,
const std::string &strValue,
bool bThrowError =
true);
255 virtual void QueryProperties(CStdPtrArray<TypeProperty> &aryProperties);
256 virtual float *GetDataPointer(
const std::string &strDataType);
259 virtual void Load(CStdXml &oXml);
float m_fltMaxLTD
the max magnitude for LTD change for STDP
Contains the classes for a firing rate neural model.
bool m_bEnableSTDP
Tells whether this group of neurons exhibits spike-timing dependent plasticity.
std::multimap< int, unsigned long > m_arySpikeTimes
A map for keeping track of a spike times in ms for individual neurons in this group throughout the cu...
unsigned int m_uiNeuronCount
The number of neurons in this group.
float m_fltStdC
The standard deviation for Izhikevich parameter C.
float m_fltTauNMDA
Time constant of NMDA decay (ms); for example, 150.0.
float m_fltTauFacilitation
the time constant for facilitation term for STP
float m_fltMaxLTP
the max magnitude for LTP change for STDP
int m_iGroupID
The group ID of this set of neurons.
float m_fltTauGABAa
Time constant of GABAa decay (ms); for example, 6.0.
float m_fltTauLTD
the decay time constant for LTD change for STDP
float m_fltGroupTotalSpikes
The total number of spikes generated by this group of neurons in the last time slice.
Firing rate neural module.
float m_fltC
The Izhikevich C parameter.
float m_fltB
The Izhikevich B parameter.
CsNeuralModule * m_lpCsModule
Pointer to parent CsNeuralModule.
float m_fltStdB
The standard deviation for Izhikevich parameter B.
Firing Rate Neuron model.
float m_fltStdD
The standard deviation for Izhikevich parameter D.
float m_fltD
The Izhikevich D parameter.
float m_fltTauGABAb
Time constant of GABAb decay (ms); for example, 150.0.
CStdMap< int, int > m_aryCollectSpikeData
An array of neuron indices for individual neurons we want to collect spike data for throughout the cu...
float m_fltTauLTP
the decay time constant for LTP change for STDP
Base class for body parts and neural network nodes.
unsigned long m_lLastUpdateTime
The last time step for which the monitor method ran.
float m_fltA
The Izhikevich A parameter.
float m_fltU
the increment of u due to a spike for STP
can be used to create a custom spike monitor
bool m_bEnableSTP
Tells whether this group of neurons exhibits Short term plasticity.
float m_fltTauDepression
the time constant for depression term for STP
float m_fltStdA
The standard deviation for Izhikevich parameter A.
float m_fltTauAMPA
Time constant of AMPA decay (ms); for example, 5.0.
int m_iCollectWholePopulation
If > 0 it collects data from the whole population. This is an iterator keeping track of how many thin...
Contains all of CARLsim's core functionality.
float m_fltGroupFiringRate
The firing rate of this entire group of neurons.