Initial commit

This commit is contained in:
Yentl Van Tendeloo 2016-08-04 17:38:43 +02:00
commit 66a6860316
407 changed files with 1254365 additions and 0 deletions

View file

@ -0,0 +1,60 @@
0 0.000877
5 0.003938
10 0.006830
15 0.011150
20 0.015215
25 0.019437
30 0.023566
35 0.027504
40 0.031824
45 0.035793
50 0.039880
55 0.044115
60 0.048364
65 0.052510
70 0.056560
75 0.060606
80 0.064760
85 0.069291
90 0.073372
95 0.077402
100 0.081613
105 0.085808
110 0.090182
115 0.094080
120 0.098434
125 0.102496
130 0.106443
135 0.110340
140 0.114957
145 0.118857
150 0.123067
155 0.127282
160 0.131434
165 0.135692
170 0.140027
175 0.143856
180 0.148320
185 0.152662
190 0.156973
195 0.160941
200 0.165206
205 0.169846
210 0.174114
215 0.177919
220 0.182012
225 0.186409
230 0.190995
235 0.194962
240 0.199515
245 0.203474
250 0.208015
255 0.212499
260 0.216903
265 0.220801
270 0.225782
275 0.230421
280 0.234980
285 0.239372
290 0.243900
295 0.253323

View file

@ -0,0 +1,60 @@
0 0.013708
5 0.019818
10 0.025259
15 0.031361
20 0.037114
25 0.042910
30 0.048468
35 0.053942
40 0.059648
45 0.065171
50 0.070821
55 0.076574
60 0.082370
65 0.088293
70 0.094283
75 0.099875
80 0.107170
85 0.114423
90 0.121364
95 0.124861
100 0.130572
105 0.139311
110 0.142849
115 0.149244
120 0.155755
125 0.160879
130 0.164604
135 0.170365
140 0.175906
145 0.180553
150 0.185789
155 0.191079
160 0.196181
165 0.202414
170 0.208140
175 0.213466
180 0.220103
185 0.225313
190 0.230116
195 0.235961
200 0.242063
205 0.248053
210 0.253606
215 0.259197
220 0.264553
225 0.270912
230 0.276149
235 0.283501
240 0.287962
245 0.291477
250 0.298754
255 0.304539
260 0.311806
265 0.315662
270 0.322964
275 0.327137
280 0.333092
285 0.339086
290 0.344942
295 0.349781

View file

@ -0,0 +1,60 @@
0 0.012739
5 0.014630
10 0.015978
15 0.018446
20 0.021125
25 0.024728
30 0.028066
35 0.030695
40 0.033380
45 0.035957
50 0.039200
55 0.042421
60 0.044331
65 0.047109
70 0.050213
75 0.052782
80 0.055391
85 0.067568
90 0.067835
95 0.072942
100 0.074776
105 0.079025
110 0.081512
115 0.083685
120 0.087047
125 0.087951
130 0.091344
135 0.093981
140 0.095382
145 0.101885
150 0.102066
155 0.104491
160 0.107622
165 0.110966
170 0.114465
175 0.117373
180 0.120564
185 0.123775
190 0.126654
195 0.128869
200 0.132082
205 0.135195
210 0.138917
215 0.141914
220 0.145343
225 0.147890
230 0.151469
235 0.154537
240 0.157736
245 0.160596
250 0.163527
255 0.167659
260 0.170671
265 0.174079
270 0.177208
275 0.180906
280 0.184556
285 0.187510
290 0.190364
295 0.192808

View file

@ -0,0 +1,60 @@
0 0.000897
5 0.000900
10 0.000934
15 0.001036
20 0.001001
25 0.001030
30 0.001068
35 0.001124
40 0.001211
45 0.001211
50 0.001257
55 0.001293
60 0.001333
65 0.001415
70 0.001402
75 0.001438
80 0.001450
85 0.001572
90 0.001542
95 0.001600
100 0.001647
105 0.001669
110 0.001735
115 0.001801
120 0.001811
125 0.001812
130 0.001884
135 0.001878
140 0.001944
145 0.001952
150 0.002061
155 0.002063
160 0.002068
165 0.002135
170 0.002186
175 0.002182
180 0.002251
185 0.002278
190 0.002312
195 0.002353
200 0.002386
205 0.002405
210 0.002466
215 0.002498
220 0.002486
225 0.002554
230 0.002612
235 0.002612
240 0.002640
245 0.002721
250 0.002718
255 0.002809
260 0.002849
265 0.002843
270 0.002901
275 0.002969
280 0.002952
285 0.003028
290 0.003047
295 0.003069

View file

@ -0,0 +1,60 @@
0 0.015484
5 0.017796
10 0.019275
15 0.020924
20 0.022623
25 0.024201
30 0.025733
35 0.027407
40 0.029117
45 0.030765
50 0.032393
55 0.033948
60 0.035672
65 0.037326
70 0.038835
75 0.040650
80 0.041738
85 0.043806
90 0.045476
95 0.046678
100 0.048737
105 0.050415
110 0.051901
115 0.053568
120 0.055019
125 0.056842
130 0.058226
135 0.060344
140 0.061683
145 0.063319
150 0.064874
155 0.066432
160 0.068025
165 0.069900
170 0.071105
175 0.072932
180 0.074398
185 0.076124
190 0.077436
195 0.079391
200 0.080790
205 0.082600
210 0.084091
215 0.085783
220 0.087097
225 0.089235
230 0.090814
235 0.092397
240 0.094299
245 0.095631
250 0.096805
255 0.098639
260 0.100020
265 0.101490
270 0.103377
275 0.104773
280 0.106279
285 0.108337
290 0.109637
295 0.111232

View file

@ -0,0 +1,60 @@
0 0.013781
5 0.014634
10 0.015127
15 0.015603
20 0.016218
25 0.016684
30 0.017091
35 0.017779
40 0.018264
45 0.018984
50 0.019600
55 0.020084
60 0.020608
65 0.021169
70 0.021692
75 0.022058
80 0.022585
85 0.023402
90 0.023627
95 0.024408
100 0.024919
105 0.025582
110 0.026061
115 0.026635
120 0.026854
125 0.027690
130 0.028163
135 0.028845
140 0.029122
145 0.029841
150 0.030295
155 0.030908
160 0.031330
165 0.031985
170 0.032344
175 0.033064
180 0.033701
185 0.034266
190 0.034651
195 0.035051
200 0.035368
205 0.036168
210 0.036393
215 0.037150
220 0.037569
225 0.038236
230 0.038770
235 0.039442
240 0.039868
245 0.040494
250 0.040850
255 0.041346
260 0.041937
265 0.042554
270 0.042906
275 0.043591
280 0.044299
285 0.044800
290 0.045485
295 0.046026

View file

