NEST main@caf0ae8
 
Loading...
Searching...
No Matches
IAFPropagator Class Reference

Exact integration voltage propagator for leaky integrate-and-fire models. More...

#include <iaf_propagator.h>

Inheritance diagram for IAFPropagator:
[legend]

Public Member Functions

 IAFPropagator ()
 Empty constructor needed for initialization of buffers.
 
 IAFPropagator (double tau_syn, double tau_m, double c_m)
 

Protected Member Functions

std::tuple< double, double, double, double > evaluate_P32_ (double h) const
 Compute propagator connecting I_syn to V_m and auxiliary quantities for given time interval.
 

Protected Attributes

double tau_syn_
 Time constant of synaptic current in ms.
 
double tau_m_
 Membrane time constant in ms.
 
double c_m_
 Membrane capacitance in pF.
 
double h_min_regular_
 Smallest h for which regular P31 case applies.
 
double beta_
 (tau_syn * tau_m) / (tau_m - tau_syn)
 
double gamma_
 beta_ / c_m
 
double inv_tau_syn_
 1 / tau_syn
 
double inv_tau_m_
 1 / tau_m
 
double inv_c_m_
 1 / c_m
 
double inv_beta_
 1 / beta
 

Static Protected Attributes

static constexpr double NUMERICAL_STABILITY_FACTOR_ = 1e-7
 Scale factor for singularity test for P31 computation.
 

Detailed Description

Exact integration voltage propagator for leaky integrate-and-fire models.

This base class and its derived classes provide the propagator matrix elements connecting synaptic current to membrane potential. They handle the singularity at tau_m == tau_syn_* properly.

See also
<NEST_SOURCE>/doc/userdoc/model_details/IAF_Integration_Singularity.ipynb

Constructor & Destructor Documentation

◆ IAFPropagator() [1/2]

IAFPropagator::IAFPropagator ( )

Empty constructor needed for initialization of buffers.

◆ IAFPropagator() [2/2]

IAFPropagator::IAFPropagator ( double  tau_syn,
double  tau_m,
double  c_m 
)
Parameters
tau_synTime constant of synaptic current in ms
tau_mMembrane time constant in ms
c_mMembrane capacitance in pF

Member Function Documentation

◆ evaluate_P32_()

std::tuple< double, double, double, double > IAFPropagator::evaluate_P32_ ( double  h) const
protected

Compute propagator connecting I_syn to V_m and auxiliary quantities for given time interval.

This method computes all quantities common to alpha and exponential synaptic dynamics.

Note
Fourth return value is real-valued only in the singular limit and numerics::nan otherwise to avoid unnecessary computation of exp().
Parameters
htime interval [ms]
Returns
tuple with P_VI, exp( -h / tau_syn_ ), expm1( -h / tau_m_ + h / tau_syn_ ), exp( -h / tau_m_ )

References numerics::expm1(), gamma_, inv_beta_, inv_c_m_, inv_tau_m_, inv_tau_syn_, and numerics::nan.

Referenced by IAFPropagatorExp::evaluate(), and IAFPropagatorAlpha::evaluate().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ beta_

double IAFPropagator::beta_
protected

(tau_syn * tau_m) / (tau_m - tau_syn)

Referenced by IAFPropagatorAlpha::evaluate().

◆ c_m_

double IAFPropagator::c_m_
protected

Membrane capacitance in pF.

◆ gamma_

double IAFPropagator::gamma_
protected

beta_ / c_m

Referenced by IAFPropagatorAlpha::evaluate(), and evaluate_P32_().

◆ h_min_regular_

double IAFPropagator::h_min_regular_
protected

Smallest h for which regular P31 case applies.

Referenced by IAFPropagatorAlpha::evaluate().

◆ inv_beta_

double IAFPropagator::inv_beta_
protected

1 / beta

Referenced by evaluate_P32_().

◆ inv_c_m_

double IAFPropagator::inv_c_m_
protected

1 / c_m

Referenced by IAFPropagatorAlpha::evaluate(), and evaluate_P32_().

◆ inv_tau_m_

double IAFPropagator::inv_tau_m_
protected

1 / tau_m

Referenced by IAFPropagatorAlpha::evaluate(), and evaluate_P32_().

◆ inv_tau_syn_

double IAFPropagator::inv_tau_syn_
protected

1 / tau_syn

Referenced by evaluate_P32_().

◆ NUMERICAL_STABILITY_FACTOR_

constexpr double IAFPropagator::NUMERICAL_STABILITY_FACTOR_ = 1e-7
staticconstexprprotected

Scale factor for singularity test for P31 computation.

Regular case applies if h > NUMERICAL_STABILITY_FACTOR_ * tau_m^2 / |tau_m - tau_syn|

See IAF_Integration_Singularity for details.

◆ tau_m_

double IAFPropagator::tau_m_
protected

Membrane time constant in ms.

◆ tau_syn_

double IAFPropagator::tau_syn_
protected

Time constant of synaptic current in ms.


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