NLToolbox
|
00001 /* 00002 * LinearSystem.h 00003 * 00004 * Created on: Nov 13, 2012 00005 * Author: romain 00006 */ 00007 00008 #ifndef LINEARSYSTEM_H_ 00009 #define LINEARSYSTEM_H_ 00010 00011 #include "DynamicalSystem.h" 00012 #include "Set.h" 00013 00014 namespace nltool { 00015 00016 class LinearSystem: public DynamicalSystem { 00017 public: 00021 LinearSystem(); 00022 00031 LinearSystem(const unsigned dim, const Matrix C, const Vector d); 00032 00042 LinearSystem(const unsigned dim, const Matrix C, const Vector d, 00043 Set* input); 00044 00048 virtual ~LinearSystem(); 00049 00055 Vector eval(const Vector& x); 00056 00057 //LinearSystem& operator=(const LinearSystem&); 00058 00059 /* 00060 * ########################################## 00061 * GETTTERS and SETTERS 00062 * ########################################## 00063 */ 00064 00065 Matrix getA() const; 00066 Vector getB() const; 00067 Set* getInputSet() const; 00068 00069 void setA(Matrix a); 00070 void setB(Vector b); 00071 void setInputSet(Set* inputSet); 00072 00073 private: 00074 Matrix A; 00075 Vector b; 00076 Set* inputSet; 00077 }; 00078 00079 inline std::ostream& operator<<(std::ostream& out, LinearSystem linearSys) { 00080 out << "A: \n" << linearSys.getA() << std::endl << "b: \n" 00081 << linearSys.getB() << std::endl; 00082 return out; 00083 } 00084 00085 } 00086 00087 #endif /* LINEARSYSTEM_H_ */