NLToolbox
src/include/DynamicalSystem.h
00001 /*
00002  * DynamicalSystem.h
00003  *
00004  *  Created on: Nov 13, 2012
00005  *      Author: romain
00006  */
00007 
00008 #ifndef CONTINUOUSSYSTEM_H_
00009 #define CONTINUOUSSYSTEM_H_
00010 
00011 #include "Set.h"
00012 #include "utils.h"
00013 
00014 namespace nltool {
00015 
00016 
00017 enum SystemType {
00018         CONSTANT, LINEAR, QUADRATIC, POLYNOMIAL, OTHER, POINTER
00019 };
00020 enum SystemTimeType {
00021         CONTINUOUS, DISCRETE
00022 };
00023 
00027 class DynamicalSystem {
00028 public:
00029 
00033         DynamicalSystem();
00034 
00038         virtual ~DynamicalSystem();
00039 
00045         virtual Vector eval(const Vector& x);
00046 
00052         virtual DynamicalSystem& derivate(const unsigned dx);
00053 
00057         void printType();
00058 
00059         /*
00060          * ##########################################
00061          * GETTTERS and SETTERS
00062          * ##########################################
00063          */
00064 
00065         unsigned getDimension() const;
00066         void setDimension(unsigned dimension);
00067 
00068         SystemTimeType getSystemTimeType() const;
00069         void setSystemTimeType(SystemTimeType systemTimeType);
00070         SystemType getSystemType() const;
00071 
00072 
00073 protected:
00074         unsigned dimension; // system dimension
00075         SystemType systemType; // system type
00076         SystemTimeType systemTimeType; // discret of continuous time
00077         Number discretizedTime; // discretization time in case of discrete time type
00078 
00079 };
00080 
00081 }  // namespace nltool
00082 
00083 
00084 #endif /* CONTINUOUSSYSTEM_H_ */
 All Classes Namespaces Functions