pub struct ExpIfNeuron {}Expand description
Exponential IF (no adaptation). Fourcaud-Trocmé et al. 2003.
Fields§
§v: f64§v_rest: f64§v_reset: f64§v_threshold: f64§v_rh: f64§delta_t: f64§tau: f64§dt: f64§refractory_period: f64§refractory_remaining: f64§source_profile: boolFalse preserves the historical SC RK4 recurrence; true selects source RK2.
inv_delta_t: f64§dt_div_tau: f64Implementations§
Source§impl ExpIfNeuron
impl ExpIfNeuron
pub fn new() -> Self
Sourcepub fn fourcaud_trocme_2003() -> Self
pub fn fourcaud_trocme_2003() -> Self
Construct the fitted Fourcaud-Trocmé protocol’s deterministic RK2 lane.
Sourcepub fn step(&mut self, current: f64) -> i32
pub fn step(&mut self, current: f64) -> i32
Preserve the historical scalar ABI while failing closed on rejection.
Sourcepub fn try_step(&mut self, current: f64) -> Result<i32, ExpIfError>
pub fn try_step(&mut self, current: f64) -> Result<i32, ExpIfError>
Advance one checked update without mutating the receiver on rejection.
Sourcepub fn simulate_complete(
&mut self,
n_steps: usize,
current: f64,
) -> Result<(Vec<f64>, Vec<f64>, Vec<u8>), ExpIfError>
pub fn simulate_complete( &mut self, n_steps: usize, current: f64, ) -> Result<(Vec<f64>, Vec<f64>, Vec<u8>), ExpIfError>
Run a checked, failure-atomic batch and return aligned state/event rows.
pub fn reset(&mut self)
fn rhs(&self, v: f64, current: f64, inv_delta_t: f64) -> f64
Trait Implementations§
Source§impl Clone for ExpIfNeuron
impl Clone for ExpIfNeuron
Source§impl Debug for ExpIfNeuron
impl Debug for ExpIfNeuron
Auto Trait Implementations§
impl Freeze for ExpIfNeuron
impl RefUnwindSafe for ExpIfNeuron
impl Send for ExpIfNeuron
impl Sync for ExpIfNeuron
impl Unpin for ExpIfNeuron
impl UnsafeUnpin for ExpIfNeuron
impl UnwindSafe for ExpIfNeuron
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.