Synapse Functions
We provide non-mutating functions for the following synapse models:
- Dirac-Delta
- Alpha
- Excited Postsynaptic Potential (EPSP)
SpikingNNFunctions.Synapse.delta
— Functiondelta(t::Real, lastspike, q)
delta(t::Real, lastspike::AbstractArray{<:Real}, q::AbstractArray{<:Real})
delta(t::Real, lastspike::CuVecOrMat{<:Real}, q::CuVecOrMat{<:Real})
Evaluate a Dirac-delta synapse. Use CuVector
instead of Vector
for GPU support.
Fields
t
: current timelastspike
: last pre-synaptic spike timeq
: amplitude
SpikingNNFunctions.Synapse.alpha
— Functionalpha(t::Real, lastspike, q, tau)
alpha(t::Real, lastspike::AbstractArray{<:Real}, q::AbstractArray{<:Real}, tau::AbstractArray{<:Real})
alpha(t::Real, lastspike::CuVecOrMat{<:Real}, q::CuVecOrMat{<:Real}, tau::CuVecOrMat{<:Real})
Evaluate an alpha synapse. Modeled as (t - lastspike) * (q / τ) * exp(-(t - lastspike - τ) / τ) Θ(t - lastspike)
(where Θ
is the Heaviside function). Use CuVector
instead of Vector
for GPU support.
Fields
t
: current timelastspike
: last pre-synaptic spike timeq
: amplitudetau
: time constant
SpikingNNFunctions.Synapse.epsp
— Functionepsp(t::Real, lastspike, q, taum, taus)
epsp(t::Real, lastspike::AbstractArray{<:Real}, q::AbstractArray{<:Real}, taum::AbstractArray{<:Real}, taus::AbstractArray{<:Real})
epsp(t::Real, lastspike::CuVecOrMat{<:Real}, q::CuVecOrMat{<:Real}, taum::CuVecOrMat{<:Real}, taus::CuVecOrMat{<:Real})
Evaluate an EPSP synapse. Modeled as (ϵ₀ / τm - τs) * (exp(-Δ / τm) - exp(-Δ / τs)) Θ(Δ)
(where Θ
is the Heaviside function and Δ = t - lastspike
). Specifically, this is the EPSP time course for the SRM0 model introduced by Gerstner. Details: Spiking Neuron Models: Single Neurons, Populations, Plasticity
Use CuVector
instead of Vector
for GPU support.
Fields
t
: current timelastspike
: last pre-synaptic spike timeq
: amplitudetaum
: rise time constanttaus
: fall time constant