init.h

Go to the documentation of this file.
00001 /***************************************************************************/
00020 #ifndef AURESERVOIR_INIT_H__
00021 #define AURESERVOIR_INIT_H__
00022 
00023 #include "utilities.h"
00024 
00025 namespace aureservoir
00026 {
00027 
00033 enum InitAlgorithm
00034 {
00035   INIT_STD      
00036 };
00037 
00044 enum InitParameter
00045 {
00046   CONNECTIVITY,     
00047   ALPHA,            
00048   IN_CONNECTIVITY,  
00049   IN_SCALE,         
00050   IN_SHIFT,         
00051   FB_CONNECTIVITY,  
00052   FB_SCALE,         
00053   FB_SHIFT,         
00054   LEAKING_RATE,     
00055   TIKHONOV_FACTOR,  
00056   DS_USE_CROSSCORR, 
00057   DS_USE_GCC,       
00058   DS_MAXDELAY,      
00059   IP_LEARNRATE,     
00060   IP_MEAN,          
00061   IP_VAR            
00062 };
00063 
00064 template <typename T> class ESN;
00065 
00078 template <typename T>
00079 class InitBase
00080 {
00081  public:
00082 
00084   InitBase(ESN<T> *esn) { esn_=esn; }
00085 
00087   virtual ~InitBase() {}
00088 
00090   virtual void init() throw(AUExcept) = 0;
00091 
00092  protected:
00093 
00095   virtual void checkInitParams() throw(AUExcept);
00096 
00098   virtual void allocateWorkData();
00099 
00101   ESN<T> *esn_;
00102 };
00103 
00114 template <typename T>
00115 class InitStd : public InitBase<T>
00116 {
00117   using InitBase<T>::esn_;
00118 
00119  public:
00120   InitStd(ESN<T> *esn) : InitBase<T>(esn) {}
00121   virtual ~InitStd() {}
00122 
00124   virtual void init() throw(AUExcept);
00125 };
00126 
00127 } // end of namespace aureservoir
00128 
00129 #endif // AURESERVOIR_INIT_H__

Generated on Wed Mar 12 21:16:05 2008 for aureservoir by  doxygen 1.5.3