summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYann Herklotz <git@yannherklotz.com>2022-03-21 14:28:37 +0000
committerYann Herklotz <git@yannherklotz.com>2022-03-21 14:28:37 +0000
commit6a1fc15e06500add5a560832559df991eda77be5 (patch)
tree9b2d67ab4830c9be0a3f826bb4c8bdfa603a81f7
downloadymhg-notes-6a1fc15e06500add5a560832559df991eda77be5.tar.gz
ymhg-notes-6a1fc15e06500add5a560832559df991eda77be5.zip
Add initial files
-rw-r--r--.gitignore2
-rw-r--r--notes/5c6faa9f-2ae4-4dda-83a6-00f283ce2ea3.org225
-rw-r--r--notes/static/5a22847d-9bd6-46e9-9e2c-1291d3f8c7b9.svg413
-rw-r--r--notes/static/a95a49aa-9aa3-4e83-b3e0-767756736ec1.svg415
-rw-r--r--packages.el11
-rw-r--r--publish.el55
6 files changed, 1121 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..5ff3957
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+notes/index.org
+public/
diff --git a/notes/5c6faa9f-2ae4-4dda-83a6-00f283ce2ea3.org b/notes/5c6faa9f-2ae4-4dda-83a6-00f283ce2ea3.org
new file mode 100644
index 0000000..3c38be3
--- /dev/null
+++ b/notes/5c6faa9f-2ae4-4dda-83a6-00f283ce2ea3.org
@@ -0,0 +1,225 @@
+#+title: Vericert Scheduling Results
+#+html_head_extra: <style>body{max-width:90rem}.title{text-align:center;font-size:2.5em}.outline-text-2{display:flex;flex-direction: row;flex-wrap:wrap}table{margin-top:2rem;margin-right:2rem}img{max-width:100%}</style>
+
+* Plots
+:PROPERTIES:
+:CUSTOM_ID: plots
+:END:
+
+#+begin_src gnuplot :var data=vericert-processed-size :file ./static/5a22847d-9bd6-46e9-9e2c-1291d3f8c7b9.svg
+reset
+
+red = "#e07a5f"
+blue = "#81b29a"
+
+set style data histogram
+set style fill solid
+
+set log y
+set yrange [1:3]
+set ytics 0.5 nologscale
+set ylabel "Design size relative to Vericert"
+
+set xtics rotate nomirror
+
+set title "Vericert size comparison"
+plot data using 2:xtic(1) title "list" linecolor rgb red, \
+ data using 3 title "hyper" linecolor rgb blue
+#+end_src
+
+#+RESULTS:
+[[file:./static/5a22847d-9bd6-46e9-9e2c-1291d3f8c7b9.svg]]
+
+#+begin_src gnuplot :var data=vericert-processed-speed :file ./static/a95a49aa-9aa3-4e83-b3e0-767756736ec1.svg
+reset
+
+red = "#3d405b"
+blue = "#f2cc8f"
+
+set style data histogram
+set style fill solid
+
+set log y
+set yrange [0.05:1.2]
+set ytics 0.01,0.1,1
+set ylabel "Execution time relative to Vericert"
+
+set xtics rotate nomirror
+
+set title "Vericert speed comparison"
+plot data using 2:xtic(1) title "list" linecolor rgb red, \
+ data using 3 title "hyper" linecolor rgb blue
+#+end_src
+
+#+RESULTS:
+[[file:./static/a95a49aa-9aa3-4e83-b3e0-767756736ec1.svg]]
+
+* Processing
+
+#+name: vericert-processed-size
+#+caption: Design size relative to Vericert.
+| benchmark | vericert-list | vericert-hyper |
+|----------------+---------------+----------------|
+| 2mm | 1.8148148 | 1.5555556 |
+| 3mm | 1.6247906 | 1.5311760 |
+| adi | 1.6864583 | 1.3051189 |
+| atas | 1.4228029 | 1.1908549 |
+| bicg | 1.3006993 | 1.1137725 |
+| cholesky | 2.2895054 | 1.7804878 |
+| covariance | 1.0145719 | 0.98584071 |
+| doitgen | 1.8436019 | 1.7212389 |
+| durbin | 1.2598291 | 0.94487179 |
+| fdtd-2d | 1.8102625 | 1.5752856 |
+| floyd-warshall | 1.2016129 | 0.90211907 |
+| gemm | 1.3737624 | 1.1948332 |
+| gemver | 1.3281991 | 1.2497213 |
+| gesummv | 1.3213333 | 1.0667384 |
+| heat-3d | 1.7933579 | 1.7587455 |
+| jacobi-1d | 1.6877323 | 1.3841463 |
+| jacobi-2d | 1.5256849 | 1.3707692 |
+| lu | 2.1350365 | 1.6447985 |
+| ludcmp | 2.2989324 | 1.7845304 |
+| mvt | 1.7512847 | 1.3708769 |
+| nussinov | 1.4447717 | 1.1678571 |
+| seidel-2d | 1.6851852 | 1.6545455 |
+| symm | 1.7689694 | 1.4516729 |
+| syr2k | 1.5592255 | 1.3608350 |
+| syrk | 1.3641882 | 1.2148649 |
+| trisolv | 1.3314607 | 1.3699422 |
+| trmm | 1.5706714 | 1.2772989 |
+#+tblfm: $1='(identity remote(raw-vericert,@@#$1))
+#+tblfm: $2=(remote(raw-vericert,@@#$2))/(remote(raw-vericert-list,@@#$2))
+#+tblfm: $3=(remote(raw-vericert,@@#$2))/(remote(raw-vericert-hyper,@@#$2))
+
+#+name: vericert-processed-speed
+#+caption: Execution time relative to Vericert.
+| benchmark | vericert-list | vericert-hyper |
+|----------------+---------------+----------------|
+| 2mm | 0.10964074 | 0.11388448 |
+| 3mm | 0.11272619 | 0.11380653 |
+| adi | 0.11254961 | 0.11188351 |
+| atas | 0.25071807 | 0.25060733 |
+| bicg | 0.25128535 | 0.25837004 |
+| cholesky | 0.10709267 | 0.10837778 |
+| covariance | 0.23328600 | 0.23503192 |
+| doitgen | 0.10006043 | 0.10025617 |
+| durbin | 0.91718661 | 0.88748628 |
+| fdtd-2d | 0.25191744 | 0.24256082 |
+| floyd-warshall | 0.24512275 | 0.24528405 |
+| gemm | 0.24217108 | 0.23782250 |
+| gemver | 0.080719653 | 0.082348805 |
+| gesummv | 0.11018493 | 0.11693428 |
+| heat-3d | 0.26189422 | 0.26387960 |
+| jacobi-1d | 1.0273277 | 0.99205979 |
+| jacobi-2d | 0.24812968 | 0.24891972 |
+| lu | 0.10784972 | 0.10553413 |
+| ludcmp | 0.10642397 | 0.11109796 |
+| mvt | 0.096198062 | 0.099829570 |
+| nussinov | 0.23680025 | 0.24543956 |
+| seidel-2d | 0.25317479 | 0.24189279 |
+| symm | 0.23900415 | 0.24417126 |
+| syr2k | 0.23700960 | 0.24042125 |
+| syrk | 0.24829032 | 0.24812610 |
+| trisolv | 0.11345693 | 0.11485735 |
+| trmm | 0.25103069 | 0.24199603 |
+#+tblfm: $1='(identity remote(raw-vericert,@@#$1))
+#+tblfm: $2=(remote(raw-vericert,@@#$3) * remote(raw-vericert,@@#$4))/(remote(raw-vericert-list,@@#$3) * remote(raw-vericert-list,@@#$4))
+#+tblfm: $3=(remote(raw-vericert,@@#$3) * remote(raw-vericert,@@#$4))/(remote(raw-vericert-hyper,@@#$3) * remote(raw-vericert-hyper,@@#$4))
+
+* Raw results
+
+#+name: raw-vericert
+#+caption: Vericert base results.
+| name | slice | ramfifo | delay | cycles |
+|----------------+-------+---------+-------+---------|
+| 2mm | 1764 | 4 | 4.59 | 467612 |
+| 3mm | 1940 | 8 | 4.56 | 604582 |
+| adi | 3238 | 4 | 4.764 | 1831462 |
+| atas | 599 | 4 | 4.539 | 101618 |
+| bicg | 930 | 4 | 4.692 | 130790 |
+| cholesky | 1898 | 8 | 4.877 | 2575070 |
+| covariance | 557 | 4 | 4.271 | 340794 |
+| doitgen | 1167 | 4 | 4.305 | 386782 |
+| durbin | 737 | 1 | 9.702 | 23832 |
+| fdtd-2d | 1517 | 4 | 4.467 | 958412 |
+| floyd-warshall | 894 | 8 | 4.473 | 5414366 |
+| gemm | 1110 | 4 | 4.609 | 406774 |
+| gemver | 1121 | 4 | 4.684 | 193048 |
+| gesummv | 991 | 4 | 4.719 | 116556 |
+| heat-3d | 1458 | 4 | 4.734 | 592770 |
+| jacobi-1d | 454 | 1 | 4.248 | 19996 |
+| jacobi-2d | 891 | 4 | 4.378 | 397200 |
+| lu | 1755 | 8 | 4.817 | 2893146 |
+| ludcmp | 2584 | 8 | 4.695 | 2641694 |
+| mvt | 1704 | 4 | 4.686 | 148874 |
+| nussinov | 981 | 8 | 4.467 | 956490 |
+| seidel-2d | 728 | 4 | 4.386 | 942338 |
+| symm | 1562 | 4 | 4.608 | 279832 |
+| syr2k | 1369 | 8 | 4.543 | 525908 |
+| syrk | 899 | 4 | 4.502 | 338286 |
+| trisolv | 474 | 4 | 4.541 | 36050 |
+| trmm | 889 | 2 | 4.384 | 165828 |
+
+#+name: raw-vericert-list
+#+caption: Results for list scheduling.
+| name | slice | ramfifo | delay | cycles |
+|----------------+-------+---------+--------+---------|
+| 2mm | 972 | 16 | 10.466 | 165471 |
+| 3mm | 1194 | 32 | 10.113 | 261965 |
+| adi | 1920 | 16 | 10.582 | 485316 |
+| atas | 421 | 16 | 4.526 | 59798 |
+| bicg | 715 | 16 | 4.668 | 94772 |
+| cholesky | 829 | 32 | 11.385 | 517257 |
+| covariance | 549 | 16 | 4.577 | 203830 |
+| doitgen | 633 | 16 | 10.756 | 109403 |
+| durbin | 585 | 1 | 10.578 | 14641 |
+| fdtd-2d | 838 | 16 | 4.433 | 480256 |
+| floyd-warshall | 744 | 32 | 4.562 | 3536988 |
+| gemm | 808 | 16 | 4.758 | 216926 |
+| gemver | 844 | 16 | 14.507 | 101950 |
+| gesummv | 750 | 16 | 10.707 | 84050 |
+| heat-3d | 813 | 16 | 4.519 | 128098 |
+| jacobi-1d | 269 | 1 | 4.135 | 10663 |
+| jacobi-2d | 584 | 16 | 4.411 | 187405 |
+| lu | 822 | 32 | 11.166 | 593194 |
+| ludcmp | 1124 | 32 | 11.029 | 579252 |
+| mvt | 973 | 16 | 12.178 | 87718 |
+| nussinov | 679 | 32 | 4.716 | 637205 |
+| seidel-2d | 432 | 16 | 4.331 | 365267 |
+| symm | 883 | 16 | 4.82 | 133974 |
+| syr2k | 878 | 32 | 4.792 | 232748 |
+| syrk | 659 | 16 | 4.533 | 184897 |
+| trisolv | 356 | 16 | 10.006 | 16966 |
+| trmm | 566 | 8 | 4.366 | 88820 |
+
+#+name: raw-vericert-hyper
+#+caption: Results for hyperblock scheduling.
+| name | slice | ramfifo | delay | cycles |
+|----------------+-------+---------+--------+---------|
+| 2mm | 1134 | 16 | 10.076 | 161455 |
+| 3mm | 1267 | 32 | 10.017 | 257422 |
+| adi | 2481 | 16 | 10.645 | 459394 |
+| atas | 503 | 16 | 4.528 | 57966 |
+| bicg | 835 | 16 | 4.54 | 89418 |
+| cholesky | 1066 | 32 | 11.25 | 511897 |
+| covariance | 565 | 16 | 4.543 | 203624 |
+| doitgen | 678 | 16 | 10.735 | 105752 |
+| durbin | 780 | 1 | 10.932 | 14448 |
+| fdtd-2d | 963 | 16 | 4.604 | 476096 |
+| floyd-warshall | 991 | 32 | 4.559 | 3479990 |
+| gemm | 929 | 16 | 4.845 | 211833 |
+| gemver | 897 | 16 | 14.22 | 96749 |
+| gesummv | 929 | 16 | 10.089 | 77216 |
+| heat-3d | 829 | 16 | 4.485 | 128048 |
+| jacobi-1d | 328 | 1 | 4.282 | 10563 |
+| jacobi-2d | 650 | 16 | 4.397 | 187275 |
+| lu | 1067 | 32 | 11.411 | 587834 |
+| ludcmp | 1448 | 32 | 10.565 | 573817 |
+| mvt | 1243 | 16 | 11.735 | 82080 |
+| nussinov | 840 | 32 | 4.55 | 593596 |
+| seidel-2d | 440 | 16 | 4.533 | 365107 |
+| symm | 1076 | 16 | 4.718 | 130841 |
+| syr2k | 1006 | 32 | 4.724 | 225839 |
+| syrk | 740 | 16 | 4.536 | 180421 |
+| trisolv | 346 | 16 | 9.884 | 16849 |
+| trmm | 696 | 8 | 4.529 | 87568 |
diff --git a/notes/static/5a22847d-9bd6-46e9-9e2c-1291d3f8c7b9.svg b/notes/static/5a22847d-9bd6-46e9-9e2c-1291d3f8c7b9.svg
new file mode 100644
index 0000000..08e7526
--- /dev/null
+++ b/notes/static/5a22847d-9bd6-46e9-9e2c-1291d3f8c7b9.svg
@@ -0,0 +1,413 @@
+<?xml version="1.0" encoding="utf-8" standalone="no"?>
+<svg
+ width="600" height="480"
+ viewBox="0 0 600 480"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+>
+
+<title>Gnuplot</title>
+<desc>Produced by GNUPLOT 5.4 patchlevel 3 </desc>
+
+<g id="gnuplot_canvas">
+
+<rect x="0" y="0" width="600" height="480" fill="none"/>
+<defs>
+
+ <circle id='gpDot' r='0.5' stroke-width='0.5' stroke='currentColor'/>
+ <path id='gpPt0' stroke-width='0.222' stroke='currentColor' d='M-1,0 h2 M0,-1 v2'/>
+ <path id='gpPt1' stroke-width='0.222' stroke='currentColor' d='M-1,-1 L1,1 M1,-1 L-1,1'/>
+ <path id='gpPt2' stroke-width='0.222' stroke='currentColor' d='M-1,0 L1,0 M0,-1 L0,1 M-1,-1 L1,1 M-1,1 L1,-1'/>
+ <rect id='gpPt3' stroke-width='0.222' stroke='currentColor' x='-1' y='-1' width='2' height='2'/>
+ <rect id='gpPt4' stroke-width='0.222' stroke='currentColor' fill='currentColor' x='-1' y='-1' width='2' height='2'/>
+ <circle id='gpPt5' stroke-width='0.222' stroke='currentColor' cx='0' cy='0' r='1'/>
+ <use xlink:href='#gpPt5' id='gpPt6' fill='currentColor' stroke='none'/>
+ <path id='gpPt7' stroke-width='0.222' stroke='currentColor' d='M0,-1.33 L-1.33,0.67 L1.33,0.67 z'/>
+ <use xlink:href='#gpPt7' id='gpPt8' fill='currentColor' stroke='none'/>
+ <use xlink:href='#gpPt7' id='gpPt9' stroke='currentColor' transform='rotate(180)'/>
+ <use xlink:href='#gpPt9' id='gpPt10' fill='currentColor' stroke='none'/>
+ <use xlink:href='#gpPt3' id='gpPt11' stroke='currentColor' transform='rotate(45)'/>
+ <use xlink:href='#gpPt11' id='gpPt12' fill='currentColor' stroke='none'/>
+ <path id='gpPt13' stroke-width='0.222' stroke='currentColor' d='M0,1.330 L1.265,0.411 L0.782,-1.067 L-0.782,-1.076 L-1.265,0.411 z'/>
+ <use xlink:href='#gpPt13' id='gpPt14' fill='currentColor' stroke='none'/>
+ <filter id='textbox' filterUnits='objectBoundingBox' x='0' y='0' height='1' width='1'>
+ <feFlood flood-color='white' flood-opacity='1' result='bgnd'/>
+ <feComposite in='SourceGraphic' in2='bgnd' operator='atop'/>
+ </filter>
+ <filter id='greybox' filterUnits='objectBoundingBox' x='0' y='0' height='1' width='1'>
+ <feFlood flood-color='lightgrey' flood-opacity='1' result='grey'/>
+ <feComposite in='SourceGraphic' in2='grey' operator='atop'/>
+ </filter>
+</defs>
+<g fill="none" color="white" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M72.53,344.54 L81.53,344.54 M574.82,344.54 L565.82,344.54 '/> <g transform="translate(64.14,348.44)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" > 1</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M72.53,237.31 L81.53,237.31 M574.82,237.31 L565.82,237.31 '/> <g transform="translate(64.14,241.21)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" > 1.5</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M72.53,161.24 L81.53,161.24 M574.82,161.24 L565.82,161.24 '/> <g transform="translate(64.14,165.14)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" > 2</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M72.53,102.23 L81.53,102.23 M574.82,102.23 L565.82,102.23 '/> <g transform="translate(64.14,106.13)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" > 2.5</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M72.53,54.01 L81.53,54.01 M574.82,54.01 L565.82,54.01 '/> <g transform="translate(64.14,57.91)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" > 3</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M90.47,344.54 L90.47,335.54 '/> <g transform="translate(94.37,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >2mm</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M108.41,344.54 L108.41,335.54 '/> <g transform="translate(112.31,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >3mm</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M126.35,344.54 L126.35,335.54 '/> <g transform="translate(130.25,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >adi</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M144.29,344.54 L144.29,335.54 '/> <g transform="translate(148.19,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >atas</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M162.22,344.54 L162.22,335.54 '/> <g transform="translate(166.12,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >bicg</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M180.16,344.54 L180.16,335.54 '/> <g transform="translate(184.06,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >cholesky</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M198.10,344.54 L198.10,335.54 '/> <g transform="translate(202.00,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >covariance</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M216.04,344.54 L216.04,335.54 '/> <g transform="translate(219.94,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >doitgen</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M233.98,344.54 L233.98,335.54 '/> <g transform="translate(237.88,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >durbin</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M251.92,344.54 L251.92,335.54 '/> <g transform="translate(255.82,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >fdtd-2d</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M269.86,344.54 L269.86,335.54 '/> <g transform="translate(273.76,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >floyd-warshall</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M287.80,344.54 L287.80,335.54 '/> <g transform="translate(291.70,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >gemm</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M305.74,344.54 L305.74,335.54 '/> <g transform="translate(309.64,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >gemver</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M323.68,344.54 L323.68,335.54 '/> <g transform="translate(327.58,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >gesummv</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M341.61,344.54 L341.61,335.54 '/> <g transform="translate(345.51,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >heat-3d</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M359.55,344.54 L359.55,335.54 '/> <g transform="translate(363.45,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >jacobi-1d</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M377.49,344.54 L377.49,335.54 '/> <g transform="translate(381.39,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >jacobi-2d</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M395.43,344.54 L395.43,335.54 '/> <g transform="translate(399.33,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >lu</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M413.37,344.54 L413.37,335.54 '/> <g transform="translate(417.27,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >ludcmp</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M431.31,344.54 L431.31,335.54 '/> <g transform="translate(435.21,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >mvt</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M449.25,344.54 L449.25,335.54 '/> <g transform="translate(453.15,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >nussinov</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M467.19,344.54 L467.19,335.54 '/> <g transform="translate(471.09,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >seidel-2d</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M485.13,344.54 L485.13,335.54 '/> <g transform="translate(489.03,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >symm</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M503.06,344.54 L503.06,335.54 '/> <g transform="translate(506.96,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >syr2k</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M521.00,344.54 L521.00,335.54 '/> <g transform="translate(524.90,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >syrk</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M538.94,344.54 L538.94,335.54 '/> <g transform="translate(542.84,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >trisolv</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M556.88,344.54 L556.88,335.54 '/> <g transform="translate(560.78,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >trmm</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M72.53,54.01 L72.53,344.54 L574.82,344.54 L574.82,54.01 L72.53,54.01 Z '/></g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <g transform="translate(19.18,199.28) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="middle">
+ <text><tspan font-family="Arial" >Design size relative to Vericert</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+</g>
+ <g id="gnuplot_plot_1" ><title>list</title>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <g transform="translate(507.09,75.91)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >list</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(224, 122, 95)' points = '515.48,76.51 558.04,76.51 558.04,67.51 515.48,67.51 '/>
+ </g>
+ <path stroke='rgb(224, 122, 95)' d='M515.48,76.51 L558.04,76.51 L558.04,67.51 L515.48,67.51 L515.48,76.51 Z '/></g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(224, 122, 95)' points = '85.98,344.54 90.48,344.54 90.48,186.92 85.98,186.92 '/>
+ </g>
+ <path stroke='rgb(224, 122, 95)' d='M85.98,344.54 L85.98,186.93 L90.47,186.93 L90.47,344.54 L85.98,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(224, 122, 95)' points = '103.92,344.54 108.42,344.54 108.42,216.17 103.92,216.17 '/>
+ </g>
+ <path stroke='rgb(224, 122, 95)' d='M103.92,344.54 L103.92,216.18 L108.41,216.18 L108.41,344.54 L103.92,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(224, 122, 95)' points = '121.86,344.54 126.36,344.54 126.36,206.32 121.86,206.32 '/>
+ </g>
+ <path stroke='rgb(224, 122, 95)' d='M121.86,344.54 L121.86,206.33 L126.35,206.33 L126.35,344.54 L121.86,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(224, 122, 95)' points = '139.80,344.54 144.30,344.54 144.30,251.28 139.80,251.28 '/>
+ </g>
+ <path stroke='rgb(224, 122, 95)' d='M139.80,344.54 L139.80,251.29 L144.29,251.29 L144.29,344.54 L139.80,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(224, 122, 95)' points = '157.74,344.54 162.23,344.54 162.23,275.01 157.74,275.01 '/>
+ </g>
+ <path stroke='rgb(224, 122, 95)' d='M157.74,344.54 L157.74,275.02 L162.22,275.02 L162.22,344.54 L157.74,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(224, 122, 95)' points = '175.68,344.54 180.17,344.54 180.17,125.48 175.68,125.48 '/>
+ </g>
+ <path stroke='rgb(224, 122, 95)' d='M175.68,344.54 L175.68,125.49 L180.16,125.49 L180.16,344.54 L175.68,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(224, 122, 95)' points = '193.62,344.54 198.11,344.54 198.11,340.70 193.62,340.70 '/>
+ </g>
+ <path stroke='rgb(224, 122, 95)' d='M193.62,344.54 L193.62,340.71 L198.10,340.71 L198.10,344.54 L193.62,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(224, 122, 95)' points = '211.56,344.54 216.05,344.54 216.05,182.76 211.56,182.76 '/>
+ </g>
+ <path stroke='rgb(224, 122, 95)' d='M211.56,344.54 L211.56,182.77 L216.04,182.77 L216.04,344.54 L211.56,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(224, 122, 95)' points = '229.50,344.54 233.99,344.54 233.99,283.45 229.50,283.45 '/>
+ </g>
+ <path stroke='rgb(224, 122, 95)' d='M229.50,344.54 L229.50,283.46 L233.98,283.46 L233.98,344.54 L229.50,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(224, 122, 95)' points = '247.43,344.54 251.93,344.54 251.93,187.59 247.43,187.59 '/>
+ </g>
+ <path stroke='rgb(224, 122, 95)' d='M247.43,344.54 L247.43,187.60 L251.92,187.60 L251.92,344.54 L247.43,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(224, 122, 95)' points = '265.37,344.54 269.87,344.54 269.87,295.96 265.37,295.96 '/>
+ </g>
+ <path stroke='rgb(224, 122, 95)' d='M265.37,344.54 L265.37,295.97 L269.86,295.97 L269.86,344.54 L265.37,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(224, 122, 95)' points = '283.31,344.54 287.81,344.54 287.81,260.55 283.31,260.55 '/>
+ </g>
+ <path stroke='rgb(224, 122, 95)' d='M283.31,344.54 L283.31,260.56 L287.80,260.56 L287.80,344.54 L283.31,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(224, 122, 95)' points = '301.25,344.54 305.75,344.54 305.75,269.47 301.25,269.47 '/>
+ </g>
+ <path stroke='rgb(224, 122, 95)' d='M301.25,344.54 L301.25,269.48 L305.74,269.48 L305.74,344.54 L301.25,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(224, 122, 95)' points = '319.19,344.54 323.69,344.54 323.69,270.84 319.19,270.84 '/>
+ </g>
+ <path stroke='rgb(224, 122, 95)' d='M319.19,344.54 L319.19,270.85 L323.68,270.85 L323.68,344.54 L319.19,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(224, 122, 95)' points = '337.13,344.54 341.62,344.54 341.62,190.07 337.13,190.07 '/>
+ </g>
+ <path stroke='rgb(224, 122, 95)' d='M337.13,344.54 L337.13,190.08 L341.61,190.08 L341.61,344.54 L337.13,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(224, 122, 95)' points = '355.07,344.54 359.56,344.54 359.56,206.12 355.07,206.12 '/>
+ </g>
+ <path stroke='rgb(224, 122, 95)' d='M355.07,344.54 L355.07,206.13 L359.55,206.13 L359.55,344.54 L355.07,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(224, 122, 95)' points = '373.01,344.54 377.50,344.54 377.50,232.81 373.01,232.81 '/>
+ </g>
+ <path stroke='rgb(224, 122, 95)' d='M373.01,344.54 L373.01,232.82 L377.49,232.82 L377.49,344.54 L373.01,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(224, 122, 95)' points = '390.95,344.54 395.44,344.54 395.44,143.95 390.95,143.95 '/>
+ </g>
+ <path stroke='rgb(224, 122, 95)' d='M390.95,344.54 L390.95,143.96 L395.43,143.96 L395.43,344.54 L390.95,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(224, 122, 95)' points = '408.88,344.54 413.38,344.54 413.38,124.39 408.88,124.39 '/>
+ </g>
+ <path stroke='rgb(224, 122, 95)' d='M408.88,344.54 L408.88,124.40 L413.37,124.40 L413.37,344.54 L408.88,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(224, 122, 95)' points = '426.82,344.54 431.32,344.54 431.32,196.34 426.82,196.34 '/>
+ </g>
+ <path stroke='rgb(224, 122, 95)' d='M426.82,344.54 L426.82,196.35 L431.31,196.35 L431.31,344.54 L426.82,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(224, 122, 95)' points = '444.76,344.54 449.26,344.54 449.26,247.22 444.76,247.22 '/>
+ </g>
+ <path stroke='rgb(224, 122, 95)' d='M444.76,344.54 L444.76,247.23 L449.25,247.23 L449.25,344.54 L444.76,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(224, 122, 95)' points = '462.70,344.54 467.20,344.54 467.20,206.52 462.70,206.52 '/>
+ </g>
+ <path stroke='rgb(224, 122, 95)' d='M462.70,344.54 L462.70,206.53 L467.19,206.53 L467.19,344.54 L462.70,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(224, 122, 95)' points = '480.64,344.54 485.14,344.54 485.14,193.69 480.64,193.69 '/>
+ </g>
+ <path stroke='rgb(224, 122, 95)' d='M480.64,344.54 L480.64,193.70 L485.13,193.70 L485.13,344.54 L480.64,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(224, 122, 95)' points = '498.58,344.54 503.07,344.54 503.07,227.06 498.58,227.06 '/>
+ </g>
+ <path stroke='rgb(224, 122, 95)' d='M498.58,344.54 L498.58,227.07 L503.06,227.07 L503.06,344.54 L498.58,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(224, 122, 95)' points = '516.52,344.54 521.01,344.54 521.01,262.40 516.52,262.40 '/>
+ </g>
+ <path stroke='rgb(224, 122, 95)' d='M516.52,344.54 L516.52,262.41 L521.00,262.41 L521.00,344.54 L516.52,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(224, 122, 95)' points = '534.46,344.54 538.95,344.54 538.95,268.82 534.46,268.82 '/>
+ </g>
+ <path stroke='rgb(224, 122, 95)' d='M534.46,344.54 L534.46,268.83 L538.94,268.83 L538.94,344.54 L534.46,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(224, 122, 95)' points = '552.40,344.54 556.89,344.54 556.89,225.13 552.40,225.13 '/>
+ </g>
+ <path stroke='rgb(224, 122, 95)' d='M552.40,344.54 L552.40,225.14 L556.88,225.14 L556.88,344.54 L552.40,344.54 Z '/></g>
+ </g>
+ <g id="gnuplot_plot_2" ><title>hyper</title>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <g transform="translate(507.09,93.91)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >hyper</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(129, 178, 154)' points = '515.48,94.51 558.04,94.51 558.04,85.51 515.48,85.51 '/>
+ </g>
+ <path stroke='rgb(129, 178, 154)' d='M515.48,94.51 L558.04,94.51 L558.04,85.51 L515.48,85.51 L515.48,94.51 Z '/></g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(129, 178, 154)' points = '90.47,344.54 94.96,344.54 94.96,227.69 90.47,227.69 '/>
+ </g>
+ <path stroke='rgb(129, 178, 154)' d='M90.47,344.54 L90.47,227.70 L94.95,227.70 L94.95,344.54 L90.47,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(129, 178, 154)' points = '108.41,344.54 112.90,344.54 112.90,231.86 108.41,231.86 '/>
+ </g>
+ <path stroke='rgb(129, 178, 154)' d='M108.41,344.54 L108.41,231.87 L112.89,231.87 L112.89,344.54 L108.41,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(129, 178, 154)' points = '126.35,344.54 130.84,344.54 130.84,274.11 126.35,274.11 '/>
+ </g>
+ <path stroke='rgb(129, 178, 154)' d='M126.35,344.54 L126.35,274.12 L130.83,274.12 L130.83,344.54 L126.35,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(129, 178, 154)' points = '144.29,344.54 148.78,344.54 148.78,298.34 144.29,298.34 '/>
+ </g>
+ <path stroke='rgb(129, 178, 154)' d='M144.29,344.54 L144.29,298.35 L148.77,298.35 L148.77,344.54 L144.29,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(129, 178, 154)' points = '162.22,344.54 166.72,344.54 166.72,316.03 162.22,316.03 '/>
+ </g>
+ <path stroke='rgb(129, 178, 154)' d='M162.22,344.54 L162.22,316.04 L166.71,316.04 L166.71,344.54 L162.22,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(129, 178, 154)' points = '180.16,344.54 184.66,344.54 184.66,191.97 180.16,191.97 '/>
+ </g>
+ <path stroke='rgb(129, 178, 154)' d='M180.16,344.54 L180.16,191.98 L184.65,191.98 L184.65,344.54 L180.16,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(129, 178, 154)' points = '216.04,344.54 220.54,344.54 220.54,200.92 216.04,200.92 '/>
+ </g>
+ <path stroke='rgb(129, 178, 154)' d='M216.04,344.54 L216.04,200.93 L220.53,200.93 L220.53,344.54 L216.04,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(129, 178, 154)' points = '251.92,344.54 256.41,344.54 256.41,224.35 251.92,224.35 '/>
+ </g>
+ <path stroke='rgb(129, 178, 154)' d='M251.92,344.54 L251.92,224.36 L256.40,224.36 L256.40,344.54 L251.92,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(129, 178, 154)' points = '287.80,344.54 292.29,344.54 292.29,297.46 287.80,297.46 '/>
+ </g>
+ <path stroke='rgb(129, 178, 154)' d='M287.80,344.54 L287.80,297.47 L292.28,297.47 L292.28,344.54 L287.80,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(129, 178, 154)' points = '305.74,344.54 310.23,344.54 310.23,285.58 305.74,285.58 '/>
+ </g>
+ <path stroke='rgb(129, 178, 154)' d='M305.74,344.54 L305.74,285.59 L310.22,285.59 L310.22,344.54 L305.74,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(129, 178, 154)' points = '323.68,344.54 328.17,344.54 328.17,327.44 323.68,327.44 '/>
+ </g>
+ <path stroke='rgb(129, 178, 154)' d='M323.68,344.54 L323.68,327.45 L328.16,327.45 L328.16,344.54 L323.68,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(129, 178, 154)' points = '341.61,344.54 346.11,344.54 346.11,195.22 341.61,195.22 '/>
+ </g>
+ <path stroke='rgb(129, 178, 154)' d='M341.61,344.54 L341.61,195.23 L346.10,195.23 L346.10,344.54 L341.61,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(129, 178, 154)' points = '359.55,344.54 364.05,344.54 364.05,258.56 359.55,258.56 '/>
+ </g>
+ <path stroke='rgb(129, 178, 154)' d='M359.55,344.54 L359.55,258.57 L364.04,258.57 L364.04,344.54 L359.55,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(129, 178, 154)' points = '377.49,344.54 381.99,344.54 381.99,261.13 377.49,261.13 '/>
+ </g>
+ <path stroke='rgb(129, 178, 154)' d='M377.49,344.54 L377.49,261.14 L381.98,261.14 L381.98,344.54 L377.49,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(129, 178, 154)' points = '395.43,344.54 399.93,344.54 399.93,212.93 395.43,212.93 '/>
+ </g>
+ <path stroke='rgb(129, 178, 154)' d='M395.43,344.54 L395.43,212.94 L399.92,212.94 L399.92,344.54 L395.43,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(129, 178, 154)' points = '413.37,344.54 417.86,344.54 417.86,191.37 413.37,191.37 '/>
+ </g>
+ <path stroke='rgb(129, 178, 154)' d='M413.37,344.54 L413.37,191.38 L417.85,191.38 L417.85,344.54 L413.37,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(129, 178, 154)' points = '431.31,344.54 435.80,344.54 435.80,261.11 431.31,261.11 '/>
+ </g>
+ <path stroke='rgb(129, 178, 154)' d='M431.31,344.54 L431.31,261.12 L435.79,261.12 L435.79,344.54 L431.31,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(129, 178, 154)' points = '449.25,344.54 453.74,344.54 453.74,303.49 449.25,303.49 '/>
+ </g>
+ <path stroke='rgb(129, 178, 154)' d='M449.25,344.54 L449.25,303.50 L453.73,303.50 L453.73,344.54 L449.25,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(129, 178, 154)' points = '467.19,344.54 471.68,344.54 471.68,211.37 467.19,211.37 '/>
+ </g>
+ <path stroke='rgb(129, 178, 154)' d='M467.19,344.54 L467.19,211.38 L471.67,211.38 L471.67,344.54 L467.19,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(129, 178, 154)' points = '485.13,344.54 489.62,344.54 489.62,245.96 485.13,245.96 '/>
+ </g>
+ <path stroke='rgb(129, 178, 154)' d='M485.13,344.54 L485.13,245.97 L489.61,245.97 L489.61,344.54 L485.13,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(129, 178, 154)' points = '503.06,344.54 507.56,344.54 507.56,263.05 503.06,263.05 '/>
+ </g>
+ <path stroke='rgb(129, 178, 154)' d='M503.06,344.54 L503.06,263.06 L507.55,263.06 L507.55,344.54 L503.06,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(129, 178, 154)' points = '521.00,344.54 525.50,344.54 525.50,293.06 521.00,293.06 '/>
+ </g>
+ <path stroke='rgb(129, 178, 154)' d='M521.00,344.54 L521.00,293.07 L525.49,293.07 L525.49,344.54 L521.00,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(129, 178, 154)' points = '538.94,344.54 543.44,344.54 543.44,261.29 538.94,261.29 '/>
+ </g>
+ <path stroke='rgb(129, 178, 154)' d='M538.94,344.54 L538.94,261.30 L543.43,261.30 L543.43,344.54 L538.94,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(129, 178, 154)' points = '556.88,344.54 561.38,344.54 561.38,279.81 556.88,279.81 '/>
+ </g>
+ <path stroke='rgb(129, 178, 154)' d='M556.88,344.54 L556.88,279.82 L561.37,279.82 L561.37,344.54 L556.88,344.54 Z '/></g>
+ </g>
+<g fill="none" color="white" stroke="rgb(129, 178, 154)" stroke-width="2.00" stroke-linecap="butt" stroke-linejoin="miter">
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="2.00" stroke-linecap="butt" stroke-linejoin="miter">
+</g>
+<g fill="none" color="black" stroke="black" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M72.53,54.01 L72.53,344.54 L574.82,344.54 L574.82,54.01 L72.53,54.01 Z '/></g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <g transform="translate(323.67,30.91)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="middle">
+ <text><tspan font-family="Arial" >Vericert size comparison</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+</g>
+</g>
+</svg>
+
diff --git a/notes/static/a95a49aa-9aa3-4e83-b3e0-767756736ec1.svg b/notes/static/a95a49aa-9aa3-4e83-b3e0-767756736ec1.svg
new file mode 100644
index 0000000..1cec1bd
--- /dev/null
+++ b/notes/static/a95a49aa-9aa3-4e83-b3e0-767756736ec1.svg
@@ -0,0 +1,415 @@
+<?xml version="1.0" encoding="utf-8" standalone="no"?>
+<svg
+ width="600" height="480"
+ viewBox="0 0 600 480"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+>
+
+<title>Gnuplot</title>
+<desc>Produced by GNUPLOT 5.4 patchlevel 3 </desc>
+
+<g id="gnuplot_canvas">
+
+<rect x="0" y="0" width="600" height="480" fill="none"/>
+<defs>
+
+ <circle id='gpDot' r='0.5' stroke-width='0.5' stroke='currentColor'/>
+ <path id='gpPt0' stroke-width='0.222' stroke='currentColor' d='M-1,0 h2 M0,-1 v2'/>
+ <path id='gpPt1' stroke-width='0.222' stroke='currentColor' d='M-1,-1 L1,1 M1,-1 L-1,1'/>
+ <path id='gpPt2' stroke-width='0.222' stroke='currentColor' d='M-1,0 L1,0 M0,-1 L0,1 M-1,-1 L1,1 M-1,1 L1,-1'/>
+ <rect id='gpPt3' stroke-width='0.222' stroke='currentColor' x='-1' y='-1' width='2' height='2'/>
+ <rect id='gpPt4' stroke-width='0.222' stroke='currentColor' fill='currentColor' x='-1' y='-1' width='2' height='2'/>
+ <circle id='gpPt5' stroke-width='0.222' stroke='currentColor' cx='0' cy='0' r='1'/>
+ <use xlink:href='#gpPt5' id='gpPt6' fill='currentColor' stroke='none'/>
+ <path id='gpPt7' stroke-width='0.222' stroke='currentColor' d='M0,-1.33 L-1.33,0.67 L1.33,0.67 z'/>
+ <use xlink:href='#gpPt7' id='gpPt8' fill='currentColor' stroke='none'/>
+ <use xlink:href='#gpPt7' id='gpPt9' stroke='currentColor' transform='rotate(180)'/>
+ <use xlink:href='#gpPt9' id='gpPt10' fill='currentColor' stroke='none'/>
+ <use xlink:href='#gpPt3' id='gpPt11' stroke='currentColor' transform='rotate(45)'/>
+ <use xlink:href='#gpPt11' id='gpPt12' fill='currentColor' stroke='none'/>
+ <path id='gpPt13' stroke-width='0.222' stroke='currentColor' d='M0,1.330 L1.265,0.411 L0.782,-1.067 L-0.782,-1.076 L-1.265,0.411 z'/>
+ <use xlink:href='#gpPt13' id='gpPt14' fill='currentColor' stroke='none'/>
+ <filter id='textbox' filterUnits='objectBoundingBox' x='0' y='0' height='1' width='1'>
+ <feFlood flood-color='white' flood-opacity='1' result='bgnd'/>
+ <feComposite in='SourceGraphic' in2='bgnd' operator='atop'/>
+ </filter>
+ <filter id='greybox' filterUnits='objectBoundingBox' x='0' y='0' height='1' width='1'>
+ <feFlood flood-color='lightgrey' flood-opacity='1' result='grey'/>
+ <feComposite in='SourceGraphic' in2='grey' operator='atop'/>
+ </filter>
+</defs>
+<g fill="none" color="white" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M72.53,344.54 L77.03,344.54 M574.82,344.54 L570.32,344.54 M72.53,327.87 L77.03,327.87 M574.82,327.87 L570.32,327.87
+ M72.53,313.78 L77.03,313.78 M574.82,313.78 L570.32,313.78 M72.53,301.57 L77.03,301.57 M574.82,301.57 L570.32,301.57
+ M72.53,290.81 L77.03,290.81 M574.82,290.81 L570.32,290.81 M72.53,281.17 L77.03,281.17 M574.82,281.17 L570.32,281.17
+ M72.53,281.17 L81.53,281.17 M574.82,281.17 L565.82,281.17 '/> <g transform="translate(64.14,285.07)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" > 0.1</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M72.53,217.81 L77.03,217.81 M574.82,217.81 L570.32,217.81 M72.53,180.74 L77.03,180.74 M574.82,180.74 L570.32,180.74
+ M72.53,154.44 L77.03,154.44 M574.82,154.44 L570.32,154.44 M72.53,134.04 L77.03,134.04 M574.82,134.04 L570.32,134.04
+ M72.53,117.38 L77.03,117.38 M574.82,117.38 L570.32,117.38 M72.53,103.28 L77.03,103.28 M574.82,103.28 L570.32,103.28
+ M72.53,91.08 L77.03,91.08 M574.82,91.08 L570.32,91.08 M72.53,80.31 L77.03,80.31 M574.82,80.31 L570.32,80.31
+ M72.53,70.68 L77.03,70.68 M574.82,70.68 L570.32,70.68 M72.53,70.68 L81.53,70.68 M574.82,70.68 L565.82,70.68
+ '/> <g transform="translate(64.14,74.58)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" > 1</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M90.47,344.54 L90.47,335.54 '/> <g transform="translate(94.37,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >2mm</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M108.41,344.54 L108.41,335.54 '/> <g transform="translate(112.31,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >3mm</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M126.35,344.54 L126.35,335.54 '/> <g transform="translate(130.25,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >adi</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M144.29,344.54 L144.29,335.54 '/> <g transform="translate(148.19,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >atas</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M162.22,344.54 L162.22,335.54 '/> <g transform="translate(166.12,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >bicg</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M180.16,344.54 L180.16,335.54 '/> <g transform="translate(184.06,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >cholesky</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M198.10,344.54 L198.10,335.54 '/> <g transform="translate(202.00,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >covariance</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M216.04,344.54 L216.04,335.54 '/> <g transform="translate(219.94,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >doitgen</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M233.98,344.54 L233.98,335.54 '/> <g transform="translate(237.88,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >durbin</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M251.92,344.54 L251.92,335.54 '/> <g transform="translate(255.82,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >fdtd-2d</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M269.86,344.54 L269.86,335.54 '/> <g transform="translate(273.76,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >floyd-warshall</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M287.80,344.54 L287.80,335.54 '/> <g transform="translate(291.70,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >gemm</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M305.74,344.54 L305.74,335.54 '/> <g transform="translate(309.64,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >gemver</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M323.68,344.54 L323.68,335.54 '/> <g transform="translate(327.58,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >gesummv</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M341.61,344.54 L341.61,335.54 '/> <g transform="translate(345.51,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >heat-3d</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M359.55,344.54 L359.55,335.54 '/> <g transform="translate(363.45,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >jacobi-1d</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M377.49,344.54 L377.49,335.54 '/> <g transform="translate(381.39,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >jacobi-2d</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M395.43,344.54 L395.43,335.54 '/> <g transform="translate(399.33,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >lu</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M413.37,344.54 L413.37,335.54 '/> <g transform="translate(417.27,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >ludcmp</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M431.31,344.54 L431.31,335.54 '/> <g transform="translate(435.21,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >mvt</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M449.25,344.54 L449.25,335.54 '/> <g transform="translate(453.15,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >nussinov</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M467.19,344.54 L467.19,335.54 '/> <g transform="translate(471.09,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >seidel-2d</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M485.13,344.54 L485.13,335.54 '/> <g transform="translate(489.03,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >symm</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M503.06,344.54 L503.06,335.54 '/> <g transform="translate(506.96,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >syr2k</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M521.00,344.54 L521.00,335.54 '/> <g transform="translate(524.90,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >syrk</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M538.94,344.54 L538.94,335.54 '/> <g transform="translate(542.84,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >trisolv</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M556.88,344.54 L556.88,335.54 '/> <g transform="translate(560.78,352.93) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >trmm</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M72.53,54.01 L72.53,344.54 L574.82,344.54 L574.82,54.01 L72.53,54.01 Z '/></g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <g transform="translate(19.18,199.28) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="middle">
+ <text><tspan font-family="Arial" >Execution time relative to Vericert</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+</g>
+ <g id="gnuplot_plot_1" ><title>list</title>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <g transform="translate(507.09,75.91)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >list</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb( 61, 64, 91)' points = '515.48,76.51 558.04,76.51 558.04,67.51 515.48,67.51 '/>
+ </g>
+ <path stroke='rgb( 61, 64, 91)' d='M515.48,76.51 L558.04,76.51 L558.04,67.51 L515.48,67.51 L515.48,76.51 Z '/></g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb( 61, 64, 91)' points = '85.98,344.54 90.48,344.54 90.48,272.75 85.98,272.75 '/>
+ </g>
+ <path stroke='rgb( 61, 64, 91)' d='M85.98,344.54 L85.98,272.76 L90.47,272.76 L90.47,344.54 L85.98,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb( 61, 64, 91)' points = '103.92,344.54 108.42,344.54 108.42,270.21 103.92,270.21 '/>
+ </g>
+ <path stroke='rgb( 61, 64, 91)' d='M103.92,344.54 L103.92,270.22 L108.41,270.22 L108.41,344.54 L103.92,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb( 61, 64, 91)' points = '121.86,344.54 126.36,344.54 126.36,270.36 121.86,270.36 '/>
+ </g>
+ <path stroke='rgb( 61, 64, 91)' d='M121.86,344.54 L121.86,270.37 L126.35,270.37 L126.35,344.54 L121.86,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb( 61, 64, 91)' points = '139.80,344.54 144.30,344.54 144.30,197.14 139.80,197.14 '/>
+ </g>
+ <path stroke='rgb( 61, 64, 91)' d='M139.80,344.54 L139.80,197.15 L144.29,197.15 L144.29,344.54 L139.80,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb( 61, 64, 91)' points = '157.74,344.54 162.23,344.54 162.23,196.93 157.74,196.93 '/>
+ </g>
+ <path stroke='rgb( 61, 64, 91)' d='M157.74,344.54 L157.74,196.94 L162.22,196.94 L162.22,344.54 L157.74,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb( 61, 64, 91)' points = '175.68,344.54 180.17,344.54 180.17,274.90 175.68,274.90 '/>
+ </g>
+ <path stroke='rgb( 61, 64, 91)' d='M175.68,344.54 L175.68,274.91 L180.16,274.91 L180.16,344.54 L175.68,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb( 61, 64, 91)' points = '193.62,344.54 198.11,344.54 198.11,203.72 193.62,203.72 '/>
+ </g>
+ <path stroke='rgb( 61, 64, 91)' d='M193.62,344.54 L193.62,203.73 L198.10,203.73 L198.10,344.54 L193.62,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb( 61, 64, 91)' points = '211.56,344.54 216.05,344.54 216.05,281.11 211.56,281.11 '/>
+ </g>
+ <path stroke='rgb( 61, 64, 91)' d='M211.56,344.54 L211.56,281.12 L216.04,281.12 L216.04,344.54 L211.56,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb( 61, 64, 91)' points = '229.50,344.54 233.99,344.54 233.99,78.57 229.50,78.57 '/>
+ </g>
+ <path stroke='rgb( 61, 64, 91)' d='M229.50,344.54 L229.50,78.58 L233.98,78.58 L233.98,344.54 L229.50,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb( 61, 64, 91)' points = '247.43,344.54 251.93,344.54 251.93,196.70 247.43,196.70 '/>
+ </g>
+ <path stroke='rgb( 61, 64, 91)' d='M247.43,344.54 L247.43,196.71 L251.92,196.71 L251.92,344.54 L247.43,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb( 61, 64, 91)' points = '265.37,344.54 269.87,344.54 269.87,199.20 265.37,199.20 '/>
+ </g>
+ <path stroke='rgb( 61, 64, 91)' d='M265.37,344.54 L265.37,199.21 L269.86,199.21 L269.86,344.54 L265.37,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb( 61, 64, 91)' points = '283.31,344.54 287.81,344.54 287.81,200.31 283.31,200.31 '/>
+ </g>
+ <path stroke='rgb( 61, 64, 91)' d='M283.31,344.54 L283.31,200.32 L287.80,200.32 L287.80,344.54 L283.31,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb( 61, 64, 91)' points = '301.25,344.54 305.75,344.54 305.75,300.74 301.25,300.74 '/>
+ </g>
+ <path stroke='rgb( 61, 64, 91)' d='M301.25,344.54 L301.25,300.75 L305.74,300.75 L305.74,344.54 L301.25,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb( 61, 64, 91)' points = '319.19,344.54 323.69,344.54 323.69,272.30 319.19,272.30 '/>
+ </g>
+ <path stroke='rgb( 61, 64, 91)' d='M319.19,344.54 L319.19,272.31 L323.68,272.31 L323.68,344.54 L319.19,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb( 61, 64, 91)' points = '337.13,344.54 341.62,344.54 341.62,193.15 337.13,193.15 '/>
+ </g>
+ <path stroke='rgb( 61, 64, 91)' d='M337.13,344.54 L337.13,193.16 L341.61,193.16 L341.61,344.54 L337.13,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb( 61, 64, 91)' points = '355.07,344.54 359.56,344.54 359.56,68.20 355.07,68.20 '/>
+ </g>
+ <path stroke='rgb( 61, 64, 91)' d='M355.07,344.54 L355.07,68.21 L359.55,68.21 L359.55,344.54 L355.07,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb( 61, 64, 91)' points = '373.01,344.54 377.50,344.54 377.50,198.09 373.01,198.09 '/>
+ </g>
+ <path stroke='rgb( 61, 64, 91)' d='M373.01,344.54 L373.01,198.10 L377.49,198.10 L377.49,344.54 L373.01,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb( 61, 64, 91)' points = '390.95,344.54 395.44,344.54 395.44,274.26 390.95,274.26 '/>
+ </g>
+ <path stroke='rgb( 61, 64, 91)' d='M390.95,344.54 L390.95,274.27 L395.43,274.27 L395.43,344.54 L390.95,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb( 61, 64, 91)' points = '408.88,344.54 413.38,344.54 413.38,275.47 408.88,275.47 '/>
+ </g>
+ <path stroke='rgb( 61, 64, 91)' d='M408.88,344.54 L408.88,275.48 L413.37,275.48 L413.37,344.54 L408.88,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb( 61, 64, 91)' points = '426.82,344.54 431.32,344.54 431.32,284.71 426.82,284.71 '/>
+ </g>
+ <path stroke='rgb( 61, 64, 91)' d='M426.82,344.54 L426.82,284.72 L431.31,284.72 L431.31,344.54 L426.82,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb( 61, 64, 91)' points = '444.76,344.54 449.26,344.54 449.26,202.36 444.76,202.36 '/>
+ </g>
+ <path stroke='rgb( 61, 64, 91)' d='M444.76,344.54 L444.76,202.37 L449.25,202.37 L449.25,344.54 L444.76,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb( 61, 64, 91)' points = '462.70,344.54 467.20,344.54 467.20,196.25 462.70,196.25 '/>
+ </g>
+ <path stroke='rgb( 61, 64, 91)' d='M462.70,344.54 L462.70,196.26 L467.19,196.26 L467.19,344.54 L462.70,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb( 61, 64, 91)' points = '480.64,344.54 485.14,344.54 485.14,201.51 480.64,201.51 '/>
+ </g>
+ <path stroke='rgb( 61, 64, 91)' d='M480.64,344.54 L480.64,201.52 L485.13,201.52 L485.13,344.54 L480.64,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb( 61, 64, 91)' points = '498.58,344.54 503.07,344.54 503.07,202.28 498.58,202.28 '/>
+ </g>
+ <path stroke='rgb( 61, 64, 91)' d='M498.58,344.54 L498.58,202.29 L503.06,202.29 L503.06,344.54 L498.58,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb( 61, 64, 91)' points = '516.52,344.54 521.01,344.54 521.01,198.03 516.52,198.03 '/>
+ </g>
+ <path stroke='rgb( 61, 64, 91)' d='M516.52,344.54 L516.52,198.04 L521.00,198.04 L521.00,344.54 L516.52,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb( 61, 64, 91)' points = '534.46,344.54 538.95,344.54 538.95,269.62 534.46,269.62 '/>
+ </g>
+ <path stroke='rgb( 61, 64, 91)' d='M534.46,344.54 L534.46,269.63 L538.94,269.63 L538.94,344.54 L534.46,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb( 61, 64, 91)' points = '552.40,344.54 556.89,344.54 556.89,197.02 552.40,197.02 '/>
+ </g>
+ <path stroke='rgb( 61, 64, 91)' d='M552.40,344.54 L552.40,197.03 L556.88,197.03 L556.88,344.54 L552.40,344.54 Z '/></g>
+ </g>
+ <g id="gnuplot_plot_2" ><title>hyper</title>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <g transform="translate(507.09,93.91)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end">
+ <text><tspan font-family="Arial" >hyper</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(242, 204, 143)' points = '515.48,94.51 558.04,94.51 558.04,85.51 515.48,85.51 '/>
+ </g>
+ <path stroke='rgb(242, 204, 143)' d='M515.48,94.51 L558.04,94.51 L558.04,85.51 L515.48,85.51 L515.48,94.51 Z '/></g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(242, 204, 143)' points = '90.47,344.54 94.96,344.54 94.96,269.28 90.47,269.28 '/>
+ </g>
+ <path stroke='rgb(242, 204, 143)' d='M90.47,344.54 L90.47,269.29 L94.95,269.29 L94.95,344.54 L90.47,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(242, 204, 143)' points = '108.41,344.54 112.90,344.54 112.90,269.34 108.41,269.34 '/>
+ </g>
+ <path stroke='rgb(242, 204, 143)' d='M108.41,344.54 L108.41,269.35 L112.89,269.35 L112.89,344.54 L108.41,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(242, 204, 143)' points = '126.35,344.54 130.84,344.54 130.84,270.90 126.35,270.90 '/>
+ </g>
+ <path stroke='rgb(242, 204, 143)' d='M126.35,344.54 L126.35,270.91 L130.83,270.91 L130.83,344.54 L126.35,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(242, 204, 143)' points = '144.29,344.54 148.78,344.54 148.78,197.18 144.29,197.18 '/>
+ </g>
+ <path stroke='rgb(242, 204, 143)' d='M144.29,344.54 L144.29,197.19 L148.77,197.19 L148.77,344.54 L144.29,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(242, 204, 143)' points = '162.22,344.54 166.72,344.54 166.72,194.39 162.22,194.39 '/>
+ </g>
+ <path stroke='rgb(242, 204, 143)' d='M162.22,344.54 L162.22,194.40 L166.71,194.40 L166.71,344.54 L162.22,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(242, 204, 143)' points = '180.16,344.54 184.66,344.54 184.66,273.81 180.16,273.81 '/>
+ </g>
+ <path stroke='rgb(242, 204, 143)' d='M180.16,344.54 L180.16,273.82 L184.65,273.82 L184.65,344.54 L180.16,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(242, 204, 143)' points = '198.10,344.54 202.60,344.54 202.60,203.04 198.10,203.04 '/>
+ </g>
+ <path stroke='rgb(242, 204, 143)' d='M198.10,344.54 L198.10,203.05 L202.59,203.05 L202.59,344.54 L198.10,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(242, 204, 143)' points = '216.04,344.54 220.54,344.54 220.54,280.93 216.04,280.93 '/>
+ </g>
+ <path stroke='rgb(242, 204, 143)' d='M216.04,344.54 L216.04,280.94 L220.53,280.94 L220.53,344.54 L216.04,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(242, 204, 143)' points = '233.98,344.54 238.48,344.54 238.48,81.58 233.98,81.58 '/>
+ </g>
+ <path stroke='rgb(242, 204, 143)' d='M233.98,344.54 L233.98,81.59 L238.47,81.59 L238.47,344.54 L233.98,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(242, 204, 143)' points = '251.92,344.54 256.41,344.54 256.41,200.16 251.92,200.16 '/>
+ </g>
+ <path stroke='rgb(242, 204, 143)' d='M251.92,344.54 L251.92,200.17 L256.40,200.17 L256.40,344.54 L251.92,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(242, 204, 143)' points = '269.86,344.54 274.35,344.54 274.35,199.14 269.86,199.14 '/>
+ </g>
+ <path stroke='rgb(242, 204, 143)' d='M269.86,344.54 L269.86,199.15 L274.34,199.15 L274.34,344.54 L269.86,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(242, 204, 143)' points = '287.80,344.54 292.29,344.54 292.29,201.96 287.80,201.96 '/>
+ </g>
+ <path stroke='rgb(242, 204, 143)' d='M287.80,344.54 L287.80,201.97 L292.28,201.97 L292.28,344.54 L287.80,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(242, 204, 143)' points = '305.74,344.54 310.23,344.54 310.23,298.92 305.74,298.92 '/>
+ </g>
+ <path stroke='rgb(242, 204, 143)' d='M305.74,344.54 L305.74,298.93 L310.22,298.93 L310.22,344.54 L305.74,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(242, 204, 143)' points = '323.68,344.54 328.17,344.54 328.17,266.86 323.68,266.86 '/>
+ </g>
+ <path stroke='rgb(242, 204, 143)' d='M323.68,344.54 L323.68,266.87 L328.16,266.87 L328.16,344.54 L323.68,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(242, 204, 143)' points = '341.61,344.54 346.11,344.54 346.11,192.46 341.61,192.46 '/>
+ </g>
+ <path stroke='rgb(242, 204, 143)' d='M341.61,344.54 L341.61,192.47 L346.10,192.47 L346.10,344.54 L341.61,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(242, 204, 143)' points = '359.55,344.54 364.05,344.54 364.05,71.40 359.55,71.40 '/>
+ </g>
+ <path stroke='rgb(242, 204, 143)' d='M359.55,344.54 L359.55,71.41 L364.04,71.41 L364.04,344.54 L359.55,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(242, 204, 143)' points = '377.49,344.54 381.99,344.54 381.99,197.79 377.49,197.79 '/>
+ </g>
+ <path stroke='rgb(242, 204, 143)' d='M377.49,344.54 L377.49,197.80 L381.98,197.80 L381.98,344.54 L377.49,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(242, 204, 143)' points = '395.43,344.54 399.93,344.54 399.93,276.24 395.43,276.24 '/>
+ </g>
+ <path stroke='rgb(242, 204, 143)' d='M395.43,344.54 L395.43,276.25 L399.92,276.25 L399.92,344.54 L395.43,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(242, 204, 143)' points = '413.37,344.54 417.86,344.54 417.86,271.54 413.37,271.54 '/>
+ </g>
+ <path stroke='rgb(242, 204, 143)' d='M413.37,344.54 L413.37,271.55 L417.85,271.55 L417.85,344.54 L413.37,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(242, 204, 143)' points = '431.31,344.54 435.80,344.54 435.80,281.32 431.31,281.32 '/>
+ </g>
+ <path stroke='rgb(242, 204, 143)' d='M431.31,344.54 L431.31,281.33 L435.79,281.33 L435.79,344.54 L431.31,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(242, 204, 143)' points = '449.25,344.54 453.74,344.54 453.74,199.08 449.25,199.08 '/>
+ </g>
+ <path stroke='rgb(242, 204, 143)' d='M449.25,344.54 L449.25,199.09 L453.73,199.09 L453.73,344.54 L449.25,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(242, 204, 143)' points = '467.19,344.54 471.68,344.54 471.68,200.41 467.19,200.41 '/>
+ </g>
+ <path stroke='rgb(242, 204, 143)' d='M467.19,344.54 L467.19,200.42 L471.67,200.42 L471.67,344.54 L467.19,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(242, 204, 143)' points = '485.13,344.54 489.62,344.54 489.62,199.56 485.13,199.56 '/>
+ </g>
+ <path stroke='rgb(242, 204, 143)' d='M485.13,344.54 L485.13,199.57 L489.61,199.57 L489.61,344.54 L485.13,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(242, 204, 143)' points = '503.06,344.54 507.56,344.54 507.56,200.97 503.06,200.97 '/>
+ </g>
+ <path stroke='rgb(242, 204, 143)' d='M503.06,344.54 L503.06,200.98 L507.55,200.98 L507.55,344.54 L503.06,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(242, 204, 143)' points = '521.00,344.54 525.50,344.54 525.50,198.09 521.00,198.09 '/>
+ </g>
+ <path stroke='rgb(242, 204, 143)' d='M521.00,344.54 L521.00,198.10 L525.49,198.10 L525.49,344.54 L521.00,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(242, 204, 143)' points = '538.94,344.54 543.44,344.54 543.44,268.50 538.94,268.50 '/>
+ </g>
+ <path stroke='rgb(242, 204, 143)' d='M538.94,344.54 L538.94,268.51 L543.43,268.51 L543.43,344.54 L538.94,344.54 Z '/> <g stroke='none' shape-rendering='crispEdges'>
+ <polygon fill = 'rgb(242, 204, 143)' points = '556.88,344.54 561.38,344.54 561.38,200.37 556.88,200.37 '/>
+ </g>
+ <path stroke='rgb(242, 204, 143)' d='M556.88,344.54 L556.88,200.38 L561.37,200.38 L561.37,344.54 L556.88,344.54 Z '/></g>
+ </g>
+<g fill="none" color="white" stroke="rgb(242, 204, 143)" stroke-width="2.00" stroke-linecap="butt" stroke-linejoin="miter">
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="2.00" stroke-linecap="butt" stroke-linejoin="miter">
+</g>
+<g fill="none" color="black" stroke="black" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <path stroke='black' d='M72.53,54.01 L72.53,344.54 L574.82,344.54 L574.82,54.01 L72.53,54.01 Z '/></g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+ <g transform="translate(323.67,30.91)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="middle">
+ <text><tspan font-family="Arial" >Vericert speed comparison</tspan></text>
+ </g>
+</g>
+<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
+</g>
+</g>
+</svg>
+
diff --git a/packages.el b/packages.el
new file mode 100644
index 0000000..09cf4ae
--- /dev/null
+++ b/packages.el
@@ -0,0 +1,11 @@
+(require 'package)
+(package-initialize)
+(add-to-list 'package-archives '("nongnu" . "https://elpa.nongnu.org/nongnu/") t)
+(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
+(add-to-list 'package-archives '("gnu-devel" . "https://elpa.gnu.org/devel/") t)
+(package-refresh-contents)
+
+(package-install 'org)
+(package-install 'org-contrib)
+(package-install 'org-transclusion)
+(package-install 'htmlize)
diff --git a/publish.el b/publish.el
new file mode 100644
index 0000000..734c41b
--- /dev/null
+++ b/publish.el
@@ -0,0 +1,55 @@
+(require 'package)
+(package-initialize)
+
+(require 'org)
+(require 'org-id)
+(require 'ox-publish)
+(require 'ox-html)
+(require 'oc)
+(require 'oc-basic)
+(require 'cl-lib)
+
+(setq org-html-divs '((preamble "header" "header")
+ (content "article" "content")
+ (postamble "footer" "postamble"))
+ org-html-container-element "section"
+ org-html-metadata-timestamp-format "%Y-%m-%d"
+ org-html-checkbox-type 'html
+ org-html-html5-fancy t
+ org-html-doctype "html5"
+ org-html-coding-system 'utf-8-unix)
+
+(defconst ymhg-notes-dir (file-name-directory (or load-file-name buffer-file-name)))
+
+(defconst site-attachments
+ (regexp-opt '("jpg" "jpeg" "gif" "png" "svg"
+ "ico" "cur" "css" "js" "woff" "html" "pdf" "js")))
+
+(setq org-publish-project-alist
+ (list
+ (list "ymhg-notes-org"
+ :base-directory (concat ymhg-notes-dir "notes")
+ :base-extension "org"
+ :publishing-function #'org-html-publish-to-html
+ :publishing-directory (concat ymhg-notes-dir "public")
+ :exclude (regexp-opt '("README" "draft"))
+ :auto-sitemap t
+ :sitemap-filename (concat ymhg-notes-dir "notes/index.org")
+;; :sitemap-file-entry-format "%d *%t*"
+ :sitemap-title "Yann's Notes"
+;; :html-head-extra "<link rel=\"icon\" type=\"image/png\" href=\"/favicon.png\"/>
+;;<link rel=\"stylesheet\" type=\"text/css\" href=\"/css/org.css\"/>"
+ :html-postamble " <ul>
+ <li>© 2019-2022 <a href=\"https://yannherklotz.com\">Yann Herklotz</a></li>
+ <li><a href=\"https://creativecommons.org/licenses/by-sa/4.0/\">CC BY-SA 4.0</a></li>
+ <li><a href=\"https://sr.ht/~ymherklotz/emacs-zettelkasten\">org-zettelkasten</a></li>
+ </ul>")
+ (list "ymhg-notes-static"
+ :base-directory (concat ymhg-notes-dir "notes/static")
+ :include '()
+ :exclude "assets/\\|public/\\|README.md"
+ :base-extension site-attachments
+ :publishing-directory (concat ymhg-notes-dir "public/static")
+ :publishing-function #'org-publish-attachment
+ :recursive t)
+ (list "ymhg-notes" :components '("ymhg-notes-org" "ymhg-notes-static"))))