CARLsim
3.0.3
CARLsim: a GPU-accelerated SNN simulator
|
Class for generating Poisson spike trains. More...
#include <poisson_rate.h>
Public Member Functions | |
PoissonRate (int nNeur, bool onGPU=false) | |
PoissonRate constructor. More... | |
~PoissonRate () | |
PoissonRate destructor. More... | |
int | getNumNeurons () |
Returns the number of neurons for which to generate Poisson spike trains. More... | |
float | getRate (int neurId) |
Returns the mean firing rate of a specific neuron ID. More... | |
float * | getRatePtrCPU () |
Returns pointer to CPU-allocated firing rate array (deprecated) More... | |
float * | getRatePtrGPU () |
Returns pointer to GPU-allocated firing rate array (deprecated) More... | |
std::vector< float > | getRates () |
Returns a vector of firing rates, one element per neuron. More... | |
bool | isOnGPU () |
Checks whether the firing rates are allocated on CPU or GPU. More... | |
void | setRate (int neurId, float rate) |
Sets the mean firing rate of a particular neuron ID. More... | |
void | setRates (float rate) |
Assigns the same mean firing rate to all neurons. More... | |
void | setRates (const std::vector< float > &rates) |
Sets the mean firing rate of each neuron from a vector. More... | |
The PoissonRate class allows a user create spike trains whose inter-spike interval follows a Poisson process. The object can then be linked to a spike generator group (created via CARLsim::createSpikeGeneratorGroup) by calling CARLsim::setSpikeRate.
All firing rates will be initialized to zero. The user then has a number of options to manipulate the mean firing rate of each neuron. The same rate can be applied to all neurons by calling PoissonRate::setRates(float rate). Individual rates can be applied from a vector by calling PoissonRate::setRates(const std::vector<float>& rates). The rate of a single neuron can be manipulated by calling PoissonRate::setRate(int neurId, float rate).
Example usage:
Definition at line 84 of file poisson_rate.h.
PoissonRate | ( | int | nNeur, |
bool | onGPU = false |
||
) |
Creates a new instance of class PoissonRate.
[in] | nNeur | the number of neurons for which to generate Poisson spike trains |
[in] | onGPU | whether to allocate the rate vector on GPU (true) or CPU (false) |
~PoissonRate | ( | ) |
Cleans up all the memory upon object deletion.
|
inline |
This function returns the number of neurons for which to generate Poisson spike trains. This number is defined at initialization and cannot be changed during the object lifetime.
Definition at line 112 of file poisson_rate.h.
float getRate | ( | int | neurId | ) |
This function returns the mean firing rate assigned to a specific neuron ID. The neuron ID is 0-indexed and should thus be in the range [ 0 , getNumNeurons() ). It is completely independent from CARLsim neuron IDs.
[in] | neurId | the neuron ID (0-indexed) |
float* getRatePtrCPU | ( | ) |
This function returns a pointer to the underlying firing rate array if allocated on the CPU. This pointer does not exist when the PoissonRate object is allocated on GPU.
float* getRatePtrGPU | ( | ) |
This function returns a pointer to the underlying firing rate array if allocated on the GPU. This pointer does not exist when the PoissonRate object is allocated on CPU.
std::vector<float> getRates | ( | ) |
This function returns all the mean firing rates in a vector, one vector element per neuron.
|
inline |
This function checks whether the firing rates are allocated either on CPU or GPU.
Definition at line 163 of file poisson_rate.h.
void setRate | ( | int | neurId, |
float | rate | ||
) |
This function sets the firing rate of a particular neuron ID. The neuron ID is 0-indexed and should thus be in the range [ 0 , getNumNeurons() ). It is completely independent from CARLsim neuron IDs.
[in] | neurId | the neuron ID (0-indexed) |
[in] | rate | the firing rate to set |
void setRates | ( | float | rate | ) |
This function assigns the same firing rate to all the neurons.
[in] | rate | the firing rate to set |
void setRates | ( | const std::vector< float > & | rates | ) |
This function sets the firing rate of each neuron from a vector of firing rates, one rate per neuron.
[in] | rates | vector of firing rates (size should be equivalent to PoissonRate::getNumNeurons()) |