NLToolbox
|
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_ */