1818from concurrent .futures import ProcessPoolExecutor , as_completed
1919from functools import partial
2020
21- from pybdr .dynamic_system import LinearSystemSimple
21+ from pybdr .dynamic_system import LinSys
2222from pybdr .geometry import Geometry , Zonotope , Interval
2323from pybdr .geometry .operation import cvt2
2424from .algorithm import Algorithm
@@ -51,7 +51,7 @@ def validation(self, dim: int):
5151 return True
5252
5353 @staticmethod
54- def exponential (sys : LinearSystemSimple , opt : Options ):
54+ def exponential (sys : LinSys , opt : Options ):
5555 xa_abs = abs (sys .xa )
5656 xa_power = [sys .xa ]
5757 xa_power_abs = [xa_abs ]
@@ -69,7 +69,7 @@ def exponential(sys: LinearSystemSimple, opt: Options):
6969 opt .taylor_err = e
7070
7171 @classmethod
72- def compute_time_interval_err (cls , sys : LinearSystemSimple , opt : Options ):
72+ def compute_time_interval_err (cls , sys : LinSys , opt : Options ):
7373 # initialize asum
7474 asum_pos = np .zeros ((sys .dim , sys .dim ), dtype = float )
7575 asum_neg = np .zeros ((sys .dim , sys .dim ), dtype = float )
@@ -95,7 +95,7 @@ def compute_time_interval_err(cls, sys: LinearSystemSimple, opt: Options):
9595 opt .taylor_f = asum + opt .taylor_err
9696
9797 @classmethod
98- def input_time_interval_err (cls , sys : LinearSystemSimple , opt : Options ):
98+ def input_time_interval_err (cls , sys : LinSys , opt : Options ):
9999 # initialize asum
100100 asum_pos = np .zeros ((sys .dim , sys .dim ), dtype = float )
101101 asum_neg = np .zeros ((sys .dim , sys .dim ), dtype = float )
@@ -124,7 +124,7 @@ def input_time_interval_err(cls, sys: LinearSystemSimple, opt: Options):
124124 opt .taylor_input_f = asum + e_input
125125
126126 @classmethod
127- def input_solution (cls , sys : LinearSystemSimple , opt : Options ):
127+ def input_solution (cls , sys : LinSys , opt : Options ):
128128 v = opt .u if sys .ub is None else sys .ub @ opt .u
129129 # compute vTrans
130130 opt .is_rv = True
@@ -182,7 +182,7 @@ def error_solution(cls, v_dyn: Geometry.Base, opt: Options):
182182 return a_sum + f
183183
184184 @classmethod
185- def delta_reach (cls , sys : LinearSystemSimple , r : Geometry .Base , opt : Options ):
185+ def delta_reach (cls , sys : LinSys , r : Geometry .Base , opt : Options ):
186186 rhom_tp_delta = (opt .taylor_ea_t - np .eye (sys .dim )) @ r + opt .taylor_r_trans
187187
188188 if r .type == Geometry .TYPE .ZONOTOPE :
@@ -198,7 +198,7 @@ def delta_reach(cls, sys: LinearSystemSimple, r: Geometry.Base, opt: Options):
198198 return rhom + rv
199199
200200 @classmethod
201- def reach_one_step (cls , sys : LinearSystemSimple , r : Zonotope , opt : Options ):
201+ def reach_one_step (cls , sys : LinSys , r : Zonotope , opt : Options ):
202202 cls .exponential (sys , opt )
203203 cls .compute_time_interval_err (sys , opt )
204204 cls .input_solution (sys , opt )
@@ -216,7 +216,7 @@ def reach_one_step(cls, sys: LinearSystemSimple, r: Zonotope, opt: Options):
216216 return r_hom + rv , r_hom_tp + rv
217217
218218 @classmethod
219- def reach (cls , sys : LinearSystemSimple , opt : Options , x : Zonotope ):
219+ def reach (cls , sys : LinSys , opt : Options , x : Zonotope ):
220220 assert opt .validation (sys .dim )
221221 ri_set , rp_set = [x ], []
222222
@@ -230,7 +230,7 @@ def reach(cls, sys: LinearSystemSimple, opt: Options, x: Zonotope):
230230 return ri_set , rp_set
231231
232232 @classmethod
233- def reach_parallel (cls , sys : LinearSystemSimple , opts : Options , xs : [Zonotope ]):
233+ def reach_parallel (cls , sys : LinSys , opts : Options , xs : [Zonotope ]):
234234 def ll_decompose (ll ):
235235 return [list (group ) for group in zip (* ll )]
236236
0 commit comments