pub struct CompteWMNeuron {Show 24 fields
pub v: f64,
pub s_ampa: f64,
pub s_nmda: f64,
pub x_nmda: f64,
pub s_gaba: f64,
pub ref_remaining: f64,
pub g_l: f64,
pub g_ampa: f64,
pub g_nmda: f64,
pub g_gaba: f64,
pub e_l: f64,
pub e_exc: f64,
pub e_inh: f64,
pub c_m: f64,
pub mg: f64,
pub tau_ampa: f64,
pub tau_nmda: f64,
pub tau_x: f64,
pub tau_gaba: f64,
pub alpha_nmda: f64,
pub v_threshold: f64,
pub v_reset: f64,
pub tau_ref: f64,
pub dt: f64,
}Expand description
Complete Compte pyramidal-cell state and source control-set configuration.
Conductances are microSiemens, voltages millivolts, current nanoamps, capacitance nanofarads, and time milliseconds. Incoming event flags map to recurrent NMDA, external AMPA, and inhibitory GABAA pathways respectively.
Fields§
§v: f64Membrane potential in mV.
s_ampa: f64External AMPA open-channel accumulator.
s_nmda: f64Recurrent NMDA open fraction.
x_nmda: f64Recurrent NMDA rise precursor.
s_gaba: f64Incoming GABAA open-channel accumulator.
ref_remaining: f64Remaining absolute refractory duration in ms.
g_l: f64Leak conductance in microSiemens.
g_ampa: f64External pyramidal AMPA conductance in microSiemens.
g_nmda: f64Recurrent pyramidal NMDA conductance in microSiemens.
g_gaba: f64Interneuron-to-pyramidal GABAA conductance in microSiemens.
e_l: f64Leak reversal in mV.
e_exc: f64Excitatory reversal in mV.
e_inh: f64Inhibitory reversal in mV.
c_m: f64Membrane capacitance in nF.
mg: f64Extracellular magnesium concentration in mM.
tau_ampa: f64AMPA decay constant in ms.
tau_nmda: f64NMDA decay constant in ms.
tau_x: f64NMDA rise-precursor decay constant in ms.
tau_gaba: f64GABAA decay constant in ms.
alpha_nmda: f64NMDA saturation rate in inverse ms.
v_threshold: f64Sampled firing threshold in mV.
v_reset: f64Post-spike and refractory voltage in mV.
tau_ref: f64Absolute refractory duration in ms.
dt: f64Midpoint-RK2 integration step in ms.
Implementations§
Source§impl CompteWMNeuron
impl CompteWMNeuron
Sourcepub fn validate(&self) -> bool
pub fn validate(&self) -> bool
Return whether all mutable state and configuration invariants hold.
fn mg_block(&self, v: f64) -> Option<f64>
fn derivatives( &self, state: [f64; 5], current: f64, membrane_active: bool, ) -> Option<[f64; 5]>
Sourcepub fn step_events(
&mut self,
current: f64,
recurrent_event: bool,
external_event: bool,
inhibitory_event: bool,
) -> Result<i32, &'static str>
pub fn step_events( &mut self, current: f64, recurrent_event: bool, external_event: bool, inhibitory_event: bool, ) -> Result<i32, &'static str>
Advance one atomic source-level midpoint-RK2 step.
The three flags apply recurrent-NMDA, external-AMPA, and inhibitory-GABAA event jumps before the continuous flow. Threshold detection is sampled; within-step firing-time interpolation is not claimed. An error leaves all public state unchanged.
Sourcepub fn step(&mut self, current: f64, recurrent_event: bool) -> i32
pub fn step(&mut self, current: f64, recurrent_event: bool) -> i32
Retain the generic two-argument engine adapter.
The boolean retains its historical meaning as a recurrent excitatory NMDA event. Invalid state returns zero without mutation; callers that require explicit errors use the complete step_events method.
Trait Implementations§
Source§impl Clone for CompteWMNeuron
impl Clone for CompteWMNeuron
Source§impl Debug for CompteWMNeuron
impl Debug for CompteWMNeuron
Auto Trait Implementations§
impl Freeze for CompteWMNeuron
impl RefUnwindSafe for CompteWMNeuron
impl Send for CompteWMNeuron
impl Sync for CompteWMNeuron
impl Unpin for CompteWMNeuron
impl UnsafeUnpin for CompteWMNeuron
impl UnwindSafe for CompteWMNeuron
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§impl<T> Pointable for T
impl<T> Pointable for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.