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,794 @@
%!PS-Adobe-2.0
%%Title: dist_memo.eps
%%Creator: gnuplot 4.6 patchlevel 5 (Gentoo revision r0)
%%CreationDate: Mon Feb 2 09:56:58 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_memo.eps)
/Subject (gnuplot plot)
/Creator (gnuplot 4.6 patchlevel 5 (Gentoo revision r0))
/Author (yentl)
% /Producer (gnuplot)
% /Keywords ()
/CreationDate (Mon Feb 2 09:56:58 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
686 448 M
63 0 V
3318 0 R
-63 0 V
stroke
602 448 M
[ [(Helvetica) 140.0 0.0 true true 0 ( 0)]
] -46.7 MRshow
1.000 UL
LTb
LCb setrgbcolor
686 1075 M
63 0 V
3318 0 R
-63 0 V
stroke
602 1075 M
[ [(Helvetica) 140.0 0.0 true true 0 ( 20)]
] -46.7 MRshow
1.000 UL
LTb
LCb setrgbcolor
686 1703 M
63 0 V
3318 0 R
-63 0 V
stroke
602 1703 M
[ [(Helvetica) 140.0 0.0 true true 0 ( 40)]
] -46.7 MRshow
1.000 UL
LTb
LCb setrgbcolor
686 2330 M
63 0 V
3318 0 R
-63 0 V
stroke
602 2330 M
[ [(Helvetica) 140.0 0.0 true true 0 ( 60)]
] -46.7 MRshow
1.000 UL
LTb
LCb setrgbcolor
686 2958 M
63 0 V
3318 0 R
-63 0 V
stroke
602 2958 M
[ [(Helvetica) 140.0 0.0 true true 0 ( 80)]
] -46.7 MRshow
1.000 UL
LTb
LCb setrgbcolor
686 3585 M
63 0 V
3318 0 R
-63 0 V
stroke
602 3585 M
[ [(Helvetica) 140.0 0.0 true true 0 ( 100)]
] -46.7 MRshow
1.000 UL
LTb
LCb setrgbcolor
686 448 M
0 63 V
0 3388 R
0 -63 V
stroke
686 308 M
[ [(Helvetica) 140.0 0.0 true true 0 ( 0)]
] -46.7 MCshow
1.000 UL
LTb
LCb setrgbcolor
1109 448 M
0 63 V
0 3388 R
0 -63 V
stroke
1109 308 M
[ [(Helvetica) 140.0 0.0 true true 0 ( 100)]
] -46.7 MCshow
1.000 UL
LTb
LCb setrgbcolor
1531 448 M
0 63 V
0 3388 R
0 -63 V
stroke
1531 308 M
[ [(Helvetica) 140.0 0.0 true true 0 ( 200)]
] -46.7 MCshow
1.000 UL
LTb
LCb setrgbcolor
1954 448 M
0 63 V
0 3388 R
0 -63 V
stroke
1954 308 M
[ [(Helvetica) 140.0 0.0 true true 0 ( 300)]
] -46.7 MCshow
1.000 UL
LTb
LCb setrgbcolor
2377 448 M
0 63 V
0 3388 R
0 -63 V
stroke
2377 308 M
[ [(Helvetica) 140.0 0.0 true true 0 ( 400)]
] -46.7 MCshow
1.000 UL
LTb
LCb setrgbcolor
2799 448 M
0 63 V
0 3388 R
0 -63 V
stroke
2799 308 M
[ [(Helvetica) 140.0 0.0 true true 0 ( 500)]
] -46.7 MCshow
1.000 UL
LTb
LCb setrgbcolor
3222 448 M
0 63 V
0 3388 R
0 -63 V
stroke
3222 308 M
[ [(Helvetica) 140.0 0.0 true true 0 ( 600)]
] -46.7 MCshow
1.000 UL
LTb
LCb setrgbcolor
3644 448 M
0 63 V
0 3388 R
0 -63 V
stroke
3644 308 M
[ [(Helvetica) 140.0 0.0 true true 0 ( 700)]
] -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 ( 800)]
] -46.7 MCshow
1.000 UL
LTb
LCb setrgbcolor
1.000 UL
LTb
LCb setrgbcolor
686 3899 N
686 448 L
3381 0 V
0 3451 V
-3381 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 \(s\))]
] -46.7 MCshow
grestore
LTb
LCb setrgbcolor
2376 98 M
[ [(Helvetica) 140.0 0.0 true true 0 (Transition function load \(ms\))]
] -46.7 MCshow
LTb
2376 4109 M
[ [(Helvetica) 140.0 0.0 true true 0 (Influence of memoization)]
] -46.7 MCshow
1.000 UP
1.000 UL
LTb
LCb setrgbcolor
% Begin plot #1
5.000 UL
LT0
LC0 setrgbcolor
LCb setrgbcolor
2366 3766 M
[ [(Helvetica) 140.0 0.0 true true 0 (With memoization)]
] -46.7 MRshow
LT0
2450 3766 M
399 0 V
1077 796 M
79 46 V
78 52 V
78 42 V
78 47 V
79 52 V
78 48 V
78 49 V
78 42 V
79 46 V
78 61 V
78 64 V
78 23 V
79 65 V
78 43 V
78 36 V
79 52 V
78 48 V
78 53 V
78 59 V
79 28 V
78 57 V
78 50 V
78 63 V
79 43 V
78 39 V
78 71 V
78 51 V
79 30 V
78 65 V
78 57 V
79 33 V
78 58 V
78 38 V
78 55 V
79 53 V
% End plot #1
% Begin plot #2
stroke
LT1
LC1 setrgbcolor
LCb setrgbcolor
2366 3626 M
[ [(Helvetica) 140.0 0.0 true true 0 (Without memoization)]
] -46.7 MRshow
LT1
2450 3626 M
399 0 V
1077 928 M
79 68 V
78 94 V
78 61 V
78 78 V
79 57 V
78 95 V
78 69 V
78 91 V
79 84 V
78 49 V
78 54 V
78 169 V
79 4 V
78 96 V
78 42 V
79 113 V
78 63 V
78 54 V
78 84 V
79 116 V
78 90 V
78 5 V
78 96 V
79 147 V
78 36 V
78 42 V
78 91 V
79 92 V
78 17 V
78 106 V
79 69 V
78 86 V
78 91 V
78 75 V
79 74 V
% End plot #2
stroke
1.000 UL
LTb
LCb setrgbcolor
686 3899 N
686 448 L
3381 0 V
0 3451 V
-3381 0 V
Z stroke
1.000 UP
1.000 UL
LTb
LCb setrgbcolor
stroke
grestore
end
showpage
%%Trailer
%%DocumentFonts: Helvetica
%%Pages: 1

