[Gs-commits] Grayskull Repository branch, master, updated. git-migration-133-gcfc0140
A ref change was pushed to the repository containing the project "Grayskull Repository". The branch, master has been updated via cfc014074f25e82702190f00f988d749716f8edf (commit) from 77c98a63c08ca71ca40e80f152592faa30d420f9 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit cfc014074f25e82702190f00f988d749716f8edf Author: slang <[email protected]> Date: Fri Oct 30 15:59:45 2009 -0500 added more files. ----------------------------------------------------------------------- Summary of changes: .../REFERENCES.bib | 0 .../average-detection-time.eps | 823 +++++++++++ .../Grayskull-EpidemicFD/average-detection-time.gp | 9 + .../average-detection-time.pdf | 68 + papers/Grayskull-EpidemicFD/detection-probs.hs | 107 ++ papers/Grayskull-EpidemicFD/failure-gdinterval.pdf | Bin 0 -> 19685 bytes papers/Grayskull-EpidemicFD/failure-gdinterval.svg | 238 +++ papers/Grayskull-EpidemicFD/gossip-markov-prob.hs | 262 ++++ papers/Grayskull-EpidemicFD/load-calc-compare.eps | 877 +++++++++++ papers/Grayskull-EpidemicFD/load-calc-compare.pdf | Bin 0 -> 2545 bytes papers/Grayskull-EpidemicFD/load-calc-swim.eps | 1215 ++++++++++++++++ papers/Grayskull-EpidemicFD/load-calc-swim.pdf | Bin 0 -> 3919 bytes papers/Grayskull-EpidemicFD/load-calc.eps | 1532 ++++++++++++++++++++ papers/Grayskull-EpidemicFD/load-calc.gp | 38 + .../markov-infect-probs-n128.data | 36 + .../markov-infect-probs-zoom1.eps | 640 ++++++++ .../markov-infect-probs-zoom1.pdf | Bin 0 -> 1558 bytes .../markov-infect-probs-zoom2.eps | 691 +++++++++ .../markov-infect-probs-zoom2.pdf | Bin 0 -> 1656 bytes .../Grayskull-EpidemicFD/markov-infect-probs.eps | 684 +++++++++ .../Grayskull-EpidemicFD/markov-infect-probs.pdf | Bin 0 -> 1690 bytes 21 files changed, 7220 insertions(+), 0 deletions(-) copy papers/{Grayskull-ProgrammingModel => Grayskull-EpidemicFD}/REFERENCES.bib (100%) create mode 100644 papers/Grayskull-EpidemicFD/average-detection-time.eps create mode 100644 papers/Grayskull-EpidemicFD/average-detection-time.gp create mode 100644 papers/Grayskull-EpidemicFD/average-detection-time.pdf create mode 100644 papers/Grayskull-EpidemicFD/detection-probs.hs create mode 100644 papers/Grayskull-EpidemicFD/failure-gdinterval.pdf create mode 100644 papers/Grayskull-EpidemicFD/failure-gdinterval.svg create mode 100644 papers/Grayskull-EpidemicFD/gossip-markov-prob.hs create mode 100644 papers/Grayskull-EpidemicFD/load-calc-compare.eps create mode 100644 papers/Grayskull-EpidemicFD/load-calc-compare.pdf create mode 100644 papers/Grayskull-EpidemicFD/load-calc-swim.eps create mode 100644 papers/Grayskull-EpidemicFD/load-calc-swim.pdf create mode 100644 papers/Grayskull-EpidemicFD/load-calc.eps create mode 100644 papers/Grayskull-EpidemicFD/load-calc.gp create mode 100644 papers/Grayskull-EpidemicFD/markov-infect-probs-n128.data create mode 100644 papers/Grayskull-EpidemicFD/markov-infect-probs-zoom1.eps create mode 100644 papers/Grayskull-EpidemicFD/markov-infect-probs-zoom1.pdf create mode 100644 papers/Grayskull-EpidemicFD/markov-infect-probs-zoom2.eps create mode 100644 papers/Grayskull-EpidemicFD/markov-infect-probs-zoom2.pdf create mode 100644 papers/Grayskull-EpidemicFD/markov-infect-probs.eps create mode 100644 papers/Grayskull-EpidemicFD/markov-infect-probs.pdf Diff of changes: diff --git a/papers/Grayskull-ProgrammingModel/REFERENCES.bib b/papers/Grayskull-EpidemicFD/REFERENCES.bib similarity index 100% copy from papers/Grayskull-ProgrammingModel/REFERENCES.bib copy to papers/Grayskull-EpidemicFD/REFERENCES.bib diff --git a/papers/Grayskull-EpidemicFD/average-detection-time.eps b/papers/Grayskull-EpidemicFD/average-detection-time.eps new file mode 100644 index 0000000..1d7c34f --- /dev/null +++ b/papers/Grayskull-EpidemicFD/average-detection-time.eps @@ -0,0 +1,823 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: average-detection-time.eps +%%Creator: gnuplot 4.2 patchlevel 3 +%%CreationDate: Tue Sep 8 23:45:12 2009 +%%DocumentFonts: (atend) +%%BoundingBox: 50 50 410 302 +%%EndComments +%%BeginProlog +/gnudict 256 dict def +gnudict begin +% +% The following 6 true/false flags may be edited by hand if required +% The unit line width 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 +/TransparentPatterns false def +/gnulinewidth 5.000 def +/userlinewidth gnulinewidth def +% +/vshift -66 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 +Level1 {} { +/SDict 10 dict def +systemdict /pdfmark known not { + userdict /pdfmark systemdict /cleartomark get put +} if +SDict begin [ + /Title (average-detection-time.eps) + /Subject (gnuplot plot) + /Creator (gnuplot 4.2 patchlevel 3 ) + /Author (slang) +% /Producer (gnuplot) +% /Keywords () + /CreationDate (Tue Sep 8 23:45:12 2009) + /DOCINFO pdfmark +end +} ifelse +% +% Gnuplot Prolog Version 4.2 (August 2006) +% +/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 +/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 +% 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 + gsave 1 setgray fill grestore 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 {show} {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} bind 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 stringwidth pop add} {pop} ifelse} ifelse} forall} bind 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 +end +%%EndProlog +gnudict begin +gsave +50 50 translate +0.050 0.050 scale +0 setgray +newpath +(Helvetica) findfont 200 scalefont setfont +1.000 UL +LTb +1020 600 M +63 0 V +5777 0 R +-63 0 V +stroke +900 600 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 1.5)] +] -66.7 MRshow +1.000 UL +LTb +1020 982 M +63 0 V +5777 0 R +-63 0 V +stroke +900 982 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 1.6)] +] -66.7 MRshow +1.000 UL +LTb +1020 1364 M +63 0 V +5777 0 R +-63 0 V +stroke +900 1364 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 1.7)] +] -66.7 MRshow +1.000 UL +LTb +1020 1745 M +63 0 V +5777 0 R +-63 0 V +stroke +900 1745 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 1.8)] +] -66.7 MRshow +1.000 UL +LTb +1020 2127 M +63 0 V +5777 0 R +-63 0 V +stroke +900 2127 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 1.9)] +] -66.7 MRshow +1.000 UL +LTb +1020 2509 M +63 0 V +5777 0 R +-63 0 V +stroke +900 2509 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 2)] +] -66.7 MRshow +1.000 UL +LTb +1020 2891 M +63 0 V +5777 0 R +-63 0 V +stroke +900 2891 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 2.1)] +] -66.7 MRshow +1.000 UL +LTb +1020 3273 M +63 0 V +5777 0 R +-63 0 V +stroke +900 3273 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 2.2)] +] -66.7 MRshow +1.000 UL +LTb +1020 3655 M +63 0 V +5777 0 R +-63 0 V +stroke +900 3655 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 2.3)] +] -66.7 MRshow +1.000 UL +LTb +1020 4036 M +63 0 V +5777 0 R +-63 0 V +stroke +900 4036 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 2.4)] +] -66.7 MRshow +1.000 UL +LTb +1020 4418 M +63 0 V +5777 0 R +-63 0 V +stroke +900 4418 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 2.5)] +] -66.7 MRshow +1.000 UL +LTb +1020 4800 M +63 0 V +5777 0 R +-63 0 V +stroke +900 4800 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 2.6)] +] -66.7 MRshow +1.000 UL +LTb +1497 600 M +0 63 V +0 4137 R +0 -63 V +stroke +1497 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 0.05)] +] -66.7 MCshow +1.000 UL +LTb +2093 600 M +0 63 V +0 4137 R +0 -63 V +stroke +2093 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 0.1)] +] -66.7 MCshow +1.000 UL +LTb +2689 600 M +0 63 V +0 4137 R +0 -63 V +stroke +2689 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 0.15)] +] -66.7 MCshow +1.000 UL +LTb +3284 600 M +0 63 V +0 4137 R +0 -63 V +stroke +3284 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 0.2)] +] -66.7 MCshow +1.000 UL +LTb +3880 600 M +0 63 V +0 4137 R +0 -63 V +stroke +3880 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 0.25)] +] -66.7 MCshow +1.000 UL +LTb +4476 600 M +0 63 V +0 4137 R +0 -63 V +stroke +4476 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 0.3)] +] -66.7 MCshow +1.000 UL +LTb +5072 600 M +0 63 V +0 4137 R +0 -63 V +stroke +5072 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 0.35)] +] -66.7 MCshow +1.000 UL +LTb +5668 600 M +0 63 V +0 4137 R +0 -63 V +stroke +5668 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 0.4)] +] -66.7 MCshow +1.000 UL +LTb +6264 600 M +0 63 V +0 4137 R +0 -63 V +stroke +6264 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 0.45)] +] -66.7 MCshow +1.000 UL +LTb +6860 600 M +0 63 V +0 4137 R +0 -63 V +stroke +6860 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 0.5)] +] -66.7 MCshow +1.000 UL +LTb +1.000 UL +LTb +1020 4800 N +0 -4200 V +5840 0 V +0 4200 V +-5840 0 V +Z stroke +LCb setrgbcolor +200 2700 M +currentpoint gsave translate 90 rotate 0 0 moveto +[ [(Helvetica) 200.0 0.0 true true 0 (Average detection time \(seconds\))] +] -66.7 MCshow +grestore +LTb +LCb setrgbcolor +3940 100 M +[ [(Helvetica) 200.0 0.0 true true 0 (Probability of a random node failing)] +] -66.7 MCshow +LTb +1.000 UP +1.000 UL +LTb +1.000 UL +LT0 +/Helvetica findfont 200 scalefont setfont +1020 949 M +59 17 V +59 18 V +59 19 V +59 18 V +59 19 V +59 19 V +59 19 V +59 19 V +59 20 V +59 19 V +59 20 V +59 21 V +59 20 V +59 21 V +59 21 V +59 21 V +59 21 V +59 22 V +59 22 V +59 22 V +59 22 V +59 23 V +59 23 V +59 23 V +59 24 V +59 24 V +59 24 V +59 24 V +59 25 V +59 25 V +59 25 V +59 26 V +59 26 V +59 26 V +59 27 V +59 27 V +59 27 V +59 28 V +59 28 V +59 28 V +59 29 V +59 29 V +59 30 V +59 30 V +59 30 V +59 31 V +59 31 V +59 32 V +59 32 V +58 32 V +59 33 V +59 34 V +59 33 V +59 35 V +59 35 V +59 35 V +59 36 V +59 36 V +59 37 V +59 38 V +59 38 V +59 39 V +59 39 V +59 40 V +59 40 V +59 41 V +59 42 V +59 43 V +59 43 V +59 43 V +59 45 V +59 45 V +59 46 V +59 46 V +59 48 V +59 48 V +59 49 V +59 50 V +59 51 V +59 51 V +59 53 V +59 53 V +59 54 V +59 56 V +59 56 V +59 57 V +59 58 V +59 60 V +59 60 V +59 62 V +59 63 V +59 64 V +59 65 V +59 66 V +59 68 V +59 69 V +59 70 V +59 72 V +59 74 V +stroke +LTb +1020 4800 N +0 -4200 V +5840 0 V +0 4200 V +-5840 0 V +Z stroke +1.000 UP +1.000 UL +LTb +stroke +grestore +end +showpage +%%Trailer +%%DocumentFonts: Helvetica diff --git a/papers/Grayskull-EpidemicFD/average-detection-time.gp b/papers/Grayskull-EpidemicFD/average-detection-time.gp new file mode 100644 index 0000000..359f395 --- /dev/null +++ b/papers/Grayskull-EpidemicFD/average-detection-time.gp @@ -0,0 +1,9 @@ + +set key off +set terminal post eps enhanced color "Helvetica" 20 + +set output 'average-detection-time.eps' +set xlabel 'Probability of a random node failing' +set ylabel 'Average detection time (seconds)' +avg(p) = exp(1-p) / (exp(1-p) - 1) +plot [x=0.01:0.5] avg(x) diff --git a/papers/Grayskull-EpidemicFD/average-detection-time.pdf b/papers/Grayskull-EpidemicFD/average-detection-time.pdf new file mode 100644 index 0000000..0965cb9 --- /dev/null +++ b/papers/Grayskull-EpidemicFD/average-detection-time.pdf @@ -0,0 +1,68 @@ +%PDF-1.3 +%�쏢 +5 0 obj +<</Length 6 0 R/Filter /FlateDecode>> +stream +x��WMo7�ϯ�19t*����-P�ڤ>����`�q���%)rgf�݁/)��=RI�9�(��p��M)���J�c���4��'��ˈ�.�M�Bҽ���~��~�D�p�4 ��f�ȟu������.����~�~�7�t��pDz���qs�ۂ[7����+��e����<ӂ�6�Ԁwv����m���=]�i��b�S���h.��9��s\H�- (yMb�NN��J��aNN�2�Ɗ�P����[wD����9mIT�"1T'�F'��$j�q!q ��&1T'�F'��$Z��B7$�t���0���e8�<�xނC��(>>,;�_�-���yUwUqf�����زW��˘�l�f��`�ϝGCM�?�q�>�\/\1 +��n'�+'���&�ya`�3�30�v pF����B��Tt|Q]�إp��^n����Z�Vy4�Lt �� �d�C4lU{ȷcs���~���(XZE�šU����\��+� �c��آ8��;�[���K�Ä�hC4hU�ب|;4F���yq{=I����B��l���7��+�Ё�%�^���l��?�-���Q�7� +��������xx;<��/��x:����/��?�����2��Q������������W8?���z��x>����!<ݳ���=��c�O���l��.s2!Ǯ���L�E{ciL+P���H/ M�Rc��ڟ���n�j(y�Gk2�24�,WiŜ���T�9�ot����9��g/�DM��|]1j�O:�����;H�f�d��1'9���%^)�Zz����TZKZ�*fYk�Ti-��Z�8�ʨ�\Zm*Vq��n�����M����%���G%a�l�K_����������E�Ua��IEI�Г��C��i(�ǭ��p�5�7 /����M'�8�"̷�zU��@�I(I����i��`$�<fd����:��dLo��|L"�j�c��7�ۛ�U��DVS�ӻ�����y(`UYO�� jAN4>U�q< ������ U�D�2p��h�r�4Q��ڄ�{�.Yd4VE�#�z[#�%�?5.%*�*��@S�kTJ���2�7��Ԥ�,Wҫ��3l��hh�U�H���9& T�1iv����H�H�Bў"1q\�-M��Ukқ�)jT: E.C���� y��1����c��r�eM� +��QH���1�3qި<�e&9~���$�EY�Y� �+RBc��o����7�emendstream +endobj +6 0 obj +1293 +endobj +9 0 obj +<</R8 +8 0 R>> +endobj +4 0 obj +<</Type/Page/MediaBox [0 0 360 252] +/Parent 3 0 R +/Resources<</ProcSet[/PDF /Text] +/Font 9 0 R +>> +/Contents 5 0 R +>> +endobj +3 0 obj +<< /Type /Pages /Kids [ +4 0 R +] /Count 1 +>> +endobj +1 0 obj +<</Type /Catalog /Pages 3 0 R +>> +endobj +8 0 obj +<</Subtype/Type1/BaseFont/Helvetica/Type/Font/Name/R8>> +endobj +7 0 obj +<</Type/FontDescriptor/FontName/Helvetica>> +endobj +2 0 obj +<</Producer (Aladdin Ghostscript 6.01) +/Title (average-detection-time.eps) +/Subject (gnuplot plot) +/Creator (gnuplot 4.2 patchlevel 3 ) +/Author (slang) +/CreationDate (Tue Sep 8 23:45:12 2009) +>>endobj +xref +0 10 +0000000000 65535 f +0000001618 00000 n +0000001796 00000 n +0000001559 00000 n +0000001427 00000 n +0000000015 00000 n +0000001378 00000 n +0000001737 00000 n +0000001666 00000 n +0000001398 00000 n +trailer +<< /Size 10 /Root 1 0 R /Info 2 0 R +>> +startxref +2006 +%%EOF diff --git a/papers/Grayskull-EpidemicFD/detection-probs.hs b/papers/Grayskull-EpidemicFD/detection-probs.hs new file mode 100644 index 0000000..98f3b65 --- /dev/null +++ b/papers/Grayskull-EpidemicFD/detection-probs.hs @@ -0,0 +1,107 @@ +module Main where +import System.Environment +import System.Console.GetOpt +import Debug.Trace +import Data.Array.IArray +import Data.String +import System.IO.Unsafe +import Foreign.C.Types +import Data.Ratio + +sumlog :: (Integer -> Integer) -> Integer -> Double +sumlog f n = sum [ log (fromInteger (f i)) | i <- [1..n] ] + +ofrac :: Integer -> Double +ofrac o = (fromInteger (o - 1)) / (fromInteger o) + +pcomp1 :: Integer -> Integer -> Double +pcomp1 o k = exp $ (fromInteger k) * (log $ ofrac o) + +pk :: Integer -> Integer -> Double -> Integer -> Integer -> Integer -> Double +pk m p pr o n k = + let c1 = log (1 - (pcomp1 o k)) + c2 = sumlog (\i -> n - i + 1) k + c3 = sumlog id k + c4 = (fromInteger k) * (log pr) + c5 = (fromInteger (n - k)) * (log (1 - pr)) + lpk = c1 + c2 - c3 + c4 + c5 + in lpk + +fact1 :: Integer -> Integer -> Double +fact1 o k = (1 - ((ofrac o) ^ (k+1))) / (1 - ((ofrac o) ^ k)) + +fact2 :: Integer -> Integer -> Double +fact2 n k = (fromInteger (n - k)) / (fromInteger (k + 1)) + +fact3 :: Double -> Double +fact3 pr = pr / (1 - pr) + +sumprob :: Integer -> Integer -> Double -> Double -> Integer -> Double -> Double +sumprob n k lpk pr o sum = + let lpkn = (log (fact1 o k)) + (log (fact2 n k)) + (log (fact3 pr)) + lpk + pkn = exp $ lpkn + in if (k + 1) < n then + sumprob n (k+1) lpkn pr o (sum + pkn) + else + sum + pkn + +calcprob :: Integer -> Integer -> Double -> Integer -> Integer -> Double +calcprob m p pr o n = + let lpko = pk m p pr o n o + in sumprob n o lpko pr o (exp $ lpko) + +data ParserOpts = Nodes String | Rounds String | Partition String | Help + +parserOpts :: [OptDescr ParserOpts] +parserOpts = + [ Option ['n'] ["nodes"] (ReqArg (\s -> Nodes s) "<nodes>") + "number of nodes in the system" + , Option ['r'] ["rounds"] (ReqArg (\s -> Rounds s) "<rounds>") + "number of rounds" + , Option ['p'] ["partition"] (ReqArg (\s -> Partition s) "<partition>") + "partition size" + , Option ['h','?'] ["help"] (NoArg Help) + "help text" + ] + +getNodes :: [ParserOpts] -> Integer +getNodes ((Nodes s):ps) = read s +getNodes (s:ps) = getNodes ps +getNodes [] = 128 + +getRounds :: [ParserOpts] -> Integer +getRounds ((Rounds s):ps) = read s +getRounds (s:ps) = getRounds ps +getRounds [] = 32 + +getPartition :: [ParserOpts] -> Integer +getPartition ((Partition s):ps) = read s +getPartition (s:ps) = getPartition ps +getPartition [] = 32 + +help :: [ParserOpts] -> Bool +help ((Help):ps) = True +help (s:ps) = help ps +help [] = False + +main :: IO () +main = do + + args <- getArgs + let (opts, files, errors) = getOpt RequireOrder parserOpts args + m = getNodes opts + maxr = getRounds opts + p = getPartition opts + o = m - p + pr = (fromInteger o) / (fromInteger (m - 1)) + trials = [ r * p | r <- [1..maxr] ] + + probs = map (calcprob m p pr o) trials + pairs = zip [1..maxr] probs + mkStr (r,p) = (show r) ++ " " ++ (show $ p) + strings = map mkStr pairs + + if help opts then do + putStrLn (usageInfo "Help" parserOpts) + return () + else mapM_ putStrLn strings diff --git a/papers/Grayskull-EpidemicFD/failure-gdinterval.pdf b/papers/Grayskull-EpidemicFD/failure-gdinterval.pdf new file mode 100644 index 0000000..64b9032 Binary files /dev/null and b/papers/Grayskull-EpidemicFD/failure-gdinterval.pdf differ diff --git a/papers/Grayskull-EpidemicFD/failure-gdinterval.svg b/papers/Grayskull-EpidemicFD/failure-gdinterval.svg new file mode 100644 index 0000000..cf59c20 --- /dev/null +++ b/papers/Grayskull-EpidemicFD/failure-gdinterval.svg @@ -0,0 +1,238 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="305.72363" + height="148.27213" + id="svg2" + sodipodi:version="0.32" + inkscape:version="0.46" + sodipodi:docname="failure-gdinterval.svg" + version="1.0" + inkscape:output_extension="org.inkscape.output.svg.inkscape"> + <defs + id="defs4"> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mend" + style="overflow:visible"> + <path + id="path3688" + d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" + transform="matrix(-0.4,0,0,-0.4,-4,0)" /> + </marker> + <marker + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Lend" + style="overflow:visible"> + <path + id="path3682" + d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" + transform="matrix(-0.8,0,0,-0.8,-10,0)" /> + </marker> + <inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="0 : 170.07874 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="453.5433 : 170.07874 : 1" + inkscape:persp3d-origin="226.77165 : 113.38582 : 1" + id="perspective2393" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + gridtolerance="10000" + guidetolerance="8.8" + objecttolerance="10" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="1.0892718" + inkscape:cx="44.605699" + inkscape:cy="83.209889" + inkscape:document-units="mm" + inkscape:current-layer="layer1" + inkscape:window-width="988" + inkscape:window-height="724" + inkscape:window-x="33" + inkscape:window-y="22" + width="12.8cm" + height="9.6cm" + units="cm" + showgrid="true" + grid_units="mm" + inkscape:object-paths="false" + inkscape:grid-points="true" + inkscape:grid-bbox="true" + inkscape:guide-points="true" + showguides="true" + inkscape:guide-bbox="true" + inkscape:snap-global="false"> + <sodipodi:guide + orientation="vertical" + position="56.476527" + id="guide3573" /> + <sodipodi:guide + orientation="horizontal" + position="11.035643" + id="guide3579" /> + <sodipodi:guide + orientation="horizontal" + position="24.018753" + id="guide3886" /> + <sodipodi:guide + orientation="horizontal" + position="285.62841" + id="guide3988" /> + <sodipodi:guide + orientation="horizontal" + position="303.15561" + id="guide4081" /> + <inkscape:grid + id="GridFromPre046Settings" + type="xygrid" + originx="0px" + originy="0px" + spacingx="2mm" + spacingy="2mm" + color="#0000ff" + empcolor="#0000ff" + opacity="0.2" + empopacity="0.4" + empspacing="5" + units="mm" + visible="true" + enabled="true" /> + </sodipodi:namedview> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(-70.366532,-761.7027)"> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;marker-mid:none;marker-end:url(#Arrow1Lend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 70.866142,148.81889 C 375.59055,148.81889 375.59055,148.81889 375.59055,148.81889" + id="path2395" + transform="translate(-4.149475e-6,698.0315)" /> + <flowRoot + xml:space="preserve" + id="flowRoot5496" + style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" + transform="translate(11.536736,660.2052)"><flowRegion + id="flowRegion5498"><rect + id="rect5500" + width="102.82098" + height="30.295467" + x="66.099205" + y="188.68013" /></flowRegion><flowPara + id="flowPara5502">time</flowPara></flowRoot> <flowRoot + xml:space="preserve" + id="flowRoot5504" + style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" + transform="translate(-91.935621,546.34259)"><flowRegion + id="flowRegion5506"><rect + id="rect5508" + width="113.83752" + height="55.082668" + x="172.59236" + y="248.35303" /></flowRegion><flowPara + id="flowPara5510">A fails</flowPara></flowRoot> <flowRoot + xml:space="preserve" + id="flowRoot5512" + style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" + transform="translate(-71.693585,932.24456)"><flowRegion + id="flowRegion5514"><rect + id="rect5516" + width="205.64197" + height="77.115738" + x="198.29761" + y="-151.91437" /></flowRegion><flowPara + id="flowPara5518">B detects A failure</flowPara></flowRoot> <flowRoot + xml:space="preserve" + id="flowRoot5520" + style="font-size:12px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" + transform="translate(41.389856,1117.4943)"><flowRegion + id="flowRegion5522"><rect + id="rect5524" + width="143.67393" + height="48.656345" + x="84.460091" + y="-251.06317" + style="text-align:center;text-anchor:middle" /></flowRegion><flowPara + id="flowPara6121">Grayskull Optimized Dissemination Interval</flowPara><flowPara + id="flowPara6125">GD = T' (2r - 1)</flowPara></flowRoot> <flowRoot + xml:space="preserve" + id="flowRoot5528" + style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" + transform="translate(51.639438,1024.6089)"><flowRegion + id="flowRegion5530"><rect + id="rect5532" + width="381.90649" + height="143.21494" + x="187.28108" + y="-265.75189" /></flowRegion><flowPara + id="flowPara5534">B acts on A failure</flowPara></flowRoot> <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" + d="M 92.12598,809.46984 C 92.12598,844.90292 92.12598,844.90292 92.12598,844.90292 L 92.12598,844.90292" + id="path5536" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" + d="M 141.51589,795.48963 C 141.51589,830.92271 141.51589,845.20413 141.51589,845.20413 L 141.51589,845.20413" + id="path6061" + sodipodi:nodetypes="ccc" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" + d="M 256.41641,773.41834 C 256.41641,808.85142 256.41641,845.20413 256.41641,845.20413 L 256.41641,845.20413" + id="path6063" + sodipodi:nodetypes="ccc" /> + <flowRoot + xml:space="preserve" + id="flowRoot6065" + style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"><flowRegion + id="flowRegion6067"><rect + id="rect6069" + width="47.388351" + height="12.333954" + x="193.44833" + y="241.48584" /></flowRegion><flowPara + id="flowPara6071">--</flowPara></flowRoot> <flowRoot + xml:space="preserve" + id="flowRoot6073" + style="font-size:64px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" + transform="matrix(0,-0.9746746,1.9185229,0,677.06246,1006.1281)"><flowRegion + id="flowRegion6075"><rect + id="rect6077" + width="108.66666" + height="91.120361" + x="141.5159" + y="-296.66406" + style="font-size:64px" /></flowRegion><flowPara + id="flowPara6079" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Gill Sans;-inkscape-font-specification:Gill Sans">{</flowPara></flowRoot> </g> +</svg> diff --git a/papers/Grayskull-EpidemicFD/gossip-markov-prob.hs b/papers/Grayskull-EpidemicFD/gossip-markov-prob.hs new file mode 100644 index 0000000..71bd705 --- /dev/null +++ b/papers/Grayskull-EpidemicFD/gossip-markov-prob.hs @@ -0,0 +1,262 @@ +module Main where +import Prelude hiding ((^)) +import System.Environment +import System.Console.GetOpt +import Debug.Trace +import GHC.Arr hiding ((!)) +import Data.Array.IArray hiding (bounds,array,listArray,(!)) +import qualified GHC.Arr((!)) +import Data.String +import System.IO.Unsafe +import Foreign.C.Types +import Data.Ratio +import Control.Monad +import Control.Monad.State + +(!) :: (Ix i, Show i) => Array i e -> i -> e +(!) a i = + let (minb,maxb) = bounds a + in if i > maxb then trace ("HERE: " ++ (show i) ++ ">" ++ (show maxb)) $ a GHC.Arr.! i + else a GHC.Arr.! i + +newtype LogNum = LogNum CLDouble + +getd :: LogNum -> CLDouble +getd (LogNum a) = a + +mkLN :: CLDouble -> LogNum +mkLN a = LogNum $ log a + +fromLogNum :: LogNum -> CLDouble +fromLogNum (LogNum a) = exp a + +logsum :: [LogNum] -> LogNum +logsum as = mkLN $ sum $ map fromLogNum as + +(^) :: LogNum -> Integer -> LogNum +(^) m e = LogNum $ (fromInteger e) Prelude.* (getd m) + +logPlus :: LogNum -> LogNum -> LogNum +logPlus a b = mkLN $ (fromLogNum a) + (fromLogNum b) +logMinus :: LogNum -> LogNum -> LogNum +logMinus a b = mkLN $ (fromLogNum a) - (fromLogNum b) +logTimes :: LogNum -> LogNum -> LogNum +logTimes a b = LogNum $ (getd a) Prelude.+ (getd b) +logDivide :: LogNum -> LogNum -> LogNum +logDivide a b = LogNum $ (getd a) Prelude.- (getd b) + +instance Eq LogNum where + a == b = (getd a) Prelude.== (getd b) +instance Num LogNum where + a + b = a `logPlus` b + a - b = a `logMinus` b + a * b = a `logTimes` b + fromInteger a = mkLN $ (Prelude.fromInteger a) + abs a = mkLN $ Prelude.abs $ fromLogNum a + signum a = mkLN $ Prelude.signum $ fromLogNum a + +instance Fractional LogNum where + a / b = a `logDivide` b + fromRational a = mkLN $ Prelude.fromRational a + +instance Show LogNum where + show a = Prelude.show $ fromLogNum a + +(!/) :: Integer -> Integer -> CLDouble +(!/) a b = (fromInteger a) Prelude./ (fromInteger b) + +logfac :: Integer -> LogNum +logfac 0 = mkLN 1 +logfac n = product $ map (mkLN . fromInteger) [1..n] + +logfacFrom :: Integer -> Integer -> LogNum +logfacFrom s n | s > n = if s == 1 then mkLN 1 else mkLN 0 + | otherwise = product $ lns + where lns = map (mkLN . fromInteger) [s..n] + +logchoose :: Integer -> Integer -> LogNum +logchoose n k | n == k = mkLN 1 + | k == 0 = mkLN 1 + | otherwise = let res = a / b + a = (logfacFrom (n - k + 1) n) + b = (logfac k) + in res + +oddminus :: Integer -> Integer +oddminus j | even j = 1 + | otherwise = -1 + +type MarkovT = StateT LTransProbFun IO + +type LSFun = Integer -> Integer -> LogNum + +mkLSC :: Integer -> LSFun +mkLSC n = curry (mem !) + where mem = array ((0,0),(n,n)) [ ( (n1,k1), ls n1 k1 ) | k1 <- [0..n] , n1 <- [0..n], k1 <= n1 ] + +ls n k = lsnk' n k + where mem = array ((0,0),(n,n)) [ ( (n1,k1), lsnk' n1 k1 ) | k1 <- [0..n] , n1 <- [0..n], k1 <= n1 ] + lsnk' 0 0 = mkLN 1 + lsnk' _ 0 = mkLN 0 + lsnk' _ 1 = mkLN 1 + lsnk' n1 k1 | n1 == k1 = mkLN 1 + | otherwise = + let res = lsc + lsc = mkLN $ (fromLogNum $ (fromInteger k1) * (mem ! (n1-1, k1))) + + (fromLogNum $ mem ! (n1-1,k1-1)) + in res + +type ThetaFun = Integer -> Integer -> Integer -> LSFun -> LogNum +type ThetaCFun = Integer -> Integer -> Integer -> LogNum + +curry3 :: ((a,b,c) -> d) -> a -> b -> c -> d +curry3 f a b c = f (a,b,c) + +mkLThetaCacheFun :: Integer -> ThetaFun -> LSFun -> ThetaCFun +mkLThetaCacheFun n f lsf = curry3 (arr !) + where arr = array ((0,0,0),(n,n,n)) + [ ((i1,l,i), f i1 l i lsf) | i1 <- [0..n], + l <- [0..n], + i <- [1..n], + i1 <= l, + l <= (n-i) ] + +ltheta :: Integer -> Integer -> Integer -> LSFun -> LogNum +ltheta i1 l i ls = res + where res = logsum $ [ (c1 k1) * (c2 k1) * (c3 k1) * c4 | k1 <- [(l-i1) .. i] ] + c1 k1 = logchoose i k1 + c2 k1 = (fromInteger (i - 1 + i1)) ^ (i - k1) + c3 k1 = ls k1 (l - i1) + c4 = logfac (l - i1) + +mkLThetaC :: Integer -> LSFun -> ThetaCFun +mkLThetaC n lsf = mkLThetaCacheFun n ltheta lsf + +type LTransProbFun = Integer -> Integer -> Integer -> LogNum + +mkLTransProbCacheFun :: Integer -> LTransProbFun -> LTransProbFun +mkLTransProbCacheFun n f = \n1 -> curry (arr !) + where arr = array ((0,0),(n,n)) + [ ((i,j), f n i j) | i <- [0..n], j <- [0..n] ] + +lTransProbPush :: Integer -> Integer -> Integer -> LogNum +lTransProbPush n i j + | j < i = mkLN 0 + | i == n - 1 && j == n = mkLN 1 + | i == n - 1 && j == n - 1 = mkLN 0 + | i == n && j == n = mkLN 1 + | otherwise = res + where res = lc * c1 * c2 + k = j - i + lc = logchoose (n - i) k + c1 = (mkLN (i !/ (n - 1))) ^ k + c2 = (mkLN ((n - i - 1) !/ (n - 1))) ^ (n - j) + +lTransProbPushPull :: ThetaCFun -> Integer -> Integer -> Integer -> LogNum + +lTransProbPushPull _ n 1 1 = mkLN 0 +lTransProbPushPull _ n 1 j = res + where res = ( c1 * c2 * c3 * c4 ) / c5 + c1 = logchoose (n - 1) (j - 1) + c2 = fromInteger $ j - 1 + c3 = (fromInteger $ n - 2) ^ (n - j) + c4 = fromInteger $ n - 1 + c5 = (fromInteger $ n - 1) ^ n + +lTransProbPushPull theta n i j + | j < i = mkLN 0 + | i == n && j == n = mkLN 1 + | i == (n - 1) && j == (n - 1) = mkLN 0 + | i == (n - 1) && j == n = mkLN 1 + | otherwise = res + where res = ( c1 / c2 ) * ( logsum [ (c3 i1) * (c4 i1) * (c5 i1) * (c6 i1) | i1 <- [0..l] ] ) + l = j - i + c1 = logchoose (n - i) l + c2 = (fromInteger (n - 1)) ^ n + c3 i1 = logchoose l i1 + c4 i1 = (fromInteger i) ^ i1 + c5 i1 = (fromInteger (n - i - 1)) ^ (n - i - i1) + c6 i1 = theta i1 l i + +mkLTransProbPushC :: Integer -> LTransProbFun +mkLTransProbPushC = flip mkLTransProbCacheFun $ lTransProbPush + +mkLTransProbPushPullC :: ThetaCFun -> Integer -> LTransProbFun +mkLTransProbPushPullC theta = flip mkLTransProbCacheFun $ lTransProbPushPull theta + +getjprobs :: Integer -> + Integer -> + Array Integer LogNum -> + Integer -> + MarkovT LogNum + +getjprobs n r lpprs j = do + tprobs <- get + let res = logsum [ (lpprs ! i) * (tprobs n i j) | i <- [1..j] ] + return res + +seqprob :: Integer -> + Integer -> + Array Integer LogNum -> + Integer -> + MarkovT () + +seqprob n r lpprs rmax = do + lps <- mapM (getjprobs n r lpprs) [1..n] + let lparrs = listArray (1,n) lps + liftIO $ putStrLn $ (show r) ++ " " ++ (show $ lparrs ! n) + if r < rmax then seqprob n (r + 1) lparrs rmax + else return () + +data ParserOpts = Nodes String | Rounds String | Help | Push + +parserOpts :: [OptDescr ParserOpts] +parserOpts = + [ Option ['n'] ["nodes"] (ReqArg (\s -> Nodes s) "<nodes>") + "number of nodes in the system" + , Option ['r'] ["rounds"] (ReqArg (\s -> Rounds s) "<rounds>") + "number of rounds" + , Option ['h','?'] ["help"] (NoArg Help) + "help text" + , Option ['p','?'] ["push"] (NoArg Push) + "use push model" + ] + +getNodes :: [ParserOpts] -> Integer +getNodes ((Nodes s):ps) = read s +getNodes (s:ps) = getNodes ps +getNodes [] = 128 + +getRounds :: [ParserOpts] -> Integer +getRounds ((Rounds s):ps) = read s +getRounds (s:ps) = getRounds ps +getRounds [] = 32 + +getHelp :: [ParserOpts] -> Bool +getHelp ((Help):ps) = True +getHelp (s:ps) = getHelp ps +getHelp [] = False + +getPush :: [ParserOpts] -> Bool +getPush ((Push):ps) = True +getPush (s:ps) = getPush ps +getPush [] = False + +main :: IO () +main = do + + args <- getArgs + let (opts, files, errors) = getOpt RequireOrder parserOpts args + n = getNodes opts + maxr = getRounds opts + h = getHelp opts + transP = if getPush opts then mkLTransProbPushC n + else mkLTransProbPushPullC theta n + where theta = mkLThetaC n (mkLSC n) + + let startps = listArray (1,n) ((mkLN 1):(repeat (mkLN 0))) + + if h then do { putStrLn (usageInfo "help" parserOpts) ; return () } + else do + runStateT (seqprob n 0 startps maxr) transP + return () diff --git a/papers/Grayskull-EpidemicFD/load-calc-compare.eps b/papers/Grayskull-EpidemicFD/load-calc-compare.eps new file mode 100644 index 0000000..2a7bb19 --- /dev/null +++ b/papers/Grayskull-EpidemicFD/load-calc-compare.eps @@ -0,0 +1,877 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: load-calc-compare.eps +%%Creator: gnuplot 4.2 patchlevel 3 +%%CreationDate: Thu Sep 17 13:50:25 2009 +%%DocumentFonts: (atend) +%%BoundingBox: 50 50 410 302 +%%EndComments +%%BeginProlog +/gnudict 256 dict def +gnudict begin +% +% The following 6 true/false flags may be edited by hand if required +% The unit line width 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 +/TransparentPatterns false def +/gnulinewidth 5.000 def +/userlinewidth gnulinewidth def +% +/vshift -66 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 +Level1 {} { +/SDict 10 dict def +systemdict /pdfmark known not { + userdict /pdfmark systemdict /cleartomark get put +} if +SDict begin [ + /Title (load-calc-compare.eps) + /Subject (gnuplot plot) + /Creator (gnuplot 4.2 patchlevel 3 ) + /Author (slang) +% /Producer (gnuplot) +% /Keywords () + /CreationDate (Thu Sep 17 13:50:25 2009) + /DOCINFO pdfmark +end +} ifelse +% +% Gnuplot Prolog Version 4.2 (August 2006) +% +/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 +/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 +% 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 + gsave 1 setgray fill grestore 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 {show} {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} bind 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 stringwidth pop add} {pop} ifelse} ifelse} forall} bind 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 +end +%%EndProlog +gnudict begin +gsave +50 50 translate +0.050 0.050 scale +0 setgray +newpath +(Helvetica) findfont 200 scalefont setfont +1.000 UL +LTb +1380 600 M +63 0 V +5417 0 R +-63 0 V +stroke +1260 600 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 0)] +] -66.7 MRshow +1.000 UL +LTb +1380 1125 M +63 0 V +5417 0 R +-63 0 V +stroke +1260 1125 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 50000)] +] -66.7 MRshow +1.000 UL +LTb +1380 1650 M +63 0 V +5417 0 R +-63 0 V +stroke +1260 1650 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 100000)] +] -66.7 MRshow +1.000 UL +LTb +1380 2175 M +63 0 V +5417 0 R +-63 0 V +stroke +1260 2175 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 150000)] +] -66.7 MRshow +1.000 UL +LTb +1380 2700 M +63 0 V +5417 0 R +-63 0 V +stroke +1260 2700 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 200000)] +] -66.7 MRshow +1.000 UL +LTb +1380 3225 M +63 0 V +5417 0 R +-63 0 V +stroke +1260 3225 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 250000)] +] -66.7 MRshow +1.000 UL +LTb +1380 3750 M +63 0 V +5417 0 R +-63 0 V +stroke +1260 3750 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 300000)] +] -66.7 MRshow +1.000 UL +LTb +1380 4275 M +63 0 V +5417 0 R +-63 0 V +stroke +1260 4275 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 350000)] +] -66.7 MRshow +1.000 UL +LTb +1380 4800 M +63 0 V +5417 0 R +-63 0 V +stroke +1260 4800 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 400000)] +] -66.7 MRshow +1.000 UL +LTb +1379 600 M +0 63 V +0 4137 R +0 -63 V +stroke +1379 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 0)] +] -66.7 MCshow +1.000 UL +LTb +2048 600 M +0 63 V +0 4137 R +0 -63 V +stroke +2048 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 500)] +] -66.7 MCshow +1.000 UL +LTb +2717 600 M +0 63 V +0 4137 R +0 -63 V +stroke +2717 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 1000)] +] -66.7 MCshow +1.000 UL +LTb +3386 600 M +0 63 V +0 4137 R +0 -63 V +stroke +3386 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 1500)] +] -66.7 MCshow +1.000 UL +LTb +4055 600 M +0 63 V +0 4137 R +0 -63 V +stroke +4055 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 2000)] +] -66.7 MCshow +1.000 UL +LTb +4724 600 M +0 63 V +0 4137 R +0 -63 V +stroke +4724 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 2500)] +] -66.7 MCshow +1.000 UL +LTb +5393 600 M +0 63 V +0 4137 R +0 -63 V +stroke +5393 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 3000)] +] -66.7 MCshow +1.000 UL +LTb +6062 600 M +0 63 V +0 4137 R +0 -63 V +stroke +6062 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 3500)] +] -66.7 MCshow +1.000 UL +LTb +6732 600 M +0 63 V +0 4137 R +0 -63 V +stroke +6732 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 4000)] +] -66.7 MCshow +1.000 UL +LTb +1.000 UL +LTb +1380 4800 N +0 -4200 V +5480 0 V +0 4200 V +-5480 0 V +Z stroke +LCb setrgbcolor +200 2700 M +currentpoint gsave translate 90 rotate 0 0 moveto +[ [(Helvetica) 200.0 0.0 true true 0 (Network Load \(messages per time to detection - 10s\))] +] -66.7 MCshow +grestore +LTb +LCb setrgbcolor +4120 100 M +[ [(Helvetica) 200.0 0.0 true true 0 (Node Count \(N\))] +] -66.7 MCshow +LTb +1.000 UP +1.000 UL +LTb +1.000 UL +LT0 +LTb +5957 4637 M +[ [(Helvetica) 200.0 0.0 true true 0 (Distributed Heartbeat N-to-N load)] +] -66.7 MRshow +LT0 +6077 4637 M +543 0 V +1380 600 M +55 2 V +56 5 V +55 9 V +55 13 V +56 16 V +55 20 V +55 24 V +56 27 V +55 30 V +56 35 V +55 37 V +55 42 V +56 45 V +55 48 V +55 53 V +56 55 V +55 60 V +55 63 V +56 66 V +55 70 V +55 74 V +56 77 V +55 81 V +55 85 V +56 88 V +55 92 V +56 95 V +55 99 V +55 102 V +56 106 V +55 110 V +55 113 V +56 117 V +55 121 V +55 124 V +56 127 V +55 132 V +55 134 V +56 139 V +55 142 V +55 145 V +56 150 V +55 152 V +56 157 V +55 160 V +55 163 V +56 168 V +55 170 V +18 57 V +stroke +LT1 +LTb +5957 4437 M +[ [(Helvetica) 200.0 0.0 true true 0 (van Renesse Heartbeat load)] +] -66.7 MRshow +LT1 +6077 4437 M +543 0 V +1380 600 M +55 7 V +56 26 V +55 46 V +55 70 V +56 93 V +55 118 V +55 143 V +56 168 V +55 195 V +56 222 V +55 249 V +55 276 V +56 304 V +55 331 V +55 360 V +56 389 V +55 417 V +55 446 V +40 340 V +stroke +LT2 +LTb +5957 4237 M +[ [(Helvetica) 200.0 0.0 true true 0 (SWIM Worst-case load)] +] -66.7 MRshow +LT2 +6077 4237 M +543 0 V +1380 600 M +55 1 V +56 0 V +55 1 V +55 1 V +56 0 V +55 1 V +55 1 V +56 1 V +55 0 V +56 1 V +55 1 V +55 0 V +56 1 V +55 1 V +55 0 V +56 1 V +55 1 V +55 0 V +56 1 V +55 1 V +55 0 V +56 1 V +55 1 V +55 1 V +56 0 V +55 1 V +56 1 V +55 0 V +55 1 V +56 1 V +55 0 V +55 1 V +56 1 V +55 0 V +55 1 V +56 1 V +55 0 V +55 1 V +56 1 V +55 0 V +55 1 V +56 1 V +55 1 V +56 0 V +55 1 V +55 1 V +56 0 V +55 1 V +55 1 V +56 0 V +55 1 V +55 1 V +56 0 V +55 1 V +55 1 V +56 0 V +55 1 V +56 1 V +55 1 V +55 0 V +56 1 V +55 1 V +55 0 V +56 1 V +55 1 V +55 0 V +56 1 V +55 1 V +55 0 V +56 1 V +55 1 V +55 0 V +56 1 V +55 1 V +56 1 V +55 0 V +55 1 V +56 1 V +55 0 V +55 1 V +56 1 V +55 0 V +55 1 V +56 1 V +55 0 V +55 1 V +56 1 V +55 0 V +55 1 V +56 1 V +55 1 V +56 0 V +55 1 V +55 1 V +56 0 V +55 1 V +55 1 V +56 0 V +55 1 V +stroke +LTb +1380 4800 N +0 -4200 V +5480 0 V +0 4200 V +-5480 0 V +Z stroke +1.000 UP +1.000 UL +LTb +stroke +grestore +end +showpage +%%Trailer +%%DocumentFonts: Helvetica diff --git a/papers/Grayskull-EpidemicFD/load-calc-compare.pdf b/papers/Grayskull-EpidemicFD/load-calc-compare.pdf new file mode 100644 index 0000000..35595bf Binary files /dev/null and b/papers/Grayskull-EpidemicFD/load-calc-compare.pdf differ diff --git a/papers/Grayskull-EpidemicFD/load-calc-swim.eps b/papers/Grayskull-EpidemicFD/load-calc-swim.eps new file mode 100644 index 0000000..1a2dbc6 --- /dev/null +++ b/papers/Grayskull-EpidemicFD/load-calc-swim.eps @@ -0,0 +1,1215 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: load-calc-swim.eps +%%Creator: gnuplot 4.2 patchlevel 3 +%%CreationDate: Thu Sep 17 13:50:25 2009 +%%DocumentFonts: (atend) +%%BoundingBox: 50 50 410 302 +%%EndComments +%%BeginProlog +/gnudict 256 dict def +gnudict begin +% +% The following 6 true/false flags may be edited by hand if required +% The unit line width 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 +/TransparentPatterns false def +/gnulinewidth 5.000 def +/userlinewidth gnulinewidth def +% +/vshift -66 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 +Level1 {} { +/SDict 10 dict def +systemdict /pdfmark known not { + userdict /pdfmark systemdict /cleartomark get put +} if +SDict begin [ + /Title (load-calc-swim.eps) + /Subject (gnuplot plot) + /Creator (gnuplot 4.2 patchlevel 3 ) + /Author (slang) +% /Producer (gnuplot) +% /Keywords () + /CreationDate (Thu Sep 17 13:50:25 2009) + /DOCINFO pdfmark +end +} ifelse +% +% Gnuplot Prolog Version 4.2 (August 2006) +% +/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 +/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 +% 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 + gsave 1 setgray fill grestore 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 {show} {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} bind 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 stringwidth pop add} {pop} ifelse} ifelse} forall} bind 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 +end +%%EndProlog +gnudict begin +gsave +50 50 translate +0.050 0.050 scale +0 setgray +newpath +(Helvetica) findfont 200 scalefont setfont +1.000 UL +LTb +1140 600 M +63 0 V +5657 0 R +-63 0 V +stroke +1020 600 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 0)] +] -66.7 MRshow +1.000 UL +LTb +1140 1200 M +63 0 V +5657 0 R +-63 0 V +stroke +1020 1200 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 1000)] +] -66.7 MRshow +1.000 UL +LTb +1140 1800 M +63 0 V +5657 0 R +-63 0 V +stroke +1020 1800 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 2000)] +] -66.7 MRshow +1.000 UL +LTb +1140 2400 M +63 0 V +5657 0 R +-63 0 V +stroke +1020 2400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 3000)] +] -66.7 MRshow +1.000 UL +LTb +1140 3000 M +63 0 V +5657 0 R +-63 0 V +stroke +1020 3000 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 4000)] +] -66.7 MRshow +1.000 UL +LTb +1140 3600 M +63 0 V +5657 0 R +-63 0 V +stroke +1020 3600 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 5000)] +] -66.7 MRshow +1.000 UL +LTb +1140 4200 M +63 0 V +5657 0 R +-63 0 V +stroke +1020 4200 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 6000)] +] -66.7 MRshow +1.000 UL +LTb +1140 4800 M +63 0 V +5657 0 R +-63 0 V +stroke +1020 4800 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 7000)] +] -66.7 MRshow +1.000 UL +LTb +1140 600 M +0 63 V +0 4137 R +0 -63 V +stroke +1140 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 0)] +] -66.7 MCshow +1.000 UL +LTb +1838 600 M +0 63 V +0 4137 R +0 -63 V +stroke +1838 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 500)] +] -66.7 MCshow +1.000 UL +LTb +2536 600 M +0 63 V +0 4137 R +0 -63 V +stroke +2536 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 1000)] +] -66.7 MCshow +1.000 UL +LTb +3235 600 M +0 63 V +0 4137 R +0 -63 V +stroke +3235 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 1500)] +] -66.7 MCshow +1.000 UL +LTb +3933 600 M +0 63 V +0 4137 R +0 -63 V +stroke +3933 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 2000)] +] -66.7 MCshow +1.000 UL +LTb +4631 600 M +0 63 V +0 4137 R +0 -63 V +stroke +4631 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 2500)] +] -66.7 MCshow +1.000 UL +LTb +5329 600 M +0 63 V +0 4137 R +0 -63 V +stroke +5329 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 3000)] +] -66.7 MCshow +1.000 UL +LTb +6028 600 M +0 63 V +0 4137 R +0 -63 V +stroke +6028 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 3500)] +] -66.7 MCshow +1.000 UL +LTb +6726 600 M +0 63 V +0 4137 R +0 -63 V +stroke +6726 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 4000)] +] -66.7 MCshow +1.000 UL +LTb +1.000 UL +LTb +1140 4800 N +0 -4200 V +5720 0 V +0 4200 V +-5720 0 V +Z stroke +LCb setrgbcolor +200 2700 M +currentpoint gsave translate 90 rotate 0 0 moveto +[ [(Helvetica) 200.0 0.0 true true 0 (Network Load \(messages per time to detection - 10s\))] +] -66.7 MCshow +grestore +LTb +LCb setrgbcolor +4000 100 M +[ [(Helvetica) 200.0 0.0 true true 0 (Node Count \(N\))] +] -66.7 MCshow +LTb +1.000 UP +1.000 UL +LTb +1.000 UL +LT0 +LTb +5957 4637 M +[ [(Helvetica) 200.0 0.0 true true 0 (SWIM Worst-case load)] +] -66.7 MRshow +LT0 +6077 4637 M +543 0 V +1140 600 M +58 39 V +58 40 V +57 39 V +58 39 V +58 39 V +58 40 V +57 39 V +58 39 V +58 39 V +58 40 V +58 39 V +57 39 V +58 40 V +58 39 V +58 39 V +57 39 V +58 40 V +58 39 V +58 39 V +58 39 V +57 40 V +58 39 V +58 39 V +58 40 V +57 39 V +58 39 V +58 39 V +58 40 V +58 39 V +57 39 V +58 39 V +58 40 V +58 39 V +57 39 V +58 39 V +58 40 V +58 39 V +58 39 V +57 40 V +58 39 V +58 39 V +58 39 V +57 40 V +58 39 V +58 39 V +58 39 V +58 40 V +57 39 V +58 39 V +58 40 V +58 39 V +57 39 V +58 39 V +58 40 V +58 39 V +58 39 V +57 39 V +58 40 V +58 39 V +58 39 V +57 40 V +58 39 V +58 39 V +58 39 V +58 40 V +57 39 V +58 39 V +58 39 V +58 40 V +57 39 V +58 39 V +58 40 V +58 39 V +58 39 V +57 39 V +58 40 V +58 39 V +58 39 V +57 39 V +58 40 V +58 39 V +58 39 V +58 40 V +57 39 V +58 39 V +58 39 V +58 40 V +57 39 V +58 39 V +58 39 V +58 40 V +58 39 V +57 39 V +58 40 V +58 39 V +58 39 V +57 39 V +58 40 V +58 39 V +stroke +LT1 +LTb +5957 4437 M +[ [(Helvetica) 200.0 0.0 true true 0 (Optimal \(centralized\) load)] +] -66.7 MRshow +LT1 +6077 4437 M +543 0 V +1140 600 M +58 2 V +58 3 V +57 2 V +58 3 V +58 2 V +58 3 V +57 2 V +58 3 V +58 2 V +58 3 V +58 2 V +57 3 V +58 2 V +58 3 V +58 2 V +57 3 V +58 2 V +58 3 V +58 2 V +58 3 V +57 2 V +58 3 V +58 2 V +58 3 V +57 2 V +58 3 V +58 2 V +58 3 V +58 2 V +57 2 V +58 3 V +58 2 V +58 3 V +57 2 V +58 3 V +58 2 V +58 3 V +58 2 V +57 3 V +58 2 V +58 3 V +58 2 V +57 3 V +58 2 V +58 3 V +58 2 V +58 3 V +57 2 V +58 3 V +58 2 V +58 3 V +57 2 V +58 3 V +58 2 V +58 3 V +58 2 V +57 2 V +58 3 V +58 2 V +58 3 V +57 2 V +58 3 V +58 2 V +58 3 V +58 2 V +57 3 V +58 2 V +58 3 V +58 2 V +57 3 V +58 2 V +58 3 V +58 2 V +58 3 V +57 2 V +58 3 V +58 2 V +58 3 V +57 2 V +58 3 V +58 2 V +58 3 V +58 2 V +57 3 V +58 2 V +58 2 V +58 3 V +57 2 V +58 3 V +58 2 V +58 3 V +58 2 V +57 3 V +58 2 V +58 3 V +58 2 V +57 3 V +58 2 V +58 3 V +stroke +LT2 +LTb +5957 4237 M +[ [(Helvetica) 200.0 0.0 true true 0 (SWIM Avg. load with P\(fail\)=0.1%)] +] -66.7 MRshow +LT2 +6077 4237 M +543 0 V +1140 600 M +58 8 V +58 8 V +57 8 V +58 8 V +58 7 V +58 8 V +57 8 V +58 8 V +58 8 V +58 8 V +58 8 V +57 8 V +58 7 V +58 8 V +58 8 V +57 8 V +58 8 V +58 8 V +58 8 V +58 8 V +57 8 V +58 7 V +58 8 V +58 8 V +57 8 V +58 8 V +58 8 V +58 8 V +58 8 V +57 7 V +58 8 V +58 8 V +58 8 V +57 8 V +58 8 V +58 8 V +58 8 V +58 8 V +57 7 V +58 8 V +58 8 V +58 8 V +57 8 V +58 8 V +58 8 V +58 8 V +58 7 V +57 8 V +58 8 V +58 8 V +58 8 V +57 8 V +58 8 V +58 8 V +58 8 V +58 7 V +57 8 V +58 8 V +58 8 V +58 8 V +57 8 V +58 8 V +58 8 V +58 7 V +58 8 V +57 8 V +58 8 V +58 8 V +58 8 V +57 8 V +58 8 V +58 8 V +58 7 V +58 8 V +57 8 V +58 8 V +58 8 V +58 8 V +57 8 V +58 8 V +58 7 V +58 8 V +58 8 V +57 8 V +58 8 V +58 8 V +58 8 V +57 8 V +58 8 V +58 7 V +58 8 V +58 8 V +57 8 V +58 8 V +58 8 V +58 8 V +57 8 V +58 7 V +58 8 V +stroke +LT3 +LTb +5957 4037 M +[ [(Helvetica) 200.0 0.0 true true 0 (SWIM Avg. load with P\(fail\)=1%)] +] -66.7 MRshow +LT3 +6077 4037 M +543 0 V +1140 600 M +58 8 V +58 8 V +57 8 V +58 9 V +58 8 V +58 8 V +57 8 V +58 8 V +58 8 V +58 8 V +58 8 V +57 9 V +58 8 V +58 8 V +58 8 V +57 8 V +58 8 V +58 8 V +58 9 V +58 8 V +57 8 V +58 8 V +58 8 V +58 8 V +57 8 V +58 8 V +58 9 V +58 8 V +58 8 V +57 8 V +58 8 V +58 8 V +58 8 V +57 9 V +58 8 V +58 8 V +58 8 V +58 8 V +57 8 V +58 8 V +58 9 V +58 8 V +57 8 V +58 8 V +58 8 V +58 8 V +58 8 V +57 8 V +58 9 V +58 8 V +58 8 V +57 8 V +58 8 V +58 8 V +58 8 V +58 9 V +57 8 V +58 8 V +58 8 V +58 8 V +57 8 V +58 8 V +58 8 V +58 9 V +58 8 V +57 8 V +58 8 V +58 8 V +58 8 V +57 8 V +58 9 V +58 8 V +58 8 V +58 8 V +57 8 V +58 8 V +58 8 V +58 8 V +57 9 V +58 8 V +58 8 V +58 8 V +58 8 V +57 8 V +58 8 V +58 9 V +58 8 V +57 8 V +58 8 V +58 8 V +58 8 V +58 8 V +57 8 V +58 9 V +58 8 V +58 8 V +57 8 V +58 8 V +58 8 V +stroke +LT4 +LTb +5957 3837 M +[ [(Helvetica) 200.0 0.0 true true 0 (SWIM Avg. load with P\(fail\)=10%)] +] -66.7 MRshow +LT4 +6077 3837 M +543 0 V +1140 600 M +58 11 V +58 10 V +57 11 V +58 10 V +58 11 V +58 10 V +57 11 V +58 10 V +58 11 V +58 10 V +58 11 V +57 10 V +58 11 V +58 11 V +58 10 V +57 11 V +58 10 V +58 11 V +58 10 V +58 11 V +57 10 V +58 11 V +58 10 V +58 11 V +57 11 V +58 10 V +58 11 V +58 10 V +58 11 V +57 10 V +58 11 V +58 10 V +58 11 V +57 10 V +58 11 V +58 10 V +58 11 V +58 11 V +57 10 V +58 11 V +58 10 V +58 11 V +57 10 V +58 11 V +58 10 V +58 11 V +58 10 V +57 11 V +58 11 V +58 10 V +58 11 V +57 10 V +58 11 V +58 10 V +58 11 V +58 10 V +57 11 V +58 10 V +58 11 V +58 10 V +57 11 V +58 11 V +58 10 V +58 11 V +58 10 V +57 11 V +58 10 V +58 11 V +58 10 V +57 11 V +58 10 V +58 11 V +58 11 V +58 10 V +57 11 V +58 10 V +58 11 V +58 10 V +57 11 V +58 10 V +58 11 V +58 10 V +58 11 V +57 10 V +58 11 V +58 11 V +58 10 V +57 11 V +58 10 V +58 11 V +58 10 V +58 11 V +57 10 V +58 11 V +58 10 V +58 11 V +57 11 V +58 10 V +58 11 V +stroke +LTb +1140 4800 N +0 -4200 V +5720 0 V +0 4200 V +-5720 0 V +Z stroke +1.000 UP +1.000 UL +LTb +stroke +grestore +end +showpage +%%Trailer +%%DocumentFonts: Helvetica diff --git a/papers/Grayskull-EpidemicFD/load-calc-swim.pdf b/papers/Grayskull-EpidemicFD/load-calc-swim.pdf new file mode 100644 index 0000000..f42c507 Binary files /dev/null and b/papers/Grayskull-EpidemicFD/load-calc-swim.pdf differ diff --git a/papers/Grayskull-EpidemicFD/load-calc.eps b/papers/Grayskull-EpidemicFD/load-calc.eps new file mode 100644 index 0000000..91fe4b9 --- /dev/null +++ b/papers/Grayskull-EpidemicFD/load-calc.eps @@ -0,0 +1,1532 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: load-calc.eps +%%Creator: gnuplot 4.2 patchlevel 3 +%%CreationDate: Thu Sep 17 12:55:42 2009 +%%DocumentFonts: (atend) +%%BoundingBox: 50 50 410 302 +%%EndComments +%%BeginProlog +/gnudict 256 dict def +gnudict begin +% +% The following 6 true/false flags may be edited by hand if required +% The unit line width 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 +/TransparentPatterns false def +/gnulinewidth 5.000 def +/userlinewidth gnulinewidth def +% +/vshift -66 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 +Level1 {} { +/SDict 10 dict def +systemdict /pdfmark known not { + userdict /pdfmark systemdict /cleartomark get put +} if +SDict begin [ + /Title (load-calc.eps) + /Subject (gnuplot plot) + /Creator (gnuplot 4.2 patchlevel 3 ) + /Author (slang) +% /Producer (gnuplot) +% /Keywords () + /CreationDate (Thu Sep 17 12:55:42 2009) + /DOCINFO pdfmark +end +} ifelse +% +% Gnuplot Prolog Version 4.2 (August 2006) +% +/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 +/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 +% 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 + gsave 1 setgray fill grestore 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 {show} {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} bind 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 stringwidth pop add} {pop} ifelse} ifelse} forall} bind 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 +end +%%EndProlog +gnudict begin +gsave +50 50 translate +0.050 0.050 scale +0 setgray +newpath +(Helvetica) findfont 200 scalefont setfont +1.000 UL +LTb +1380 600 M +63 0 V +5417 0 R +-63 0 V +stroke +1260 600 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 0)] +] -66.7 MRshow +1.000 UL +LTb +1380 1440 M +63 0 V +5417 0 R +-63 0 V +stroke +1260 1440 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 20000)] +] -66.7 MRshow +1.000 UL +LTb +1380 2280 M +63 0 V +5417 0 R +-63 0 V +stroke +1260 2280 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 40000)] +] -66.7 MRshow +1.000 UL +LTb +1380 3120 M +63 0 V +5417 0 R +-63 0 V +stroke +1260 3120 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 60000)] +] -66.7 MRshow +1.000 UL +LTb +1380 3960 M +63 0 V +5417 0 R +-63 0 V +stroke +1260 3960 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 80000)] +] -66.7 MRshow +1.000 UL +LTb +1380 4800 M +63 0 V +5417 0 R +-63 0 V +stroke +1260 4800 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 100000)] +] -66.7 MRshow +1.000 UL +LTb +1380 600 M +0 63 V +0 4137 R +0 -63 V +stroke +1380 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 0)] +] -66.7 MCshow +1.000 UL +LTb +2049 600 M +0 63 V +0 4137 R +0 -63 V +stroke +2049 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 500)] +] -66.7 MCshow +1.000 UL +LTb +2718 600 M +0 63 V +0 4137 R +0 -63 V +stroke +2718 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 1000)] +] -66.7 MCshow +1.000 UL +LTb +3387 600 M +0 63 V +0 4137 R +0 -63 V +stroke +3387 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 1500)] +] -66.7 MCshow +1.000 UL +LTb +4056 600 M +0 63 V +0 4137 R +0 -63 V +stroke +4056 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 2000)] +] -66.7 MCshow +1.000 UL +LTb +4725 600 M +0 63 V +0 4137 R +0 -63 V +stroke +4725 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 2500)] +] -66.7 MCshow +1.000 UL +LTb +5394 600 M +0 63 V +0 4137 R +0 -63 V +stroke +5394 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 3000)] +] -66.7 MCshow +1.000 UL +LTb +6063 600 M +0 63 V +0 4137 R +0 -63 V +stroke +6063 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 3500)] +] -66.7 MCshow +1.000 UL +LTb +6732 600 M +0 63 V +0 4137 R +0 -63 V +stroke +6732 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 4000)] +] -66.7 MCshow +1.000 UL +LTb +1.000 UL +LTb +1380 4800 N +0 -4200 V +5480 0 V +0 4200 V +-5480 0 V +Z stroke +LCb setrgbcolor +200 2700 M +currentpoint gsave translate 90 rotate 0 0 moveto +[ [(Helvetica) 200.0 0.0 true true 0 (Network Load \(messages per time period\))] +] -66.7 MCshow +grestore +LTb +LCb setrgbcolor +4120 100 M +[ [(Helvetica) 200.0 0.0 true true 0 (Node Count \(N\))] +] -66.7 MCshow +LTb +1.000 UP +1.000 UL +LTb +1.000 UL +LT0 +LTb +5957 4637 M +[ [(Helvetica) 200.0 0.0 true true 0 (Optimal \(centralized\) load)] +] -66.7 MRshow +LT0 +6077 4637 M +543 0 V +1380 600 M +55 2 V +56 1 V +55 2 V +55 2 V +56 2 V +55 1 V +55 2 V +56 2 V +55 2 V +56 1 V +55 2 V +55 2 V +56 2 V +55 1 V +55 2 V +56 2 V +55 2 V +55 1 V +56 2 V +55 2 V +55 1 V +56 2 V +55 2 V +55 2 V +56 1 V +55 2 V +56 2 V +55 2 V +55 1 V +56 2 V +55 2 V +55 2 V +56 1 V +55 2 V +55 2 V +56 2 V +55 1 V +55 2 V +56 2 V +55 2 V +55 1 V +56 2 V +55 2 V +56 1 V +55 2 V +55 2 V +56 2 V +55 1 V +55 2 V +56 2 V +55 2 V +55 1 V +56 2 V +55 2 V +55 2 V +56 1 V +55 2 V +56 2 V +55 2 V +55 1 V +56 2 V +55 2 V +55 1 V +56 2 V +55 2 V +55 2 V +56 1 V +55 2 V +55 2 V +56 2 V +55 1 V +55 2 V +56 2 V +55 2 V +56 1 V +55 2 V +55 2 V +56 2 V +55 1 V +55 2 V +56 2 V +55 1 V +55 2 V +56 2 V +55 2 V +55 1 V +56 2 V +55 2 V +55 2 V +56 1 V +55 2 V +56 2 V +55 2 V +55 1 V +56 2 V +55 2 V +55 2 V +56 1 V +55 2 V +stroke +LT1 +LTb +5957 4437 M +[ [(Helvetica) 200.0 0.0 true true 0 (Distributed Heartbeat load)] +] -66.7 MRshow +LT1 +6077 4437 M +543 0 V +1380 600 M +55 72 V +56 216 V +55 359 V +55 503 V +56 647 V +55 791 V +55 935 V +35 677 V +stroke +LT2 +LTb +5957 4237 M +[ [(Helvetica) 200.0 0.0 true true 0 (van Renesse Heartbeat load)] +] -66.7 MRshow +LT2 +6077 4237 M +543 0 V +1435 868 M +56 1002 V +55 1850 V +22 1080 V +stroke +LT3 +LTb +5957 4037 M +[ [(Helvetica) 200.0 0.0 true true 0 (SWIM Worst-case load)] +] -66.7 MRshow +LT3 +6077 4037 M +543 0 V +1380 600 M +55 17 V +56 18 V +55 17 V +55 18 V +56 17 V +55 17 V +55 18 V +56 17 V +55 17 V +56 18 V +55 17 V +55 18 V +56 17 V +55 17 V +55 18 V +56 17 V +55 17 V +55 18 V +56 17 V +55 18 V +55 17 V +56 17 V +55 18 V +55 17 V +56 17 V +55 18 V +56 17 V +55 18 V +55 17 V +56 17 V +55 18 V +55 17 V +56 17 V +55 18 V +55 17 V +56 18 V +55 17 V +55 17 V +56 18 V +55 17 V +55 17 V +56 18 V +55 17 V +56 18 V +55 17 V +55 17 V +56 18 V +55 17 V +55 17 V +56 18 V +55 17 V +55 18 V +56 17 V +55 17 V +55 18 V +56 17 V +55 17 V +56 18 V +55 17 V +55 18 V +56 17 V +55 17 V +55 18 V +56 17 V +55 18 V +55 17 V +56 17 V +55 18 V +55 17 V +56 17 V +55 18 V +55 17 V +56 18 V +55 17 V +56 17 V +55 18 V +55 17 V +56 17 V +55 18 V +55 17 V +56 18 V +55 17 V +55 17 V +56 18 V +55 17 V +55 17 V +56 18 V +55 17 V +55 18 V +56 17 V +55 17 V +56 18 V +55 17 V +55 17 V +56 18 V +55 17 V +55 18 V +56 17 V +55 17 V +stroke +LTb +1380 4800 N +0 -4200 V +5480 0 V +0 4200 V +-5480 0 V +Z stroke +1.000 UP +1.000 UL +LTb +stroke +grestore +end +showpage +gnudict begin +gsave +50 50 translate +0.050 0.050 scale +0 setgray +newpath +(Helvetica) findfont 200 scalefont setfont +1.000 UL +LTb +1380 600 M +63 0 V +5417 0 R +-63 0 V +stroke +1260 600 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 0)] +] -66.7 MRshow +1.000 UL +LTb +1380 1440 M +63 0 V +5417 0 R +-63 0 V +stroke +1260 1440 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 20000)] +] -66.7 MRshow +1.000 UL +LTb +1380 2280 M +63 0 V +5417 0 R +-63 0 V +stroke +1260 2280 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 40000)] +] -66.7 MRshow +1.000 UL +LTb +1380 3120 M +63 0 V +5417 0 R +-63 0 V +stroke +1260 3120 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 60000)] +] -66.7 MRshow +1.000 UL +LTb +1380 3960 M +63 0 V +5417 0 R +-63 0 V +stroke +1260 3960 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 80000)] +] -66.7 MRshow +1.000 UL +LTb +1380 4800 M +63 0 V +5417 0 R +-63 0 V +stroke +1260 4800 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 100000)] +] -66.7 MRshow +1.000 UL +LTb +1380 600 M +0 63 V +0 4137 R +0 -63 V +stroke +1380 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 0)] +] -66.7 MCshow +1.000 UL +LTb +2049 600 M +0 63 V +0 4137 R +0 -63 V +stroke +2049 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 500)] +] -66.7 MCshow +1.000 UL +LTb +2718 600 M +0 63 V +0 4137 R +0 -63 V +stroke +2718 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 1000)] +] -66.7 MCshow +1.000 UL +LTb +3387 600 M +0 63 V +0 4137 R +0 -63 V +stroke +3387 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 1500)] +] -66.7 MCshow +1.000 UL +LTb +4056 600 M +0 63 V +0 4137 R +0 -63 V +stroke +4056 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 2000)] +] -66.7 MCshow +1.000 UL +LTb +4725 600 M +0 63 V +0 4137 R +0 -63 V +stroke +4725 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 2500)] +] -66.7 MCshow +1.000 UL +LTb +5394 600 M +0 63 V +0 4137 R +0 -63 V +stroke +5394 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 3000)] +] -66.7 MCshow +1.000 UL +LTb +6063 600 M +0 63 V +0 4137 R +0 -63 V +stroke +6063 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 3500)] +] -66.7 MCshow +1.000 UL +LTb +6732 600 M +0 63 V +0 4137 R +0 -63 V +stroke +6732 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 4000)] +] -66.7 MCshow +1.000 UL +LTb +1.000 UL +LTb +1380 4800 N +0 -4200 V +5480 0 V +0 4200 V +-5480 0 V +Z stroke +LCb setrgbcolor +200 2700 M +currentpoint gsave translate 90 rotate 0 0 moveto +[ [(Helvetica) 200.0 0.0 true true 0 (Network Load \(messages per time period\))] +] -66.7 MCshow +grestore +LTb +LCb setrgbcolor +4120 100 M +[ [(Helvetica) 200.0 0.0 true true 0 (Node Count \(N\))] +] -66.7 MCshow +LTb +1.000 UP +1.000 UL +LTb +1.000 UL +LT0 +LTb +5957 4637 M +[ [(Helvetica) 200.0 0.0 true true 0 (SWIM Worst-case load)] +] -66.7 MRshow +LT0 +6077 4637 M +543 0 V +1380 600 M +55 17 V +56 18 V +55 17 V +55 18 V +56 17 V +55 17 V +55 18 V +56 17 V +55 17 V +56 18 V +55 17 V +55 18 V +56 17 V +55 17 V +55 18 V +56 17 V +55 17 V +55 18 V +56 17 V +55 18 V +55 17 V +56 17 V +55 18 V +55 17 V +56 17 V +55 18 V +56 17 V +55 18 V +55 17 V +56 17 V +55 18 V +55 17 V +56 17 V +55 18 V +55 17 V +56 18 V +55 17 V +55 17 V +56 18 V +55 17 V +55 17 V +56 18 V +55 17 V +56 18 V +55 17 V +55 17 V +56 18 V +55 17 V +55 17 V +56 18 V +55 17 V +55 18 V +56 17 V +55 17 V +55 18 V +56 17 V +55 17 V +56 18 V +55 17 V +55 18 V +56 17 V +55 17 V +55 18 V +56 17 V +55 18 V +55 17 V +56 17 V +55 18 V +55 17 V +56 17 V +55 18 V +55 17 V +56 18 V +55 17 V +56 17 V +55 18 V +55 17 V +56 17 V +55 18 V +55 17 V +56 18 V +55 17 V +55 17 V +56 18 V +55 17 V +55 17 V +56 18 V +55 17 V +55 18 V +56 17 V +55 17 V +56 18 V +55 17 V +55 17 V +56 18 V +55 17 V +55 18 V +56 17 V +55 17 V +stroke +LT1 +LTb +5957 4437 M +[ [(Helvetica) 200.0 0.0 true true 0 (SWIM Avg. load with P\(fail\)=0.1%)] +] -66.7 MRshow +LT1 +6077 4437 M +543 0 V +1380 600 M +55 3 V +56 4 V +55 3 V +55 4 V +56 3 V +55 4 V +55 3 V +56 4 V +55 3 V +56 4 V +55 3 V +55 4 V +56 3 V +55 4 V +55 3 V +56 4 V +55 3 V +55 4 V +56 3 V +55 4 V +55 3 V +56 4 V +55 3 V +55 4 V +56 3 V +55 4 V +56 3 V +55 4 V +55 3 V +56 4 V +55 3 V +55 4 V +56 3 V +55 4 V +55 3 V +56 3 V +55 4 V +55 3 V +56 4 V +55 3 V +55 4 V +56 3 V +55 4 V +56 3 V +55 4 V +55 3 V +56 4 V +55 3 V +55 4 V +56 3 V +55 4 V +55 3 V +56 4 V +55 3 V +55 4 V +56 3 V +55 4 V +56 3 V +55 4 V +55 3 V +56 4 V +55 3 V +55 4 V +56 3 V +55 4 V +55 3 V +56 4 V +55 3 V +55 4 V +56 3 V +55 3 V +55 4 V +56 3 V +55 4 V +56 3 V +55 4 V +55 3 V +56 4 V +55 3 V +55 4 V +56 3 V +55 4 V +55 3 V +56 4 V +55 3 V +55 4 V +56 3 V +55 4 V +55 3 V +56 4 V +55 3 V +56 4 V +55 3 V +55 4 V +56 3 V +55 4 V +55 3 V +56 4 V +55 3 V +stroke +LT2 +LTb +5957 4237 M +[ [(Helvetica) 200.0 0.0 true true 0 (SWIM Avg. load with P\(fail\)=1%)] +] -66.7 MRshow +LT2 +6077 4237 M +543 0 V +1380 600 M +55 4 V +56 3 V +55 4 V +55 3 V +56 4 V +55 3 V +55 4 V +56 4 V +55 3 V +56 4 V +55 3 V +55 4 V +56 4 V +55 3 V +55 4 V +56 3 V +55 4 V +55 3 V +56 4 V +55 4 V +55 3 V +56 4 V +55 3 V +55 4 V +56 3 V +55 4 V +56 4 V +55 3 V +55 4 V +56 3 V +55 4 V +55 4 V +56 3 V +55 4 V +55 3 V +56 4 V +55 3 V +55 4 V +56 4 V +55 3 V +55 4 V +56 3 V +55 4 V +56 3 V +55 4 V +55 4 V +56 3 V +55 4 V +55 3 V +56 4 V +55 3 V +55 4 V +56 4 V +55 3 V +55 4 V +56 3 V +55 4 V +56 4 V +55 3 V +55 4 V +56 3 V +55 4 V +55 3 V +56 4 V +55 4 V +55 3 V +56 4 V +55 3 V +55 4 V +56 3 V +55 4 V +55 4 V +56 3 V +55 4 V +56 3 V +55 4 V +55 4 V +56 3 V +55 4 V +55 3 V +56 4 V +55 3 V +55 4 V +56 4 V +55 3 V +55 4 V +56 3 V +55 4 V +55 3 V +56 4 V +55 4 V +56 3 V +55 4 V +55 3 V +56 4 V +55 4 V +55 3 V +56 4 V +55 3 V +stroke +LT3 +LTb +5957 4037 M +[ [(Helvetica) 200.0 0.0 true true 0 (SWIM Avg. load with P\(fail\)=10%)] +] -66.7 MRshow +LT3 +6077 4037 M +543 0 V +1380 600 M +55 4 V +56 5 V +55 4 V +55 5 V +56 4 V +55 4 V +55 5 V +56 4 V +55 4 V +56 5 V +55 4 V +55 5 V +56 4 V +55 4 V +55 5 V +56 4 V +55 4 V +55 5 V +56 4 V +55 5 V +55 4 V +56 4 V +55 5 V +55 4 V +56 4 V +55 5 V +56 4 V +55 5 V +55 4 V +56 4 V +55 5 V +55 4 V +56 5 V +55 4 V +55 4 V +56 5 V +55 4 V +55 4 V +56 5 V +55 4 V +55 5 V +56 4 V +55 4 V +56 5 V +55 4 V +55 4 V +56 5 V +55 4 V +55 5 V +56 4 V +55 4 V +55 5 V +56 4 V +55 4 V +55 5 V +56 4 V +55 5 V +56 4 V +55 4 V +55 5 V +56 4 V +55 4 V +55 5 V +56 4 V +55 5 V +55 4 V +56 4 V +55 5 V +55 4 V +56 5 V +55 4 V +55 4 V +56 5 V +55 4 V +56 4 V +55 5 V +55 4 V +56 5 V +55 4 V +55 4 V +56 5 V +55 4 V +55 4 V +56 5 V +55 4 V +55 5 V +56 4 V +55 4 V +55 5 V +56 4 V +55 4 V +56 5 V +55 4 V +55 5 V +56 4 V +55 4 V +55 5 V +56 4 V +55 5 V +stroke +LTb +1380 4800 N +0 -4200 V +5480 0 V +0 4200 V +-5480 0 V +Z stroke +1.000 UP +1.000 UL +LTb +stroke +grestore +end +showpage +%%Trailer +%%DocumentFonts: Helvetica diff --git a/papers/Grayskull-EpidemicFD/load-calc.gp b/papers/Grayskull-EpidemicFD/load-calc.gp new file mode 100644 index 0000000..61843a7 --- /dev/null +++ b/papers/Grayskull-EpidemicFD/load-calc.gp @@ -0,0 +1,38 @@ +set terminal post eps enhanced color "Helvetica" 20 + + +set xlabel 'Node Count (N)' +set ylabel "Network Load (messages per time to detection - 10s)" + + +lg(n)=log(n)/log(2) + +k=2 +Tau=10 +Tprime(tt, pf)=tt*(1-exp(-(1 - pf))) + +LT(n,T)=n*(2+(4*k))/T +ELT(n, pf, T)=n*(1-pf)*(2+pf*4*k)/T +ML(n,T) = n/T +DL(n,T) = n*n/T +VL(n,T) = n*n*log(n)/T + +L(n,pf)=LT(n,Tprime(Tau,pf)) +EL(n,pf)=ELT(n,pf,Tprime(Tau,pf)) +M(n)=ML(n,Tau) +D(n)=DL(n,Tau) +V(n)=VL(n,Tau) + +set output 'load-calc-compare.eps' +set yrange [0:400000] +plot [n=1:4096] D(n) ti "Distributed Heartbeat N-to-N load", \ + V(n) ti "van Renesse Heartbeat load", \ + L(n, 0) ti "SWIM Worst-case load" + +set output 'load-calc-swim.eps' +set yrange [0:7000] +plot [n=0:4096] L(n, 0) ti "SWIM Worst-case load", \ + M(n) ti "Optimal (centralized) load", \ + EL(n, 0.001) ti "SWIM Avg. load with P(fail)=0.1%", \ + EL(n, 0.01) ti "SWIM Avg. load with P(fail)=1%", \ + EL(n, 0.1) ti "SWIM Avg. load with P(fail)=10%" diff --git a/papers/Grayskull-EpidemicFD/markov-infect-probs-n128.data b/papers/Grayskull-EpidemicFD/markov-infect-probs-n128.data new file mode 100644 index 0000000..ea7deb8 --- /dev/null +++ b/papers/Grayskull-EpidemicFD/markov-infect-probs-n128.data @@ -0,0 +1,36 @@ +1 7.874015748031496e-3 +2 1.5686031372062745e-2 +3 3.109605345226191e-2 +4 6.0827227027394216e-2 +5 0.11582625607786827 +6 0.21016678015009602 +7 0.353030290354705 +8 0.5331132416950181 +9 0.7124005107021991 +10 0.8497675733921141 +11 0.9318652382834535 +12 0.9720470476457262 +13 0.9892047355922884 +14 0.9959628564590073 +15 0.9985136659579068 +16 0.9994566968475717 +17 0.9998020311122593 +18 0.9999279613519867 +19 0.9999738007529964 +20 0.9999904739913533 +21 0.9999965366850001 +22 0.9999987409109657 +23 0.9999995422648473 +24 0.9999998335938155 +25 0.9999999395044231 +26 0.9999999780073595 +27 0.9999999920047699 +28 0.9999999970934051 +29 0.9999999989433334 +30 0.9999999996158583 +31 0.9999999998603487 +32 0.999999999949231 +33 0.9999999999815434 +34 0.9999999999932903 +35 0.9999999999975607 + diff --git a/papers/Grayskull-EpidemicFD/markov-infect-probs-zoom1.eps b/papers/Grayskull-EpidemicFD/markov-infect-probs-zoom1.eps new file mode 100644 index 0000000..abb229b --- /dev/null +++ b/papers/Grayskull-EpidemicFD/markov-infect-probs-zoom1.eps @@ -0,0 +1,640 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: markov-infect-probs-zoom1.eps +%%Creator: gnuplot 4.2 patchlevel 3 +%%CreationDate: Thu Oct 1 00:27:42 2009 +%%DocumentFonts: (atend) +%%BoundingBox: 50 50 410 302 +%%EndComments +%%BeginProlog +/gnudict 256 dict def +gnudict begin +% +% The following 6 true/false flags may be edited by hand if required +% The unit line width 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 +/TransparentPatterns false def +/gnulinewidth 5.000 def +/userlinewidth gnulinewidth def +% +/vshift -66 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 +Level1 {} { +/SDict 10 dict def +systemdict /pdfmark known not { + userdict /pdfmark systemdict /cleartomark get put +} if +SDict begin [ + /Title (markov-infect-probs-zoom1.eps) + /Subject (gnuplot plot) + /Creator (gnuplot 4.2 patchlevel 3 ) + /Author (slang) +% /Producer (gnuplot) +% /Keywords () + /CreationDate (Thu Oct 1 00:27:42 2009) + /DOCINFO pdfmark +end +} ifelse +% +% Gnuplot Prolog Version 4.2 (August 2006) +% +/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 +/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 +% 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 + gsave 1 setgray fill grestore 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 {show} {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} bind 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 stringwidth pop add} {pop} ifelse} ifelse} forall} bind 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 +end +%%EndProlog +gnudict begin +gsave +50 50 translate +0.050 0.050 scale +0 setgray +newpath +(Helvetica) findfont 200 scalefont setfont +1.000 UL +LTb +1380 600 M +63 0 V +5417 0 R +-63 0 V +stroke +1260 600 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 0.999)] +] -66.7 MRshow +1.000 UL +LTb +1380 1440 M +63 0 V +5417 0 R +-63 0 V +stroke +1260 1440 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 0.9992)] +] -66.7 MRshow +1.000 UL +LTb +1380 2280 M +63 0 V +5417 0 R +-63 0 V +stroke +1260 2280 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 0.9994)] +] -66.7 MRshow +1.000 UL +LTb +1380 3120 M +63 0 V +5417 0 R +-63 0 V +stroke +1260 3120 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 0.9996)] +] -66.7 MRshow +1.000 UL +LTb +1380 3960 M +63 0 V +5417 0 R +-63 0 V +stroke +1260 3960 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 0.9998)] +] -66.7 MRshow +1.000 UL +LTb +1380 4800 M +63 0 V +5417 0 R +-63 0 V +stroke +1260 4800 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 1)] +] -66.7 MRshow +1.000 UL +LTb +1380 600 M +0 63 V +0 4137 R +0 -63 V +stroke +1380 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 14)] +] -66.7 MCshow +1.000 UL +LTb +2376 600 M +0 63 V +0 4137 R +0 -63 V +stroke +2376 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 16)] +] -66.7 MCshow +1.000 UL +LTb +3373 600 M +0 63 V +0 4137 R +0 -63 V +stroke +3373 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 18)] +] -66.7 MCshow +1.000 UL +LTb +4369 600 M +0 63 V +0 4137 R +0 -63 V +stroke +4369 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 20)] +] -66.7 MCshow +1.000 UL +LTb +5365 600 M +0 63 V +0 4137 R +0 -63 V +stroke +5365 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 22)] +] -66.7 MCshow +1.000 UL +LTb +6362 600 M +0 63 V +0 4137 R +0 -63 V +stroke +6362 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 24)] +] -66.7 MCshow +1.000 UL +LTb +1.000 UL +LTb +1380 4800 N +0 -4200 V +5480 0 V +0 4200 V +-5480 0 V +Z stroke +LCb setrgbcolor +200 2700 M +currentpoint gsave translate 90 rotate 0 0 moveto +[ [(Helvetica) 200.0 0.0 true true 0 (Probability within 3 Nines)] +] -66.7 MCshow +grestore +LTb +LCb setrgbcolor +4120 100 M +[ [(Helvetica) 200.0 0.0 true true 0 (Protocol Rounds \(19 - 30\))] +] -66.7 MCshow +LTb +1.000 UP +1.000 UL +LTb +1.000 UL +LT0 +LTb +5957 4637 M +[ [(Helvetica) 200.0 0.0 true true 0 (P\(infect\) N=128)] +] -66.7 MRshow +LT0 +6077 4637 M +543 0 V +2135 600 M +241 1918 V +499 1451 V +498 528 V +498 193 V +498 70 V +498 25 V +498 10 V +499 3 V +498 1 V +498 1 V +stroke +LTb +1380 4800 N +0 -4200 V +5480 0 V +0 4200 V +-5480 0 V +Z stroke +1.000 UP +1.000 UL +LTb +stroke +grestore +end +showpage +%%Trailer +%%DocumentFonts: Helvetica diff --git a/papers/Grayskull-EpidemicFD/markov-infect-probs-zoom1.pdf b/papers/Grayskull-EpidemicFD/markov-infect-probs-zoom1.pdf new file mode 100644 index 0000000..04a3c3a Binary files /dev/null and b/papers/Grayskull-EpidemicFD/markov-infect-probs-zoom1.pdf differ diff --git a/papers/Grayskull-EpidemicFD/markov-infect-probs-zoom2.eps b/papers/Grayskull-EpidemicFD/markov-infect-probs-zoom2.eps new file mode 100644 index 0000000..54c6d23 --- /dev/null +++ b/papers/Grayskull-EpidemicFD/markov-infect-probs-zoom2.eps @@ -0,0 +1,691 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: markov-infect-probs-zoom2.eps +%%Creator: gnuplot 4.2 patchlevel 3 +%%CreationDate: Thu Oct 1 00:27:42 2009 +%%DocumentFonts: (atend) +%%BoundingBox: 50 50 410 302 +%%EndComments +%%BeginProlog +/gnudict 256 dict def +gnudict begin +% +% The following 6 true/false flags may be edited by hand if required +% The unit line width 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 +/TransparentPatterns false def +/gnulinewidth 5.000 def +/userlinewidth gnulinewidth def +% +/vshift -66 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 +Level1 {} { +/SDict 10 dict def +systemdict /pdfmark known not { + userdict /pdfmark systemdict /cleartomark get put +} if +SDict begin [ + /Title (markov-infect-probs-zoom2.eps) + /Subject (gnuplot plot) + /Creator (gnuplot 4.2 patchlevel 3 ) + /Author (slang) +% /Producer (gnuplot) +% /Keywords () + /CreationDate (Thu Oct 1 00:27:42 2009) + /DOCINFO pdfmark +end +} ifelse +% +% Gnuplot Prolog Version 4.2 (August 2006) +% +/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 +/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 +% 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 + gsave 1 setgray fill grestore 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 {show} {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} bind 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 stringwidth pop add} {pop} ifelse} ifelse} forall} bind 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 +end +%%EndProlog +gnudict begin +gsave +50 50 translate +0.050 0.050 scale +0 setgray +newpath +(Helvetica) findfont 200 scalefont setfont +1.000 UL +LTb +1620 600 M +63 0 V +5177 0 R +-63 0 V +stroke +1500 600 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 0.99999)] +] -66.7 MRshow +1.000 UL +LTb +1620 1020 M +63 0 V +5177 0 R +-63 0 V +stroke +1500 1020 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 0.999991)] +] -66.7 MRshow +1.000 UL +LTb +1620 1440 M +63 0 V +5177 0 R +-63 0 V +stroke +1500 1440 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 0.999992)] +] -66.7 MRshow +1.000 UL +LTb +1620 1860 M +63 0 V +5177 0 R +-63 0 V +stroke +1500 1860 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 0.999993)] +] -66.7 MRshow +1.000 UL +LTb +1620 2280 M +63 0 V +5177 0 R +-63 0 V +stroke +1500 2280 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 0.999994)] +] -66.7 MRshow +1.000 UL +LTb +1620 2700 M +63 0 V +5177 0 R +-63 0 V +stroke +1500 2700 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 0.999995)] +] -66.7 MRshow +1.000 UL +LTb +1620 3120 M +63 0 V +5177 0 R +-63 0 V +stroke +1500 3120 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 0.999996)] +] -66.7 MRshow +1.000 UL +LTb +1620 3540 M +63 0 V +5177 0 R +-63 0 V +stroke +1500 3540 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 0.999997)] +] -66.7 MRshow +1.000 UL +LTb +1620 3960 M +63 0 V +5177 0 R +-63 0 V +stroke +1500 3960 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 0.999998)] +] -66.7 MRshow +1.000 UL +LTb +1620 4380 M +63 0 V +5177 0 R +-63 0 V +stroke +1500 4380 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 0.999999)] +] -66.7 MRshow +1.000 UL +LTb +1620 4800 M +63 0 V +5177 0 R +-63 0 V +stroke +1500 4800 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 1)] +] -66.7 MRshow +1.000 UL +LTb +2096 600 M +0 63 V +0 4137 R +0 -63 V +stroke +2096 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 20)] +] -66.7 MCshow +1.000 UL +LTb +3049 600 M +0 63 V +0 4137 R +0 -63 V +stroke +3049 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 22)] +] -66.7 MCshow +1.000 UL +LTb +4002 600 M +0 63 V +0 4137 R +0 -63 V +stroke +4002 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 24)] +] -66.7 MCshow +1.000 UL +LTb +4955 600 M +0 63 V +0 4137 R +0 -63 V +stroke +4955 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 26)] +] -66.7 MCshow +1.000 UL +LTb +5907 600 M +0 63 V +0 4137 R +0 -63 V +stroke +5907 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 28)] +] -66.7 MCshow +1.000 UL +LTb +6860 600 M +0 63 V +0 4137 R +0 -63 V +stroke +6860 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 30)] +] -66.7 MCshow +1.000 UL +LTb +1.000 UL +LTb +1620 4800 N +0 -4200 V +5240 0 V +0 4200 V +-5240 0 V +Z stroke +LCb setrgbcolor +200 2700 M +currentpoint gsave translate 90 rotate 0 0 moveto +[ [(Helvetica) 200.0 0.0 true true 0 (Probability within 5 nines)] +] -66.7 MCshow +grestore +LTb +LCb setrgbcolor +4240 100 M +[ [(Helvetica) 200.0 0.0 true true 0 (Protocol Rounds \(24 - 35\))] +] -66.7 MCshow +LTb +1.000 UP +1.000 UL +LTb +1.000 UL +LT0 +LTb +5957 4637 M +[ [(Helvetica) 200.0 0.0 true true 0 (P\(infect\) N=128)] +] -66.7 MRshow +LT0 +6077 4637 M +543 0 V +2083 600 M +13 199 V +477 2546 V +476 926 V +476 337 V +477 122 V +476 45 V +477 16 V +476 6 V +476 2 V +477 1 V +476 0 V +stroke +LTb +1620 4800 N +0 -4200 V +5240 0 V +0 4200 V +-5240 0 V +Z stroke +1.000 UP +1.000 UL +LTb +stroke +grestore +end +showpage +%%Trailer +%%DocumentFonts: Helvetica diff --git a/papers/Grayskull-EpidemicFD/markov-infect-probs-zoom2.pdf b/papers/Grayskull-EpidemicFD/markov-infect-probs-zoom2.pdf new file mode 100644 index 0000000..b4658ed Binary files /dev/null and b/papers/Grayskull-EpidemicFD/markov-infect-probs-zoom2.pdf differ diff --git a/papers/Grayskull-EpidemicFD/markov-infect-probs.eps b/papers/Grayskull-EpidemicFD/markov-infect-probs.eps new file mode 100644 index 0000000..0f8df21 --- /dev/null +++ b/papers/Grayskull-EpidemicFD/markov-infect-probs.eps @@ -0,0 +1,684 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: markov-infect-probs.eps +%%Creator: gnuplot 4.2 patchlevel 3 +%%CreationDate: Thu Oct 1 00:27:42 2009 +%%DocumentFonts: (atend) +%%BoundingBox: 50 50 410 302 +%%EndComments +%%BeginProlog +/gnudict 256 dict def +gnudict begin +% +% The following 6 true/false flags may be edited by hand if required +% The unit line width 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 +/TransparentPatterns false def +/gnulinewidth 5.000 def +/userlinewidth gnulinewidth def +% +/vshift -66 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 +Level1 {} { +/SDict 10 dict def +systemdict /pdfmark known not { + userdict /pdfmark systemdict /cleartomark get put +} if +SDict begin [ + /Title (markov-infect-probs.eps) + /Subject (gnuplot plot) + /Creator (gnuplot 4.2 patchlevel 3 ) + /Author (slang) +% /Producer (gnuplot) +% /Keywords () + /CreationDate (Thu Oct 1 00:27:42 2009) + /DOCINFO pdfmark +end +} ifelse +% +% Gnuplot Prolog Version 4.2 (August 2006) +% +/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 +/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 +% 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 + gsave 1 setgray fill grestore 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 {show} {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} bind 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 stringwidth pop add} {pop} ifelse} ifelse} forall} bind 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 +end +%%EndProlog +gnudict begin +gsave +50 50 translate +0.050 0.050 scale +0 setgray +newpath +(Helvetica) findfont 200 scalefont setfont +1.000 UL +LTb +1020 600 M +63 0 V +5777 0 R +-63 0 V +stroke +900 600 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 0)] +] -66.7 MRshow +1.000 UL +LTb +1020 1440 M +63 0 V +5777 0 R +-63 0 V +stroke +900 1440 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 0.2)] +] -66.7 MRshow +1.000 UL +LTb +1020 2280 M +63 0 V +5777 0 R +-63 0 V +stroke +900 2280 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 0.4)] +] -66.7 MRshow +1.000 UL +LTb +1020 3120 M +63 0 V +5777 0 R +-63 0 V +stroke +900 3120 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 0.6)] +] -66.7 MRshow +1.000 UL +LTb +1020 3960 M +63 0 V +5777 0 R +-63 0 V +stroke +900 3960 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 0.8)] +] -66.7 MRshow +1.000 UL +LTb +1020 4800 M +63 0 V +5777 0 R +-63 0 V +stroke +900 4800 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 1)] +] -66.7 MRshow +1.000 UL +LTb +1020 600 M +0 63 V +0 4137 R +0 -63 V +stroke +1020 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 0)] +] -66.7 MCshow +1.000 UL +LTb +1854 600 M +0 63 V +0 4137 R +0 -63 V +stroke +1854 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 5)] +] -66.7 MCshow +1.000 UL +LTb +2689 600 M +0 63 V +0 4137 R +0 -63 V +stroke +2689 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 10)] +] -66.7 MCshow +1.000 UL +LTb +3523 600 M +0 63 V +0 4137 R +0 -63 V +stroke +3523 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 15)] +] -66.7 MCshow +1.000 UL +LTb +4357 600 M +0 63 V +0 4137 R +0 -63 V +stroke +4357 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 20)] +] -66.7 MCshow +1.000 UL +LTb +5191 600 M +0 63 V +0 4137 R +0 -63 V +stroke +5191 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 25)] +] -66.7 MCshow +1.000 UL +LTb +6026 600 M +0 63 V +0 4137 R +0 -63 V +stroke +6026 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 30)] +] -66.7 MCshow +1.000 UL +LTb +6860 600 M +0 63 V +0 4137 R +0 -63 V +stroke +6860 400 M +[ [(Helvetica) 200.0 0.0 true true 0 ( 35)] +] -66.7 MCshow +1.000 UL +LTb +1.000 UL +LTb +1020 4800 N +0 -4200 V +5840 0 V +0 4200 V +-5840 0 V +Z stroke +LCb setrgbcolor +200 2700 M +currentpoint gsave translate 90 rotate 0 0 moveto +[ [(Helvetica) 200.0 0.0 true true 0 (Probability of Complete Dissemination)] +] -66.7 MCshow +grestore +LTb +LCb setrgbcolor +3940 100 M +[ [(Helvetica) 200.0 0.0 true true 0 (Protocol Rounds)] +] -66.7 MCshow +LTb +1.000 UP +1.000 UL +LTb +1.000 UL +LT0 +LTb +5957 4637 M +[ [(Helvetica) 200.0 0.0 true true 0 (P\(infect\) N=128)] +] -66.7 MRshow +LT0 +6077 4637 M +543 0 V +1187 633 M +167 33 V +167 65 V +166 124 V +167 231 V +167 397 V +167 600 V +167 756 V +167 753 V +167 577 V +166 345 V +167 169 V +167 72 V +167 28 V +167 11 V +167 4 V +167 1 V +166 1 V +167 0 V +167 0 V +167 0 V +167 0 V +167 0 V +167 0 V +166 0 V +167 0 V +167 0 V +167 0 V +167 0 V +167 0 V +167 0 V +166 0 V +167 0 V +167 0 V +167 0 V +stroke +LTb +1020 4800 N +0 -4200 V +5840 0 V +0 4200 V +-5840 0 V +Z stroke +1.000 UP +1.000 UL +LTb +stroke +grestore +end +showpage +%%Trailer +%%DocumentFonts: Helvetica diff --git a/papers/Grayskull-EpidemicFD/markov-infect-probs.pdf b/papers/Grayskull-EpidemicFD/markov-infect-probs.pdf new file mode 100644 index 0000000..ac42742 Binary files /dev/null and b/papers/Grayskull-EpidemicFD/markov-infect-probs.pdf differ hooks/post-receive -- Grayskull Repository
participants (1)
-
noreply@mcs.anl.gov