00001 #ifndef INDII_ML_ODE_MULTISEEDNEURALMODEL_HPP
00002 #define INDII_ML_ODE_MULTISEEDNEURALMODEL_HPP
00003
00004 #include "indii/ml/aux/vector.hpp"
00005 #include "indii/ml/aux/matrix.hpp"
00006 #include "indii/ml/ode/DifferentialModel.hpp"
00007
00008 namespace indii {
00009 namespace fmri {
00010 namespace neural {
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 class MultiSeedNeuralModel : public indii::ml::ode::DifferentialModel {
00030 public:
00031
00032
00033
00034
00035
00036
00037 MultiSeedNeuralModel(const unsigned int N);
00038
00039
00040
00041
00042
00043
00044
00045 MultiSeedNeuralModel(const indii::ml::aux::matrix& A);
00046
00047
00048
00049
00050 virtual ~MultiSeedNeuralModel();
00051
00052
00053
00054
00055
00056
00057
00058 void setEfficacies(const indii::ml::aux::matrix& A);
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068 void setEfficacy(const unsigned int i, const unsigned int j,
00069 const double A_ij);
00070
00071
00072
00073
00074 virtual void calculateDerivatives(double t, const double y[], double dydt[]);
00075
00076 private:
00077
00078
00079
00080 const unsigned int N;
00081
00082
00083
00084
00085 indii::ml::aux::matrix A;
00086
00087 };
00088
00089 }
00090 }
00091 }
00092
00093 #endif