spiketrain.hpp 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #ifndef __SPIKETRAIN__HPP
  2. #define __SPIKETRAIN__HPP
  3. #include <vector>
  4. #include "typedefs.hpp"
  5. using namespace std;
  6. /** SpikeTrain stores a spike train of a neuron layer and calculates statistical information
  7. */
  8. class SpikeTrain
  9. {
  10. private:
  11. int** firings;
  12. int** firings_fromLayer;
  13. int** firings_loaded;
  14. int mN_firings;
  15. T_NNeurons mNNeurons;
  16. int* N_firings; // the number of fired neurons
  17. T_NNeurons* NNeurons;
  18. float dt; // timestep in ms
  19. public:
  20. SpikeTrain():firings(0), firings_loaded(0), firings_fromLayer(0), N_firings(0) {};
  21. SpikeTrain(int** _firings,
  22. int* _N_firings,
  23. T_NNeurons* _NNeurons,
  24. const float & _dt);
  25. SpikeTrain(const char* filename, const float& dt=0.25);
  26. ~SpikeTrain();
  27. void LoadSpikeFile(const char* filename);
  28. float MaxSpikeFreq(const int& NSpikes);
  29. void SpikeData(vector<double> * SpikeTimes, vector<double> * NeuronNumbers);
  30. void MeanSpikeRate(const double& WindowSize, vector<double>* timeScale, vector<double>* spikeRate);
  31. int nNeurons() {return *NNeurons;};
  32. };
  33. #endif // #ifndef __SPIKETRAIN__HPP