pub struct SpikingNeuralNetwork {
pub config: NeuromorphicConfig,
pub neurons: Vec<SpikingNeuron>,
pub synapses: Vec<Vec<Synapse>>,
pub current_time: f64,
pub spike_history: VecDeque<SpikeEvent>,
pub population_activity: Array1<f64>,
}Expand description
Spiking neural network for optimization
Fields§
§config: NeuromorphicConfigNetwork configuration
neurons: Vec<SpikingNeuron>Neuron states
synapses: Vec<Vec<Synapse>>Synaptic connections
current_time: f64Current simulation time
spike_history: VecDeque<SpikeEvent>Spike history buffer
population_activity: Array1<f64>Population activity monitor
Implementations§
Source§impl SpikingNeuralNetwork
impl SpikingNeuralNetwork
Sourcepub fn new(config: NeuromorphicConfig, num_parameters: usize) -> Self
pub fn new(config: NeuromorphicConfig, num_parameters: usize) -> Self
Create a new spiking neural network
Sourcepub fn encode_parameters(&mut self, parameters: &ArrayView1<'_, f64>)
pub fn encode_parameters(&mut self, parameters: &ArrayView1<'_, f64>)
Encode parameters as spike trains
Sourcepub fn decode_parameters(&self, num_parameters: usize) -> Array1<f64>
pub fn decode_parameters(&self, num_parameters: usize) -> Array1<f64>
Decode parameters from population activity
Sourcepub fn simulate_step(&mut self, objective_feedback: f64) -> Result<Vec<usize>>
pub fn simulate_step(&mut self, objective_feedback: f64) -> Result<Vec<usize>>
Simulate one time step
Sourcepub fn get_firing_rates(&self, window_duration: f64) -> Array1<f64>
pub fn get_firing_rates(&self, window_duration: f64) -> Array1<f64>
Get firing rates over recent window
Trait Implementations§
Source§impl Clone for SpikingNeuralNetwork
impl Clone for SpikingNeuralNetwork
Source§fn clone(&self) -> SpikingNeuralNetwork
fn clone(&self) -> SpikingNeuralNetwork
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 SpikingNeuralNetwork
impl RefUnwindSafe for SpikingNeuralNetwork
impl Send for SpikingNeuralNetwork
impl Sync for SpikingNeuralNetwork
impl Unpin for SpikingNeuralNetwork
impl UnwindSafe for SpikingNeuralNetwork
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.