pub struct ThetaNeuron {
pub theta: f64,
pub dt: f64,
}Expand description
Theta neuron — Ermentrout & Kopell canonical form. dθ/dt = (1 - cosθ) + (1 + cosθ)·I, spike at θ crossing π.
Fields§
§theta: f64§dt: f64Implementations§
Source§impl ThetaNeuron
impl ThetaNeuron
pub fn new(dt: f64) -> Self
fn wrap_phase(theta: f64) -> f64
fn valid(&self) -> bool
fn event_packet_representable(&self, current: f64) -> bool
fn exact_candidate(&self, current: f64) -> (f64, bool)
pub fn try_step(&mut self, current: f64) -> Result<i32, &'static str>
pub fn step(&mut self, current: f64) -> i32
Sourcepub fn simulate_complete(
&self,
n_steps: usize,
current: f64,
) -> Result<(Vec<f64>, Vec<u8>, f64), &'static str>
pub fn simulate_complete( &self, n_steps: usize, current: f64, ) -> Result<(Vec<f64>, Vec<u8>, f64), &'static str>
Execute a checked complete batch without mutating the source state.
pub fn reset(&mut self)
Trait Implementations§
Source§impl Clone for ThetaNeuron
impl Clone for ThetaNeuron
Source§impl Debug for ThetaNeuron
impl Debug for ThetaNeuron
Auto Trait Implementations§
impl Freeze for ThetaNeuron
impl RefUnwindSafe for ThetaNeuron
impl Send for ThetaNeuron
impl Sync for ThetaNeuron
impl Unpin for ThetaNeuron
impl UnsafeUnpin for ThetaNeuron
impl UnwindSafe for ThetaNeuron
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.