Source: BlankTopoConnection.h


Annotated List
Files
Globals
Hierarchy
Index
// =======================================================================================
// BlankTopoConnection.h
// Time-stamp: <2004-02-25 15:54:15 aknoblau>
// Simple BlankTopo kernel connection
// programmed in September 2001 by Andreas Knoblauch
// Department of Neural Information Processing
// University of Ulm, Germany
// Version 1.0 alpha
// last documented change: November 27, 2001
// =======================================================================================
// types/classes/interfaces:
// ---------------------------------------------------------------------------------------
// global objects:
// ---------------------------------------------------------------------------------------
// related modules: 
// ---------------------------------------------------------------------------------------
// notes:
// ---------------------------------------------------------------------------------------
// history: 
//   Version 1.0 alpha programmed on November 27, 2001 by Andreas Knoblauch
// ---------------------------------------------------------------------------------------
// bugs:
// ---------------------------------------------------------------------------------------
// 2 do:
// =======================================================================================

#ifndef BlankTopoConnection_H
#define BlankTopoConnection_H

#include "TopoConnection.h"



// **************************************************************************************************************************
// **************************************************************************************************************************
/**
 * TMBlankTopoConnection
 * template for topographical delayed connections with BlankTopo kernels
 * 
 * @short template for topographical delayed connections with BlankTopo kernels
 * @author Andreas Knoblauch
 * @version 1.0 alpha
 * last change: June 8, 2001
 */
template
class TMBlankTopoConnection : public TMTopoConnection {
// **************************************************************************************************************************
 public:
  TLayout* kernelLT;                           // layout of BlankTopo kernels     

  // constructors/destructors
  TMBlankTopoConnection(TSimulationEnvironment& simEnv_arg, const char* name_arg,                               // constructors (complete/default)
                        TMPort* preOut_arg, TMPort* postIn_arg,                              // - cMode=CM_OutToIn
                        TLayout* kernelLT_arg);                                                                 //   zero-centered delays
  TMBlankTopoConnection(TSimulationEnvironment& simEnv_arg, const char* name_arg,                               // constructors (complete/default)
                        int nPostIn_arg, TMPort* preOut_arg, TMPort** postIn_arg,            // - cMode=CM_OutToIn
                        TLayout* kernelLT_arg);                                                                 //   zero-centered delays

  TMBlankTopoConnection(TSimulationEnvironment& simEnv_arg, const char* name_arg, TConnectionMode cMode_arg,    // - cMode as parameter
                        TMPort* preOut_arg, TMPort* postIn_arg,                              //   zeroCenteredDelays as pars
                        TLayout* kernelLT_arg, TProjectionMap* pMap_arg, int zeroCenteredDelays_arg);
  TMBlankTopoConnection(TSimulationEnvironment& simEnv_arg, const char* name_arg, TConnectionMode cMode_arg,    // - cMode as parameter
                        int nPostIn_arg, TMPort* preOut_arg, TMPort** postIn_arg,            //   zeroCenteredDelays as pars
                        TLayout* kernelLT_arg, TProjectionMap* pMap_arg, int zeroCenteredDelays_arg);

  TMBlankTopoConnection(TMBlankTopoConnection& pattern, // constructor(patt./copy)
                        const char* name_arg, TMPort* preOut_arg, TMPort* postIn_arg,        // - new memory for weight
                        TLayout* kernelLT_arg);                                                                 //   and delay kernels
  TMBlankTopoConnection(TMBlankTopoConnection& pattern, // constructor(patt./copy)
                        const char* name_arg, int nPostIn_arg,                                                  // - new memory for weight
                        TMPort* preOut_arg, TMPort** postIn_arg,                             //   and delay kernels
                        TLayout* kernelLT_arg);                                    

