Source: DelayKernelConnection.h
|
|
|
|
// =======================================================================================
// DelayKernelConnection.h
// Time-stamp: <2002-06-29 15:41:00 aknoblau>
// delay kernel connection (simple version)
// programmed in June 2002 by Andreas Knoblauch
// Department of Neural Information Processing
// University of Ulm, Germany
// Version 1.0 alpha
// last documented change: June 28, 2002
// =======================================================================================
// types/classes/interfaces:
// ---------------------------------------------------------------------------------------
// global objects:
// ---------------------------------------------------------------------------------------
// related modules:
// ---------------------------------------------------------------------------------------
// notes:
// ---------------------------------------------------------------------------------------
// history:
// Version 1.0 alpha programmed on June 28, 2002 by Andreas Knoblauch
// ---------------------------------------------------------------------------------------
// bugs:
// ---------------------------------------------------------------------------------------
// 2 do:
// =======================================================================================
#ifndef DelayKernelConnection_H
#define DelayKernelConnection_H
#include "F2_simenv.h"
// **************************************************************************************************************************
// **************************************************************************************************************************
// TMDelayKernelConnection
// template for delay kernel connection
// Status: version 1.0 alpha
// last change: June 28, 2002
// **************************************************************************************************************************
template
class TMDelayKernelConnection : public TConnection {
public:
// parameters
string scopeID; // scope id for scope of delays
TiPar one2allFlag; // if set, each neuron projects to all neurons in the target population (otherwise one2one)
TiPar kernelLen; // length of the delay kernel
TiPar mode0Flag; // if set then mode0Weight and mode0 is used (and parsed)
TPar mode0Weight; // weight of if set then mode0 is used (and parsed)
TVecPar mode0; // manually determined kernel (only used if mode0Flag==1)
TiPar nModes; // number of Gaussian modes
TMatPar modes; // for each mode : weight, exp, sig, min, max
TPar strength; // strength of the connection
// state variables
TInt &nDK; // length of delay kernel (=kernelLen)
TFloat *delayKernel; // delay kernel (of length kernelLen)
// ports
TMPort* preOut; // presynaptic port
TMPort* postIn; // postsynaptic port
// constructors/destructors
TMDelayKernelConnection(TSimulationEnvironment& simEnv_arg, const char* name_arg, // constructors (complete)
TMPort* preOut_arg, TMPort* postIn_arg);
TMDelayKernelConnection(TSimulationEnvironment& simEnv_arg, const char* name_arg, // constructors (default)
TMPort* preOut_arg, TMPort* postIn_arg,int parse);
TMDelayKernelConnection(TMDelayKernelConnection& pattern, const char* name_arg, // constructors (patterned)
TMPort* preOut_arg, TMPort* postIn_arg);
~TMDelayKernelConnection(); // destructor
// methods
void init();
void step();
void setDefaultParameters(); // set default parameters
void setDelayKernel(); // set delay kernel according to parameters
void reparse(); // reparse parameters
void handleUpdatedParameters(); // handle updated parameters
void outputState(ostream& os); // display all fields of the object
void outputState(ostream& os, int complete); // if complete==0 then display only the most important fields of the object
friend ostream& operator<< (ostream& os, const TMDelayKernelConnection& c);
friend istream& operator>> (istream& is, TMDelayKernelConnection& c);
protected:
void firstInit(TMDelayKernelConnection* pattern);
void deallocate();
void setParameterValues();
void setParameterValues_delayKernelMemory();
void setParameterValues_delayKernelValues();
private:
static const char* scopeString; // scope name of class TMDelayKernelConnection
};
template
ostream & operator<<(ostream& os, const TMDelayKernelConnection& c); // output operator
template
istream & operator>>(istream& is, TMDelayKernelConnection& c); // input operator
#endif /* DelayKernelConnection_H */
| Generated by: aknoblau on synfire on Sat May 1 14:32:16 2004, using kdoc 2.0a54. |