33from pybdr .model import tank6eq , Model
44from pybdr .util .functional import performance_counter , performance_counter_start
55
6- if __name__ == "__main__" :
7- m = Model (tank6eq , [6 , 1 ])
86
9- time_start = performance_counter_start ()
10- x , u = np .random .random (6 ), np .random .rand (1 )
7+ def sym_derivative_case00_NUM_test ():
8+ sys_test = tank6eq
9+ dimes = [6 , 1 ]
10+
11+ m = Model (sys_test , dimes )
12+
13+ x_np , u_np = np .random .rand (6 ), np .random .rand (1 )
14+
15+ print ()
16+ print ('NUM Derivative >>>>>>>>>>>>>>>>>>>>>>>>>>>' )
17+ print ()
18+
19+ time_cur = performance_counter_start ()
20+
21+ # ----------------------------------------------------------------------
22+ # order 0, for variable 0
23+
24+ np_derivative_00 = m .evaluate ((x_np , u_np ), 'numpy' , 0 , 0 ) # Run 1
25+
26+ time_cur = performance_counter (time_cur , 'derivative 00 Run 1' )
27+
28+ # 10 runs
29+ np_derivative_00 = m .evaluate ((x_np , u_np ), 'numpy' , 0 , 0 )
30+ np_derivative_00 = m .evaluate ((x_np , u_np ), 'numpy' , 0 , 0 )
31+ np_derivative_00 = m .evaluate ((x_np , u_np ), 'numpy' , 0 , 0 )
32+ np_derivative_00 = m .evaluate ((x_np , u_np ), 'numpy' , 0 , 0 )
33+ np_derivative_00 = m .evaluate ((x_np , u_np ), 'numpy' , 0 , 0 )
34+ np_derivative_00 = m .evaluate ((x_np , u_np ), 'numpy' , 0 , 0 )
35+ np_derivative_00 = m .evaluate ((x_np , u_np ), 'numpy' , 0 , 0 )
36+ np_derivative_00 = m .evaluate ((x_np , u_np ), 'numpy' , 0 , 0 )
37+ np_derivative_00 = m .evaluate ((x_np , u_np ), 'numpy' , 0 , 0 )
38+ np_derivative_00 = m .evaluate ((x_np , u_np ), 'numpy' , 0 , 0 )
39+
40+ time_cur = performance_counter (time_cur , 'derivative 00 Run 2+ AVG' , 10 )
41+
42+ # ----------------------------------------------------------------------
43+ # order 0, for variable 1
44+
45+ np_derivative_01 = m .evaluate ((x_np , u_np ), 'numpy' , 0 , 1 ) # Run 1
46+
47+ time_cur = performance_counter (time_cur , 'derivative 01 Run 1' )
48+
49+ # 10 runs
50+ np_derivative_01 = m .evaluate ((x_np , u_np ), 'numpy' , 0 , 1 )
51+ np_derivative_01 = m .evaluate ((x_np , u_np ), 'numpy' , 0 , 1 )
52+ np_derivative_01 = m .evaluate ((x_np , u_np ), 'numpy' , 0 , 1 )
53+ np_derivative_01 = m .evaluate ((x_np , u_np ), 'numpy' , 0 , 1 )
54+ np_derivative_01 = m .evaluate ((x_np , u_np ), 'numpy' , 0 , 1 )
55+ np_derivative_01 = m .evaluate ((x_np , u_np ), 'numpy' , 0 , 1 )
56+ np_derivative_01 = m .evaluate ((x_np , u_np ), 'numpy' , 0 , 1 )
57+ np_derivative_01 = m .evaluate ((x_np , u_np ), 'numpy' , 0 , 1 )
58+ np_derivative_01 = m .evaluate ((x_np , u_np ), 'numpy' , 0 , 1 )
59+ np_derivative_01 = m .evaluate ((x_np , u_np ), 'numpy' , 0 , 1 )
60+
61+ time_cur = performance_counter (time_cur , 'derivative 01 Run 2+ AVG' , 10 )
62+
63+ # ----------------------------------------------------------------------
64+ # order 1, for variable 0
65+
66+ np_derivative_10 = m .evaluate ((x_np , u_np ), 'numpy' , 1 , 0 ) # Run 1
67+
68+ time_cur = performance_counter (time_cur , 'derivative 10 Run 1' )
69+
70+ # 10 runs
71+ np_derivative_10 = m .evaluate ((x_np , u_np ), 'numpy' , 1 , 0 )
72+ np_derivative_10 = m .evaluate ((x_np , u_np ), 'numpy' , 1 , 0 )
73+ np_derivative_10 = m .evaluate ((x_np , u_np ), 'numpy' , 1 , 0 )
74+ np_derivative_10 = m .evaluate ((x_np , u_np ), 'numpy' , 1 , 0 )
75+ np_derivative_10 = m .evaluate ((x_np , u_np ), 'numpy' , 1 , 0 )
76+ np_derivative_10 = m .evaluate ((x_np , u_np ), 'numpy' , 1 , 0 )
77+ np_derivative_10 = m .evaluate ((x_np , u_np ), 'numpy' , 1 , 0 )
78+ np_derivative_10 = m .evaluate ((x_np , u_np ), 'numpy' , 1 , 0 )
79+ np_derivative_10 = m .evaluate ((x_np , u_np ), 'numpy' , 1 , 0 )
80+ np_derivative_10 = m .evaluate ((x_np , u_np ), 'numpy' , 1 , 0 )
81+
82+ time_cur = performance_counter (time_cur , 'derivative 10 Run 2+ AVG' , 10 )
83+
84+ # ----------------------------------------------------------------------
85+ # order 1, for variable 1
86+
87+ np_derivative_11 = m .evaluate ((x_np , u_np ), 'numpy' , 1 , 1 ) # Run 1
88+
89+ time_cur = performance_counter (time_cur , 'derivative 10 Run 1' )
90+
91+ np_derivative_11 = m .evaluate ((x_np , u_np ), 'numpy' , 1 , 1 )
92+ np_derivative_11 = m .evaluate ((x_np , u_np ), 'numpy' , 1 , 1 )
93+ np_derivative_11 = m .evaluate ((x_np , u_np ), 'numpy' , 1 , 1 )
94+ np_derivative_11 = m .evaluate ((x_np , u_np ), 'numpy' , 1 , 1 )
95+ np_derivative_11 = m .evaluate ((x_np , u_np ), 'numpy' , 1 , 1 )
96+ np_derivative_11 = m .evaluate ((x_np , u_np ), 'numpy' , 1 , 1 )
97+ np_derivative_11 = m .evaluate ((x_np , u_np ), 'numpy' , 1 , 1 )
98+ np_derivative_11 = m .evaluate ((x_np , u_np ), 'numpy' , 1 , 1 )
99+ np_derivative_11 = m .evaluate ((x_np , u_np ), 'numpy' , 1 , 1 )
100+ np_derivative_11 = m .evaluate ((x_np , u_np ), 'numpy' , 1 , 1 )
101+
102+ time_cur = performance_counter (time_cur , 'derivative 11 Run 2+ AVG' , 10 )
103+
104+ # ----------------------------------------------------------------------
105+ # order 3, for variable 0
106+
107+ np_derivative_30 = m .evaluate ((x_np , u_np ), 'numpy' , 3 , 0 ) # Run 1
108+
109+ time_cur = performance_counter (time_cur , 'derivative 10 Run 1' )
110+
111+ # 10 runs
112+ np_derivative_30 = m .evaluate ((x_np , u_np ), 'numpy' , 3 , 0 )
113+ np_derivative_30 = m .evaluate ((x_np , u_np ), 'numpy' , 3 , 0 )
114+ np_derivative_30 = m .evaluate ((x_np , u_np ), 'numpy' , 3 , 0 )
115+ np_derivative_30 = m .evaluate ((x_np , u_np ), 'numpy' , 3 , 0 )
116+ np_derivative_30 = m .evaluate ((x_np , u_np ), 'numpy' , 3 , 0 )
117+ np_derivative_30 = m .evaluate ((x_np , u_np ), 'numpy' , 3 , 0 )
118+ np_derivative_30 = m .evaluate ((x_np , u_np ), 'numpy' , 3 , 0 )
119+ np_derivative_30 = m .evaluate ((x_np , u_np ), 'numpy' , 3 , 0 )
120+ np_derivative_30 = m .evaluate ((x_np , u_np ), 'numpy' , 3 , 0 )
121+ np_derivative_30 = m .evaluate ((x_np , u_np ), 'numpy' , 3 , 0 )
122+
123+ time_cur = performance_counter (time_cur , 'derivative 30 Run 2+ AVG' , 10 )
124+
125+ # ----------------------------------------------------------------------
126+ # order 3, for variable 1
127+
128+ np_derivative_31 = m .evaluate ((x_np , u_np ), 'numpy' , 3 , 1 ) # Run 1
129+
130+ time_cur = performance_counter (time_cur , 'derivative 10 Run 1' )
131+
132+ # 10 runs
133+ np_derivative_31 = m .evaluate ((x_np , u_np ), 'numpy' , 3 , 1 )
134+ np_derivative_31 = m .evaluate ((x_np , u_np ), 'numpy' , 3 , 1 )
135+ np_derivative_31 = m .evaluate ((x_np , u_np ), 'numpy' , 3 , 1 )
136+ np_derivative_31 = m .evaluate ((x_np , u_np ), 'numpy' , 3 , 1 )
137+ np_derivative_31 = m .evaluate ((x_np , u_np ), 'numpy' , 3 , 1 )
138+ np_derivative_31 = m .evaluate ((x_np , u_np ), 'numpy' , 3 , 1 )
139+ np_derivative_31 = m .evaluate ((x_np , u_np ), 'numpy' , 3 , 1 )
140+ np_derivative_31 = m .evaluate ((x_np , u_np ), 'numpy' , 3 , 1 )
141+ np_derivative_31 = m .evaluate ((x_np , u_np ), 'numpy' , 3 , 1 )
142+ np_derivative_31 = m .evaluate ((x_np , u_np ), 'numpy' , 3 , 1 )
143+
144+ time_cur = performance_counter (time_cur , 'derivative 31 Run 2+ AVG' , 10 )
145+
146+
147+ def sym_derivative_case00_INT_test ():
148+ sys_test = tank6eq
149+ dimes = [6 , 1 ]
150+
151+ m = Model (sys_test , dimes )
11152
12- np_derivative_0 = m .evaluate ((x , u ), "numpy" , 3 , 0 )
13- np_derivative_1 = m .evaluate ((x , u ), "numpy" , 3 , 1 )
14- np_derivative_2 = m .evaluate ((x , u ), "numpy" , 0 , 0 )
153+ x_int , u_int = Interval .rand (6 ), Interval .rand (1 )
15154
16- x , u = Interval .rand (6 ), Interval .rand (1 )
17- int_derivative_0 = m .evaluate ((x , u ), "interval" , 3 , 0 )
18- int_derivative_1 = m .evaluate ((x , u ), "interval" , 2 , 0 )
19- int_derivative_2 = m .evaluate ((x , u ), "interval" , 2 , 0 )
20- int_derivative_3 = m .evaluate ((x , u ), "interval" , 0 , 1 )
155+ print ()
156+ print ('INT Derivative >>>>>>>>>>>>>>>>>>>>>>>>>>>' )
157+ print ()
21158
22- performance_counter (time_start , "sym_derivative" )
23-
159+ time_cur = performance_counter_start ()
160+
161+ # ----------------------------------------------------------------------
162+ # order 0, for variable 0
163+
164+ int_derivative_00 = m .evaluate ((x_int , u_int ), 'interval' , 0 , 0 ) # Run 1
165+
166+ time_cur = performance_counter (time_cur , 'derivative 00 Run 1' )
167+
168+ # 10 runs
169+ int_derivative_00 = m .evaluate ((x_int , u_int ), 'interval' , 0 , 0 )
170+ int_derivative_00 = m .evaluate ((x_int , u_int ), 'interval' , 0 , 0 )
171+ int_derivative_00 = m .evaluate ((x_int , u_int ), 'interval' , 0 , 0 )
172+ int_derivative_00 = m .evaluate ((x_int , u_int ), 'interval' , 0 , 0 )
173+ int_derivative_00 = m .evaluate ((x_int , u_int ), 'interval' , 0 , 0 )
174+ int_derivative_00 = m .evaluate ((x_int , u_int ), 'interval' , 0 , 0 )
175+ int_derivative_00 = m .evaluate ((x_int , u_int ), 'interval' , 0 , 0 )
176+ int_derivative_00 = m .evaluate ((x_int , u_int ), 'interval' , 0 , 0 )
177+ int_derivative_00 = m .evaluate ((x_int , u_int ), 'interval' , 0 , 0 )
178+ int_derivative_00 = m .evaluate ((x_int , u_int ), 'interval' , 0 , 0 )
179+
180+ time_cur = performance_counter (time_cur , 'derivative 00 Run 2+ AVG' , 10 )
181+
182+ # ----------------------------------------------------------------------
183+ # order 0, for variable 1
184+
185+ int_derivative_01 = m .evaluate ((x_int , u_int ), 'interval' , 0 , 1 ) # Run 1
186+
187+ time_cur = performance_counter (time_cur , 'derivative 01 Run 1' )
188+
189+ # 10 runs
190+ int_derivative_01 = m .evaluate ((x_int , u_int ), 'interval' , 0 , 1 )
191+ int_derivative_01 = m .evaluate ((x_int , u_int ), 'interval' , 0 , 1 )
192+ int_derivative_01 = m .evaluate ((x_int , u_int ), 'interval' , 0 , 1 )
193+ int_derivative_01 = m .evaluate ((x_int , u_int ), 'interval' , 0 , 1 )
194+ int_derivative_01 = m .evaluate ((x_int , u_int ), 'interval' , 0 , 1 )
195+ int_derivative_01 = m .evaluate ((x_int , u_int ), 'interval' , 0 , 1 )
196+ int_derivative_01 = m .evaluate ((x_int , u_int ), 'interval' , 0 , 1 )
197+ int_derivative_01 = m .evaluate ((x_int , u_int ), 'interval' , 0 , 1 )
198+ int_derivative_01 = m .evaluate ((x_int , u_int ), 'interval' , 0 , 1 )
199+ int_derivative_01 = m .evaluate ((x_int , u_int ), 'interval' , 0 , 1 )
200+
201+ time_cur = performance_counter (time_cur , 'derivative 01 Run 2+ AVG' , 10 )
202+
203+ # ----------------------------------------------------------------------
204+ # order 1, for variable 0
205+
206+ int_derivative_10 = m .evaluate ((x_int , u_int ), 'interval' , 1 , 0 ) # Run 1
207+
208+ time_cur = performance_counter (time_cur , 'derivative 10 Run 1' )
209+
210+ # 10 runs
211+ int_derivative_10 = m .evaluate ((x_int , u_int ), 'interval' , 1 , 0 )
212+ int_derivative_10 = m .evaluate ((x_int , u_int ), 'interval' , 1 , 0 )
213+ int_derivative_10 = m .evaluate ((x_int , u_int ), 'interval' , 1 , 0 )
214+ int_derivative_10 = m .evaluate ((x_int , u_int ), 'interval' , 1 , 0 )
215+ int_derivative_10 = m .evaluate ((x_int , u_int ), 'interval' , 1 , 0 )
216+ int_derivative_10 = m .evaluate ((x_int , u_int ), 'interval' , 1 , 0 )
217+ int_derivative_10 = m .evaluate ((x_int , u_int ), 'interval' , 1 , 0 )
218+ int_derivative_10 = m .evaluate ((x_int , u_int ), 'interval' , 1 , 0 )
219+ int_derivative_10 = m .evaluate ((x_int , u_int ), 'interval' , 1 , 0 )
220+ int_derivative_10 = m .evaluate ((x_int , u_int ), 'interval' , 1 , 0 )
221+
222+ time_cur = performance_counter (time_cur , 'derivative 10 Run 2+ AVG' , 10 )
223+
224+ # ----------------------------------------------------------------------
225+ # order 1, for variable 1
226+
227+ int_derivative_11 = m .evaluate ((x_int , u_int ), 'interval' , 1 , 1 ) # Run 1
228+
229+ time_cur = performance_counter (time_cur , 'derivative 10 Run 1' )
230+
231+ int_derivative_11 = m .evaluate ((x_int , u_int ), 'interval' , 1 , 1 )
232+ int_derivative_11 = m .evaluate ((x_int , u_int ), 'interval' , 1 , 1 )
233+ int_derivative_11 = m .evaluate ((x_int , u_int ), 'interval' , 1 , 1 )
234+ int_derivative_11 = m .evaluate ((x_int , u_int ), 'interval' , 1 , 1 )
235+ int_derivative_11 = m .evaluate ((x_int , u_int ), 'interval' , 1 , 1 )
236+ int_derivative_11 = m .evaluate ((x_int , u_int ), 'interval' , 1 , 1 )
237+ int_derivative_11 = m .evaluate ((x_int , u_int ), 'interval' , 1 , 1 )
238+ int_derivative_11 = m .evaluate ((x_int , u_int ), 'interval' , 1 , 1 )
239+ int_derivative_11 = m .evaluate ((x_int , u_int ), 'interval' , 1 , 1 )
240+ int_derivative_11 = m .evaluate ((x_int , u_int ), 'interval' , 1 , 1 )
241+
242+ time_cur = performance_counter (time_cur , 'derivative 11 Run 2+ AVG' , 10 )
243+
244+ # ----------------------------------------------------------------------
245+ # order 3, for variable 0
246+
247+ int_derivative_30 = m .evaluate ((x_int , u_int ), 'interval' , 3 , 0 ) # Run 1
248+
249+ time_cur = performance_counter (time_cur , 'derivative 10 Run 1' )
250+
251+ # 10 runs
252+ int_derivative_30 = m .evaluate ((x_int , u_int ), 'interval' , 3 , 0 )
253+ int_derivative_30 = m .evaluate ((x_int , u_int ), 'interval' , 3 , 0 )
254+ int_derivative_30 = m .evaluate ((x_int , u_int ), 'interval' , 3 , 0 )
255+ int_derivative_30 = m .evaluate ((x_int , u_int ), 'interval' , 3 , 0 )
256+ int_derivative_30 = m .evaluate ((x_int , u_int ), 'interval' , 3 , 0 )
257+ int_derivative_30 = m .evaluate ((x_int , u_int ), 'interval' , 3 , 0 )
258+ int_derivative_30 = m .evaluate ((x_int , u_int ), 'interval' , 3 , 0 )
259+ int_derivative_30 = m .evaluate ((x_int , u_int ), 'interval' , 3 , 0 )
260+ int_derivative_30 = m .evaluate ((x_int , u_int ), 'interval' , 3 , 0 )
261+ int_derivative_30 = m .evaluate ((x_int , u_int ), 'interval' , 3 , 0 )
262+
263+ time_cur = performance_counter (time_cur , 'derivative 30 Run 2+ AVG' , 10 )
264+
265+ # ----------------------------------------------------------------------
266+ # order 3, for variable 1
267+
268+ int_derivative_31 = m .evaluate ((x_int , u_int ), 'interval' , 3 , 1 ) # Run 1
269+
270+ time_cur = performance_counter (time_cur , 'derivative 10 Run 1' )
271+
272+ # 10 runs
273+ int_derivative_31 = m .evaluate ((x_int , u_int ), 'interval' , 3 , 1 )
274+ int_derivative_31 = m .evaluate ((x_int , u_int ), 'interval' , 3 , 1 )
275+ int_derivative_31 = m .evaluate ((x_int , u_int ), 'interval' , 3 , 1 )
276+ int_derivative_31 = m .evaluate ((x_int , u_int ), 'interval' , 3 , 1 )
277+ int_derivative_31 = m .evaluate ((x_int , u_int ), 'interval' , 3 , 1 )
278+ int_derivative_31 = m .evaluate ((x_int , u_int ), 'interval' , 3 , 1 )
279+ int_derivative_31 = m .evaluate ((x_int , u_int ), 'interval' , 3 , 1 )
280+ int_derivative_31 = m .evaluate ((x_int , u_int ), 'interval' , 3 , 1 )
281+ int_derivative_31 = m .evaluate ((x_int , u_int ), 'interval' , 3 , 1 )
282+ int_derivative_31 = m .evaluate ((x_int , u_int ), 'interval' , 3 , 1 )
283+
284+ time_cur = performance_counter (time_cur , 'derivative 31 Run 2+ AVG' , 10 )
285+
286+
287+ def sym_derivative_case01_test ():
288+ print ("test_sym_derivative_case_01" )
289+
290+
291+ def sym_derivative_case02_test ():
292+ print ("test_sym_derivative_case_02" )
293+
294+
295+ if __name__ == "__main__" :
296+ sym_derivative_case00_NUM_test ()
297+ sym_derivative_case00_INT_test ()
0 commit comments