76
models/dist_memo/model.py Normal file
View file

@ -0,0 +1,76 @@
import random
import sys
sys.path.append("../../../src/")
sys.path.append("../../src/")
from DEVS import AtomicDEVS, CoupledDEVS
class Node(AtomicDEVS):
def __init__(self, nr, load):
AtomicDEVS.__init__(self, "Node" + str(nr))
self.state = None
self.load = load
def intTransition(self):
for _ in xrange(self.load):
pass
return self.state
def extTransition(self, inputs):
return self.state
def timeAdvance(self):
return 1.0
def outputFnc(self):
return {}
class ExchangeModel(AtomicDEVS):
def __init__(self):
AtomicDEVS.__init__(self, "Exchange")
self.state = None
self.inport = self.addInPort("in")
self.outport = self.addOutPort("out")
def intTransition(self):
return self.state
def extTransition(self, inputs):
return self.state
def timeAdvance(self):
return 1.0
def outputFnc(self):
return {self.outport: [None]}
class NodeGrid(CoupledDEVS):
def __init__(self, load):
CoupledDEVS.__init__(self, "Grid")
for i in range(800):
self.addSubModel(Node(i, load))
class DualGrid(CoupledDEVS):
def __init__(self, load):
CoupledDEVS.__init__(self, "Root")
grid1 = self.addSubModel(NodeGrid(load), 0)
grid2 = self.addSubModel(NodeGrid(load), 1)
grid1_node = self.addSubModel(ExchangeModel(), 0)
grid2_node = self.addSubModel(ExchangeModel(), 1)
self.connectPorts(grid1_node.outport, grid2_node.inport)
self.connectPorts(grid2_node.outport, grid1_node.inport)
if __name__ == "__main__":
random.seed(1)
from simulator import Simulator
model = DualGrid(int(sys.argv[1]))
sim = Simulator(model)
sim.setTerminationTime(100)
#sim.setVerbose(True)
sim.setMessageCopy('none')
sim.setStateSaving('assign')
sim.setGVTInterval(5)
memo = True if sys.argv[2] == "True" else False
sim.setMemoization(memo)
sim.setSchedulerSortedList()
sim.simulate()

