#ifndef __SPIKETRAIN__HPP #define __SPIKETRAIN__HPP #include #include "typedefs.hpp" using namespace std; /** SpikeTrain stores a spike train of a neuron layer and calculates statistical information */ class SpikeTrain { private: int** firings; int** firings_fromLayer; int** firings_loaded; int mN_firings; T_NNeurons mNNeurons; int* N_firings; // the number of fired neurons T_NNeurons* NNeurons; float dt; // timestep in ms public: SpikeTrain():firings(0), firings_loaded(0), firings_fromLayer(0), N_firings(0) {}; SpikeTrain(int** _firings, int* _N_firings, T_NNeurons* _NNeurons, const float & _dt); SpikeTrain(const char* filename, const float& dt=0.25); ~SpikeTrain(); void LoadSpikeFile(const char* filename); float MaxSpikeFreq(const int& NSpikes); void SpikeData(vector * SpikeTimes, vector * NeuronNumbers); void MeanSpikeRate(const double& WindowSize, vector* timeScale, vector* spikeRate); int nNeurons() {return *NNeurons;}; }; #endif // #ifndef __SPIKETRAIN__HPP