SpikeStream Nemo Plugin
0.2
|
00001 #ifndef NEMOLOADER_H 00002 #define NEMOLOADER_H 00003 00004 //SpikeStream includes 00005 #include "Network.h" 00006 using namespace spikestream; 00007 00008 //Nemo includes 00009 #include "nemo.h" 00010 00011 //Qt includes 00012 #include <QObject> 00013 00014 //Other includes 00015 #include "boost/random.hpp" 00016 00017 00019 typedef boost::mt19937 rng_t; 00020 00022 typedef boost::variate_generator<rng_t&, boost::uniform_real<double> > urng_t; 00023 00024 00025 namespace spikestream { 00026 00028 class NemoLoader : public QObject { 00029 Q_OBJECT 00030 00031 public: 00032 NemoLoader(); 00033 ~NemoLoader(); 00034 nemo_network_t buildNemoNetwork(Network* network, QHash<unsigned, synapse_id*>& volatileConGrpMap, const bool* stop); 00035 00036 signals: 00037 void progress(int stepsCompleted, int totalSteps); 00038 00039 private: 00040 //====================== VARIABLES ======================= 00042 QFile* logFile; 00043 00045 QTextStream* logTextStream; 00046 00047 //====================== METHODS ======================= 00048 void addExcitatoryNeuronGroup(NeuronGroup* neuronGroup, nemo_network_t nemoNetwork, urng_t& ranNumGen); 00049 void addInhibitoryNeuronGroup(NeuronGroup* neuronGroup, nemo_network_t nemoNetwork, urng_t& ranNumGen); 00050 void addConnectionGroup(ConnectionGroup* conGroup, nemo_network_t nemoNetwork, QHash<unsigned, synapse_id*>& volatileConGrpMap); 00051 void printConnection(unsigned source,unsigned targets[], unsigned delays[], float weights[], unsigned char is_plastic[], size_t length); 00052 }; 00053 } 00054 00055 #endif//NEMOLOADER_H