8
models/dist_memo/plot Normal file
View file

@ -0,0 +1,8 @@
set terminal postscript enhanced colour portrait size 6,6
set out 'dist_memo.eps'
set xlabel "Transition function load (ms)"
set ylabel "Time (s)"
set key top left
set yrange [0:110]
set title "Influence of memoization"
plot 'result_True_ok' using ($1/54):(($2+$3+$4)/3) w l lw 5 title 'With memoization', 'result_False_ok' using ($1/54):(($2+$3+$4)/3) w l lw 5 title 'Without memoization'

View file

@ -0,0 +1,36 @@
5000 15.18 15.54 15.22 15.89 14.98
6000 18.69 17.27 17.73 17.4 18.25
7000 20.47 21.03 19.92 21.15 19.77
8000 22.71 22.41 23.76 22.08 21.88
9000 24.95 24.82 24.94 25.3 25.13
10000 26.67 27.34 27.24 26.66 26.8
11000 29.57 29.92 30.68 31.59 29.71
12000 33.32 31.83 32.73 31.43 32.56
13000 34.8 34.33 34.85 34.82 34.36
14000 37.55 36.98 36.09 37.39 37.65
15000 38.97 39.0 38.49 39.42 39.29
16000 40.17 40.88 41.88 43.26 41.35
17000 46.76 45.51 46.27 43.16 44.91
18000 45.96 46.62 46.89 46.37 46.93
19000 48.71 48.08 48.92 49.85 49.38
20000 50.06 52.29 50.58 51.54 49.46
21000 54.36 55.07 52.96 53.52 55.93
22000 55.17 56.19 56.55 55.98 56.26
23000 57.82 59.81 57.76 58.56 59.02
24000 62.78 61.87 60.06 61.01 61.1
25000 64.29 64.83 63.42 64.46 64.52
26000 65.86 67.18 66.64 67.03 67.66
27000 67.59 69.28 69.0 67.31 67.45
28000 69.6 70.37 69.59 71.05 70.13
29000 78.62 75.45 74.93 75.21 73.57
30000 75.22 76.2 76.94 73.67 75.85
31000 77.41 77.36 78.44 78.22 79.34
32000 81.05 77.96 79.34 81.38 78.65
33000 83.35 83.67 83.53 83.02 82.55
34000 86.3 84.01 84.0 83.32 84.18
35000 86.61 87.8 87.9 85.31 88.81
36000 91.42 89.79 89.24 89.58 89.51
37000 91.02 92.08 91.93 92.72 92.35
38000 95.61 95.45 93.87 97.03 94.77
39000 97.01 98.25 96.19 97.74 100.61
40000 97.89 98.44 100.09 101.01 99.01

View file

@ -0,0 +1,36 @@
5000 15.18 15.54 15.22
6000 17.27 17.73 17.4
7000 20.47 21.03 19.92
8000 22.71 22.41 22.08
9000 24.95 24.82 24.94
10000 26.67 26.66 26.8
11000 29.57 29.92 29.71
12000 31.83 31.43 32.56
13000 34.8 34.85 34.82
14000 37.55 37.39 37.65
15000 38.97 39.0 39.29
16000 40.17 40.88 41.35
17000 46.76 45.51 46.27
18000 45.96 46.62 46.37
19000 48.92 49.85 49.38
20000 50.06 50.58 51.54
21000 54.36 55.07 53.52
22000 56.19 56.55 56.26
23000 57.82 57.76 58.56
24000 60.06 61.01 61.1
25000 64.29 64.46 64.52
26000 67.18 67.03 67.66
27000 67.59 67.31 67.45
28000 70.37 71.05 70.13
29000 75.45 74.93 75.21
30000 76.2 76.94 75.85
31000 77.41 77.36 78.22
32000 81.05 79.34 81.38
33000 83.35 83.67 83.53
34000 84.01 84.0 84.18
35000 86.61 87.8 87.9
36000 89.79 89.58 89.51
37000 92.08 92.72 92.35
38000 95.61 95.45 94.77
39000 97.01 98.25 97.74
40000 100.09 101.01 99.01

