Project

General

Profile

Statistics
| Branch: | Tag: | Revision:

lustrec-tests / regression_tests / lustre_files / success / Stateflow / src_Arrays1 / Arrays1.lus @ eb639349

History | View | Annotate | Download (6.58 KB)

1
-- This file has been generated by cocoSim
2

    
3

    
4
-- System nodes
5

    
6

    
7

    
8

    
9

    
10

    
11

    
12

    
13
-- Entry action for state :Arrays1_B
14
node Arrays1_B_en(idArrays1_Arrays1_1:int;
15
	x_2_1:int;
16
	isInner:bool)
17

    
18
returns (idArrays1_Arrays1:int;
19
	x_2:int);
20

    
21

    
22
var 	idArrays1_Arrays1_2:int;
23
	x_2_2:int;
24

    
25

    
26
let
27

    
28

    
29

    
30
	-- set state as active 
31
	idArrays1_Arrays1_2 
32
	= 512;
33
	
34

    
35
	x_2_2 
36
	= if (not isInner) then  x_2_1  + 1
37
	 else x_2_1;
38
	
39

    
40
	(idArrays1_Arrays1, x_2) 
41
	= (idArrays1_Arrays1_2, x_2_2);
42
	
43

    
44
tel
45

    
46

    
47

    
48

    
49

    
50
-- Exit action for state :Arrays1_B
51
node Arrays1_B_ex(idArrays1_Arrays1_1:int;
52
	isInner:bool)
53

    
54
returns (idArrays1_Arrays1:int);
55

    
56

    
57
var 	idArrays1_Arrays1_2:int;
58

    
59

    
60
let
61

    
62

    
63

    
64
	-- set state as inactive 
65
	idArrays1_Arrays1_2
66
	 = if (not isInner) then 0 else idArrays1_Arrays1_1;
67

    
68

    
69
	(idArrays1_Arrays1) 
70
	= (idArrays1_Arrays1_1);
71
	
72

    
73
tel
74

    
75

    
76

    
77

    
78

    
79

    
80
-- Entry action for state :Arrays1_A
81
node Arrays1_A_en(idArrays1_Arrays1_1:int;
82
	x_1_1:int;
83
	isInner:bool)
84

    
85
returns (idArrays1_Arrays1:int;
86
	x_1:int);
87

    
88

    
89
var 	idArrays1_Arrays1_2:int;
90
	x_1_2:int;
91

    
92

    
93
let
94

    
95

    
96

    
97
	-- set state as active 
98
	idArrays1_Arrays1_2 
99
	= 511;
100
	
101

    
102
	x_1_2 
103
	= if (not isInner) then  x_1_1  + 1
104
	 else x_1_1;
105
	
106

    
107
	(idArrays1_Arrays1, x_1) 
108
	= (idArrays1_Arrays1_2, x_1_2);
109
	
110

    
111
tel
112

    
113

    
114

    
115

    
116

    
117
-- Exit action for state :Arrays1_A
118
node Arrays1_A_ex(idArrays1_Arrays1_1:int;
119
	isInner:bool)
120

    
121
returns (idArrays1_Arrays1:int);
122

    
123

    
124
var 	idArrays1_Arrays1_2:int;
125

    
126

    
127
let
128

    
129

    
130

    
131
	-- set state as inactive 
132
	idArrays1_Arrays1_2
133
	 = if (not isInner) then 0 else idArrays1_Arrays1_1;
134

    
135

    
136
	(idArrays1_Arrays1) 
137
	= (idArrays1_Arrays1_1);
138
	
139

    
140
tel
141

    
142

    
143

    
144

    
145

    
146

    
147
-- Entry action for state :Arrays1_C
148
node Arrays1_C_en(idArrays1_Arrays1_1:int;
149
	x_3_1:int;
150
	isInner:bool)
151

    
152
returns (idArrays1_Arrays1:int;
153
	x_3:int);
154

    
155

    
156
var 	idArrays1_Arrays1_2:int;
157
	x_3_2:int;
158

    
159

    
160
let
161

    
162

    
163

    
164
	-- set state as active 
165
	idArrays1_Arrays1_2 
166
	= 513;
167
	
168

    
169
	x_3_2 
170
	= if (not isInner) then  x_3_1  + 1
171
	 else x_3_1;
172
	
173

    
174
	(idArrays1_Arrays1, x_3) 
175
	= (idArrays1_Arrays1_2, x_3_2);
176
	
177

    
178
tel
179

    
180

    
181

    
182

    
183

    
184
-- Exit action for state :Arrays1_C
185
node Arrays1_C_ex(idArrays1_Arrays1_1:int;
186
	isInner:bool)
187

    
188
returns (idArrays1_Arrays1:int);
189

    
190

    
191
var 	idArrays1_Arrays1_2:int;
192

    
193

    
194
let
195

    
196

    
197

    
198
	-- set state as inactive 
