TarzaNN
TarzaNN neural network simulator
|
00001 // RungeKuttaNeuron.h: interface for the RungeKuttaNeuron class. 00003 00004 #ifndef RK_NEURON_H_INCLUDED 00005 #define RK_NEURON_H_INCLUDED 00006 00007 #include "Neuron.h" 00008 00012 class RungeKuttaNeuron: public Neuron{ 00013 public: 00014 RungeKuttaNeuron( int eq, double step=1.0, int type=1, double timestep=1, double T=1, double factor=1); 00015 RungeKuttaNeuron(const RungeKuttaNeuron& rkn); 00016 virtual ~RungeKuttaNeuron(); 00017 void setFeaturePlane(FeaturePlaneAbstract* fp); 00018 void nonlinearity(Matrix* totalActivation, Matrix* workOutput, Matrix* spatialBias, float featureBias); 00019 double nonlinearityDerivative(double S); 00020 00021 protected: 00023 int _equations, _type; 00024 double _timestep, _TT, _factor, _step; 00026 double **k; 00028 double *drdt; 00030 double *rw; 00032 double *x; 00034 double* sovertau; 00035 void rungekuttaAlgorithm(double input, int i, int j, float spatialBias, float featureBias); 00036 void saveIter(int iter, Matrix *m); 00037 virtual void derivs(double input, double t, double* r, double* drdt, float spatialBias, float featureBias)=0; 00038 MatrixVector lastTimeStep; 00039 RungeKuttaNeuron(); 00040 virtual void setInitialValues()=0; 00041 }; 00042 00043 #endif // !defined(RK_NEURON_H_INCLUDED)