pub struct MulticompartmentMCNNeuron {
pub u: f64,
pub v_basal: f64,
pub v_apical: f64,
pub tau: f64,
pub tau_b: f64,
pub tau_a: f64,
pub g_ratio: f64,
pub beta: f64,
pub v_th: f64,
pub dt: f64,
}Expand description
Multi-compartment neuron (MCN) matching the Spiking-WM architecture.
Dual-dendrite model with basal and apical compartments. The apical dendrite gates how strongly basal information influences the soma, enabling nonlinear integration for long-term temporal memory in RL tasks.
Exact equations from arXiv:2503.00713 (Spiking-WM, PNAS 2025):
τ_b dV_b/dt = -V_b + x_b (basal) τ_a dV_a/dt = -V_a + x_a (apical) τ dU/dt = -U + σ(V_a)·[g_B/g_L·(V_b - U) + W_s·I] (soma) S[t] = Θ(U[t] - V_th) (spike) U[t] ← U[t]·(1 - S[t]) (soft reset)
Default parameters from Table II: τ = τ_a = τ_b = 2.0, g_B/g_L = 1.0, β = 1.0 (sigmoid steepness), V_th = 1.0.
Reference: Brain-Cog-Lab, arXiv:2503.00713, PNAS 2025.
Fields§
§u: f64Somatic membrane potential.
v_basal: f64Basal dendrite potential.
v_apical: f64Apical dendrite potential.
tau: f64Soma time constant.
tau_b: f64Basal dendrite time constant.
tau_a: f64Apical dendrite time constant.
g_ratio: f64Basal-to-soma conductance ratio (g_B/g_L).
beta: f64Sigmoid steepness for apical gating.
v_th: f64Spike threshold.
dt: f64Time step.
Implementations§
Trait Implementations§
Source§impl Clone for MulticompartmentMCNNeuron
impl Clone for MulticompartmentMCNNeuron
Source§fn clone(&self) -> MulticompartmentMCNNeuron
fn clone(&self) -> MulticompartmentMCNNeuron
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for MulticompartmentMCNNeuron
impl Debug for MulticompartmentMCNNeuron
Auto Trait Implementations§
impl Freeze for MulticompartmentMCNNeuron
impl RefUnwindSafe for MulticompartmentMCNNeuron
impl Send for MulticompartmentMCNNeuron
impl Sync for MulticompartmentMCNNeuron
impl Unpin for MulticompartmentMCNNeuron
impl UnsafeUnpin for MulticompartmentMCNNeuron
impl UnwindSafe for MulticompartmentMCNNeuron
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more