Spiking Neuron Network Simulator  1.0
Simulation and training of spiking neuron networks, primarily theta neurons
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Properties Pages
ISpikingNeuron.cs
Go to the documentation of this file.
1 namespace SpikingNeuronNetwork.Lib.Interfaces
2 {
3  using System.Collections.Generic;
4  using Training;
5 
9  public interface ISpikingNeuron
10  {
14  int NeuronIndex { get; set; }
15 
19  SpikingNeuronNetwork NeuronNetwork { get; set; }
20 
24  bool Verbose { get; set; }
25 
29  NeuronState State { get; }
30 
34  SimulationMethod Method { get; set; }
35 
39  double PostSpikeState { get; }
40 
44  double InitialState { get; }
45 
49  bool IsStandAloneNeuron { get; }
50 
54  double RemainingTimeToSpike { get; }
55 
59  double NextSpikeTime { get; }
60 
64  int NumInputs { get; }
65 
69  Dictionary<Synapse, double> Weights { get; }
70 
74  string ToString();
75 
80  ISpikingNeuron Clone();
81 
85  void ResetState();
86 
94  List<Spike> RunThetaNeuron(List<Spike> inputSpikes, int maxNumOutputSpikes);
95 
106  IEnumerable<Spike> ProcessSpike(Spike spike, out SpikeStats spikeStats);
107 
114  List<double> CalculatePostSpikeDerivativesNumerical(NeuronFiringHistory neuronFiringHistory);
115 
122  List<double> CalculatePostSpikeDerivatives(NeuronFiringHistory neuronFiringHistory);
123 
130  Dictionary<Synapse, NeuronDerivativeParameters> CalculateOutputSpikeTimeDerivativesNumerical(NeuronFiringHistory neuronFiringHistory);
131 
138  Dictionary<Synapse, NeuronDerivativeParameters> CalculateOutputSpikeTimeDerivatives(NeuronFiringHistory neuronFiringHistory);
139  }
140 }
SimulationMethod
Simulation Method Enum
The spike statistics class
Definition: SpikeStats.cs:9