199
	idArrays1_Arrays1_2
200
	 = if (not isInner) then 0 else idArrays1_Arrays1_1;
201

    
202

    
203
	(idArrays1_Arrays1) 
204
	= (idArrays1_Arrays1_1);
205
	
206

    
207
tel
208

    
209

    
210
--***************************************************State :Arrays1_Arrays1 Automaton***************************************************
211

    
212
node Arrays1_Arrays1_node(idArrays1_Arrays1_1:int;
213
	x_1_1:int;
214
	E:bool;
215
	x_2_1:int;
216
	x_3_1:int)
217

    
218
returns (idArrays1_Arrays1:int;
219
	x_1:int;
220
	x_2:int;
221
	x_3:int);
222

    
223

    
224
let
225

    
226
	 automaton arrays1_arrays1
227

    
228
	state POINTArrays1_Arrays1:
229
	unless (idArrays1_Arrays1_1=0) restart POINT__TO__ARRAYS1_A_1
230

    
231

    
232

    
233
	unless (idArrays1_Arrays1_1=511) and E restart ARRAYS1_A__TO__ARRAYS1_B_1
234

    
235

    
236

    
237
	unless (idArrays1_Arrays1_1=512) and E restart ARRAYS1_B__TO__ARRAYS1_C_1
238

    
239

    
240

    
241
	unless (idArrays1_Arrays1_1=513) and E restart ARRAYS1_C__TO__ARRAYS1_A_1
242

    
243

    
244

    
245
	unless (idArrays1_Arrays1_1=511) restart ARRAYS1_A_IDL
246

    
247
	unless (idArrays1_Arrays1_1=512) restart ARRAYS1_B_IDL
248

    
249
	unless (idArrays1_Arrays1_1=513) restart ARRAYS1_C_IDL
250

    
251
	let
252

    
253
		(idArrays1_Arrays1, x_1, x_2, x_3) 
254
	= (idArrays1_Arrays1_1, x_1_1, x_2_1, x_3_1);
255
	
256

    
257
	tel
258

    
259

    
260

    
261
	state POINT__TO__ARRAYS1_A_1:
262

    
263
	 var 	idArrays1_Arrays1_2:int;
264
	x_1_2:int;
265
	let
266

    
267
		-- transition trace :
268
	--POINT__To__Arrays1_A_1
269
		(idArrays1_Arrays1_2, x_1_2) 
270
	= Arrays1_A_en(idArrays1_Arrays1_1, x_1_1, false);
271
		
272

    
273
	(idArrays1_Arrays1, x_1) 
274
	=  (idArrays1_Arrays1_2, x_1_2);
275

    
276
	--add unused variables
277
	(x_2, x_3) 
278
	= (x_2_1, x_3_1);
279
	
280

    
281
	tel
282

    
283
	until true restart POINTArrays1_Arrays1
284

    
285

    
286

    
287
	state ARRAYS1_A__TO__ARRAYS1_B_1:
288

    
289
	 var 	idArrays1_Arrays1_2, idArrays1_Arrays1_3:int;
290
	x_2_2:int;
291
	let
292

    
293
		-- transition trace :
294
	--Arrays1_A__To__Arrays1_B_1
295
		(idArrays1_Arrays1_2) 
296
	= Arrays1_A_ex(idArrays1_Arrays1_1, false);
297
		
298

    
299
		(idArrays1_Arrays1_3, x_2_2) 
300
	= Arrays1_B_en(idArrays1_Arrays1_2, x_2_1, false);
301
		
302

    
303
	(idArrays1_Arrays1, x_1, x_2) 
304
	=  (idArrays1_Arrays1_3, x_1_1, x_2_2);
305

    
306
	--add unused variables
307
	(x_3) 
308
	= (x_3_1);
309
	
310

    
311
	tel
312

    
313
	until true restart POINTArrays1_Arrays1
314

    
315

    
316

    
317
	state ARRAYS1_B__TO__ARRAYS1_C_1:
318

    
319
	 var 	idArrays1_Arrays1_2, idArrays1_Arrays1_3:int;
320
	x_3_2:int;
321
	let
322

    
323
		-- transition trace :
324
	--Arrays1_B__To__Arrays1_C_1
325
		(idArrays1_Arrays1_2) 
326
	= Arrays1_B_ex(idArrays1_Arrays1_1, false);
327
		
328

    
329
		(idArrays1_Arrays1_3, x_3_2) 
330
	= Arrays1_C_en(idArrays1_Arrays1_2, x_3_1, false);
331
		
332

    
333
	(idArrays1_Arrays1, x_1, x_2, x_3) 
334
	=  (idArrays1_Arrays1_3, x_1_1, x_2_1, x_3_2);
