Synapse Functions

We provide non-mutating functions for the following synapse models:

  • Dirac-Delta
  • Alpha
  • Excited Postsynaptic Potential (EPSP)
SpikingNNFunctions.Synapse.deltaFunction
delta(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 time
  • lastspike: last pre-synaptic spike time
  • q: amplitude
source
SpikingNNFunctions.Synapse.alphaFunction
alpha(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 time
  • lastspike: last pre-synaptic spike time
  • q: amplitude
  • tau: time constant
source
SpikingNNFunctions.Synapse.epspFunction
epsp(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 time
  • lastspike: last pre-synaptic spike time
  • q: amplitude
  • taum: rise time constant
  • taus: fall time constant
source