Skip to content
Browse files

much more content

  • Loading branch information...
1 parent 59d2156 commit 3056aeaaa2be8e397af7f54b271a0cd26d0181d2 @astro astro committed Aug 29, 2012
Showing with 864 additions and 4 deletions.
  1. +196 −4 index.html
  2. BIN preliminary-warp-cross-language-benchmarks.png
  3. +289 −0 prof1-hc.svg
  4. +357 −0 prof1-hy.svg
  5. +9 −0 prof1.hs
  6. +13 −0 prof2.hs
View
200 index.html
@@ -74,7 +74,7 @@
</div>
<div class="slide">
<h2>Paket-Management mit Cabal</h2>
- <pre>apt-get install ghc cabal-install
+ <pre>apt-get install ghc ghc-prof cabal-install
# Updates list of known packages
cabal update
@@ -84,6 +84,7 @@
<p class="note">Glasgow Haskell Compiler</p>
<p class="note">Mit Dependencies</p>
<p class="note">-p für Profiling</p>
+ <p class="note">als User alles nach ~/.cabal</p>
</div>
<div class="slide cover">
<h1>Syntax</h1>
@@ -205,6 +206,16 @@
[2,3,4,5,6,7,8,9,10,11]
</pre>
</div>
+<div class="slide">
+ <h2>Function Composition</h2>
+ <pre class="sh_haskell">Prelude> :i (.)
+(.) :: (b -> c) -> (a -> b) -> a -> c -- Defined in `GHC.Base'
+infixr 9 .
+Prelude> :t (+ 5) . (* 3)
+(+ 5) . (* 3) :: Num c => c -> c
+Prelude> ((+ 5) . (* 3)) 23
+74</pre>
+</div>
<!-- Types -->
<div class="slide">
@@ -297,7 +308,7 @@
maxBound :: a</pre>
<pre class="sh_haskell">class Show a where
show :: a -> String</pre>
- <pre class="sh_haskell">read :: Read a => String -> a -- Defined in `Text.Read'</pre>
+ <pre class="sh_haskell">read :: Read a => String -> a</pre>
<p>Anwendungsbeispiel:</p>
<pre class="sh_haskell">Prelude> newtype Zeigbar =
Zeig String deriving Show
@@ -594,10 +605,191 @@
</li>
</ul>
</div>
+<div class="slide">
+ <h2>Real World Haskell, Chapter 16: Parsec</h2>
+ <pre class="sh_haskell">import Text.ParserCombinators.Parsec
+
+{- A CSV file contains 0 or more lines, each of which is terminated
+ by the end-of-line character (eol). -}
+csvFile :: GenParser Char st [[String]]
+csvFile =
+ do result &lt;- many line
+ eof
+ return result
+
+-- Each line contains 1 or more cells, separated by a comma
+line :: GenParser Char st [String]
+line =
+ do result &lt;- cells
+ eol -- end of line
+ return result
+
+-- Build up a list of cells. Try to parse the first cell, then figure out
+-- what ends the cell.
+cells :: GenParser Char st [String]
+cells =
+ do first &lt;- cellContent
+ next &lt;- remainingCells
+ return (first : next)
+
+-- The cell either ends with a comma, indicating that 1 or more cells follow,
+-- or it doesn't, indicating that we're at the end of the cells for this line
+remainingCells :: GenParser Char st [String]
+remainingCells =
+ (char ',' >> cells) -- Found comma? More cells coming
+ &lt;|> (return []) -- No comma? Return [], no more cells
+
+-- Each cell contains 0 or more characters, which must not be a comma or
+-- EOL
+cellContent :: GenParser Char st String
+cellContent =
+ many (noneOf ",\n")
+
+
+-- The end of line character is \n
+eol :: GenParser Char st Char
+eol = char '\n'
+
+parseCSV :: String -> Either ParseError [[String]]
+parseCSV input = parse csvFile "(unknown)" input</pre>
+</div>
+<div class="slide">
+ <h2>Real World Haskell, Chapter 16: Parsec</h2>
+ <pre class="sh_haskell">import Text.ParserCombinators.Parsec
+
+csvFile = endBy line eol
+line = sepBy cell (char ',')
+cell = many (noneOf ",\n")
+eol = char '\n'
+
+parseCSV :: String -> Either ParseError [[String]]
+parseCSV input = parse csvFile "(unknown)" input
+ </pre>
+</div>
<!--
-* Combinatoric Parsing: Attoparsec (astro) (15 min)
* Template Haskell (maloi) (20min)
-* Profiling (astro) (15min)
+-->
+<div class="slide">
+ <h1>Profiling</h1>
+ <p>Beispiel aus Real World Haskell, Chapter 25:</p>
+ <div>
+ <pre class="sh_haskell">import System.Environment
+import Text.Printf
+
+main = do
+ [d] &lt;- map read `fmap` getArgs
+ printf "%f\n" (mean [1..d])
+
+mean :: [Double] -> Double
+mean xs = sum xs / fromIntegral (length xs)</pre>
+ </div>
+ <pre class="incremental">% time ./prof1 1e5
+50000.5
+./prof1 1e5 0.03s user 0.01s system 89% cpu 0.049 total
+% time ./prof1 1e6
+500000.5
+./prof1 1e6 0.31s user 0.09s system 98% cpu 0.400 total
+% time ./prof1 1e7
+5000000.5
+./prof1 1e7 2.95s user 0.60s system 97% cpu 3.626 total
+% time ./prof1 1e8
+zsh: killed ./prof1 1e8
+./prof1 1e8 6.72s user 2.71s system 91% cpu 10.368 total</pre>
+</div>
+<div class="slide">
+ <h2>Time Profiling</h2>
+ <pre>% ghc --make -O2 -prof -caf-all -auto-all prof1
+% ./prof1 1e7 +RTS -p <span class="note">-P, -pa</span>
+5000000.5
+% cat prof1.prof
+ Wed Aug 29 02:04 2012 Time and Allocation Profiling Report (Final)
+
+ prof1 +RTS -p -RTS 1e7
+
+ total time = 1.74 secs (1738 ticks @ 1000 us, 1 processor)
+ total alloc = 1,680,119,104 bytes (excludes profiling overheads)
+
+COST CENTRE MODULE %time %alloc
+
+main Main 86.6 100.0
+mean Main 13.4 0.0
+
+
+ individual inherited
+COST CENTRE MODULE no. entries %time %alloc %time %alloc
+
+MAIN MAIN 55 0 0.0 0.0 100.0 100.0
+ main Main 111 0 86.6 100.0 100.0 100.0
+ mean Main 113 1 13.4 0.0 13.4 0.0
+ CAF:main1 Main 108 0 0.0 0.0 0.0 0.0
+ main Main 110 1 0.0 0.0 0.0 0.0
+ CAF:main3 Main 107 0 0.0 0.0 0.0 0.0
+ main Main 112 0 0.0 0.0 0.0 0.0
+ CAF GHC.Conc.Signal 101 0 0.0 0.0 0.0 0.0
+ CAF GHC.IO.Encoding 100 0 0.0 0.0 0.0 0.0
+ CAF GHC.IO.Handle.FD 99 0 0.0 0.0 0.0 0.0
+ CAF Text.Read.Lex 95 0 0.0 0.0 0.0 0.0
+ CAF GHC.Float 90 0 0.0 0.0 0.0 0.0
+ CAF GHC.IO.Encoding.Iconv 82 0 0.0 0.0 0.0 0.0</pre>
+</div>
+<div class="slide">
+ <h2>Space Profiling</h2>
+ <pre>% ghc --make -rtsopts -prof -caf-all -auto-all prof1
+% ./prof1 1e6 +RTS -K256M -hc -i0.01
+% hp2ps -c prof1.hp</pre>
+ <img src="prof1-hc.svg"/>
+</div>
+<div class="slide">
+ <h2>Space Profiling</h2>
+ <pre>% ./prof1 1e6 +RTS -K256M -hy -i0.01
+% hp2ps -c prof1.hp</pre>
+ <img src="prof2-hy.svg"/>
+ <p class="note">Auch: GHC Core output</p>
+</div>
+<div class="slide">
+ <h2>Strictness</h2>
+ <pre class="sh_haskell">import System.Environment
+import Text.Printf
+import Data.List (foldl')
+
+main = do
+ [d] &lt;- map read `fmap` getArgs
+ printf "%f\n" (mean [1..d])
+
+mean :: [Double] -> Double
+mean xs = s / fromIntegral n
+ where
+ (n, s) = foldl' k (0, 0) xs
+ k (n, s) x = n `seq` s `seq` (n+1, s+x)</pre>
+ <pre>% ./prof2 1e8 +RTS -sstderr
+50000000.5
+ 53,600,200,824 bytes allocated in the heap
+ 31,319,592 bytes copied during GC
+ 62,720 bytes maximum residency (1 sample(s))
+ 26,816 bytes maximum slop
+ 1 MB total memory in use (0 MB lost due to fragmentation)
+
+ Tot time (elapsed) Avg pause Max pause
+ Gen 0 102796 colls, 0 par 0.66s 0.66s 0.0000s 0.0003s
+ Gen 1 1 colls, 0 par 0.00s 0.00s 0.0006s 0.0006s
+
+ INIT time 0.00s ( 0.00s elapsed)
+ MUT time 32.71s ( 32.84s elapsed)
+ GC time 0.66s ( 0.66s elapsed)
+ RP time 0.00s ( 0.00s elapsed)
+ PROF time 0.00s ( 0.00s elapsed)
+ EXIT time 0.00s ( 0.00s elapsed)
+ Total time 33.38s ( 33.50s elapsed)
+
+ %GC time 2.0% (2.0% elapsed)
+
+ Alloc rate 1,638,238,233 bytes per MUT second
+
+ Productivity 98.0% of total user, 97.7% of total elapsed
+</pre>
+ <p class="note">In RWH: unboxed strict fields, fusion w/o heap alloc</p>
+</div>
+<!--
* Parallel Haskell (maloi) (10min)
* Foreign (astro) (5min)
View
BIN preliminary-warp-cross-language-benchmarks.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
289 prof1-hc.svg
@@ -0,0 +1,289 @@
+<?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"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.3.1 r9886"
+ width="810.625"
+ height="540.625"
+ xml:space="preserve"
+ sodipodi:docname="prof2.pdf"><metadata
+ id="metadata8"><rdf:RDF><cc:Work
+ rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
+ id="defs6" /><sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="702"
+ inkscape:window-height="877"
+ id="namedview4"
+ showgrid="false"
+ fit-margin-top="0"
+ fit-margin-left="0"
+ fit-margin-right="0"
+ fit-margin-bottom="0"
+ inkscape:zoom="0.61699346"
+ inkscape:cx="456.79555"
+ inkscape:cy="292.8125"
+ inkscape:window-x="0"
+ inkscape:window-y="19"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="g10" /><g
+ id="g10"
+ inkscape:groupmode="layer"
+ inkscape:label="prof2"
+ transform="matrix(0,-1.25,-1.25,0,945.3125,630.3125)"><g
+ id="g12"
+ transform="scale(0.1,0.1)"><path
+ d="m 720,1080 4320,0 0,6480 -4320,0 0,-6480 z"
+ style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none"
+ id="path14"
+ inkscape:connector-curvature="0" /><path
+ d="m 4790,1130 200,0 0,6380 -200,0 0,-6380 z"
+ style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none"
+ id="path16"
+ inkscape:connector-curvature="0" /><g
+ id="g18"
+ transform="scale(10,10)"><text
+ transform="matrix(0,-1,-1,0,485,745)"
+ id="text20"><tspan
+ style="font-size:12px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Helvetica;-inkscape-font-specification:Helvetica"
+ x="0 6.6719999 10.668 17.34 20.676001 27.348 30.684 37.355999 44.028 50.700001 54.035999 61.043999 69.708 77.040001 85.043999 88.379997 92.375999 99.047997 105.048 108.384 112.38 120.384 127.056 133.728 140.39999 150.396 153.73199 157.728 160.392 167.064 170.39999 177.07201 233.28912 239.96112 246.63312 249.96912 256.64111 263.31311 269.98511 273.32111 279.99313 286.66513 293.33713 296.67313 303.34512 309.34512 312.68112 319.35312 325.35312 328.68912 334.68912 338.02512 344.02512 350.69711 356.69711 363.36911 370.04111 376.71313 496.58243 507.91043 514.58246 521.25446 524.59045 532.59442 539.26642 545.93842 549.27441 555.94641 562.61847 565.95447 572.62646 579.29846 582.63446 589.30646 595.97845 599.31445 605.98645 612.65845 619.33044"
+ y="0"
+ sodipodi:role="line"
+ id="tspan22">prof2 1e6 +RTS -hc -K256M -i0.0114,171,291 bytes x secondsWed Aug 29 02:23 2012</tspan></text>
+</g><path
+ d="m 920,7110 0,-4024.25"
+ style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none"
+ id="path24"
+ inkscape:connector-curvature="0" /><g
+ id="g26"
+ transform="scale(10,10)"><text
+ transform="matrix(0,-1,-1,0,77,345.814)"
+ id="text28"><tspan
+ style="font-size:10px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Helvetica;-inkscape-font-specification:Helvetica"
+ x="0 5 10.56 15.56 21.120001 26.68 32.240002"
+ y="0"
+ sodipodi:role="line"
+ id="tspan30">seconds</tspan></text>
+</g><path
+ d="m 920,7110 -40,0"
+ style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none"
+ id="path32"
+ inkscape:connector-curvature="0" /><g
+ id="g34"
+ transform="scale(10,10)"><text
+ transform="matrix(0,-1,-1,0,77,717.95)"
+ id="text36"><tspan
+ style="font-size:10px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Helvetica;-inkscape-font-specification:Helvetica"
+ x="0 5.5599999 8.3400002"
+ y="0"
+ sodipodi:role="line"
+ id="tspan38">0.0</tspan></text>
+</g><path
+ d="m 920,6460.93 -40,0"
+ style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none"
+ id="path40"
+ inkscape:connector-curvature="0" /><g
+ id="g42"
+ transform="scale(10,10)"><text
+ transform="matrix(0,-1,-1,0,77,653.042)"
+ id="text44"><tspan
+ style="font-size:10px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Helvetica;-inkscape-font-specification:Helvetica"
+ x="0 5.5599999 8.3400002"
+ y="0"
+ sodipodi:role="line"
+ id="tspan46">0.1</tspan></text>
+</g><path
+ d="m 920,5811.86 -40,0"
+ style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none"
+ id="path48"
+ inkscape:connector-curvature="0" /><g
+ id="g50"
+ transform="scale(10,10)"><text
+ transform="matrix(0,-1,-1,0,77,588.135)"
+ id="text52"><tspan
+ style="font-size:10px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Helvetica;-inkscape-font-specification:Helvetica"
+ x="0 5.5599999 8.3400002"
+ y="0"
+ sodipodi:role="line"
+ id="tspan54">0.1</tspan></text>
+</g><path
+ d="m 920,5162.78 -40,0"
+ style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none"
+ id="path56"
+ inkscape:connector-curvature="0" /><g
+ id="g58"
+ transform="scale(10,10)"><text
+ transform="matrix(0,-1,-1,0,77,523.228)"
+ id="text60"><tspan
+ style="font-size:10px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Helvetica;-inkscape-font-specification:Helvetica"
+ x="0 5.5599999 8.3400002"
+ y="0"
+ sodipodi:role="line"
+ id="tspan62">0.2</tspan></text>
+</g><path
+ d="m 920,4513.71 -40,0"
+ style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none"
+ id="path64"
+ inkscape:connector-curvature="0" /><g
+ id="g66"
+ transform="scale(10,10)"><text
+ transform="matrix(0,-1,-1,0,77,458.32)"
+ id="text68"><tspan
+ style="font-size:10px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Helvetica;-inkscape-font-specification:Helvetica"
+ x="0 5.5599999 8.3400002"
+ y="0"
+ sodipodi:role="line"
+ id="tspan70">0.2</tspan></text>
+</g><path
+ d="m 920,3864.64 -40,0"
+ style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none"
+ id="path72"
+ inkscape:connector-curvature="0" /><g
+ id="g74"
+ transform="scale(10,10)"><text
+ transform="matrix(0,-1,-1,0,77,393.413)"
+ id="text76"><tspan
+ style="font-size:10px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Helvetica;-inkscape-font-specification:Helvetica"
+ x="0 5.5599999 8.3400002"
+ y="0"
+ sodipodi:role="line"
+ id="tspan78">0.2</tspan></text>
+</g><path
+ d="m 920,7110 3820,0"
+ style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none"
+ id="path80"
+ inkscape:connector-curvature="0" /><g
+ id="g82"
+ transform="scale(10,10)"><text
+ transform="matrix(1,0,0,-1,450.101,716)"
+ id="text84"><tspan
+ style="font-size:10px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Helvetica;-inkscape-font-specification:Helvetica"
+ x="0 5.5599999 10.56 13.34 18.9"
+ y="0"
+ sodipodi:role="line"
+ id="tspan86">bytes</tspan></text>
+</g><path
+ d="m 920,7110 0,40"
+ style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none"
+ id="path88"
+ inkscape:connector-curvature="0" /><g
+ id="g90"
+ transform="scale(10,10)"><text
+ transform="matrix(0,-1,-1,0,92,729.889)"
+ id="text92"><tspan
+ style="font-size:10px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Helvetica;-inkscape-font-specification:Helvetica"
+ x="0 5.5599999"
+ y="0"
+ sodipodi:role="line"
+ id="tspan94">0M</tspan></text>
+</g><path
+ d="m 1890.56,7110 0,40"
+ style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none"
+ id="path96"
+ inkscape:connector-curvature="0" /><g
+ id="g98"
+ transform="scale(10,10)"><text
+ transform="matrix(0,-1,-1,0,189.056,735.449)"
+ id="text100"><tspan
+ style="font-size:10px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Helvetica;-inkscape-font-specification:Helvetica"
+ x="0 5.5599999 11.12"
+ y="0"
+ sodipodi:role="line"
+ id="tspan102">20M</tspan></text>
+</g><path
+ d="m 2861.12,7110 0,40"
+ style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none"
+ id="path104"
+ inkscape:connector-curvature="0" /><g
+ id="g106"
+ transform="scale(10,10)"><text
+ transform="matrix(0,-1,-1,0,286.112,735.449)"
+ id="text108"><tspan
+ style="font-size:10px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Helvetica;-inkscape-font-specification:Helvetica"
+ x="0 5.5599999 11.12"
+ y="0"
+ sodipodi:role="line"
+ id="tspan110">40M</tspan></text>
+</g><path
+ d="m 3831.67,7110 0,40"
+ style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none"
+ id="path112"
+ inkscape:connector-curvature="0" /><g
+ id="g114"
+ transform="scale(10,10)"><text
+ transform="matrix(0,-1,-1,0,383.167,735.449)"
+ id="text116"><tspan
+ style="font-size:10px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Helvetica;-inkscape-font-specification:Helvetica"
+ x="0 5.5599999 11.12"
+ y="0"
+ sodipodi:role="line"
+ id="tspan118">60M</tspan></text>
+</g><path
+ d="m 2123.33,2895.75 140,0 0,140 -140,0 0,-140 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path120"
+ inkscape:connector-curvature="0" /><path
+ d="m 2123.33,2895.75 140,0 0,140 -140,0 0,-140 z"
+ style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none"
+ id="path122"
+ inkscape:connector-curvature="0" /><g
+ id="g124"
+ transform="scale(10,10)"><text
+ transform="matrix(0,-1,-1,0,214.333,284.575)"
+ id="text126"><tspan
+ style="font-size:10px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Helvetica;-inkscape-font-specification:Helvetica"
+ x="0 3.3299999 8.8900003 14.45 20.01 23.34 31.67 37.23 42.790001 48.349998 51.130001 59.459999 65.019997 70.580002 76.139999 78.919998 87.25 92.809998 95.029999 100.59 103.37 110.59 117.26 123.37 126.15 134.48 140.03999 142.25999"
+ y="0"
+ sodipodi:role="line"
+ id="tspan128">(111)mean/mean/main/CAF:main</tspan></text>
+</g><path
+ d="m 3396.67,2895.75 140,0 0,140 -140,0 0,-140 z"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path130"
+ inkscape:connector-curvature="0" /><path
+ d="m 3396.67,2895.75 140,0 0,140 -140,0 0,-140 z"
+ style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none"
+ id="path132"
+ inkscape:connector-curvature="0" /><g
+ id="g134"
+ transform="scale(10,10)"><text
+ transform="matrix(0,-1,-1,0,341.667,284.575)"
+ id="text136"><tspan
+ style="font-size:10px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Helvetica;-inkscape-font-specification:Helvetica"
+ x="0 3.3299999 8.8900003 14.45 20.01 23.34 31.67 37.23 39.450001 45.009998 47.790001 55.009998 61.68 67.790001 70.57 78.900002 84.459999 86.68"
+ y="0"
+ sodipodi:role="line"
+ id="tspan138">(109)main/CAF:main</tspan></text>
+</g><path
+ d="m 920,7110 0,-4024.25 0.004,0 127.656,389.44 152.66,129.82 127.21,129.81 101.77,0 127.22,129.82 127.21,129.81 178.54,129.82 176.73,129.81 183.92,129.81 164.29,129.82 168.88,129.81 170.18,129.82 103.72,129.81 -98.39,129.82 -113.3,129.81 -92.42,129.82 -125.23,129.81 -128.21,129.82 -136.19,129.81 -128.2,259.63 -110.32,0 -146.1,259.63 -125.22,129.81 -110.32,129.82 -107.34,129.81 -169.95,129.81 -107.33,129.82 -125.23,129.81 L 920,7110"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path140"
+ inkscape:connector-curvature="0" /><path
+ d="m 920,7110 0,-4024.25 0.004,0 127.656,389.44 152.66,129.82 127.21,129.81 101.77,0 127.22,129.82 127.21,129.81 178.54,129.82 176.73,129.81 183.92,129.81 164.29,129.82 168.88,129.81 170.18,129.82 103.72,129.81 -98.39,129.82 -113.3,129.81 -92.42,129.82 -125.23,129.81 -128.21,129.82 -136.19,129.81 -128.2,259.63 -110.32,0 -146.1,259.63 -125.22,129.81 -110.32,129.82 -107.34,129.81 -169.95,129.81 -107.33,129.82 -125.23,129.81 L 920,7110 z"
+ style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none"
+ id="path142"
+ inkscape:connector-curvature="0" /><path
+ d="m 920,7110 0,0 86.24,-129.82 125.23,-129.81 107.33,-129.82 169.95,-129.81 107.34,-129.81 110.32,-129.82 125.22,-129.81 146.1,-259.63 110.32,0 128.2,-259.63 136.19,-129.81 128.21,-129.82 125.23,-129.81 92.42,-129.82 113.3,-129.81 98.39,-129.82 -103.72,-129.81 -170.18,-129.82 -168.88,-129.81 -164.29,-129.82 -183.92,-129.81 -176.73,-129.81 -178.54,-129.82 -127.21,-129.81 -127.22,-129.82 -101.77,0 -127.21,-129.81 -152.66,-129.82 -127.656,-389.44 -0.004,0 0.016,0 2068.774,389.44 152.66,129.82 127.21,129.81 101.77,0 127.21,129.82 127.22,129.81 178.54,129.82 176.72,129.81 183.93,129.81 164.29,129.82 168.87,129.81 170.18,129.82 72.61,129.81 -196.78,129.82 -226.6,129.81 -184.86,129.82 -250.45,129.81 -256.41,129.82 -272.38,129.81 -256.42,259.63 -220.63,0 -292.19,259.63 -250.46,129.81 -220.63,129.82 -214.67,129.81 -339.9,129.81 -214.67,129.82 L 1092.5,6980.18 920,7110"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path144"
+ inkscape:connector-curvature="0" /><path
+ d="m 920,7110 0,0 86.24,-129.82 125.23,-129.81 107.33,-129.82 169.95,-129.81 107.34,-129.81 110.32,-129.82 125.22,-129.81 146.1,-259.63 110.32,0 128.2,-259.63 136.19,-129.81 128.21,-129.82 125.23,-129.81 92.42,-129.82 113.3,-129.81 98.39,-129.82 -103.72,-129.81 -170.18,-129.82 -168.88,-129.81 -164.29,-129.82 -183.92,-129.81 -176.73,-129.81 -178.54,-129.82 -127.21,-129.81 -127.22,-129.82 -101.77,0 -127.21,-129.81 -152.66,-129.82 -127.656,-389.44 -0.004,0 0.016,0 2068.774,389.44 152.66,129.82 127.21,129.81 101.77,0 127.21,129.82 127.22,129.81 178.54,129.82 176.72,129.81 183.93,129.81 164.29,129.82 168.87,129.81 170.18,129.82 72.61,129.81 -196.78,129.82 -226.6,129.81 -184.86,129.82 -250.45,129.81 -256.41,129.82 -272.38,129.81 -256.42,259.63 -220.63,0 -292.19,259.63 -250.46,129.81 -220.63,129.82 -214.67,129.81 -339.9,129.81 -214.67,129.82 L 1092.5,6980.18 920,7110 z"
+ style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none"
+ id="path146"
+ inkscape:connector-curvature="0" /></g></g></svg>
View
357 prof1-hy.svg
@@ -0,0 +1,357 @@
+<?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"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.3.1 r9886"
+ width="810.625"
+ height="540.625"
+ xml:space="preserve"
+ sodipodi:docname="prof2-hy.svg"><metadata
+ id="metadata8"><rdf:RDF><cc:Work
+ rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
+ id="defs6" /><sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="702"
+ inkscape:window-height="877"
+ id="namedview4"
+ showgrid="false"
+ inkscape:zoom="0.87256052"
+ inkscape:cx="459.08765"
+ inkscape:cy="292.8125"
+ inkscape:window-x="0"
+ inkscape:window-y="19"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="g10"
+ fit-margin-top="0"
+ fit-margin-left="0"
+ fit-margin-right="0"
+ fit-margin-bottom="0" /><g
+ id="g10"
+ inkscape:groupmode="layer"
+ inkscape:label="prof2"
+ transform="matrix(0,-1.25,-1.25,0,945.3125,630.3125)"><g
+ id="g12"
+ transform="scale(0.1,0.1)"><path
+ d="m 720,1080 4320,0 0,6480 -4320,0 0,-6480 z"
+ style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none"
+ id="path14"
+ inkscape:connector-curvature="0" /><path
+ d="m 4790,1130 200,0 0,6380 -200,0 0,-6380 z"
+ style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none"
+ id="path16"
+ inkscape:connector-curvature="0" /><g
+ id="g18"
+ transform="scale(10,10)"><text
+ transform="matrix(0,-1,-1,0,485,745)"
+ id="text20"><tspan
+ style="font-size:12px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Helvetica;-inkscape-font-specification:Helvetica"
+ x="0 6.6719999 10.668 17.34 20.676001 27.348 30.684 37.355999 44.028 50.700001 54.035999 61.043999 69.708 77.040001 85.043999 88.379997 92.375999 99.047997 105.048 108.384 112.38 120.384 127.056 133.728 140.39999 150.396 153.73199 157.728 160.392 167.064 170.39999 177.07201 233.28912 239.96112 246.63312 249.96912 256.64111 263.31311 269.98511 273.32111 279.99313 286.66513 293.33713 296.67313 303.34512 309.34512 312.68112 319.35312 325.35312 328.68912 334.68912 338.02512 344.02512 350.69711 356.69711 363.36911 370.04111 376.71313 496.58243 507.91043 514.58246 521.25446 524.59045 532.59442 539.26642 545.93842 549.27441 555.94641 562.61847 565.95447 572.62646 579.29846 582.63446 589.30646 595.97845 599.31445 605.98645 612.65845 619.33044"
+ y="0"
+ sodipodi:role="line"
+ id="tspan22">prof2 1e6 +RTS -hy -K256M -i0.0114,065,124 bytes x secondsWed Aug 29 02:18 2012</tspan></text>
+
+</g><path
+ d="m 920,7110 0,-4874.64"
+ style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none"
+ id="path24"
+ inkscape:connector-curvature="0" /><g
+ id="g26"
+ transform="scale(10,10)"><text
+ transform="matrix(0,-1,-1,0,77,260.775)"
+ id="text28"><tspan
+ style="font-size:10px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Helvetica;-inkscape-font-specification:Helvetica"
+ x="0 5 10.56 15.56 21.120001 26.68 32.240002"
+ y="0"
+ sodipodi:role="line"
+ id="tspan30">seconds</tspan></text>
+
+</g><path
+ d="m 920,7110 -40,0"
+ style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none"
+ id="path32"
+ inkscape:connector-curvature="0" /><g
+ id="g34"
+ transform="scale(10,10)"><text
+ transform="matrix(0,-1,-1,0,77,717.95)"
+ id="text36"><tspan
+ style="font-size:10px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Helvetica;-inkscape-font-specification:Helvetica"
+ x="0 5.5599999 8.3400002"
+ y="0"
+ sodipodi:role="line"
+ id="tspan38">0.0</tspan></text>
+
+</g><path
+ d="m 920,6297.56 -40,0"
+ style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none"
+ id="path40"
+ inkscape:connector-curvature="0" /><g
+ id="g42"
+ transform="scale(10,10)"><text
+ transform="matrix(0,-1,-1,0,77,636.705)"
+ id="text44"><tspan
+ style="font-size:10px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Helvetica;-inkscape-font-specification:Helvetica"
+ x="0 5.5599999 8.3400002"
+ y="0"
+ sodipodi:role="line"
+ id="tspan46">0.1</tspan></text>
+
+</g><path
+ d="m 920,5485.12 -40,0"
+ style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none"
+ id="path48"
+ inkscape:connector-curvature="0" /><g
+ id="g50"
+ transform="scale(10,10)"><text
+ transform="matrix(0,-1,-1,0,77,555.461)"
+ id="text52"><tspan
+ style="font-size:10px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Helvetica;-inkscape-font-specification:Helvetica"
+ x="0 5.5599999 8.3400002"
+ y="0"
+ sodipodi:role="line"
+ id="tspan54">0.1</tspan></text>
+
+</g><path
+ d="m 920,4672.68 -40,0"
+ style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none"
+ id="path56"
+ inkscape:connector-curvature="0" /><g
+ id="g58"
+ transform="scale(10,10)"><text
+ transform="matrix(0,-1,-1,0,77,474.217)"
+ id="text60"><tspan
+ style="font-size:10px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Helvetica;-inkscape-font-specification:Helvetica"
+ x="0 5.5599999 8.3400002"
+ y="0"
+ sodipodi:role="line"
+ id="tspan62">0.2</tspan></text>
+
+</g><path
+ d="m 920,3860.24 -40,0"
+ style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none"
+ id="path64"
+ inkscape:connector-curvature="0" /><g
+ id="g66"
+ transform="scale(10,10)"><text
+ transform="matrix(0,-1,-1,0,77,392.973)"
+ id="text68"><tspan
+ style="font-size:10px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Helvetica;-inkscape-font-specification:Helvetica"
+ x="0 5.5599999 8.3400002"
+ y="0"
+ sodipodi:role="line"
+ id="tspan70">0.2</tspan></text>
+
+</g><path
+ d="m 920,3047.8 -40,0"
+ style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none"
+ id="path72"
+ inkscape:connector-curvature="0" /><g
+ id="g74"
+ transform="scale(10,10)"><text
+ transform="matrix(0,-1,-1,0,77,311.729)"
+ id="text76"><tspan
+ style="font-size:10px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Helvetica;-inkscape-font-specification:Helvetica"
+ x="0 5.5599999 8.3400002"
+ y="0"
+ sodipodi:role="line"
+ id="tspan78">0.2</tspan></text>
+
+</g><path
+ d="m 920,7110 3820,0"
+ style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none"
+ id="path80"
+ inkscape:connector-curvature="0" /><g
+ id="g82"
+ transform="scale(10,10)"><text
+ transform="matrix(1,0,0,-1,450.101,716)"
+ id="text84"><tspan
+ style="font-size:10px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Helvetica;-inkscape-font-specification:Helvetica"
+ x="0 5.5599999 10.56 13.34 18.9"
+ y="0"
+ sodipodi:role="line"
+ id="tspan86">bytes</tspan></text>
+
+</g><path
+ d="m 920,7110 0,40"
+ style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none"
+ id="path88"
+ inkscape:connector-curvature="0" /><g
+ id="g90"
+ transform="scale(10,10)"><text
+ transform="matrix(0,-1,-1,0,92,729.889)"
+ id="text92"><tspan
+ style="font-size:10px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Helvetica;-inkscape-font-specification:Helvetica"
+ x="0 5.5599999"
+ y="0"
+ sodipodi:role="line"
+ id="tspan94">0M</tspan></text>
+
+</g><path
+ d="m 1902.72,7110 0,40"
+ style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none"
+ id="path96"
+ inkscape:connector-curvature="0" /><g
+ id="g98"
+ transform="scale(10,10)"><text
+ transform="matrix(0,-1,-1,0,190.272,735.449)"
+ id="text100"><tspan
+ style="font-size:10px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Helvetica;-inkscape-font-specification:Helvetica"
+ x="0 5.5599999 11.12"
+ y="0"
+ sodipodi:role="line"
+ id="tspan102">20M</tspan></text>
+
+</g><path
+ d="m 2885.44,7110 0,40"
+ style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none"
+ id="path104"
+ inkscape:connector-curvature="0" /><g
+ id="g106"
+ transform="scale(10,10)"><text
+ transform="matrix(0,-1,-1,0,288.544,735.449)"
+ id="text108"><tspan
+ style="font-size:10px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Helvetica;-inkscape-font-specification:Helvetica"
+ x="0 5.5599999 11.12"
+ y="0"
+ sodipodi:role="line"
+ id="tspan110">40M</tspan></text>
+
+</g><path
+ d="m 3868.16,7110 0,40"
+ style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none"
+ id="path112"
+ inkscape:connector-curvature="0" /><g
+ id="g114"
+ transform="scale(10,10)"><text
+ transform="matrix(0,-1,-1,0,386.816,735.449)"
+ id="text116"><tspan
+ style="font-size:10px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Helvetica;-inkscape-font-specification:Helvetica"
+ x="0 5.5599999 11.12"
+ y="0"
+ sodipodi:role="line"
+ id="tspan118">60M</tspan></text>
+
+</g><path
+ d="m 1614,2045.36 140,0 0,140 -140,0 0,-140 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path120"
+ inkscape:connector-curvature="0" /><path
+ d="m 1614,2045.36 140,0 0,140 -140,0 0,-140 z"
+ style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none"
+ id="path122"
+ inkscape:connector-curvature="0" /><g
+ id="g124"
+ transform="scale(10,10)"><text
+ transform="matrix(0,-1,-1,0,163.4,199.536)"
+ id="text126"><tspan
+ style="font-size:10px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Helvetica;-inkscape-font-specification:Helvetica"
+ x="0 6.6700001 12.23 18.9 26.120001 32.790001 40.009998 47.790001 53.349998"
+ y="0"
+ sodipodi:role="line"
+ id="tspan128">BLACKHOLE</tspan></text>
+
+</g><path
+ d="m 2378,2045.36 140,0 0,140 -140,0 0,-140 z"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path130"
+ inkscape:connector-curvature="0" /><path
+ d="m 2378,2045.36 140,0 0,140 -140,0 0,-140 z"
+ style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none"
+ id="path132"
+ inkscape:connector-curvature="0" /><g
+ id="g134"
+ transform="scale(10,10)"><text
+ transform="matrix(0,-1,-1,0,239.8,199.536)"
+ id="text136"><tspan
+ style="font-size:10px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Helvetica;-inkscape-font-specification:Helvetica"
+ x="0 7.2199998 12.78 18.34 23.9 26.120001"
+ y="0"
+ sodipodi:role="line"
+ id="tspan138">Double</tspan></text>
+
+</g><path
+ d="m 3142,2045.36 140,0 0,140 -140,0 0,-140 z"
+ style="fill:#00ff00;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path140"
+ inkscape:connector-curvature="0" /><path
+ d="m 3142,2045.36 140,0 0,140 -140,0 0,-140 z"
+ style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none"
+ id="path142"
+ inkscape:connector-curvature="0" /><g
+ id="g144"
+ transform="scale(10,10)"><text
+ transform="matrix(0,-1,-1,0,316.2,199.536)"
+ id="text146"><tspan
+ style="font-size:10px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Helvetica;-inkscape-font-specification:Helvetica"
+ x="0"
+ y="0"
+ id="tspan148">*</tspan></text>
+
+</g><path
+ d="m 3906,2045.36 140,0 0,140 -140,0 0,-140 z"
+ style="fill:#00ffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path150"
+ inkscape:connector-curvature="0" /><path
+ d="m 3906,2045.36 140,0 0,140 -140,0 0,-140 z"
+ style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none"
+ id="path152"
+ inkscape:connector-curvature="0" /><g
+ id="g154"
+ transform="scale(10,10)"><text
+ transform="matrix(0,-1,-1,0,392.6,199.536)"
+ id="text156"><tspan
+ style="font-size:10px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Helvetica;-inkscape-font-specification:Helvetica"
+ x="0 2.78"
+ y="0"
+ sodipodi:role="line"
+ id="tspan158">[]</tspan></text>
+
+</g><path
+ d="m 920,7110 0,-4874.64 0.004,0 24.98,162.48 141.686,162.49 117.7,162.49 141.69,162.49 141.69,162.49 141.68,162.49 22.25,162.48 -130.34,162.49 -105.15,162.49 -125.92,162.49 -121.95,162.49 -132.55,162.48 -115.766,324.98 0,2437.32 L 920,7110"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path160"
+ inkscape:connector-curvature="0" /><path
+ d="m 920,7110 0,-4874.64 0.004,0 24.98,162.48 141.686,162.49 117.7,162.49 141.69,162.49 141.69,162.49 141.68,162.49 22.25,162.48 -130.34,162.49 -105.15,162.49 -125.92,162.49 -121.95,162.49 -132.55,162.48 -115.766,324.98 0,2437.32 L 920,7110 z"
+ style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none"
+ id="path162"
+ inkscape:connector-curvature="0" /><path
+ d="m 920,7110 0,0 0.004,-162.49 0,-2437.32 115.766,-324.98 132.55,-162.48 121.95,-162.49 125.92,-162.49 105.15,-162.49 130.34,-162.49 -22.25,-162.48 -141.68,-162.49 -141.69,-162.49 -141.69,-162.49 -117.7,-162.49 -141.686,-162.49 -24.98,-162.48 -0.004,0 0.004,0 811.156,162.48 141.69,162.49 117.7,162.49 141.68,162.49 141.69,162.49 141.69,162.49 22.25,162.48 -130.34,162.49 -105.16,162.49 -125.92,162.49 -121.94,162.49 -132.55,162.48 -137.95,324.98 -51.62,162.49 -50.72,162.48 -30.19,162.49 -48.3,162.49 -38.64,0 -41.06,162.49 -45.89,162.49 -41.05,162.49 -39.85,162.48 -42.27,162.49 -53.13,162.49 -35.02,162.49 -27.78,0 -53.13,162.49 -49.51,162.49 -43.469,162.48 L 952.52,6947.51 920,7110"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path164"
+ inkscape:connector-curvature="0" /><path
+ d="m 920,7110 0,0 0.004,-162.49 0,-2437.32 115.766,-324.98 132.55,-162.48 121.95,-162.49 125.92,-162.49 105.15,-162.49 130.34,-162.49 -22.25,-162.48 -141.68,-162.49 -141.69,-162.49 -141.69,-162.49 -117.7,-162.49 -141.686,-162.49 -24.98,-162.48 -0.004,0 0.004,0 811.156,162.48 141.69,162.49 117.7,162.49 141.68,162.49 141.69,162.49 141.69,162.49 22.25,162.48 -130.34,162.49 -105.16,162.49 -125.92,162.49 -121.94,162.49 -132.55,162.48 -137.95,324.98 -51.62,162.49 -50.72,162.48 -30.19,162.49 -48.3,162.49 -38.64,0 -41.06,162.49 -45.89,162.49 -41.05,162.49 -39.85,162.48 -42.27,162.49 -53.13,162.49 -35.02,162.49 -27.78,0 -53.13,162.49 -49.51,162.49 -43.469,162.48 L 952.52,6947.51 920,7110 z"
+ style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none"
+ id="path166"
+ inkscape:connector-curvature="0" /><path
+ d="m 920,7110 0,0 32.52,-162.49 39.851,-162.49 43.469,-162.48 49.51,-162.49 53.13,-162.49 27.78,0 35.02,-162.49 53.13,-162.49 42.27,-162.49 39.85,-162.48 41.05,-162.49 45.89,-162.49 41.06,-162.49 38.64,0 48.3,-162.49 30.19,-162.49 50.72,-162.48 51.62,-162.49 137.95,-324.98 132.55,-162.48 121.94,-162.49 125.92,-162.49 105.16,-162.49 130.34,-162.49 -22.25,-162.48 -141.69,-162.49 -141.69,-162.49 -141.68,-162.49 -117.7,-162.49 -141.69,-162.49 -811.156,-162.48 -0.004,0 0.004,0 811.156,162.48 141.69,162.49 117.7,162.49 141.68,162.49 141.69,162.49 141.69,162.49 158.49,162.48 195.51,162.49 157.73,162.49 188.88,162.49 182.92,162.49 198.82,162.48 96,324.98 -180.65,162.49 -177.51,162.48 -105.66,162.49 -169.06,162.49 -135.25,0 -143.7,162.49 -160.61,162.49 -143.7,162.49 -139.47,162.48 -147.93,162.49 -185.96,162.49 -122.57,162.49 -97.21,0 -185.97,162.49 -173.28,162.49 -152.15,162.48 L 1033.8,6947.51 920,7110"
+ style="fill:#00ff00;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path168"
+ inkscape:connector-curvature="0" /><path
+ d="m 920,7110 0,0 32.52,-162.49 39.851,-162.49 43.469,-162.48 49.51,-162.49 53.13,-162.49 27.78,0 35.02,-162.49 53.13,-162.49 42.27,-162.49 39.85,-162.48 41.05,-162.49 45.89,-162.49 41.06,-162.49 38.64,0 48.3,-162.49 30.19,-162.49 50.72,-162.48 51.62,-162.49 137.95,-324.98 132.55,-162.48 121.94,-162.49 125.92,-162.49 105.16,-162.49 130.34,-162.49 -22.25,-162.48 -141.69,-162.49 -141.69,-162.49 -141.68,-162.49 -117.7,-162.49 -141.69,-162.49 -811.156,-162.48 -0.004,0 0.004,0 811.156,162.48 141.69,162.49 117.7,162.49 141.68,162.49 141.69,162.49 141.69,162.49 158.49,162.48 195.51,162.49 157.73,162.49 188.88,162.49 182.92,162.49 198.82,162.48 96,324.98 -180.65,162.49 -177.51,162.48 -105.66,162.49 -169.06,162.49 -135.25,0 -143.7,162.49 -160.61,162.49 -143.7,162.49 -139.47,162.48 -147.93,162.49 -185.96,162.49 -122.57,162.49 -97.21,0 -185.97,162.49 -173.28,162.49 -152.15,162.48 L 1033.8,6947.51 920,7110 z"
+ style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none"
+ id="path170"
+ inkscape:connector-curvature="0" /><path
+ d="m 920,7110 0,0 113.8,-162.49 139.48,-162.49 152.15,-162.48 173.28,-162.49 185.97,-162.49 97.21,0 122.57,-162.49 185.96,-162.49 147.93,-162.49 139.47,-162.48 143.7,-162.49 160.61,-162.49 143.7,-162.49 135.25,0 169.06,-162.49 105.66,-162.49 177.51,-162.48 180.65,-162.49 -96,-324.98 -198.82,-162.48 -182.92,-162.49 -188.88,-162.49 -157.73,-162.49 -195.51,-162.49 -158.49,-162.48 -141.69,-162.49 -141.69,-162.49 -141.68,-162.49 -117.7,-162.49 -141.69,-162.49 -811.156,-162.48 -0.004,0 0.059,0 1990.421,162.48 141.68,162.49 117.7,162.49 141.69,162.49 141.69,162.49 141.69,162.49 158.48,162.48 195.51,162.49 157.74,162.49 188.88,162.49 182.92,162.49 198.82,162.48 62.72,324.98 -258.08,162.49 -253.59,162.48 -150.94,162.49 -241.51,162.49 -193.22,0 -205.28,162.49 -229.44,162.49 -205.28,162.49 -199.25,162.48 -211.33,162.49 -265.66,162.49 -175.1,162.49 -138.87,0 -265.66,162.49 -247.56,162.49 -217.35,162.48 -199.26,162.49 L 920,7110"
+ style="fill:#00ffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path172"
+ inkscape:connector-curvature="0" /><path
+ d="m 920,7110 0,0 113.8,-162.49 139.48,-162.49 152.15,-162.48 173.28,-162.49 185.97,-162.49 97.21,0 122.57,-162.49 185.96,-162.49 147.93,-162.49 139.47,-162.48 143.7,-162.49 160.61,-162.49 143.7,-162.49 135.25,0 169.06,-162.49 105.66,-162.49 177.51,-162.48 180.65,-162.49 -96,-324.98 -198.82,-162.48 -182.92,-162.49 -188.88,-162.49 -157.73,-162.49 -195.51,-162.49 -158.49,-162.48 -141.69,-162.49 -141.69,-162.49 -141.68,-162.49 -117.7,-162.49 -141.69,-162.49 -811.156,-162.48 -0.004,0 0.059,0 1990.421,162.48 141.68,162.49 117.7,162.49 141.69,162.49 141.69,162.49 141.69,162.49 158.48,162.48 195.51,162.49 157.74,162.49 188.88,162.49 182.92,162.49 198.82,162.48 62.72,324.98 -258.08,162.49 -253.59,162.48 -150.94,162.49 -241.51,162.49 -193.22,0 -205.28,162.49 -229.44,162.49 -205.28,162.49 -199.25,162.48 -211.33,162.49 -265.66,162.49 -175.1,162.49 -138.87,0 -265.66,162.49 -247.56,162.49 -217.35,162.48 -199.26,162.49 L 920,7110 z"
+ style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none"
+ id="path174"
+ inkscape:connector-curvature="0" /></g></g></svg>
View
9 prof1.hs
@@ -0,0 +1,9 @@
+import System.Environment
+import Text.Printf
+
+main = do
+ [d] <- map read `fmap` getArgs
+ printf "%f\n" (mean [1..d])
+
+mean :: [Double] -> Double
+mean xs = sum xs / fromIntegral (length xs)
View
13 prof2.hs
@@ -0,0 +1,13 @@
+import System.Environment
+import Text.Printf
+import Data.List (foldl')
+
+main = do
+ [d] <- map read `fmap` getArgs
+ printf "%f\n" (mean [1..d])
+
+mean :: [Double] -> Double
+mean xs = s / fromIntegral n
+ where
+ (n, s) = foldl' k (0, 0) xs
+ k (n, s) x = n `seq` s `seq` (n+1, s+x)

0 comments on commit 3056aea

Please sign in to comment.
Something went wrong with that request. Please try again.