335

    
336

    
337
	tel
338

    
339
	until true restart POINTArrays1_Arrays1
340

    
341

    
342

    
343
	state ARRAYS1_C__TO__ARRAYS1_A_1:
344

    
345
	 var 	idArrays1_Arrays1_2, idArrays1_Arrays1_3:int;
346
	x_1_2:int;
347
	let
348

    
349
		-- transition trace :
350
	--Arrays1_C__To__Arrays1_A_1
351
		(idArrays1_Arrays1_2) 
352
	= Arrays1_C_ex(idArrays1_Arrays1_1, false);
353
		
354

    
355
		(idArrays1_Arrays1_3, x_1_2) 
356
	= Arrays1_A_en(idArrays1_Arrays1_2, x_1_1, false);
357
		
358

    
359
	(idArrays1_Arrays1, x_1, x_2, x_3) 
360
	=  (idArrays1_Arrays1_3, x_1_2, x_2_1, x_3_1);
361

    
362

    
363
	tel
364

    
365
	until true restart POINTArrays1_Arrays1
366

    
367

    
368

    
369
	state ARRAYS1_A_IDL:
370

    
371
	 	let
372

    
373
		
374

    
375
	(idArrays1_Arrays1, x_1, x_2, x_3) 
376
	= (idArrays1_Arrays1_1, x_1_1, x_2_1, x_3_1);
377
	
378

    
379
	tel
380

    
381
	until true restart POINTArrays1_Arrays1
382

    
383

    
384

    
385
	state ARRAYS1_B_IDL:
386

    
387
	 	let
388

    
389
		
390

    
391
	(idArrays1_Arrays1, x_1, x_2, x_3) 
392
	= (idArrays1_Arrays1_1, x_1_1, x_2_1, x_3_1);
393
	
394

    
395
	tel
396

    
397
	until true restart POINTArrays1_Arrays1
398

    
399

    
400

    
401
	state ARRAYS1_C_IDL:
402

    
403
	 	let
404

    
405
		
406

    
407
	(idArrays1_Arrays1, x_1, x_2, x_3) 
408
	= (idArrays1_Arrays1_1, x_1_1, x_2_1, x_3_1);
409
	
410

    
411
	tel
412

    
413
	until true restart POINTArrays1_Arrays1
414

    
415

    
416

    
417
tel
418

    
419

    
420
--***************************************************State :Arrays1_Arrays1 Automaton***************************************************
421

    
422
node Arrays1_Arrays1(E:bool)
423

    
424
returns (x_1:int;
425
	x_2:int;
426
	x_3:int);
427

    
428

    
429
var x_1_1: int;
430

    
431
	x_2_1: int;
432

    
433
	x_3_1: int;
434

    
435
	idArrays1_Arrays1, idArrays1_Arrays1_1: int;
436

    
437
	let
438

    
439
	x_1_1 = 1 -> pre x_1;
440

    
441
	x_2_1 = 1 -> pre x_2;
442

    
443
	x_3_1 = 1 -> pre x_3;
444

    
445
	idArrays1_Arrays1_1 = 0 -> pre idArrays1_Arrays1;
446

    
447
	
448

    
449

    
450

    
451
	(idArrays1_Arrays1, x_1, x_2, x_3)
452
	 = 
453

    
454
	 if E then Arrays1_Arrays1_node(idArrays1_Arrays1_1, x_1_1, E, x_2_1, x_3_1)
455

    
456
	 else (idArrays1_Arrays1_1, x_1_1, x_2_1, x_3_1);
457

    
458
	
459

    
460

    
461
--unused outputs
462
	
463

    
464
tel
465

    
466

    
467

    
468
node Arrays1 (E_1_1 : real)
469
returns (x1_1_1 : int;
470
	x2_2_1 : int;
471
	x3_3_1 : int); 
472
var
473
	Arrays1_1_1 : int; Arrays1_1_2 : int; Arrays1_1_3 : int;
474
	Demux_1_1 : int; Demux_2_1 : int; Demux_3_1 : int;
475
	i_virtual_local : real;
476
	Arrays1E_1_1_event: bool;
477
let 
478
	Arrays1E_1_1_event = false -> (pre(E_1_1) <= 0.0 and E_1_1 > 0.0);
479
	(Arrays1_1_1, Arrays1_1_2, Arrays1_1_3) =  Arrays1_Arrays1(Arrays1E_1_1_event);
480
	Demux_1_1 = Arrays1_1_1 ;
481
	Demux_2_1 = Arrays1_1_2 ;
482
	Demux_3_1 = Arrays1_1_3 ;
483
	x1_1_1 = Demux_1_1;
484
	x2_2_1 = Demux_2_1;
485
	x3_3_1 = Demux_3_1;
486
	i_virtual_local= 0.0 -> 1.0;
487
tel
488