  TMBlankTopoConnection(TMBlankTopoConnection& pattern, // if sameWeights/Delays
                        const char* name_arg, TMPort* preOut_arg, TMPort* postIn_arg,        // no memory is allocated
                        TLayout* kernelLT_arg, int sameWeights, int sameDelays,
                        TProjectionMap* pMap_arg, int zeroCenteredDelays_arg);
  TMBlankTopoConnection(TMBlankTopoConnection& pattern, // if sameWeights/Delays
                        const char* name_arg, int nPostIn_arg,                                                  // no memory is allocated
                        TMPort* preOut_arg, TMPort** postIn_arg,
                        TLayout* kernelLT_arg, int sameWeights, int sameDelays,
                        TProjectionMap* pMap_arg, int zeroCenteredDelays_arg);
  ~TMBlankTopoConnection();                                                                            // destructor

  // methods
  void allocateKernels(int nwKernels, int ndKernels, int nModes);                                      // simple standard allocation
  void allocateKernels(int nwKernels, int ndKernels, int nModes,                                       // simple standard allocation
                const TKernelDescriptor& wkdes, const TKernelDescriptor& dkdes);
  void allocateKernels(int nwKernels, int ndKernels, int nModes,                                       // simple standard allocation
                const TKernelDescriptor& wkdes, const TKernelDescriptor& dkdes, int zeroCenteredDelaysFlag);
  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

 protected:
  void create(const TMBlankTopoConnection*pattern,int sameWeights,int sameDelays);

  string parseWeightsMapping(istream& is, TKernelMapping& wkMP);        // input of scope weightsMapping
  string parseDelaysMapping (istream& is, TKernelMapping& dkMP);        // input of scope delaysMapping
  string parseDelays        (istream& is, TMKernelDY& delays); // input of scope TMKernelDY
  string parseFullDimFlags  (istream& is, TKernel& wk);                 // input of scope fullDimFlags

  void  parseOutWeightsMapping(const string& scopeID, ostream& os, const TKernelMapping& wkMP)const;        // output of scope weightsMapping
  void  parseOutDelaysMapping (const string& scopeID, ostream& os, const TKernelMapping& dkMP)const;        // output of scope delaysMapping
  void  parseOutDelays        (const string& scopeID, ostream& os, const TMKernelDY& delays)const; // output of scope TMKernelDY
  void  parseOutFullDimFlags  (const string& scopeID, ostream& os, const TKernel& wk)const;                 // output of scope fullDimFlags

  void  reparseConstructWeightsMapping(const string& scopeID, vector& repPars, TKernelMapping& wkMP);       // weightsMapping
  void  reparseConstructDelaysMapping (const string& scopeID, vector& repPars, TKernelMapping& dkMP);       // delaysMapping
  void  reparseConstructDelays        (const string& scopeID, vector& repPars, TMKernelDY& delays);// TMKernelDY
  void  reparseConstructFullDimFlags  (const string& scopeID, vector& repPars, TKernel& wk);                // fullDimFlags

  void  reparseDeleteWeightsMapping(vector& repPars, TKernelMapping& wkMP);        // weightsMapping
  void  reparseDeleteDelaysMapping (vector& repPars, TKernelMapping& dkMP);        // delaysMapping
  void  reparseDeleteDelays        (vector& repPars, TMKernelDY& delays); // TMKernelDY
  void  reparseDeleteFullDimFlags  (vector& repPars, TKernel& wk);                 // fullDimFlags

  void  handleUpdatedParametersWeightsMapping(TKernelMapping& wkMP);        // handle updated parameters of scope weightsMapping
  void  handleUpdatedParametersDelaysMapping (TKernelMapping& dkMP);        // handle updated parameters of scope delaysMapping
  void  handleUpdatedParametersDelays        (TMKernelDY& delays); // handle updated parameters of scope TMKernelDY
  void  handleUpdatedParametersFullDimFlags  (TKernel& wk);                 // handle updated parameters of scope fullDimFlags

 private:
  static const char* scopeString_weightsMapping;
  static const char* scopeString_delaysMapping;
  static const char* scopeString_fullDimFlags;
};



#endif  /* BlankTopoConnection_H */

Generated by: aknoblau on synfire on Sat May 1 14:32:16 2004, using kdoc 2.0a54.