00001 #ifndef __SingleUnitFastIca1__ 00002 #define __SingleUnitFastIca1__ 00003 00027 #include "SingleUnitFastIca.hpp" 00028 00029 class SingleUnitFastIca1 : public SingleUnitFastIca 00030 { 00031 protected: 00032 00033 double beta; 00034 00035 public: 00036 00037 SingleUnitFastIca1(double eps=1.0e-4):SingleUnitFastIca(eps){beta=0.0;} 00038 SingleUnitFastIca1(AContrastFunction* func, double eps):SingleUnitFastIca(eps){beta=0.0;} 00039 virtual ~SingleUnitFastIca1(){} 00040 00041 // learning 00042 virtual void init(int size){ SingleUnitFastIca::init(size); beta=0.0; } 00043 00044 virtual void startLearning(){ SingleUnitFastIca::startLearning(); beta=0.0; } // to use to start a new iteration 00045 virtual void learn(RealVector* sample); 00046 virtual bool endLearning(); 00047 virtual bool endLearning(RealSMatrix* C, RealSMatrix* Cinv); 00048 00049 00050 virtual void output() 00051 { 00052 printf("Single Unit FastICA"); 00053 } 00054 }; 00055 00056 #endif