SpikeStream Nemo Plugin
0.2
|
00001 #ifndef ABSTRACTSTDPFUNCTION_H 00002 #define ABSTRACTSTDPFUNCTION_H 00003 00004 //SpikeStream includes 00005 #include "ParameterInfo.h" 00006 #include "SpikeStreamTypes.h" 00007 00008 //Qt includes 00009 #include <QHash> 00010 00011 namespace spikestream { 00012 00014 class AbstractSTDPFunction { 00015 public: 00016 AbstractSTDPFunction(); 00017 virtual ~AbstractSTDPFunction(); 00018 virtual timestep_t getApplySTDPInterval(); 00019 virtual QHash<QString, double> getParameters(); 00020 virtual void setParameters(QHash<QString, double>& newParameterMap); 00021 virtual QHash<QString, double> getDefaultParameters(); 00022 virtual QList<ParameterInfo> getParameterInfoList(); 00023 virtual float* getPreArray() = 0; 00024 virtual int getPreLength() = 0; 00025 virtual float* getPostArray() = 0; 00026 virtual int getPostLength() = 0; 00027 virtual float getMinExcitatoryWeight() = 0; 00028 virtual float getMaxExcitatoryWeight() = 0; 00029 virtual float getMinInhibitoryWeight() = 0; 00030 virtual float getMaxInhibitoryWeight() = 0; 00031 virtual float getReward(); 00032 virtual void print() = 0; 00033 00034 protected: 00035 //====================== VARIABLES ======================== 00037 QList<ParameterInfo> parameterInfoList; 00038 00040 QHash<QString, double> defaultParameterMap; 00041 00043 QHash<QString, double> parameterMap; 00044 00047 bool functionUpToDate; 00048 00049 00050 //===================== METHODS ======================= 00051 double getParameter(QString parameterName); 00052 }; 00053 00054 } 00055 00056 #endif//ABSTRACTSTDPFUNCTION_H