@ -0,0 +1,914 @@
%!PS-Adobe-2.0
%%Title: dist_statesaving_attributes.eps
%%Creator: gnuplot 4.6 patchlevel 5 (Gentoo revision r0)
%%CreationDate: Mon Feb 2 09:46:02 2015
%%DocumentFonts: (atend)
%%BoundingBox: 50 50 482 482
%%Orientation: Portrait
%%Pages: (atend)
%%EndComments
%%BeginProlog
/gnudict 256 dict def
gnudict begin
%
% The following true/false flags may be edited by hand if desired.
% The unit line width and grayscale image gamma correction may also be changed.
%
/Color true def
/Blacktext false def
/Solid false def
/Dashlength 1 def
/Landscape false def
/Level1 false def
/Rounded false def
/ClipToBoundingBox false def
/SuppressPDFMark false def
/TransparentPatterns false def
/gnulinewidth 5.000 def
/userlinewidth gnulinewidth def
/Gamma 1.0 def
/BackgroundColor {-1.000 -1.000 -1.000} def
%
/vshift -46 def
/dl1 {
10.0 Dashlength mul mul
Rounded { currentlinewidth 0.75 mul sub dup 0 le { pop 0.01 } if } if
} def
/dl2 {
10.0 Dashlength mul mul
Rounded { currentlinewidth 0.75 mul add } if
} def
/hpt_ 31.5 def
/vpt_ 31.5 def
/hpt hpt_ def
/vpt vpt_ def
/doclip {
ClipToBoundingBox {
newpath 50 50 moveto 482 50 lineto 482 482 lineto 50 482 lineto closepath
clip
} if
} def
%
% Gnuplot Prolog Version 4.6 (September 2012)
%
%/SuppressPDFMark true def
%
/M {moveto} bind def
/L {lineto} bind def
/R {rmoveto} bind def
/V {rlineto} bind def
/N {newpath moveto} bind def
/Z {closepath} bind def
/C {setrgbcolor} bind def
/f {rlineto fill} bind def
/g {setgray} bind def
/Gshow {show} def % May be redefined later in the file to support UTF-8
/vpt2 vpt 2 mul def
/hpt2 hpt 2 mul def
/Lshow {currentpoint stroke M 0 vshift R
Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
/Rshow {currentpoint stroke M dup stringwidth pop neg vshift R
Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
/Cshow {currentpoint stroke M dup stringwidth pop -2 div vshift R
Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
/UP {dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
/hpt2 hpt 2 mul def /vpt2 vpt 2 mul def} def
/DL {Color {setrgbcolor Solid {pop []} if 0 setdash}
{pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse} def
/BL {stroke userlinewidth 2 mul setlinewidth
Rounded {1 setlinejoin 1 setlinecap} if} def
/AL {stroke userlinewidth 2 div setlinewidth
Rounded {1 setlinejoin 1 setlinecap} if} def
/UL {dup gnulinewidth mul /userlinewidth exch def
dup 1 lt {pop 1} if 10 mul /udl exch def} def
/PL {stroke userlinewidth setlinewidth
Rounded {1 setlinejoin 1 setlinecap} if} def
3.8 setmiterlimit
% Default Line colors
/LCw {1 1 1} def
/LCb {0 0 0} def
/LCa {0 0 0} def
/LC0 {1 0 0} def
/LC1 {0 1 0} def
/LC2 {0 0 1} def
/LC3 {1 0 1} def
/LC4 {0 1 1} def
/LC5 {1 1 0} def
/LC6 {0 0 0} def
/LC7 {1 0.3 0} def
/LC8 {0.5 0.5 0.5} def
% Default Line Types
/LTw {PL [] 1 setgray} def
/LTb {BL [] LCb DL} def
/LTa {AL [1 udl mul 2 udl mul] 0 setdash LCa setrgbcolor} def
/LT0 {PL [] LC0 DL} def
/LT1 {PL [4 dl1 2 dl2] LC1 DL} def
/LT2 {PL [2 dl1 3 dl2] LC2 DL} def
/LT3 {PL [1 dl1 1.5 dl2] LC3 DL} def
/LT4 {PL [6 dl1 2 dl2 1 dl1 2 dl2] LC4 DL} def
/LT5 {PL [3 dl1 3 dl2 1 dl1 3 dl2] LC5 DL} def
/LT6 {PL [2 dl1 2 dl2 2 dl1 6 dl2] LC6 DL} def
/LT7 {PL [1 dl1 2 dl2 6 dl1 2 dl2 1 dl1 2 dl2] LC7 DL} def
/LT8 {PL [2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 4 dl2] LC8 DL} def
/Pnt {stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore} def
/Dia {stroke [] 0 setdash 2 copy vpt add M
hpt neg vpt neg V hpt vpt neg V
hpt vpt V hpt neg vpt V closepath stroke
Pnt} def
/Pls {stroke [] 0 setdash vpt sub M 0 vpt2 V
currentpoint stroke M
hpt neg vpt neg R hpt2 0 V stroke
} def
/Box {stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
0 vpt2 neg V hpt2 0 V 0 vpt2 V
hpt2 neg 0 V closepath stroke
Pnt} def
/Crs {stroke [] 0 setdash exch hpt sub exch vpt add M
hpt2 vpt2 neg V currentpoint stroke M
hpt2 neg 0 R hpt2 vpt2 V stroke} def
/TriU {stroke [] 0 setdash 2 copy vpt 1.12 mul add M
hpt neg vpt -1.62 mul V
hpt 2 mul 0 V
hpt neg vpt 1.62 mul V closepath stroke
Pnt} def
/Star {2 copy Pls Crs} def
/BoxF {stroke [] 0 setdash exch hpt sub exch vpt add M
0 vpt2 neg V hpt2 0 V 0 vpt2 V
hpt2 neg 0 V closepath fill} def
/TriUF {stroke [] 0 setdash vpt 1.12 mul add M
hpt neg vpt -1.62 mul V
hpt 2 mul 0 V
hpt neg vpt 1.62 mul V closepath fill} def
/TriD {stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
hpt neg vpt 1.62 mul V
hpt 2 mul 0 V
hpt neg vpt -1.62 mul V closepath stroke
Pnt} def
/TriDF {stroke [] 0 setdash vpt 1.12 mul sub M
hpt neg vpt 1.62 mul V
hpt 2 mul 0 V
hpt neg vpt -1.62 mul V closepath fill} def
/DiaF {stroke [] 0 setdash vpt add M
hpt neg vpt neg V hpt vpt neg V
hpt vpt V hpt neg vpt V closepath fill} def
/Pent {stroke [] 0 setdash 2 copy gsave
translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
closepath stroke grestore Pnt} def
/PentF {stroke [] 0 setdash gsave
translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
closepath fill grestore} def
/Circle {stroke [] 0 setdash 2 copy
hpt 0 360 arc stroke Pnt} def
/CircleF {stroke [] 0 setdash hpt 0 360 arc fill} def
/C0 {BL [] 0 setdash 2 copy moveto vpt 90 450 arc} bind def
/C1 {BL [] 0 setdash 2 copy moveto
2 copy vpt 0 90 arc closepath fill
vpt 0 360 arc closepath} bind def
/C2 {BL [] 0 setdash 2 copy moveto
2 copy vpt 90 180 arc closepath fill
vpt 0 360 arc closepath} bind def
/C3 {BL [] 0 setdash 2 copy moveto
2 copy vpt 0 180 arc closepath fill
vpt 0 360 arc closepath} bind def
/C4 {BL [] 0 setdash 2 copy moveto
2 copy vpt 180 270 arc closepath fill
vpt 0 360 arc closepath} bind def
/C5 {BL [] 0 setdash 2 copy moveto
2 copy vpt 0 90 arc
2 copy moveto
2 copy vpt 180 270 arc closepath fill
vpt 0 360 arc} bind def
/C6 {BL [] 0 setdash 2 copy moveto
2 copy vpt 90 270 arc closepath fill
vpt 0 360 arc closepath} bind def
/C7 {BL [] 0 setdash 2 copy moveto
2 copy vpt 0 270 arc closepath fill
vpt 0 360 arc closepath} bind def
/C8 {BL [] 0 setdash 2 copy moveto
2 copy vpt 270 360 arc closepath fill
vpt 0 360 arc closepath} bind def
/C9 {BL [] 0 setdash 2 copy moveto
2 copy vpt 270 450 arc closepath fill
vpt 0 360 arc closepath} bind def
/C10 {BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
2 copy moveto
2 copy vpt 90 180 arc closepath fill
vpt 0 360 arc closepath} bind def
/C11 {BL [] 0 setdash 2 copy moveto
2 copy vpt 0 180 arc closepath fill
2 copy moveto
2 copy vpt 270 360 arc closepath fill
vpt 0 360 arc closepath} bind def
/C12 {BL [] 0 setdash 2 copy moveto
2 copy vpt 180 360 arc closepath fill
vpt 0 360 arc closepath} bind def
/C13 {BL [] 0 setdash 2 copy moveto
2 copy vpt 0 90 arc closepath fill
2 copy moveto
2 copy vpt 180 360 arc closepath fill
vpt 0 360 arc closepath} bind def
/C14 {BL [] 0 setdash 2 copy moveto
2 copy vpt 90 360 arc closepath fill
vpt 0 360 arc} bind def
/C15 {BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
vpt 0 360 arc closepath} bind def
/Rec {newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
neg 0 rlineto closepath} bind def
/Square {dup Rec} bind def
/Bsquare {vpt sub exch vpt sub exch vpt2 Square} bind def
/S0 {BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare} bind def
/S1 {BL [] 0 setdash 2 copy vpt Square fill Bsquare} bind def
/S2 {BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
/S3 {BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare} bind def
/S4 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
/S5 {BL [] 0 setdash 2 copy 2 copy vpt Square fill
exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
/S6 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare} bind def
/S7 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
2 copy vpt Square fill Bsquare} bind def
/S8 {BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare} bind def
/S9 {BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare} bind def
/S10 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
Bsquare} bind def
/S11 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
Bsquare} bind def
/S12 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare} bind def
/S13 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
2 copy vpt Square fill Bsquare} bind def
/S14 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
/S15 {BL [] 0 setdash 2 copy Bsquare fill Bsquare} bind def
/D0 {gsave translate 45 rotate 0 0 S0 stroke grestore} bind def
/D1 {gsave translate 45 rotate 0 0 S1 stroke grestore} bind def
/D2 {gsave translate 45 rotate 0 0 S2 stroke grestore} bind def
/D3 {gsave translate 45 rotate 0 0 S3 stroke grestore} bind def
/D4 {gsave translate 45 rotate 0 0 S4 stroke grestore} bind def
/D5 {gsave translate 45 rotate 0 0 S5 stroke grestore} bind def
/D6 {gsave translate 45 rotate 0 0 S6 stroke grestore} bind def
/D7 {gsave translate 45 rotate 0 0 S7 stroke grestore} bind def
/D8 {gsave translate 45 rotate 0 0 S8 stroke grestore} bind def
/D9 {gsave translate 45 rotate 0 0 S9 stroke grestore} bind def
/D10 {gsave translate 45 rotate 0 0 S10 stroke grestore} bind def
/D11 {gsave translate 45 rotate 0 0 S11 stroke grestore} bind def
/D12 {gsave translate 45 rotate 0 0 S12 stroke grestore} bind def
/D13 {gsave translate 45 rotate 0 0 S13 stroke grestore} bind def
/D14 {gsave translate 45 rotate 0 0 S14 stroke grestore} bind def
/D15 {gsave translate 45 rotate 0 0 S15 stroke grestore} bind def
/DiaE {stroke [] 0 setdash vpt add M
hpt neg vpt neg V hpt vpt neg V
hpt vpt V hpt neg vpt V closepath stroke} def
/BoxE {stroke [] 0 setdash exch hpt sub exch vpt add M
0 vpt2 neg V hpt2 0 V 0 vpt2 V
hpt2 neg 0 V closepath stroke} def
/TriUE {stroke [] 0 setdash vpt 1.12 mul add M
hpt neg vpt -1.62 mul V
hpt 2 mul 0 V
hpt neg vpt 1.62 mul V closepath stroke} def
/TriDE {stroke [] 0 setdash vpt 1.12 mul sub M
hpt neg vpt 1.62 mul V
hpt 2 mul 0 V
hpt neg vpt -1.62 mul V closepath stroke} def
/PentE {stroke [] 0 setdash gsave
translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
closepath stroke grestore} def
/CircE {stroke [] 0 setdash
hpt 0 360 arc stroke} def
/Opaque {gsave closepath 1 setgray fill grestore 0 setgray closepath} def
/DiaW {stroke [] 0 setdash vpt add M
hpt neg vpt neg V hpt vpt neg V
hpt vpt V hpt neg vpt V Opaque stroke} def
/BoxW {stroke [] 0 setdash exch hpt sub exch vpt add M
0 vpt2 neg V hpt2 0 V 0 vpt2 V
hpt2 neg 0 V Opaque stroke} def
/TriUW {stroke [] 0 setdash vpt 1.12 mul add M
hpt neg vpt -1.62 mul V
hpt 2 mul 0 V
hpt neg vpt 1.62 mul V Opaque stroke} def
/TriDW {stroke [] 0 setdash vpt 1.12 mul sub M
hpt neg vpt 1.62 mul V
hpt 2 mul 0 V
hpt neg vpt -1.62 mul V Opaque stroke} def
/PentW {stroke [] 0 setdash gsave
translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
Opaque stroke grestore} def
/CircW {stroke [] 0 setdash
hpt 0 360 arc Opaque stroke} def
/BoxFill {gsave Rec 1 setgray fill grestore} def
/Density {
/Fillden exch def
currentrgbcolor
/ColB exch def /ColG exch def /ColR exch def
/ColR ColR Fillden mul Fillden sub 1 add def
/ColG ColG Fillden mul Fillden sub 1 add def
/ColB ColB Fillden mul Fillden sub 1 add def
ColR ColG ColB setrgbcolor} def
/BoxColFill {gsave Rec PolyFill} def
/PolyFill {gsave Density fill grestore grestore} def
/h {rlineto rlineto rlineto gsave closepath fill grestore} bind def
%
% PostScript Level 1 Pattern Fill routine for rectangles
% Usage: x y w h s a XX PatternFill
% x,y = lower left corner of box to be filled
% w,h = width and height of box
% a = angle in degrees between lines and x-axis
% XX = 0/1 for no/yes cross-hatch
%
/PatternFill {gsave /PFa [ 9 2 roll ] def
PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate
PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec
TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse
clip
currentlinewidth 0.5 mul setlinewidth
/PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def
0 0 M PFa 5 get rotate PFs -2 div dup translate
0 1 PFs PFa 4 get div 1 add floor cvi
{PFa 4 get mul 0 M 0 PFs V} for
0 PFa 6 get ne {
0 1 PFs PFa 4 get div 1 add floor cvi
{PFa 4 get mul 0 2 1 roll M PFs 0 V} for
} if
stroke grestore} def
%
/languagelevel where
{pop languagelevel} {1} ifelse
2 lt
{/InterpretLevel1 true def}
{/InterpretLevel1 Level1 def}
ifelse
%
% PostScript level 2 pattern fill definitions
%
/Level2PatternFill {
/Tile8x8 {/PaintType 2 /PatternType 1 /TilingType 1 /BBox [0 0 8 8] /XStep 8 /YStep 8}
bind def
/KeepColor {currentrgbcolor [/Pattern /DeviceRGB] setcolorspace} bind def
<< Tile8x8
/PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke}
>> matrix makepattern
/Pat1 exch def
<< Tile8x8
/PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke
0 4 M 4 8 L 8 4 L 4 0 L 0 4 L stroke}
>> matrix makepattern
/Pat2 exch def
<< Tile8x8
/PaintProc {0.5 setlinewidth pop 0 0 M 0 8 L
8 8 L 8 0 L 0 0 L fill}
>> matrix makepattern
/Pat3 exch def
<< Tile8x8
/PaintProc {0.5 setlinewidth pop -4 8 M 8 -4 L
0 12 M 12 0 L stroke}
>> matrix makepattern
/Pat4 exch def
<< Tile8x8
/PaintProc {0.5 setlinewidth pop -4 0 M 8 12 L
0 -4 M 12 8 L stroke}
>> matrix makepattern
/Pat5 exch def
<< Tile8x8
/PaintProc {0.5 setlinewidth pop -2 8 M 4 -4 L
0 12 M 8 -4 L 4 12 M 10 0 L stroke}
>> matrix makepattern
/Pat6 exch def
<< Tile8x8
/PaintProc {0.5 setlinewidth pop -2 0 M 4 12 L
0 -4 M 8 12 L 4 -4 M 10 8 L stroke}
>> matrix makepattern
/Pat7 exch def
<< Tile8x8
/PaintProc {0.5 setlinewidth pop 8 -2 M -4 4 L
12 0 M -4 8 L 12 4 M 0 10 L stroke}
>> matrix makepattern
/Pat8 exch def
<< Tile8x8
/PaintProc {0.5 setlinewidth pop 0 -2 M 12 4 L
-4 0 M 12 8 L -4 4 M 8 10 L stroke}
>> matrix makepattern
/Pat9 exch def
/Pattern1 {PatternBgnd KeepColor Pat1 setpattern} bind def
/Pattern2 {PatternBgnd KeepColor Pat2 setpattern} bind def
/Pattern3 {PatternBgnd KeepColor Pat3 setpattern} bind def
/Pattern4 {PatternBgnd KeepColor Landscape {Pat5} {Pat4} ifelse setpattern} bind def
/Pattern5 {PatternBgnd KeepColor Landscape {Pat4} {Pat5} ifelse setpattern} bind def
/Pattern6 {PatternBgnd KeepColor Landscape {Pat9} {Pat6} ifelse setpattern} bind def
/Pattern7 {PatternBgnd KeepColor Landscape {Pat8} {Pat7} ifelse setpattern} bind def
} def
%
%
%End of PostScript Level 2 code
%
/PatternBgnd {
TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse
} def
%
% Substitute for Level 2 pattern fill codes with
% grayscale if Level 2 support is not selected.
%
/Level1PatternFill {
/Pattern1 {0.250 Density} bind def
/Pattern2 {0.500 Density} bind def
/Pattern3 {0.750 Density} bind def
/Pattern4 {0.125 Density} bind def
/Pattern5 {0.375 Density} bind def
/Pattern6 {0.625 Density} bind def
/Pattern7 {0.875 Density} bind def
} def
%
% Now test for support of Level 2 code
%
Level1 {Level1PatternFill} {Level2PatternFill} ifelse
%
/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont
dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall
currentdict end definefont pop
/MFshow {
{ dup 5 get 3 ge
{ 5 get 3 eq {gsave} {grestore} ifelse }
{dup dup 0 get findfont exch 1 get scalefont setfont
[ currentpoint ] exch dup 2 get 0 exch R dup 5 get 2 ne {dup dup 6
get exch 4 get {Gshow} {stringwidth pop 0 R} ifelse }if dup 5 get 0 eq
{dup 3 get {2 get neg 0 exch R pop} {pop aload pop M} ifelse} {dup 5
get 1 eq {dup 2 get exch dup 3 get exch 6 get stringwidth pop -2 div
dup 0 R} {dup 6 get stringwidth pop -2 div 0 R 6 get
show 2 index {aload pop M neg 3 -1 roll neg R pop pop} {pop pop pop
pop aload pop M} ifelse }ifelse }ifelse }
ifelse }
forall} def
/Gswidth {dup type /stringtype eq {stringwidth} {pop (n) stringwidth} ifelse} def
/MFwidth {0 exch { dup 5 get 3 ge { 5 get 3 eq { 0 } { pop } ifelse }
{dup 3 get{dup dup 0 get findfont exch 1 get scalefont setfont
6 get Gswidth pop add} {pop} ifelse} ifelse} forall} def
/MLshow { currentpoint stroke M
0 exch R
Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
/MRshow { currentpoint stroke M
exch dup MFwidth neg 3 -1 roll R
Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
/MCshow { currentpoint stroke M
exch dup MFwidth -2 div 3 -1 roll R
Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
/XYsave { [( ) 1 2 true false 3 ()] } bind def
/XYrestore { [( ) 1 2 true false 4 ()] } bind def
Level1 SuppressPDFMark or
{} {
/SDict 10 dict def
systemdict /pdfmark known not {
userdict /pdfmark systemdict /cleartomark get put
} if
SDict begin [
/Title (dist_statesaving_attributes.eps)
/Subject (gnuplot plot)
/Creator (gnuplot 4.6 patchlevel 5 (Gentoo revision r0))
/Author (yentl)
% /Producer (gnuplot)
% /Keywords ()
/CreationDate (Mon Feb 2 09:46:02 2015)
/DOCINFO pdfmark
end
} ifelse
end
%%EndProlog
%%Page: 1 1
gnudict begin
gsave
doclip
50 50 translate
0.100 0.100 scale
0 setgray
newpath
(Helvetica) findfont 140 scalefont setfont
BackgroundColor 0 lt 3 1 roll 0 lt exch 0 lt or or not {gsave BackgroundColor C clippath fill grestore} if
1.000 UL
LTb
LCb setrgbcolor
770 448 M
63 0 V
3234 0 R
-63 0 V
stroke
686 448 M
[ [(Helvetica) 140.0 0.0 true true 0 ( 0)]
] -46.7 MRshow
1.000 UL
LTb
LCb setrgbcolor
770 941 M
63 0 V
3234 0 R
-63 0 V
stroke
686 941 M
[ [(Helvetica) 140.0 0.0 true true 0 ( 0.05)]
] -46.7 MRshow
1.000 UL
LTb
LCb setrgbcolor
770 1434 M
63 0 V
3234 0 R
-63 0 V
stroke
686 1434 M
[ [(Helvetica) 140.0 0.0 true true 0 ( 0.1)]
] -46.7 MRshow
1.000 UL
LTb
LCb setrgbcolor
770 1927 M
63 0 V
3234 0 R
-63 0 V
stroke
686 1927 M
[ [(Helvetica) 140.0 0.0 true true 0 ( 0.15)]
] -46.7 MRshow
1.000 UL
LTb
LCb setrgbcolor
770 2420 M
63 0 V
3234 0 R
-63 0 V
stroke
686 2420 M
[ [(Helvetica) 140.0 0.0 true true 0 ( 0.2)]
] -46.7 MRshow
1.000 UL
LTb
LCb setrgbcolor
770 2913 M
63 0 V
3234 0 R
-63 0 V
stroke
686 2913 M
[ [(Helvetica) 140.0 0.0 true true 0 ( 0.25)]
] -46.7 MRshow
1.000 UL
LTb
LCb setrgbcolor
770 3406 M
63 0 V
3234 0 R
-63 0 V
stroke
686 3406 M
[ [(Helvetica) 140.0 0.0 true true 0 ( 0.3)]
] -46.7 MRshow
1.000 UL
LTb
LCb setrgbcolor
770 3899 M
63 0 V
3234 0 R
-63 0 V
stroke
686 3899 M
[ [(Helvetica) 140.0 0.0 true true 0 ( 0.35)]
] -46.7 MRshow
1.000 UL
LTb
LCb setrgbcolor
770 448 M
0 63 V
0 3388 R
0 -63 V
stroke
770 308 M
[ [(Helvetica) 140.0 0.0 true true 0 ( 0)]
] -46.7 MCshow
1.000 UL
LTb
LCb setrgbcolor
1320 448 M
0 63 V
0 3388 R
0 -63 V
stroke
1320 308 M
[ [(Helvetica) 140.0 0.0 true true 0 ( 50)]
] -46.7 MCshow
1.000 UL
LTb
LCb setrgbcolor
1869 448 M
0 63 V
0 3388 R
0 -63 V
stroke
1869 308 M
[ [(Helvetica) 140.0 0.0 true true 0 ( 100)]
] -46.7 MCshow
1.000 UL
LTb
LCb setrgbcolor
2419 448 M
0 63 V
0 3388 R
0 -63 V
stroke
2419 308 M
[ [(Helvetica) 140.0 0.0 true true 0 ( 150)]
] -46.7 MCshow
1.000 UL
LTb
LCb setrgbcolor
2968 448 M
0 63 V
0 3388 R
0 -63 V
stroke
2968 308 M
[ [(Helvetica) 140.0 0.0 true true 0 ( 200)]
] -46.7 MCshow
1.000 UL
LTb
LCb setrgbcolor
3518 448 M
0 63 V
0 3388 R
0 -63 V
stroke
3518 308 M
[ [(Helvetica) 140.0 0.0 true true 0 ( 250)]
] -46.7 MCshow
1.000 UL
LTb
LCb setrgbcolor
4067 448 M
0 63 V
0 3388 R
0 -63 V
stroke
4067 308 M
[ [(Helvetica) 140.0 0.0 true true 0 ( 300)]
] -46.7 MCshow
1.000 UL
LTb
LCb setrgbcolor
1.000 UL
LTb
LCb setrgbcolor
770 3899 N
770 448 L
3297 0 V
0 3451 V
-3297 0 V
Z stroke
LCb setrgbcolor
112 2173 M
currentpoint gsave translate -270 rotate 0 0 moveto
[ [(Helvetica) 140.0 0.0 true true 0 (Time \(ms\))]
] -46.7 MCshow
grestore
LTb
LCb setrgbcolor
2418 98 M
[ [(Helvetica) 140.0 0.0 true true 0 (# of attributes)]
] -46.7 MCshow
LTb
2418 4109 M
[ [(Helvetica) 140.0 0.0 true true 0 (State saving performance for complex states)]
] -46.7 MCshow
1.000 UP
1.000 UL
LTb
LCb setrgbcolor
% Begin plot #1
5.000 UL
LT0
LC0 setrgbcolor
LCb setrgbcolor
1778 3766 M
[ [(Helvetica) 140.0 0.0 true true 0 (Custom copy)]
] -46.7 MRshow
LT0
1862 3766 M
399 0 V
770 457 M
55 30 V
55 28 V
55 43 V
55 40 V
55 42 V
55 40 V
55 39 V
55 43 V
55 39 V
55 40 V
54 42 V
55 42 V
55 41 V
55 40 V
55 40 V
55 41 V
55 44 V
55 40 V
55 40 V
55 42 V
55 41 V
55 43 V
55 39 V
55 43 V
55 40 V
55 39 V
55 38 V
55 45 V
55 39 V
55 41 V
54 42 V
55 41 V
55 42 V
55 43 V
55 37 V
55 44 V
55 43 V
55 43 V
55 39 V
55 42 V
55 46 V
55 42 V
55 37 V
55 41 V
55 43 V
55 45 V
55 39 V
55 45 V
55 39 V
55 45 V
54 44 V
55 44 V
55 38 V
55 49 V
55 46 V
55 45 V
55 43 V
55 45 V
55 93 V
% End plot #1
% Begin plot #2
stroke
LT1
LC1 setrgbcolor
LCb setrgbcolor
1778 3626 M
[ [(Helvetica) 140.0 0.0 true true 0 (Deepcopy)]
] -46.7 MRshow
LT1
1862 3626 M
399 0 V
770 583 M
55 60 V
55 54 V
55 60 V
55 57 V
55 57 V
55 55 V
55 54 V
55 56 V
55 55 V
55 55 V
54 57 V
55 57 V
55 59 V
55 59 V
55 55 V
55 72 V
55 71 V
55 69 V
55 34 V
55 56 V
55 87 V
55 34 V
55 64 V
55 64 V
55 50 V
55 37 V
55 57 V
55 54 V
55 46 V
55 52 V
54 52 V
55 50 V
55 62 V
55 56 V
55 53 V
55 65 V
55 52 V
55 47 V
55 58 V
55 60 V
55 59 V
55 55 V
55 55 V
55 52 V
55 63 V
55 52 V
55 72 V
55 44 V
55 35 V
55 72 V
54 57 V
55 71 V
55 38 V
55 72 V
55 42 V
55 58 V
55 59 V
55 58 V
55 48 V
% End plot #2
% Begin plot #3
stroke
LT2
LC2 setrgbcolor
LCb setrgbcolor
1778 3486 M
[ [(Helvetica) 140.0 0.0 true true 0 (cPickle)]
] -46.7 MRshow
LT2
1862 3486 M
399 0 V
770 574 M
55 18 V
55 14 V
55 24 V
55 26 V
55 36 V
55 33 V
55 26 V
55 26 V
55 26 V
55 32 V
54 31 V
55 19 V
55 27 V
55 31 V
55 25 V
55 26 V
55 120 V
55 3 V
55 50 V
55 18 V
55 42 V
55 25 V
55 21 V
55 33 V
55 9 V
55 34 V
55 26 V
55 13 V
55 65 V
55 1 V
54 24 V
55 31 V
55 33 V
55 35 V
55 28 V
55 32 V
55 31 V
55 29 V
55 22 V
55 31 V
55 31 V
55 37 V
55 29 V
55 34 V
55 25 V
55 35 V
55 31 V
55 31 V
55 28 V
55 29 V
54 41 V
55 30 V
55 33 V
55 31 V
55 37 V
55 36 V
55 29 V
55 28 V
55 24 V
% End plot #3
stroke
1.000 UL
LTb
LCb setrgbcolor
770 3899 N
770 448 L
3297 0 V
0 3451 V
-3297 0 V
Z stroke
1.000 UP
1.000 UL
LTb
LCb setrgbcolor
stroke
grestore
end
showpage
%%Trailer
%%DocumentFonts: Helvetica
%%Pages: 1

View file

@ -0,0 +1,903 @@
%!PS-Adobe-2.0
%%Title: dist_statesaving_size.eps
%%Creator: gnuplot 4.6 patchlevel 5 (Gentoo revision r0)
%%CreationDate: Mon Feb 2 09:46:02 2015
%%DocumentFonts: (atend)
%%BoundingBox: 50 50 482 482
%%Orientation: Portrait
%%Pages: (atend)
%%EndComments
%%BeginProlog
/gnudict 256 dict def
gnudict begin
%
% The following true/false flags may be edited by hand if desired.
% The unit line width and grayscale image gamma correction may also be changed.
%
/Color true def
/Blacktext false def
/Solid false def
/Dashlength 1 def
/Landscape false def
/Level1 false def
/Rounded false def
/ClipToBoundingBox false def
/SuppressPDFMark false def
/TransparentPatterns false def
/gnulinewidth 5.000 def
/userlinewidth gnulinewidth def
/Gamma 1.0 def
/BackgroundColor {-1.000 -1.000 -1.000} def
%
/vshift -46 def
/dl1 {
10.0 Dashlength mul mul
Rounded { currentlinewidth 0.75 mul sub dup 0 le { pop 0.01 } if } if
} def
/dl2 {
10.0 Dashlength mul mul
Rounded { currentlinewidth 0.75 mul add } if
} def
/hpt_ 31.5 def
/vpt_ 31.5 def
/hpt hpt_ def
/vpt vpt_ def
/doclip {
ClipToBoundingBox {
newpath 50 50 moveto 482 50 lineto 482 482 lineto 50 482 lineto closepath
clip
} if
} def
%
% Gnuplot Prolog Version 4.6 (September 2012)
%
%/SuppressPDFMark true def
%
/M {moveto} bind def
/L {lineto} bind def
/R {rmoveto} bind def
/V {rlineto} bind def
/N {newpath moveto} bind def
/Z {closepath} bind def
/C {setrgbcolor} bind def
/f {rlineto fill} bind def
/g {setgray} bind def
/Gshow {show} def % May be redefined later in the file to support UTF-8
/vpt2 vpt 2 mul def
/hpt2 hpt 2 mul def
/Lshow {currentpoint stroke M 0 vshift R
Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
/Rshow {currentpoint stroke M dup stringwidth pop neg vshift R
Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
/Cshow {currentpoint stroke M dup stringwidth pop -2 div vshift R
Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
/UP {dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
/hpt2 hpt 2 mul def /vpt2 vpt 2 mul def} def
/DL {Color {setrgbcolor Solid {pop []} if 0 setdash}
{pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse} def
/BL {stroke userlinewidth 2 mul setlinewidth
Rounded {1 setlinejoin 1 setlinecap} if} def
/AL {stroke userlinewidth 2 div setlinewidth
Rounded {1 setlinejoin 1 setlinecap} if} def
/UL {dup gnulinewidth mul /userlinewidth exch def
dup 1 lt {pop 1} if 10 mul /udl exch def} def
/PL {stroke userlinewidth setlinewidth
Rounded {1 setlinejoin 1 setlinecap} if} def
3.8 setmiterlimit
% Default Line colors
/LCw {1 1 1} def
/LCb {0 0 0} def
/LCa {0 0 0} def
/LC0 {1 0 0} def
/LC1 {0 1 0} def
/LC2 {0 0 1} def
/LC3 {1 0 1} def
/LC4 {0 1 1} def
/LC5 {1 1 0} def
/LC6 {0 0 0} def
/LC7 {1 0.3 0} def
/LC8 {0.5 0.5 0.5} def
% Default Line Types
/LTw {PL [] 1 setgray} def
/LTb {BL [] LCb DL} def
/LTa {AL [1 udl mul 2 udl mul] 0 setdash LCa setrgbcolor} def
/LT0 {PL [] LC0 DL} def
/LT1 {PL [4 dl1 2 dl2] LC1 DL} def
/LT2 {PL [2 dl1 3 dl2] LC2 DL} def
/LT3 {PL [1 dl1 1.5 dl2] LC3 DL} def
/LT4 {PL [6 dl1 2 dl2 1 dl1 2 dl2] LC4 DL} def
/LT5 {PL [3 dl1 3 dl2 1 dl1 3 dl2] LC5 DL} def
/LT6 {PL [2 dl1 2 dl2 2 dl1 6 dl2] LC6 DL} def
/LT7 {PL [1 dl1 2 dl2 6 dl1 2 dl2 1 dl1 2 dl2] LC7 DL} def
/LT8 {PL [2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 4 dl2] LC8 DL} def
/Pnt {stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore} def
/Dia {stroke [] 0 setdash 2 copy vpt add M
hpt neg vpt neg V hpt vpt neg V
hpt vpt V hpt neg vpt V closepath stroke
Pnt} def
/Pls {stroke [] 0 setdash vpt sub M 0 vpt2 V
currentpoint stroke M
hpt neg vpt neg R hpt2 0 V stroke
} def
/Box {stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
0 vpt2 neg V hpt2 0 V 0 vpt2 V
hpt2 neg 0 V closepath stroke
Pnt} def
/Crs {stroke [] 0 setdash exch hpt sub exch vpt add M
hpt2 vpt2 neg V currentpoint stroke M
hpt2 neg 0 R hpt2 vpt2 V stroke} def
/TriU {stroke [] 0 setdash 2 copy vpt 1.12 mul add M
hpt neg vpt -1.62 mul V
hpt 2 mul 0 V
hpt neg vpt 1.62 mul V closepath stroke
Pnt} def
/Star {2 copy Pls Crs} def
/BoxF {stroke [] 0 setdash exch hpt sub exch vpt add M
0 vpt2 neg V hpt2 0 V 0 vpt2 V
hpt2 neg 0 V closepath fill} def
/TriUF {stroke [] 0 setdash vpt 1.12 mul add M
hpt neg vpt -1.62 mul V
hpt 2 mul 0 V
hpt neg vpt 1.62 mul V closepath fill} def
/TriD {stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
hpt neg vpt 1.62 mul V
hpt 2 mul 0 V
hpt neg vpt -1.62 mul V closepath stroke
Pnt} def
/TriDF {stroke [] 0 setdash vpt 1.12 mul sub M
hpt neg vpt 1.62 mul V
hpt 2 mul 0 V
hpt neg vpt -1.62 mul V closepath fill} def
/DiaF {stroke [] 0 setdash vpt add M
hpt neg vpt neg V hpt vpt neg V
hpt vpt V hpt neg vpt V closepath fill} def
/Pent {stroke [] 0 setdash 2 copy gsave
translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
closepath stroke grestore Pnt} def
/PentF {stroke [] 0 setdash gsave
translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
closepath fill grestore} def
/Circle {stroke [] 0 setdash 2 copy
hpt 0 360 arc stroke Pnt} def
/CircleF {stroke [] 0 setdash hpt 0 360 arc fill} def
/C0 {BL [] 0 setdash 2 copy moveto vpt 90 450 arc} bind def
/C1 {BL [] 0 setdash 2 copy moveto
2 copy vpt 0 90 arc closepath fill
vpt 0 360 arc closepath} bind def
/C2 {BL [] 0 setdash 2 copy moveto
2 copy vpt 90 180 arc closepath fill
vpt 0 360 arc closepath} bind def
/C3 {BL [] 0 setdash 2 copy moveto
2 copy vpt 0 180 arc closepath fill
vpt 0 360 arc closepath} bind def
/C4 {BL [] 0 setdash 2 copy moveto
2 copy vpt 180 270 arc closepath fill
vpt 0 360 arc closepath} bind def
/C5 {BL [] 0 setdash 2 copy moveto
2 copy vpt 0 90 arc
2 copy moveto
2 copy vpt 180 270 arc closepath fill
vpt 0 360 arc} bind def
/C6 {BL [] 0 setdash 2 copy moveto
2 copy vpt 90 270 arc closepath fill
vpt 0 360 arc closepath} bind def
/C7 {BL [] 0 setdash 2 copy moveto
2 copy vpt 0 270 arc closepath fill
vpt 0 360 arc closepath} bind def
/C8 {BL [] 0 setdash 2 copy moveto
2 copy vpt 270 360 arc closepath fill
vpt 0 360 arc closepath} bind def
/C9 {BL [] 0 setdash 2 copy moveto
2 copy vpt 270 450 arc closepath fill
vpt 0 360 arc closepath} bind def
/C10 {BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
2 copy moveto
2 copy vpt 90 180 arc closepath fill
vpt 0 360 arc closepath} bind def
/C11 {BL [] 0 setdash 2 copy moveto
2 copy vpt 0 180 arc closepath fill
2 copy moveto
2 copy vpt 270 360 arc closepath fill
vpt 0 360 arc closepath} bind def
/C12 {BL [] 0 setdash 2 copy moveto
2 copy vpt 180 360 arc closepath fill
vpt 0 360 arc closepath} bind def
/C13 {BL [] 0 setdash 2 copy moveto
2 copy vpt 0 90 arc closepath fill
2 copy moveto
2 copy vpt 180 360 arc closepath fill
vpt 0 360 arc closepath} bind def
/C14 {BL [] 0 setdash 2 copy moveto
2 copy vpt 90 360 arc closepath fill
vpt 0 360 arc} bind def
/C15 {BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
vpt 0 360 arc closepath} bind def
/Rec {newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
neg 0 rlineto closepath} bind def
/Square {dup Rec} bind def
/Bsquare {vpt sub exch vpt sub exch vpt2 Square} bind def
/S0 {BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare} bind def
/S1 {BL [] 0 setdash 2 copy vpt Square fill Bsquare} bind def
/S2 {BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
/S3 {BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare} bind def
/S4 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
/S5 {BL [] 0 setdash 2 copy 2 copy vpt Square fill
exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
/S6 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare} bind def
/S7 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
2 copy vpt Square fill Bsquare} bind def
/S8 {BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare} bind def
/S9 {BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare} bind def
/S10 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
Bsquare} bind def
/S11 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
Bsquare} bind def
/S12 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare} bind def
/S13 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
2 copy vpt Square fill Bsquare} bind def
/S14 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
/S15 {BL [] 0 setdash 2 copy Bsquare fill Bsquare} bind def
/D0 {gsave translate 45 rotate 0 0 S0 stroke grestore} bind def
/D1 {gsave translate 45 rotate 0 0 S1 stroke grestore} bind def
/D2 {gsave translate 45 rotate 0 0 S2 stroke grestore} bind def
/D3 {gsave translate 45 rotate 0 0 S3 stroke grestore} bind def
/D4 {gsave translate 45 rotate 0 0 S4 stroke grestore} bind def
/D5 {gsave translate 45 rotate 0 0 S5 stroke grestore} bind def
/D6 {gsave translate 45 rotate 0 0 S6 stroke grestore} bind def
/D7 {gsave translate 45 rotate 0 0 S7 stroke grestore} bind def
/D8 {gsave translate 45 rotate 0 0 S8 stroke grestore} bind def
/D9 {gsave translate 45 rotate 0 0 S9 stroke grestore} bind def
/D10 {gsave translate 45 rotate 0 0 S10 stroke grestore} bind def
/D11 {gsave translate 45 rotate 0 0 S11 stroke grestore} bind def
/D12 {gsave translate 45 rotate 0 0 S12 stroke grestore} bind def
/D13 {gsave translate 45 rotate 0 0 S13 stroke grestore} bind def
/D14 {gsave translate 45 rotate 0 0 S14 stroke grestore} bind def
/D15 {gsave translate 45 rotate 0 0 S15 stroke grestore} bind def
/DiaE {stroke [] 0 setdash vpt add M
hpt neg vpt neg V hpt vpt neg V
hpt vpt V hpt neg vpt V closepath stroke} def
/BoxE {stroke [] 0 setdash exch hpt sub exch vpt add M
0 vpt2 neg V hpt2 0 V 0 vpt2 V
hpt2 neg 0 V closepath stroke} def
/TriUE {stroke [] 0 setdash vpt 1.12 mul add M
hpt neg vpt -1.62 mul V
hpt 2 mul 0 V
hpt neg vpt 1.62 mul V closepath stroke} def
/TriDE {stroke [] 0 setdash vpt 1.12 mul sub M
hpt neg vpt 1.62 mul V
hpt 2 mul 0 V
hpt neg vpt -1.62 mul V closepath stroke} def
/PentE {stroke [] 0 setdash gsave
translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
closepath stroke grestore} def
/CircE {stroke [] 0 setdash
hpt 0 360 arc stroke} def
/Opaque {gsave closepath 1 setgray fill grestore 0 setgray closepath} def
/DiaW {stroke [] 0 setdash vpt add M
hpt neg vpt neg V hpt vpt neg V
hpt vpt V hpt neg vpt V Opaque stroke} def
/BoxW {stroke [] 0 setdash exch hpt sub exch vpt add M
0 vpt2 neg V hpt2 0 V 0 vpt2 V
hpt2 neg 0 V Opaque stroke} def
/TriUW {stroke [] 0 setdash vpt 1.12 mul add M
hpt neg vpt -1.62 mul V
hpt 2 mul 0 V
hpt neg vpt 1.62 mul V Opaque stroke} def
/TriDW {stroke [] 0 setdash vpt 1.12 mul sub M
hpt neg vpt 1.62 mul V
hpt 2 mul 0 V
hpt neg vpt -1.62 mul V Opaque stroke} def
/PentW {stroke [] 0 setdash gsave
translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
Opaque stroke grestore} def
/CircW {stroke [] 0 setdash
hpt 0 360 arc Opaque stroke} def
/BoxFill {gsave Rec 1 setgray fill grestore} def
/Density {
/Fillden exch def
currentrgbcolor
/ColB exch def /ColG exch def /ColR exch def
/ColR ColR Fillden mul Fillden sub 1 add def
/ColG ColG Fillden mul Fillden sub 1 add def
/ColB ColB Fillden mul Fillden sub 1 add def
ColR ColG ColB setrgbcolor} def
/BoxColFill {gsave Rec PolyFill} def
/PolyFill {gsave Density fill grestore grestore} def
/h {rlineto rlineto rlineto gsave closepath fill grestore} bind def
%
% PostScript Level 1 Pattern Fill routine for rectangles
% Usage: x y w h s a XX PatternFill
% x,y = lower left corner of box to be filled
% w,h = width and height of box
% a = angle in degrees between lines and x-axis
% XX = 0/1 for no/yes cross-hatch
%
/PatternFill {gsave /PFa [ 9 2 roll ] def
PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate
PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec
TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse
clip
currentlinewidth 0.5 mul setlinewidth
/PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def
0 0 M PFa 5 get rotate PFs -2 div dup translate
0 1 PFs PFa 4 get div 1 add floor cvi
{PFa 4 get mul 0 M 0 PFs V} for
0 PFa 6 get ne {
0 1 PFs PFa 4 get div 1 add floor cvi
{PFa 4 get mul 0 2 1 roll M PFs 0 V} for
} if
stroke grestore} def
%
/languagelevel where
{pop languagelevel} {1} ifelse
2 lt
{/InterpretLevel1 true def}
{/InterpretLevel1 Level1 def}
ifelse
%
% PostScript level 2 pattern fill definitions
%
/Level2PatternFill {
/Tile8x8 {/PaintType 2 /PatternType 1 /TilingType 1 /BBox [0 0 8 8] /XStep 8 /YStep 8}
bind def
/KeepColor {currentrgbcolor [/Pattern /DeviceRGB] setcolorspace} bind def
<< Tile8x8
/PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke}
>> matrix makepattern
/Pat1 exch def
<< Tile8x8
/PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke
0 4 M 4 8 L 8 4 L 4 0 L 0 4 L stroke}
>> matrix makepattern
/Pat2 exch def
<< Tile8x8
/PaintProc {0.5 setlinewidth pop 0 0 M 0 8 L
8 8 L 8 0 L 0 0 L fill}
>> matrix makepattern
/Pat3 exch def
<< Tile8x8
/PaintProc {0.5 setlinewidth pop -4 8 M 8 -4 L
0 12 M 12 0 L stroke}
>> matrix makepattern
/Pat4 exch def
<< Tile8x8
/PaintProc {0.5 setlinewidth pop -4 0 M 8 12 L
0 -4 M 12 8 L stroke}
>> matrix makepattern
/Pat5 exch def
<< Tile8x8
/PaintProc {0.5 setlinewidth pop -2 8 M 4 -4 L
0 12 M 8 -4 L 4 12 M 10 0 L stroke}
>> matrix makepattern
/Pat6 exch def
<< Tile8x8
/PaintProc {0.5 setlinewidth pop -2 0 M 4 12 L
0 -4 M 8 12 L 4 -4 M 10 8 L stroke}
>> matrix makepattern
/Pat7 exch def
<< Tile8x8
/PaintProc {0.5 setlinewidth pop 8 -2 M -4 4 L
12 0 M -4 8 L 12 4 M 0 10 L stroke}
>> matrix makepattern
/Pat8 exch def
<< Tile8x8
/PaintProc {0.5 setlinewidth pop 0 -2 M 12 4 L
-4 0 M 12 8 L -4 4 M 8 10 L stroke}
>> matrix makepattern
/Pat9 exch def
/Pattern1 {PatternBgnd KeepColor Pat1 setpattern} bind def
/Pattern2 {PatternBgnd KeepColor Pat2 setpattern} bind def
/Pattern3 {PatternBgnd KeepColor Pat3 setpattern} bind def
/Pattern4 {PatternBgnd KeepColor Landscape {Pat5} {Pat4} ifelse setpattern} bind def
/Pattern5 {PatternBgnd KeepColor Landscape {Pat4} {Pat5} ifelse setpattern} bind def
/Pattern6 {PatternBgnd KeepColor Landscape {Pat9} {Pat6} ifelse setpattern} bind def
/Pattern7 {PatternBgnd KeepColor Landscape {Pat8} {Pat7} ifelse setpattern} bind def
} def
%
%
%End of PostScript Level 2 code
%
/PatternBgnd {
TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse
} def
%
% Substitute for Level 2 pattern fill codes with
% grayscale if Level 2 support is not selected.
%
/Level1PatternFill {
/Pattern1 {0.250 Density} bind def
/Pattern2 {0.500 Density} bind def
/Pattern3 {0.750 Density} bind def
/Pattern4 {0.125 Density} bind def
/Pattern5 {0.375 Density} bind def
/Pattern6 {0.625 Density} bind def
/Pattern7 {0.875 Density} bind def
} def
%
% Now test for support of Level 2 code
%
Level1 {Level1PatternFill} {Level2PatternFill} ifelse
%
/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont
dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall
currentdict end definefont pop
/MFshow {
{ dup 5 get 3 ge
{ 5 get 3 eq {gsave} {grestore} ifelse }
{dup dup 0 get findfont exch 1 get scalefont setfont
[ currentpoint ] exch dup 2 get 0 exch R dup 5 get 2 ne {dup dup 6
get exch 4 get {Gshow} {stringwidth pop 0 R} ifelse }if dup 5 get 0 eq
{dup 3 get {2 get neg 0 exch R pop} {pop aload pop M} ifelse} {dup 5
get 1 eq {dup 2 get exch dup 3 get exch 6 get stringwidth pop -2 div
dup 0 R} {dup 6 get stringwidth pop -2 div 0 R 6 get
show 2 index {aload pop M neg 3 -1 roll neg R pop pop} {pop pop pop
pop aload pop M} ifelse }ifelse }ifelse }
ifelse }
forall} def
/Gswidth {dup type /stringtype eq {stringwidth} {pop (n) stringwidth} ifelse} def
/MFwidth {0 exch { dup 5 get 3 ge { 5 get 3 eq { 0 } { pop } ifelse }
{dup 3 get{dup dup 0 get findfont exch 1 get scalefont setfont
6 get Gswidth pop add} {pop} ifelse} ifelse} forall} def
/MLshow { currentpoint stroke M
0 exch R
Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
/MRshow { currentpoint stroke M
exch dup MFwidth neg 3 -1 roll R
Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
/MCshow { currentpoint stroke M
exch dup MFwidth -2 div 3 -1 roll R
Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
/XYsave { [( ) 1 2 true false 3 ()] } bind def
/XYrestore { [( ) 1 2 true false 4 ()] } bind def
Level1 SuppressPDFMark or
{} {
/SDict 10 dict def
systemdict /pdfmark known not {
userdict /pdfmark systemdict /cleartomark get put
} if
SDict begin [
/Title (dist_statesaving_size.eps)
/Subject (gnuplot plot)
/Creator (gnuplot 4.6 patchlevel 5 (Gentoo revision r0))
/Author (yentl)
% /Producer (gnuplot)
% /Keywords ()
/CreationDate (Mon Feb 2 09:46:02 2015)
/DOCINFO pdfmark
end
} ifelse
end
%%EndProlog
%%Page: 1 1
gnudict begin
gsave
doclip
50 50 translate
0.100 0.100 scale
0 setgray
newpath
(Helvetica) findfont 140 scalefont setfont
BackgroundColor 0 lt 3 1 roll 0 lt exch 0 lt or or not {gsave BackgroundColor C clippath fill grestore} if
1.000 UL
LTb
LCb setrgbcolor
770 448 M
63 0 V
3234 0 R
-63 0 V
stroke
686 448 M
[ [(Helvetica) 140.0 0.0 true true 0 ( 0)]
] -46.7 MRshow
1.000 UL
LTb
LCb setrgbcolor
770 1023 M
63 0 V
3234 0 R
-63 0 V
stroke
686 1023 M
[ [(Helvetica) 140.0 0.0 true true 0 ( 0.02)]
] -46.7 MRshow
1.000 UL
LTb
LCb setrgbcolor
770 1598 M
63 0 V
3234 0 R
-63 0 V
stroke
686 1598 M
[ [(Helvetica) 140.0 0.0 true true 0 ( 0.04)]
] -46.7 MRshow
1.000 UL
LTb
LCb setrgbcolor
770 2174 M
63 0 V
3234 0 R
-63 0 V
stroke
686 2174 M
[ [(Helvetica) 140.0 0.0 true true 0 ( 0.06)]
] -46.7 MRshow
1.000 UL
LTb
LCb setrgbcolor
770 2749 M
63 0 V
3234 0 R
-63 0 V
stroke
686 2749 M
[ [(Helvetica) 140.0 0.0 true true 0 ( 0.08)]
] -46.7 MRshow
1.000 UL
LTb
LCb setrgbcolor
770 3324 M
63 0 V
3234 0 R
-63 0 V
stroke
686 3324 M
[ [(Helvetica) 140.0 0.0 true true 0 ( 0.1)]
] -46.7 MRshow
1.000 UL
LTb
LCb setrgbcolor
770 3899 M
63 0 V
3234 0 R
-63 0 V
stroke
686 3899 M
[ [(Helvetica) 140.0 0.0 true true 0 ( 0.12)]
] -46.7 MRshow
1.000 UL
LTb
LCb setrgbcolor
770 448 M
0 63 V
0 3388 R
0 -63 V
stroke
770 308 M
[ [(Helvetica) 140.0 0.0 true true 0 ( 0)]
] -46.7 MCshow
1.000 UL
LTb
LCb setrgbcolor
1320 448 M
0 63 V
0 3388 R
0 -63 V
stroke
1320 308 M
[ [(Helvetica) 140.0 0.0 true true 0 ( 50)]
] -46.7 MCshow
1.000 UL
LTb
LCb setrgbcolor
1869 448 M
0 63 V
0 3388 R
0 -63 V
stroke
1869 308 M
[ [(Helvetica) 140.0 0.0 true true 0 ( 100)]
] -46.7 MCshow
1.000 UL
LTb
LCb setrgbcolor
2419 448 M
0 63 V
0 3388 R
0 -63 V
stroke
2419 308 M
[ [(Helvetica) 140.0 0.0 true true 0 ( 150)]
] -46.7 MCshow
1.000 UL
LTb
LCb setrgbcolor
2968 448 M
0 63 V
0 3388 R
0 -63 V
stroke
2968 308 M
[ [(Helvetica) 140.0 0.0 true true 0 ( 200)]
] -46.7 MCshow
1.000 UL
LTb
LCb setrgbcolor
3518 448 M
0 63 V
0 3388 R
0 -63 V
stroke
3518 308 M
[ [(Helvetica) 140.0 0.0 true true 0 ( 250)]
] -46.7 MCshow
1.000 UL
LTb
LCb setrgbcolor
4067 448 M
0 63 V
0 3388 R
0 -63 V
stroke
4067 308 M
[ [(Helvetica) 140.0 0.0 true true 0 ( 300)]
] -46.7 MCshow
1.000 UL
LTb
LCb setrgbcolor
1.000 UL
LTb
LCb setrgbcolor
770 3899 N
770 448 L
3297 0 V
0 3451 V
-3297 0 V
Z stroke
LCb setrgbcolor
112 2173 M
currentpoint gsave translate -270 rotate 0 0 moveto
[ [(Helvetica) 140.0 0.0 true true 0 (Time \(ms\))]
] -46.7 MCshow
grestore
LTb
LCb setrgbcolor
2418 98 M
[ [(Helvetica) 140.0 0.0 true true 0 (# of floats stored)]
] -46.7 MCshow
LTb
2418 4109 M
[ [(Helvetica) 140.0 0.0 true true 0 (State saving performance for big states)]
] -46.7 MCshow
1.000 UP
1.000 UL
LTb
LCb setrgbcolor
% Begin plot #1
5.000 UL
LT0
LC0 setrgbcolor
LCb setrgbcolor
1778 3766 M
[ [(Helvetica) 140.0 0.0 true true 0 (Custom copy)]
] -46.7 MRshow
LT0
1862 3766 M
399 0 V
770 474 M
55 0 V
55 1 V
55 3 V
55 -1 V
55 1 V
55 1 V
55 1 V
55 3 V
55 0 V
55 1 V
54 1 V
55 1 V
55 3 V
55 -1 V
55 1 V
55 1 V
55 3 V
55 -1 V
55 2 V
55 1 V
55 1 V
55 2 V
55 2 V
55 0 V
55 0 V
55 2 V
55 0 V
55 2 V
55 0 V
55 3 V
54 0 V
55 0 V
55 2 V
55 2 V
55 0 V
55 2 V
55 1 V
55 0 V
55 2 V
55 1 V
55 0 V
55 2 V
55 1 V
55 -1 V
55 2 V
55 2 V
55 0 V
55 1 V
55 2 V
55 0 V
54 3 V
55 1 V
55 0 V
55 1 V
55 2 V
55 0 V
55 2 V
55 1 V
55 0 V
% End plot #1
% Begin plot #2
stroke
LT1
LC1 setrgbcolor
LCb setrgbcolor
1778 3626 M
[ [(Helvetica) 140.0 0.0 true true 0 (Deepcopy)]
] -46.7 MRshow
LT1
1862 3626 M
399 0 V
770 893 M
55 67 V
55 42 V
55 48 V
55 49 V
55 45 V
55 44 V
55 48 V
55 49 V
55 48 V
55 47 V
54 44 V
55 50 V
55 47 V
55 44 V
55 52 V
55 31 V
55 60 V
55 48 V
55 34 V
55 60 V
55 48 V
55 43 V
55 48 V
55 41 V
55 53 V
55 39 V
55 61 V
55 39 V
55 47 V
55 45 V
54 44 V
55 46 V
55 54 V
55 35 V
55 52 V
55 43 V
55 49 V
55 38 V
55 56 V
55 40 V
55 52 V
55 43 V
55 49 V
55 38 V
55 61 V
55 46 V
55 45 V
55 55 V
55 38 V
55 34 V
54 53 V
55 39 V
55 43 V
55 54 V
55 40 V
55 43 V
55 60 V
55 37 V
55 46 V
% End plot #2
% Begin plot #3
stroke
LT2
LC2 setrgbcolor
LCb setrgbcolor
1778 3486 M
[ [(Helvetica) 140.0 0.0 true true 0 (cPickle)]
] -46.7 MRshow
LT2
1862 3486 M
399 0 V
770 844 M
55 25 V
55 14 V
55 14 V
55 17 V
55 14 V
55 12 V
55 19 V
55 14 V
55 21 V
55 18 V
54 14 V
55 15 V
55 16 V
55 15 V
55 10 V
55 16 V
55 23 V
55 6 V
55 23 V
55 15 V
55 19 V
55 13 V
55 17 V
55 6 V
55 24 V
55 14 V
55 20 V
55 8 V
55 20 V
55 13 V
54 18 V
55 12 V
55 19 V
55 10 V
55 21 V
55 18 V
55 16 V
55 12 V
55 11 V
55 9 V
55 23 V
55 7 V
55 21 V
55 12 V
55 20 V
55 15 V
55 19 V
55 13 V
55 18 V
55 10 V
54 14 V
55 17 V
55 18 V
55 10 V
55 20 V
55 20 V
55 14 V
55 20 V
55 16 V
% End plot #3
stroke
1.000 UL
LTb
LCb setrgbcolor
770 3899 N
770 448 L
3297 0 V
0 3451 V
-3297 0 V
Z stroke
1.000 UP
1.000 UL
LTb
LCb setrgbcolor
stroke
grestore
end
showpage
%%Trailer
%%DocumentFonts: Helvetica
%%Pages: 1

View file

@ -0,0 +1,14 @@
import sys
sys.setrecursionlimit(20000)
import random
sys.path.append("../../src/")
from simulator import Simulator
from model import DEVStone
model = DEVStone(3, int(sys.argv[1]), False)
sim = Simulator(model)
sim.setMessageCopy('custom')
sim.setStateSaving(str(sys.argv[2]))
sim.setTerminationTime(1000)
sim.setSchedulerMinimalList()
sim.simulate()

View file

@ -0,0 +1,121 @@
import sys
sys.path.append("../../src/")
from infinity import INFINITY
from simulator import Simulator
from DEVS import *
import random
class Event(object):
def __init__(self, eventSize):
self.eventSize = eventSize
def copy(self):
return Event(self.eventSize)
class ProcessorState(object):
def __init__(self):
self.event1_counter = INFINITY
self.event1 = None
self.queue = []
def copy(self):
a = ProcessorState()
a.event1_counter = self.event1_counter
a.event1 = None if self.event1 is None else self.event1.copy()
a.queue = [i.copy() for i in self.queue]
return a
class Processor(AtomicDEVS):
def __init__(self, name, randomta):
AtomicDEVS.__init__(self, name)
self.recv_event1 = self.addInPort("in_event1")
self.send_event1 = self.addOutPort("out_event1")
self.state = ProcessorState()
self.randomta = randomta
def timeAdvance(self):
return self.state.event1_counter
def intTransition(self):
self.state.event1_counter -= self.timeAdvance()
if self.state.event1_counter == 0 and self.state.queue == []:
self.state.event1_counter = INFINITY
self.state.event1 = None
else:
self.state.event1 = self.state.queue.pop()
self.state.event1_counter = round(random.uniform(0.75, 1.25), 4) if self.randomta else 1.0
return self.state
def extTransition(self, inputs):
self.state.event1_counter -= self.elapsed
#Only one element, so exploit this
ev1 = inputs[self.recv_event1][0]
if self.state.event1 is not None:
self.state.queue.append(ev1)
else:
self.state.event1 = ev1
self.state.event1_counter = round(random.uniform(0.75, 1.25), 4) if self.randomta else 1.0
return self.state
def outputFnc(self):
return {self.send_event1: [self.state.event1]}
class GeneratorState(object):
def __init__(self):
pass
def copy(self):
return GeneratorState()
class Generator(AtomicDEVS):
def __init__(self):
AtomicDEVS.__init__(self, "Generator")
self.state = GeneratorState()
self.send_event1 = self.addOutPort("out_event1")
def timeAdvance(self):
return 1
def intTransition(self):
return self.state
def outputFnc(self):
return {self.send_event1: [Event(1)]}
class CoupledRecursion(CoupledDEVS):
def __init__(self, width, depth, randomta):
CoupledDEVS.__init__(self, "Coupled" + str(depth))
self.recv_event1 = self.addInPort("in_event1")
self.send_event1 = self.addOutPort("out_event1")
if depth > 1:
self.recurse = self.addSubModel(CoupledRecursion(width, depth-1, randomta))
self.connectPorts(self.recv_event1, self.recurse.recv_event1)
for i in range(width):
processor = self.addSubModel(Processor("Processor%s_%s" % (depth, i), randomta))
if i == 0:
if depth > 1:
self.connectPorts(self.recurse.send_event1, processor.recv_event1)
else:
self.connectPorts(self.recv_event1, processor.recv_event1)
else:
self.connectPorts(prev.send_event1, processor.recv_event1)
prev = processor
self.connectPorts(prev.send_event1, self.send_event1)
class DEVStone(CoupledDEVS):
def __init__(self, width, depth, randomta):
random.seed(1)
CoupledDEVS.__init__(self, "DEVStone")
self.generator1 = self.addSubModel(Generator(), 0)
self.generator2 = self.addSubModel(Generator(), 1)
self.generator3 = self.addSubModel(Generator(), 2)
self.recurse1 = self.addSubModel(CoupledRecursion(width, depth, randomta), 0)
self.recurse2 = self.addSubModel(CoupledRecursion(width, depth, randomta), 1)
self.recurse3 = self.addSubModel(CoupledRecursion(width, depth, randomta), 2)
self.connectPorts(self.generator1.send_event1, self.recurse1.recv_event1)
self.connectPorts(self.generator2.send_event1, self.recurse2.recv_event1)
self.connectPorts(self.generator3.send_event1, self.recurse3.recv_event1)

View file

@ -0,0 +1,58 @@
# New benchmark that only compares different methods in function of the state complexity
# This benchmark works out of the context of a real simulation!
# Complexity is defined as the number of attributes
from copy import deepcopy
import cPickle as pickle
import time
import random
class AttributesState(object):
def __init__(self, complexity):
self.complexity = complexity
for f in xrange(complexity):
setattr(self, str(f), None)
def set_initial(self):
for f in xrange(complexity):
setattr(self, str(f), random.random())
def copy(self):
a = AttributesState(self.complexity)
for f in xrange(self.complexity):
setattr(a, str(f), getattr(self, str(f)))
return a
class SizeState(object):
def __init__(self, complexity):
self.values = [None] * complexity
self.complexity = complexity
def set_initial(self):
self.values = [random.random() for _ in xrange(complexity)]
def copy(self):
a = SizeState(self.complexity)
a.values = list(self.values)
return a
def benchmark(s, f, out):
samples = 1000
for c in range(0, 300, 5):
if s == "AttributesState":
state = AttributesState(c)
elif s == "SizeState":
state = SizeState(c)
start = time.time()
for _ in xrange(samples):
f(state)
t = (time.time() - start) / samples * 1000
print("%i %f" % (c, t))
out.write("%i %f\n" % (c, t))
for s in ["AttributesState", "SizeState"]:
for f in [("deepcopy", lambda i: deepcopy(i)), ("pickle", lambda i: pickle.loads(pickle.dumps(i))), ("custom", lambda i: i.copy())]:
print("%s -- %s" % (s, f[0]))
out = open("%s_%s" % (s, f[0]), 'w')
benchmark(s, f[1], out)
out.close()

View file

@ -0,0 +1,14 @@
set terminal postscript enhanced colour portrait size 6,6
set key top left
set ylabel "Time (ms)"
set out 'dist_statesaving_attributes.eps'
set title "State saving performance for complex states"
set xlabel "# of attributes"
plot 'AttributesState_custom' w l lw 5 title 'Custom copy', 'AttributesState_deepcopy' w l lw 5 title 'Deepcopy', 'AttributesState_pickle' w l lw 5 title 'cPickle'
set out 'dist_statesaving_size.eps'
set title "State saving performance for big states"
set xlabel "# of floats stored"
plot 'SizeState_custom' w l lw 5 title 'Custom copy', 'SizeState_deepcopy' w l lw 5 title 'Deepcopy', 'SizeState_pickle' w l lw 5 title 'cPickle'

View file

@ -0,0 +1,8 @@
# The one with (nearly) no collisions
set terminal postscript enhanced colour portrait size 6,6
set out 'dist_statesaving.eps'
set key top left
set title "Different state saving methods"
set xlabel "Models"
set ylabel "Time (s)"
plot 'dist_statesaving/result_deepcopy' title 'Deepcopy', 'dist_statesaving/result_pickleH' title 'Pickle', 'dist_statesaving/result_custom' title 'Custom'

View file

@ -0,0 +1,14 @@
10 2.11731443405
20 3.81860218048
30 5.56660022736
40 7.06189417839
50 8.97253904343
60 10.7890932083
70 12.4169569969
80 14.2634520531
90 15.5066562176
100 17.4200770378
110 18.9588521481
120 20.3954129696
130 22.0524750233
140 23.8947278023

View file

@ -0,0 +1,14 @@
10 4.43996171951
20 8.52856974602
30 11.9228561878
40 15.5679506302
50 19.1197244644
60 22.6907748222
70 26.2482144356
80 29.6274041176
90 33.0170782089
100 36.0029354572
110 39.4415247917
120 42.1603072166
130 45.0529107571
140 47.7949131489

View file

@ -0,0 +1,14 @@
10 2.51158723831
20 4.2381216526
30 6.98485021591
40 8.37666840553
50 9.89500045776
60 12.1709056377
70 13.6901934147
80 15.3912380695
90 17.264413023
100 18.867457819
110 20.4762582779
120 22.174964571
130 23.6225497246
140 25.0121040344

View file

@ -0,0 +1,27 @@
#!/bin/env python
import sys
sys.path.append("../../src/")
import time
sys.setrecursionlimit(10000)
iters = int(sys.argv[1])
nrmodels = range(10, 150, 10)
nodes = 100
import subprocess
output = open('/tmp/output', 'w')
for statesaving in ["custom", "deepcopy", "pickleH"]:
f = open("dist_statesaving/result_" + str(statesaving), 'w')
for models in nrmodels:
total = 0.0
for _ in range(iters):
command = "mpirun -np 3 python dist_statesaving/experiment.py %i %s" % (models, statesaving)
start = time.time()
subprocess.check_output(command, shell=True, stderr=output)
total += (time.time() - start)
f.write("%i %s\n" % (models, total/iters))
print("%i %s" % (models, total/iters))
f.close()