NLToolbox
src/include/ReachLinear.h
00001 /*
00002  * ReachLinear.h
00003  *
00004  *  Created on: Nov 13, 2012
00005  *      Author: romain
00006  */
00007 
00008 #ifndef REACHLINEAR_H_
00009 #define REACHLINEAR_H_
00010 
00011 #include "utils.h"
00012 #include "LinearSystem.h"
00013 #include "Hpolyhedron.h"
00014 
00015 namespace nltool {
00016 
00017 
00018 class ReachLinear {
00019 public:
00020         ReachLinear();
00021         ReachLinear(const unsigned dim, const LinearSystem& linearSys, Number dt);
00022         virtual ~ReachLinear();
00023 
00024         Hpolyhedron reach(const Hpolyhedron& initialSet);
00025 
00026         Number getDiscretizationTime() const {
00027                 return discretizationTime;
00028         }
00029 
00030         void setDiscretizationTime(Number discretizationTime) {
00031                 this->discretizationTime = discretizationTime;
00032         }
00033 
00034         LinearSystem getLinearSystem() const {
00035                 return linearSystem;
00036         }
00037 
00038         void setLinearSystem(LinearSystem originalSystem) {
00039                 this->linearSystem = originalSystem;
00040         }
00041 
00042         bool isUseFixedTemplate() const {
00043                 return useFixedTemplate;
00044         }
00045 
00046         void setUseFixedTemplate(bool useFixedTemplate) {
00047                 this->useFixedTemplate = useFixedTemplate;
00048         }
00049 
00050 private:
00051         LinearSystem linearSystem;
00052         unsigned dimension;
00053         Matrix Atransposed;
00054         Matrix eAdt;
00055         Matrix emATdt;
00056         Number discretizationTime;
00057         unsigned iteration;
00058         bool useFixedTemplate;
00059 };
00060 
00061 
00062 }  // namespace nltool
00063 
00064 #endif /* REACHLINEAR_H_ */
 All Classes Namespaces Functions