pub struct AlphaNeuron {
pub v: f64,
pub a_exc: f64,
pub i_exc: f64,
pub a_inh: f64,
pub i_inh: f64,
pub v_rest: f64,
pub v_threshold: f64,
pub tau_v: f64,
pub tau_exc: f64,
pub tau_inh: f64,
pub dt: f64,
}Expand description
Dual excitatory/inhibitory alpha-synapse leaky integrate-and-fire neuron.
Fields§
§v: f64Membrane potential.
a_exc: f64Excitatory alpha-rise state.
i_exc: f64Excitatory synaptic current.
a_inh: f64Inhibitory alpha-rise state.
i_inh: f64Inhibitory synaptic current.
v_rest: f64Leak reversal potential, also the somatic spike reset.
v_threshold: f64Spike threshold; must exceed v_rest.
tau_v: f64Positive membrane time constant.
tau_exc: f64Positive excitatory alpha time constant.
tau_inh: f64Positive inhibitory alpha time constant.
dt: f64Positive piecewise-constant-input sampling interval.
Implementations§
Source§impl AlphaNeuron
impl AlphaNeuron
Sourcepub fn with_parameters(
v: f64,
a_exc: f64,
i_exc: f64,
a_inh: f64,
i_inh: f64,
v_rest: f64,
v_threshold: f64,
tau_v: f64,
tau_exc: f64,
tau_inh: f64,
dt: f64,
) -> Result<Self, AlphaError>
pub fn with_parameters( v: f64, a_exc: f64, i_exc: f64, a_inh: f64, i_inh: f64, v_rest: f64, v_threshold: f64, tau_v: f64, tau_exc: f64, tau_inh: f64, dt: f64, ) -> Result<Self, AlphaError>
Construct and validate a complete numerical configuration.
fn validate(&self) -> Result<(), AlphaError>
fn filter_candidates( rise_state: f64, current_state: f64, drive: f64, tau: f64, dt: f64, decay: f64, ) -> Result<(f64, f64), AlphaError>
fn drive_contribution( current_delta: f64, rise_delta: f64, tau_drive: f64, dt: f64, rates: [f64; 2], decays: [f64; 2], ) -> Result<f64, AlphaError>
Sourcepub fn try_step(
&mut self,
exc_current: f64,
inh_current: f64,
) -> Result<i32, AlphaError>
pub fn try_step( &mut self, exc_current: f64, inh_current: f64, ) -> Result<i32, AlphaError>
Advance one exact-flow interval with explicit error reporting.
Trait Implementations§
Source§impl Clone for AlphaNeuron
impl Clone for AlphaNeuron
Source§fn clone(&self) -> AlphaNeuron
fn clone(&self) -> AlphaNeuron
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for AlphaNeuron
impl Debug for AlphaNeuron
Auto Trait Implementations§
impl Freeze for AlphaNeuron
impl RefUnwindSafe for AlphaNeuron
impl Send for AlphaNeuron
impl Sync for AlphaNeuron
impl Unpin for AlphaNeuron
impl UnsafeUnpin for AlphaNeuron
impl UnwindSafe for AlphaNeuron
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
Mutably borrows from an owned value. Read more
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> ⓘ
Converts
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> ⓘ
Converts
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>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
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
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.