Source: DelayKernelConnection.h


Annotated List
Files
Globals
Hierarchy
Index
// =======================================================================================
// 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.