Spike
Loading...
Searching...
No Matches
Spike::IFAC Class Reference

An abstract base class for integrate-and-fire neurons with an adaptation current. More...

#include <IFAC.h>

Public Member Functions

 IFAC (const std::string &input_file)
 Construct IFAC from .ini file.
 
 IFAC (double mu, double D, double tau_a, double Delta)
 Construct IFAC from given parameters.
 
void get_spikes (SpikeTrain &spike_train) override
 Obtains spikes by integrating the Langevin equation using an Euler-Maruyama scheme.
 
void get_spikes (Signal &signal, SpikeTrain &spike_train) override
 Obtains spikes by integrating the Langevin equation using an Euler-Maruyama scheme. Neuron is subject to an applied signal.
 
void get_voltage_curve (const TimeFrame &time, std::vector< double > &v, std::vector< double > &a)
 Calculates the trajectory, i.e. v(t) and a(t) for a given time frame.
 
void set_tau_a (double tau_a_new)
 Sets a new adaptation time constant.
 
void set_Delta (double Delta_new)
 Sets a new kick size.
 
- Public Member Functions inherited from Spike::IF
 IF (const std::string &input_file)
 Constructs an IF neuron from a .ini file.
 
 IF (double mu, double D)
 Construct an IF neuron from given parameters.
 
virtual double drift (double v) const =0
 Calculates the drift of the IF neuron.
 
double diffusion () const
 Calculates the diffusion of the IF neurons, i.e. sqrt(2D).
 
void get_voltage_curve (const TimeFrame &time, std::vector< double > &v)
 Calculates the trajectory, i.e. v(t) for a given time frame.
 
void set_mu (double mu_new)
 Set new mean input current.
 
void set_D (double D_new)
 Set new diffusion coefficient.
 
double get_D () const
 Returns the diffusion coefficient.
 
virtual void print (std::ostream &out) const =0
 Prints the IF neuron to the outstream.
 

Protected Attributes

double tau_a
 adaptation time constant
 
double Delta
 kick size of the adaptation
 
- Protected Attributes inherited from Spike::IF
double mu
 mean input current
 
double D
 diffusion coefficient
 
std::random_device rd
 random device (seeding)
 
std::mt19937 generator
 random number generator
 
std::normal_distribution< double > dist
 normal distribution
 

Detailed Description

An abstract base class for integrate-and-fire neurons with an adaptation current.

Constructor & Destructor Documentation

◆ IFAC() [1/2]

Spike::IFAC::IFAC ( const std::string & input_file)
explicit

Construct IFAC from .ini file.

Parameters
input_filePath to .ini file.

◆ IFAC() [2/2]

Spike::IFAC::IFAC ( double mu,
double D,
double tau_a,
double Delta )

Construct IFAC from given parameters.

Parameters
muMean input current
DDiffusion coefficient
tau_aadaptation time constant
Deltakick size

Member Function Documentation

◆ get_spikes() [1/2]

void Spike::IFAC::get_spikes ( Signal & signal,
SpikeTrain & spike_train )
overridevirtual

Obtains spikes by integrating the Langevin equation using an Euler-Maruyama scheme. Neuron is subject to an applied signal.

Parameters
signalSignal
spike_trainSpike train

Reimplemented from Spike::IF.

◆ get_spikes() [2/2]

void Spike::IFAC::get_spikes ( SpikeTrain & spike_train)
overridevirtual

Obtains spikes by integrating the Langevin equation using an Euler-Maruyama scheme.

Parameters
spike_trainSpike train

Reimplemented from Spike::IF.

◆ get_voltage_curve()

void Spike::IFAC::get_voltage_curve ( const TimeFrame & time,
std::vector< double > & v,
std::vector< double > & a )

Calculates the trajectory, i.e. v(t) and a(t) for a given time frame.

Parameters
timeTime frame
vVoltage array
aAdaptation variable array

◆ set_Delta()

void Spike::IFAC::set_Delta ( double Delta_new)
inline

Sets a new kick size.

Parameters
Delta_newnew kick size

◆ set_tau_a()

void Spike::IFAC::set_tau_a ( double tau_a_new)
inline

Sets a new adaptation time constant.

Parameters
tau_a_newnew adaptation time constant

The documentation for this class was generated from the following files: