pub struct GLMNeuron {
pub mu: f64,
pub dt_ms: f64,
pub k: Vec<f64>,
pub h: Vec<f64>,
stim_buf: Vec<f64>,
spike_buf: Vec<f64>,
rng: Xoshiro256PlusPlus,
}Expand description
GLM neuron — point-process generalized linear model. Pillow et al. 2008.
Fields§
§mu: f64§dt_ms: f64§k: Vec<f64>§h: Vec<f64>§stim_buf: Vec<f64>§spike_buf: Vec<f64>§rng: Xoshiro256PlusPlusImplementations§
Source§impl GLMNeuron
impl GLMNeuron
pub fn new(n_k: usize, n_h: usize, seed: u64) -> Self
Sourcepub fn new_legacy_constant_filters(n_k: usize, n_h: usize, seed: u64) -> Self
pub fn new_legacy_constant_filters(n_k: usize, n_h: usize, seed: u64) -> Self
Reconstruct the constant-filter defaults shipped by the original engine GLM surface. This is a legacy configuration of the same GLM, not a separate catalogue model.
fn valid(&self) -> bool
Sourcepub fn try_step(
&mut self,
stimulus: f64,
uniform: Option<f64>,
) -> Result<i32, &'static str>
pub fn try_step( &mut self, stimulus: f64, uniform: Option<f64>, ) -> Result<i32, &'static str>
Advance one step after validating the stimulus, the optional explicit
uniform sample (must lie in [0, 1)), and the configuration.
With uniform supplied the Bernoulli draw is deterministic and the
internal generator is not consumed; history buffers are updated
candidate-first, so any Err leaves the pre-step state intact.
Sourcepub fn step(&mut self, stimulus: f64) -> i32
pub fn step(&mut self, stimulus: f64) -> i32
Fail-closed wrapper for legacy callers: samples from the seeded generator and returns 0 on any rejected input without mutating state.
pub fn reset(&mut self)
Sourcepub fn stim_buf_view(&self) -> Vec<f64>
pub fn stim_buf_view(&self) -> Vec<f64>
Return a copy of the stimulus history buffer (most recent first).
Sourcepub fn spike_buf_view(&self) -> Vec<f64>
pub fn spike_buf_view(&self) -> Vec<f64>
Return a copy of the spike history buffer (most recent first).
Trait Implementations§
Auto Trait Implementations§
impl Freeze for GLMNeuron
impl RefUnwindSafe for GLMNeuron
impl Send for GLMNeuron
impl Sync for GLMNeuron
impl Unpin for GLMNeuron
impl UnsafeUnpin for GLMNeuron
impl UnwindSafe for GLMNeuron
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.