View file

@ -0,0 +1,36 @@
5000 11.62 11.08 11.05 11.15 11.27
6000 12.58 12.56 12.8 12.55 12.7
7000 13.92 14.15 14.39 14.12 14.35
8000 15.51 15.62 15.68 15.54 15.4
9000 16.99 17.26 16.93 17.45 17.21
10000 18.71 18.83 18.72 18.94 18.71
11000 20.04 20.32 20.71 20.26 20.14
12000 21.93 21.74 22.0 21.57 21.7
13000 23.1 23.02 23.26 23.37 23.61
14000 24.79 24.44 25.34 24.62 24.91
15000 26.61 26.41 26.2 26.11 26.61
16000 27.66 28.83 28.48 28.42 27.78
17000 30.09 29.33 29.24 29.84 29.38
18000 30.88 31.52 31.4 31.31 30.47
19000 33.11 32.86 32.81 32.59 32.25
20000 33.96 33.91 33.92 33.83 33.63
21000 35.65 35.44 36.26 35.23 35.59
22000 37.02 37.04 37.43 37.24 37.89
23000 38.6 38.86 39.58 39.7 38.88
24000 40.63 40.31 40.78 40.29 40.62
25000 42.83 41.28 42.15 41.49 41.94
26000 44.15 43.5 43.61 43.39 43.24
27000 45.0 45.0 44.95 45.19 44.69
28000 47.12 47.1 46.74 47.57 47.79
29000 48.32 48.14 48.57 48.88 49.2
30000 49.55 49.27 49.67 49.9 49.56
31000 51.39 51.82 51.84 51.18 51.91
32000 52.6 53.69 53.2 52.7 53.56
33000 56.58 54.43 55.21 54.64 54.26
34000 55.75 55.04 56.31 56.51 56.72
35000 59.16 58.69 57.37 58.75 57.54
36000 58.63 60.15 59.23 59.5 59.46
37000 60.1 61.19 61.32 62.12 61.16
38000 62.84 63.24 61.88 62.21 62.32
39000 64.48 64.07 64.94 64.02 63.84
40000 65.98 67.58 65.87 65.84 66.06

View file

@ -0,0 +1,36 @@
5000 11.08 11.05 11.15
6000 12.58 12.56 12.55
7000 14.15 14.12 14.35
8000 15.51 15.62 15.54
9000 16.99 16.93 17.21
10000 18.71 18.72 18.71
11000 20.32 20.26 20.14
12000 21.93 21.74 21.7
13000 23.1 23.02 23.26
14000 24.79 24.44 24.62
15000 26.61 26.41 26.61
16000 28.83 28.48 28.42
17000 29.33 29.24 29.38
18000 31.52 31.4 31.31
19000 32.86 32.81 32.59
20000 33.96 33.91 33.92
21000 35.65 35.44 35.59
22000 37.02 37.04 37.24
23000 38.6 38.86 38.88
24000 40.63 40.78 40.62
25000 41.28 41.49 41.94
26000 43.5 43.39 43.24
27000 45.0 45.0 44.95
28000 47.12 47.1 46.74
29000 48.32 48.14 48.57
30000 49.55 49.67 49.56
31000 51.82 51.84 51.91
32000 53.69 53.2 53.56
33000 54.43 54.64 54.26
34000 56.31 56.51 56.72
35000 58.69 58.75 57.54
36000 59.23 59.5 59.46
37000 61.19 61.32 61.16
38000 62.84 62.21 62.32
39000 64.48 64.07 64.02
40000 65.98 65.87 65.84

27
models/dist_memo/timer.py Normal file
View file

@ -0,0 +1,27 @@
#!/bin/env python
import sys
sys.path.append("../../src/")
import time
sys.setrecursionlimit(10000)
loads = range(10000, 100000, 5000)
iters = int(sys.argv[1])
import subprocess
output = open('/tmp/output', 'w')
for memo in [True, False]:
f = open("dist_memo/result_%s" % (memo), 'w')
for load in loads:
val = str(load)
for _ in range(iters):
command = "mpirun -np 2 python dist_memo/model.py %i %s"
command = (command % (load, memo))
start = time.time()
subprocess.check_output(command, shell=True, stderr=output)
val += " %s" % (round(time.time() - start, 2))
f.write("%s\n" % (val))
print(val)
f.close()