pub struct AdvancedAdvancedSTDP {Show 31 fields
pub pre_trace_fast: f64,
pub post_trace_fast: f64,
pub pre_trace_slow: f64,
pub post_trace_slow: f64,
pub pre_trace_triplet: f64,
pub post_trace_triplet: f64,
pub calcium_concentration: f64,
pub calcium_threshold_low: f64,
pub calcium_threshold_high: f64,
pub metaplasticity_factor: f64,
pub recent_activity: VecDeque<f64>,
pub sliding_threshold: f64,
pub target_firing_rate: f64,
pub current_firing_rate: f64,
pub scaling_factor: f64,
pub tau_plus_fast: f64,
pub tau_minus_fast: f64,
pub tau_plus_slow: f64,
pub tau_minus_slow: f64,
pub tau_calcium: f64,
pub tau_metaplasticity: f64,
pub eta_ltp: f64,
pub eta_ltd: f64,
pub eta_triplet: f64,
pub eta_homeostatic: f64,
pub theta_d: f64,
pub theta_p: f64,
pub spike_history_pre: VecDeque<f64>,
pub spike_history_post: VecDeque<f64>,
pub w_min: f64,
pub w_max: f64,
}
Expand description
Advanced Multi-Timescale STDP with Metaplasticity
Fields§
§pre_trace_fast: f64
§post_trace_fast: f64
§pre_trace_slow: f64
§post_trace_slow: f64
§pre_trace_triplet: f64
§post_trace_triplet: f64
§calcium_concentration: f64
§calcium_threshold_low: f64
§calcium_threshold_high: f64
§metaplasticity_factor: f64
§recent_activity: VecDeque<f64>
§sliding_threshold: f64
§target_firing_rate: f64
§current_firing_rate: f64
§scaling_factor: f64
§tau_plus_fast: f64
§tau_minus_fast: f64
§tau_plus_slow: f64
§tau_minus_slow: f64
§tau_calcium: f64
§tau_metaplasticity: f64
§eta_ltp: f64
§eta_ltd: f64
§eta_triplet: f64
§eta_homeostatic: f64
§theta_d: f64
§theta_p: f64
§spike_history_pre: VecDeque<f64>
§spike_history_post: VecDeque<f64>
§w_min: f64
§w_max: f64
Implementations§
Source§impl AdvancedAdvancedSTDP
impl AdvancedAdvancedSTDP
Sourcepub fn new(eta_ltp: f64, eta_ltd: f64, target_firing_rate: f64) -> Self
pub fn new(eta_ltp: f64, eta_ltd: f64, target_firing_rate: f64) -> Self
Create new advanced STDP rule with sophisticated plasticity mechanisms
Sourcepub fn update_weight_advanced(
&mut self,
current_weight: f64,
pre_spike: bool,
post_spike: bool,
dt: f64,
current_time: f64,
objective_improvement: f64,
) -> f64
pub fn update_weight_advanced( &mut self, current_weight: f64, pre_spike: bool, post_spike: bool, dt: f64, current_time: f64, objective_improvement: f64, ) -> f64
Update all internal states and compute weight change
Sourcepub fn get_plasticity_stats(&self) -> PlasticityStats
pub fn get_plasticity_stats(&self) -> PlasticityStats
Get plasticity statistics for monitoring
Trait Implementations§
Source§impl Clone for AdvancedAdvancedSTDP
impl Clone for AdvancedAdvancedSTDP
Source§fn clone(&self) -> AdvancedAdvancedSTDP
fn clone(&self) -> AdvancedAdvancedSTDP
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreAuto Trait Implementations§
impl Freeze for AdvancedAdvancedSTDP
impl RefUnwindSafe for AdvancedAdvancedSTDP
impl Send for AdvancedAdvancedSTDP
impl Sync for AdvancedAdvancedSTDP
impl Unpin for AdvancedAdvancedSTDP
impl UnwindSafe for AdvancedAdvancedSTDP
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§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 moreSource§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).Source§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.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self
to the equivalent element of its superset.Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§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 moreSource§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).Source§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.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self
to the equivalent element of its superset.