NLToolbox
src/include/LinearSystem.h
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_ */
 All Classes Namespaces Functions