summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--appendices/appendix.tex90
-rw-r--r--content/discussion.tex36
-rw-r--r--content/implementation.tex4
-rw-r--r--content/results.tex96
-rw-r--r--results/node1_500_ec.tab51
-rw-r--r--results/node1_500_mg.tab51
-rw-r--r--results/node2_500_ec.tab51
-rw-r--r--results/node2_500_mg.tab51
-rw-r--r--results/node3_500_ec.tab51
-rw-r--r--results/node3_500_mg.tab51
-rw-r--r--thesis.bib7
-rw-r--r--thesis.tex3
12 files changed, 480 insertions, 62 deletions
diff --git a/appendices/appendix.tex b/appendices/appendix.tex
index ec05cce..26fef6e 100644
--- a/appendices/appendix.tex
+++ b/appendices/appendix.tex
@@ -1,7 +1,97 @@
+\clearpage
\appendix
+\section{Some scripts to do result processing}
+The script that converts the output from the statsd to a \LaTeX\xspace table format.
+\begin{lstlisting}
+cut -d ',' -f 2,5,8,11,14,17,20,23,26,29,32,35 | awk 'BEGIN {FS=",";}; {if (NR == 1) {print "prepre & premix & prepost & realpre & realmix & realpost \\\\\\hline\\hline";} else{ OFMT="%.2f"; c=1000000000; print ($5-$6)/c,"&",($1-$2)/c,"&",($3-$4)/c,"&",($11-$12)/c,"&",($7-$8)/c,"&",($9-$10)/c,"\\\\\\hline";}}'
+\end{lstlisting}
+
+Script that calculates the mean and standard deviation of each column.
+
+\begin{lstlisting}
+tail -n +2 | cut -d ',' -f 2,5,8,11,14,17,20,23,26,29,32,35 | awk 'BEGIN {FS=",";}; { OFMT="%.2f"; c=1000000000; print ($5-$6)/c,($1-$2)/c,($3-$4)/c,($11-$12)/c,($7-$8)/c,($9-$10)/c;}' | awk '{for(i=1;i<=NF;i++) {sum[i] += $i; sumsq[i] += ($i)^2}} END {for (i=1;i<=NF;i++) {printf " & %.3f (%.3f)", sum[i]/NR, sqrt((sumsq[i]-sum[i]^2/NR)/NR)} printf("\n")}'
+\end{lstlisting}
+
+\section{PC specifications}
+\label{app-specs}
+
+\begin{table}[!ht]
+\resizebox{\columnwidth}{!}{
+\begin{tabular}{|l l|}
+\hline
+CPU: &Intel Core i7 960 @ 3.20GHz\\
+Microcode: &0x19 \\
+RAM: &3x 4GB @ 1066 MHz DDR3 \\
+Bogomips: &6619.51 \\
+OS: &Arch Linux \\
+Turbo Boost: &off \\
+\hline
+\end{tabular}
+}
+\caption{Basic PC specs}
+\end{table}
+
+\begin{table}[!ht]
+\noindent\resizebox{\columnwidth}{!}{
+\begin{tabular}{|l r r r|}
+\hline
+System Benchmarks Index Values & BASELINE & RESULT & INDEX\\
+Dhrystone 2 using register variables & 116700.0 & 30352428.6 & 2600.9\\
+Double-Precision Whetstone & 55.0 & 3953.8 & 718.9\\
+Execl Throughput & 43.0 & 4866.8 & 1131.8\\
+File Copy 1024 bufsize 2000 maxblocks & 3960.0 & 1021697.7 & 2580.0\\
+File Copy 256 bufsize 500 maxblocks & 1655.0 & 287500.0 & 1737.2\\
+File Copy 4096 bufsize 8000 maxblocks & 5800.0 & 2065991.1 & 3562.1\\
+Pipe Throughput & 12440.0 & 2081172.9 & 1673.0\\
+Pipe-based Context Switching & 4000.0 & 137521.7 & 343.8\\
+Process Creation & 126.0 & 5557.8 & 441.1\\
+Shell Scripts (1 concurrent) & 42.4 & 1936.9 & 456.8\\
+Shell Scripts (8 concurrent) & 6.0 & 1135.7 & 1892.8\\
+System Call Overhead & 15000.0 & 3185882.9 & 2123.9\\
+ & & & ======\\
+System Benchmarks Index Score & & & 1258.2\\
+\hline
+\end{tabular}
+}
+\caption{Unix Bench index results to give a comparable baseline}
+\end{table}
+
+\clearpage
+
+\section{Tables}
+\label{app-tables}
+
+\newcommand{\rtable}[2]{
+\begin{table}[!ht]
+\centering
+\resizebox{\columnwidth}{!}{
+\begin{tabular}{|c|c|c|c|c|c|}
+\hline
+\input{#1}
+\end{tabular}
+}
+\caption{#2}
+\end{table}
+}
+
+\vspace{0.42em}
+
+\rtable{results/node1_500_ec.tab}{Timings of Node 1 elliptic curve algorithm with 500 clients}
+
+\rtable{results/node2_500_ec.tab}{Timings of Node 2 elliptic curve algorithm with 500 clients}
+
+\rtable{results/node3_500_ec.tab}{Timings of Node 3 elliptic curve algorithm with 500 clients}
+
+\rtable{results/node1_500_mg.tab}{Timings of Node 1 multiplicative group algorithm with 500 clients}
+
+\rtable{results/node2_500_mg.tab}{Timings of Node 2 multiplicative group algorithm with 500 clients}
+
+\rtable{results/node3_500_mg.tab}{Timings of Node 3 multiplicative group algorithm with 500 clients}
+
+\clearpage
%Keep this as last appendix.
\section{Reference manual}
diff --git a/content/discussion.tex b/content/discussion.tex
new file mode 100644
index 0000000..dc96914
--- /dev/null
+++ b/content/discussion.tex
@@ -0,0 +1,36 @@
+\section{Discussion}
+
+\newcommand{\ec}[0]{\emph{ec}\xspace}
+
+\newcommand{\mg}[0]{\emph{mg}\xspace}
+
+So lets first talk about what our expectations are. The size of the messages being sent are different. The ed25519 implementation can send messages up to $31$ bytes. The 2048 bit multiplicative group can send up to $255$ bytes of data. This implementation uses an prefix to the message data that is the destination id. This takes up $20$ bytes of each message, as it is the SHA1 hash of the public key of the receiver. this means that the ed25519 implementation only sends $11$ bytes of payload versus $235$ bytes of payload for the multiplicative group implementation.
+
+However there are ways around this, by doing multiple mixes of the ed25519 ein one single cMix run, which in turn can be trivially parallelized. The effective payload of the ed25519 algorithm would become $228$ bytes versus $235$ bytes of the multiplicative group. This is why I will consider the payload difference between the multiplicative group and the ed25519 implementation to a factor of $8$.
+
+\subsection{precomputation}
+
+If this is the case we would hope that the ed25519 implementation is atleast 8 times faster than the multiplicative group. Unfortunately this is not the case for the precomputation steps of the algorithm.
+
+\subsubsection{prepre}
+
+First of all this step does not seems to differ between nodes, all \ec nodes spend around 3.45 seconds and the \mg nodes spend about 17.87 seconds.
+
+For this step it could be caused by the random generation that takes place during this step. it's true that smaller random numbers have to be generated by the \ec nodes, which should give an advantage. However there might be a flat overhead in generating random numbers which would the same for both $256$ and $2048$ bit groups. If this flat overhead is large enough, let's say 1.5 seconds for 1000 random numbers, we get much closer to the x8 that we hope to achieve. However this seems unlikely as we are using the ``User'' cpu timings which should not include any of the non user space time spend waiting for instance on I/O.
+
+It is more likely that in this instance the \ec operations take longer than their \mg counterpart. The ec operations are very unoptimized and I had to introduce a couple of inversions to calculate the affine coordinates of a point. Because the api would not allow me to find the $x$ coordinate for a given point y in an easily accessible way. Which means there is room for optimization, to make this step even faster.
+
+\subsubsection{premix}
+
+The values for the premix step are very close to our ideal $8 x$ ratio, around $7 x$ times faster. The most likely cause for it being slightly slower than $8 x$ is the unnecessary inversions again.
+
+\subsubsection{prepost}
+
+So in the postprocessing step of the precomputation phase is the first actual timesaver for \ec. This is most likely due to the fact that the \mg algorithm now has to calculate inverses of groupelements. As we need to calculate our decryption shares. This is a much slower process for \mg than it is for \ec and therefore this is around $16 x$ faster
+
+\subsubsection{realpre}
+
+Now here is the real time saver in the \ec vs \mg benchmark.
+
+where \ec only takes $0.3$ seconds to complete this step, \mg takes on average $> 22$ seconds. in this case again, both algorithms need to calculate the inverse group elements. Which is faster in \ec than in \mg.
+
diff --git a/content/implementation.tex b/content/implementation.tex
index f2ad497..1da07de 100644
--- a/content/implementation.tex
+++ b/content/implementation.tex
@@ -22,9 +22,9 @@ You can map a point back to the original string by dividing the y coordinate wit
The problem with this probabilistic Koblitz's method is choosing your ``stride''. There is no way of knowing what the max distance between two consecutive suitable y coordinates could be, half of the possible group elements would be suitable, but it is impossible to list all the Ed25519 curve points and check. This makes it an unsolvable problem, but we can make educated guesses and stay on the safe side of those guesses.
-Now to address the concern that the you divide your message space by your stride. By doing this you also effect your throughput. Atleast it would if you would optimally pack your messages in the 252 bits you have when using Ed25519. If you only use the lower 248 bits however, which gives you 31 byte messages. you have 4 bits to use as a stride. Which, anecdotally, seems to be enough. Ofcourse you can never know if this stride will work for all possible messages. But for the purpose of this benchmark it seems to work well enough. Maybe it is possible to find out how stride influences the chance of not finding a suitable y coordinate. But that is outside of the scope of this research.
+Now to address the concern that the you divide your message space by your stride. By doing this you also effect your throughput. Atleast it would if you would optimally pack your messages in the 252 bits you have when using Ed25519. If you only use the lower 248 bits however, which gives you 31 byte messages. you have 5 bits to use as a stride. Which, anecdotally, seems to be enough. Ofcourse you can never know if this stride will work for all possible messages. But for the purpose of this benchmark it seems to work well enough. Maybe it is possible to find out how stride influences the chance of not finding a suitable y coordinate. But that is outside of the scope of this research.
-A couple of small but nice benefits of using $16$ as stride. Multiplication and division are bit shifts as $16$ is a power of $2$. And all the output in hexadecimal numbers are shifted by 1 character. This makes some of the debugging process easier on the mind, but are minor considerations compared to making the stride large enough to actually make the chance of an unmapable input as small as possible.
+A couple of small but nice benefits of using $32$ as stride. Multiplication and division are bit shifts as $32$ is a power of $2$. For debugging purposes you might want to consider a stride of $16$. This makes any hexadecimal representation of a number just shift up one character. However in actual runs of the algorithm some runs would fail because there was no suitable $y$ coordinate within $16$ values of the message value. This has not yet happened for $32$. Again this is no guarantee that it will never happen though.
\subsection{Debugging the cmix operations.}
diff --git a/content/results.tex b/content/results.tex
index b3367cd..f3db200 100644
--- a/content/results.tex
+++ b/content/results.tex
@@ -1,67 +1,43 @@
\section{Results}
-\begin{lstlisting}
-cut -d ',' -f 2,5,8,11,14,17,20,23,26,29,32,35 | awk 'BEGIN {FS=",";}; {if (NR == 1) {print "prepre & premix & prepost & realpre & realmix & realpost \\\\\\hline\\hline";} else{ print $5-$6,"&",$1-$2,"&",$3-$4,"\\\\\\hline";}}'
-\end{lstlisting}
+So the raw results presented in appendix \ref{app-tables} were obtained by running 3 nodes and 500 clients on the same computer. The clients and nodes operated in the way you would normally see a cMix setup. All connections, either from node to node or clien to node, are TCP connections encrypted using TLS.
-\begin{table}[]
-\centering
-\caption{My caption}
-\label{my-label}
-\begin{tabular}{|c|c|c|c|c|c|}
-\hline
+Latency is off course negligible because all the participants are running on the same computer but the goal is not to measure network latency. Rather we want to know if there is a benefit in using elliptic curve as apposed to multiplicative group el-gamal.
+
+The reason behind running 3 nodes is simple. There are subtle distinctions between nodes do depending on the position in the network. The first node needs to aggregate messages and initiate the mix when enough messages have been received. The last node needs to do additional calculations to prevent the tagging attack mentioned in section \ref{sec:tagging}. Additionally the last node needs to decrypt the final message en send it to its destination. So the minimal testcase should contain 3 nodes. 1 first, 1 middle and 1 last node. Now I don't expect to see much difference between these nodes with the exception of the ``RealPost'' step as the last node needs to prepare buffers with the plaintext to send out to the clients.
+
+The reasoning behind running 500 clients is 2-fold. in the original cMix paper \cite{TODO} The largest test was with 500 clients. So I wanted to mimic that. The second reason is that it still feasible to do 500 clients using a single pc with 12GB or RAM. We still could increase the number of clients but running 500 of them gives us large enough timings that we don't need to worry about the timer resolution of the used CPU timers.
+
+For the timings I used the \emph{boost::timer::cpu\_timer}\cite{BoostCpuTimer} which has a timer resolution of $10000000ns$ for both user and system clocks on a Linux environment. This is why all the results are accurate to one-hundredth of a second. The timings used are the so called ``User'' timings. This eliminates the time spend context switching, which gives us slightly more accurate results. The system and wall times are recorded though, just filtered out in the results table as they are not relevant.
+
+So for gathering results I created a program called statsd, it is included in the repository. The program receives timer snapshots over TCP. So each node sends a snapshot just before they start working on a phase of the cMix algorithm. After we are done with computational work but before sending the data to the next node another snapshot of the clock state is send to the statsd. So the results are purely the computation of that cMix phase. With some additional conversions to the wireformat, but not the overhead of sending the message over the socket. This is done just after the cMIx operation complete courtesy of the implicit strand of the boost::asio async socket operations.
+
+The following results were gathered with the pc specs as listed in appendix \ref{app-specs}.
-prepre & premix & prepost & realpre & realmix & realpost \\\hline\hline
-12060000000 & 3350000000 & 1380000000 \\\hline
-15130000000 & 7130000000 & 5120000000 \\\hline
-10910000000 & -190000000 & -2200000000 \\\hline
-10710000000 & 90000000 & -1960000000 \\\hline
-9900000000 & 3490000000 & 1360000000 \\\hline
-10460000000 & 5000000000 & 3060000000 \\\hline
-7470000000 & 1970000000 & 80000000 \\\hline
-7260000000 & 2430000000 & 600000000 \\\hline
-5220000000 & 1120000000 & -780000000 \\\hline
-5670000000 & 2280000000 & 560000000 \\\hline
-5650000000 & 1740000000 & -310000000 \\\hline
-5650000000 & 2000000000 & -240000000 \\\hline
-6340000000 & 5670000000 & 3810000000 \\\hline
-7310000000 & 6670000000 & 4820000000 \\\hline
-9350000000 & 8410000000 & 6540000000 \\\hline
-9380000000 & 8660000000 & 6890000000 \\\hline
-11900000000 & 12420000000 & 10610000000 \\\hline
-12410000000 & 13020000000 & 11270000000 \\\hline
-13440000000 & 13030000000 & 11210000000 \\\hline
-13370000000 & 12620000000 & 10620000000 \\\hline
-14350000000 & 13320000000 & 11350000000 \\\hline
-10450000000 & 9640000000 & 7730000000 \\\hline
-13740000000 & 11800000000 & 10290000000 \\\hline
-13560000000 & 3280000000 & 1340000000 \\\hline
-12710000000 & 3010000000 & 1110000000 \\\hline
-11730000000 & 2790000000 & 790000000 \\\hline
-10760000000 & 2600000000 & 620000000 \\\hline
-10920000000 & 3600000000 & 1790000000 \\\hline
-10040000000 & 3240000000 & 1420000000 \\\hline
-9010000000 & 3040000000 & 1050000000 \\\hline
-8730000000 & 3450000000 & 1390000000 \\\hline
-7730000000 & 2330000000 & 410000000 \\\hline
-8420000000 & 3780000000 & 1890000000 \\\hline
-5830000000 & 1890000000 & 30000000 \\\hline
-6770000000 & 3440000000 & 1600000000 \\\hline
-5990000000 & 3720000000 & 2100000000 \\\hline
-4790000000 & 3250000000 & 1610000000 \\\hline
-4960000000 & 3750000000 & 2010000000 \\\hline
-4270000000 & 3580000000 & 1780000000 \\\hline
-3740000000 & 3500000000 & 1700000000 \\\hline
-4490000000 & 4350000000 & 2560000000 \\\hline
-11990000000 & 2770000000 & 740000000 \\\hline
-11820000000 & 3400000000 & 1420000000 \\\hline
-10940000000 & 5210000000 & 3480000000 \\\hline
-10470000000 & 5360000000 & 3600000000 \\\hline
-9000000000 & 2770000000 & 1050000000 \\\hline
-8810000000 & 3110000000 & 1310000000 \\\hline
-8460000000 & 3580000000 & 1660000000 \\\hline
-7630000000 & 3550000000 & 1780000000 \\\hline
-15180000000 & 2930000000 & 1190000000 \\\hline
+\begin{table}
+\resizebox{\columnwidth}{!}{
+\begin{tabular}{|c||c|c|c|c|c|c|}
+\hline
+Node & prepre & premix & prepost & realpre & realmix & realpost \\\hline\hline
+Node1 ec 500 & 3.677 (0.024) & 2.856 (0.017) & 1.201 (0.025) & 0.311 (0.004) & 0.126 (0.005) & 0.127 (0.005) \\\hline
+Node2 ec 500 & 3.692 (0.025) & 2.855 (0.018) & 1.192 (0.026) & 0.312 (0.004) & 0.126 (0.005) & 0.126 (0.005) \\\hline
+Node3 ec 500 & 3.688 (0.022) & 2.858 (0.016) & 1.204 (0.032) & 0.313 (0.005) & 0.218 (0.004) & 0.463 (0.017) \\\hline
+\end{tabular}
+}
+\caption{Node time average over runs with standard deviation in seconds using ed25519.}
+\end{table}
+
+\begin{table}
+\resizebox{\columnwidth}{!} {
+\begin{tabular}{|c||c|c|c|c|c|c|}
+\hline
+Node & prepre & premix & prepost & realpre & realmix & realpost \\\hline\hline
+Node1 mg 500 & 19.145 (0.039) & 19.142 (0.035) & 20.125 (0.560) & 24.769 (1.373) & 0.074 (0.005) & 0.140 (0.005) \\\hline
+Node2 mg 500 & 19.215 (0.041) & 19.140 (0.035) & 20.114 (0.661) & 24.509 (2.063) & 0.072 (0.005) & 0.139 (0.006) \\\hline
+Node3 mg 500 & 19.219 (0.073) & 19.152 (0.066) & 20.235 (1.183) & 24.560 (2.845) & 0.074 (0.006) & 1.475 (0.018) \\\hline
\end{tabular}
+}
+\caption{Node time average over runs with standard deviation in seconds using 2048 bit multiplicative group.}
+
\end{table}
diff --git a/results/node1_500_ec.tab b/results/node1_500_ec.tab
new file mode 100644
index 0000000..9080a69
--- /dev/null
+++ b/results/node1_500_ec.tab
@@ -0,0 +1,51 @@
+prepre & premix & prepost & realpre & realmix & realpost \\\hline\hline
+3.64 & 2.85 & 1.21 & 0.31 & 0.12 & 0.12 \\\hline
+3.71 & 2.86 & 1.20 & 0.31 & 0.12 & 0.13 \\\hline
+3.73 & 2.84 & 1.19 & 0.31 & 0.13 & 0.13 \\\hline
+3.69 & 2.87 & 1.18 & 0.31 & 0.12 & 0.13 \\\hline
+3.67 & 2.89 & 1.24 & 0.31 & 0.12 & 0.12 \\\hline
+3.67 & 2.85 & 1.19 & 0.31 & 0.13 & 0.12 \\\hline
+3.64 & 2.85 & 1.18 & 0.31 & 0.12 & 0.12 \\\hline
+3.66 & 2.86 & 1.22 & 0.32 & 0.13 & 0.13 \\\hline
+3.70 & 2.85 & 1.19 & 0.31 & 0.13 & 0.13 \\\hline
+3.68 & 2.84 & 1.22 & 0.31 & 0.12 & 0.12 \\\hline
+3.66 & 2.88 & 1.18 & 0.31 & 0.12 & 0.13 \\\hline
+3.68 & 2.86 & 1.16 & 0.31 & 0.12 & 0.12 \\\hline
+3.68 & 2.83 & 1.17 & 0.31 & 0.13 & 0.13 \\\hline
+3.65 & 2.85 & 1.24 & 0.32 & 0.13 & 0.12 \\\hline
+3.68 & 2.84 & 1.16 & 0.31 & 0.12 & 0.12 \\\hline
+3.62 & 2.86 & 1.23 & 0.31 & 0.13 & 0.13 \\\hline
+3.71 & 2.86 & 1.19 & 0.31 & 0.12 & 0.13 \\\hline
+3.69 & 2.84 & 1.20 & 0.31 & 0.13 & 0.13 \\\hline
+3.71 & 2.85 & 1.20 & 0.31 & 0.13 & 0.13 \\\hline
+3.70 & 2.85 & 1.20 & 0.31 & 0.12 & 0.13 \\\hline
+3.69 & 2.83 & 1.19 & 0.31 & 0.13 & 0.13 \\\hline
+3.68 & 2.86 & 1.24 & 0.31 & 0.13 & 0.13 \\\hline
+3.71 & 2.86 & 1.25 & 0.31 & 0.12 & 0.13 \\\hline
+3.68 & 2.87 & 1.22 & 0.31 & 0.13 & 0.13 \\\hline
+3.68 & 2.85 & 1.19 & 0.31 & 0.12 & 0.12 \\\hline
+3.66 & 2.87 & 1.18 & 0.31 & 0.13 & 0.13 \\\hline
+3.69 & 2.86 & 1.20 & 0.31 & 0.12 & 0.12 \\\hline
+3.67 & 2.87 & 1.19 & 0.32 & 0.13 & 0.13 \\\hline
+3.65 & 2.85 & 1.21 & 0.31 & 0.13 & 0.12 \\\hline
+3.66 & 2.85 & 1.22 & 0.31 & 0.12 & 0.13 \\\hline
+3.73 & 2.85 & 1.19 & 0.31 & 0.13 & 0.13 \\\hline
+3.65 & 2.86 & 1.22 & 0.30 & 0.13 & 0.13 \\\hline
+3.69 & 2.86 & 1.19 & 0.31 & 0.13 & 0.13 \\\hline
+3.64 & 2.86 & 1.24 & 0.32 & 0.13 & 0.13 \\\hline
+3.67 & 2.84 & 1.20 & 0.32 & 0.13 & 0.13 \\\hline
+3.65 & 2.86 & 1.20 & 0.31 & 0.13 & 0.13 \\\hline
+3.70 & 2.87 & 1.17 & 0.32 & 0.13 & 0.13 \\\hline
+3.66 & 2.87 & 1.21 & 0.32 & 0.13 & 0.13 \\\hline
+3.66 & 2.84 & 1.21 & 0.31 & 0.13 & 0.12 \\\hline
+3.72 & 2.84 & 1.22 & 0.31 & 0.13 & 0.13 \\\hline
+3.70 & 2.86 & 1.18 & 0.31 & 0.12 & 0.13 \\\hline
+3.67 & 2.84 & 1.18 & 0.31 & 0.12 & 0.13 \\\hline
+3.68 & 2.84 & 1.20 & 0.31 & 0.13 & 0.12 \\\hline
+3.66 & 2.86 & 1.17 & 0.31 & 0.13 & 0.13 \\\hline
+3.69 & 2.93 & 1.17 & 0.31 & 0.12 & 0.13 \\\hline
+3.66 & 2.86 & 1.24 & 0.31 & 0.12 & 0.12 \\\hline
+3.68 & 2.86 & 1.23 & 0.31 & 0.12 & 0.12 \\\hline
+3.67 & 2.86 & 1.21 & 0.31 & 0.13 & 0.12 \\\hline
+3.66 & 2.89 & 1.15 & 0.31 & 0.12 & 0.13 \\\hline
+3.67 & 2.82 & 1.25 & 0.31 & 0.13 & 0.13 \\\hline
diff --git a/results/node1_500_mg.tab b/results/node1_500_mg.tab
new file mode 100644
index 0000000..9c5dab8
--- /dev/null
+++ b/results/node1_500_mg.tab
@@ -0,0 +1,51 @@
+prepre & premix & prepost & realpre & realmix & realpost \\\hline\hline
+19.16 & 19.17 & 20.17 & 25.87 & 0.07 & 0.14 \\\hline
+19.13 & 19.05 & 20.09 & 23.91 & 0.07 & 0.14 \\\hline
+19.12 & 19.16 & 20.96 & 24.45 & 0.08 & 0.14 \\\hline
+19.18 & 19.15 & 19.88 & 28.36 & 0.08 & 0.15 \\\hline
+19.17 & 19.11 & 20.07 & 24.79 & 0.07 & 0.14 \\\hline
+19.09 & 19.17 & 20.79 & 24.69 & 0.08 & 0.14 \\\hline
+19.16 & 19.16 & 18.87 & 23.63 & 0.08 & 0.14 \\\hline
+19.20 & 19.14 & 19.90 & 22.91 & 0.07 & 0.14 \\\hline
+19.20 & 19.19 & 20.04 & 25.75 & 0.08 & 0.14 \\\hline
+19.22 & 19.17 & 20.28 & 26.43 & 0.07 & 0.14 \\\hline
+19.08 & 19.18 & 20.29 & 24.90 & 0.07 & 0.14 \\\hline
+19.17 & 19.16 & 19.84 & 24.38 & 0.08 & 0.13 \\\hline
+19.12 & 19.12 & 20.72 & 23.80 & 0.07 & 0.13 \\\hline
+19.07 & 19.14 & 21.21 & 28.57 & 0.08 & 0.15 \\\hline
+19.14 & 19.13 & 18.84 & 23.84 & 0.07 & 0.14 \\\hline
+19.10 & 19.18 & 19.22 & 25.54 & 0.07 & 0.14 \\\hline
+19.11 & 19.12 & 20.48 & 26.95 & 0.08 & 0.14 \\\hline
+19.17 & 19.16 & 21.13 & 25.54 & 0.08 & 0.14 \\\hline
+19.13 & 19.12 & 20.40 & 22.86 & 0.07 & 0.14 \\\hline
+19.18 & 19.13 & 20.10 & 22.92 & 0.07 & 0.14 \\\hline
+19.13 & 19.13 & 20.40 & 23.24 & 0.08 & 0.14 \\\hline
+19.16 & 19.18 & 20.31 & 25.26 & 0.07 & 0.14 \\\hline
+19.15 & 19.14 & 19.35 & 23.76 & 0.07 & 0.14 \\\hline
+19.12 & 19.13 & 19.88 & 23.41 & 0.07 & 0.14 \\\hline
+19.17 & 19.13 & 20.63 & 26.77 & 0.07 & 0.14 \\\hline
+19.16 & 19.14 & 20.26 & 24.50 & 0.07 & 0.14 \\\hline
+19.11 & 19.13 & 20 & 24.23 & 0.07 & 0.14 \\\hline
+19.16 & 19.22 & 20.69 & 22.86 & 0.07 & 0.14 \\\hline
+19.12 & 19.19 & 20.64 & 22.56 & 0.07 & 0.14 \\\hline
+19.11 & 19.09 & 20.97 & 25.92 & 0.08 & 0.14 \\\hline
+19.10 & 19.13 & 19.57 & 24.93 & 0.08 & 0.14 \\\hline
+19.19 & 19.16 & 20.25 & 24.80 & 0.08 & 0.14 \\\hline
+19.21 & 19.10 & 20.42 & 25.14 & 0.07 & 0.15 \\\hline
+19.15 & 19.13 & 20.85 & 26.39 & 0.08 & 0.14 \\\hline
+19.10 & 19.13 & 19.65 & 24.73 & 0.08 & 0.14 \\\hline
+19.10 & 19.10 & 19.62 & 24.66 & 0.07 & 0.14 \\\hline
+19.11 & 19.07 & 20.34 & 25.03 & 0.08 & 0.14 \\\hline
+19.18 & 19.13 & 19.33 & 23.26 & 0.07 & 0.13 \\\hline
+19.14 & 19.11 & 19.49 & 24.71 & 0.07 & 0.13 \\\hline
+19.14 & 19.19 & 19.59 & 24.01 & 0.07 & 0.13 \\\hline
+19.13 & 19.10 & 19.83 & 27.59 & 0.08 & 0.14 \\\hline
+19.17 & 19.18 & 21.02 & 25.36 & 0.08 & 0.15 \\\hline
+19.24 & 19.13 & 20.38 & 24.10 & 0.08 & 0.13 \\\hline
+19.17 & 19.17 & 20.12 & 25.56 & 0.07 & 0.14 \\\hline
+19.17 & 19.20 & 19.94 & 23.38 & 0.07 & 0.14 \\\hline
+19.05 & 19.11 & 19.49 & 23.85 & 0.07 & 0.13 \\\hline
+19.17 & 19.20 & 19.67 & 23.59 & 0.07 & 0.14 \\\hline
+19.15 & 19.14 & 20.77 & 23.98 & 0.08 & 0.14 \\\hline
+19.15 & 19.11 & 19.93 & 24.65 & 0.07 & 0.14 \\\hline
+19.15 & 19.11 & 19.56 & 26.11 & 0.07 & 0.15 \\\hline
diff --git a/results/node2_500_ec.tab b/results/node2_500_ec.tab
new file mode 100644
index 0000000..a2a41f7
--- /dev/null
+++ b/results/node2_500_ec.tab
@@ -0,0 +1,51 @@
+prepre & premix & prepost & realpre & realmix & realpost \\\hline\hline
+3.69 & 2.85 & 1.18 & 0.31 & 0.12 & 0.13 \\\hline
+3.71 & 2.84 & 1.20 & 0.31 & 0.13 & 0.13 \\\hline
+3.69 & 2.84 & 1.21 & 0.31 & 0.12 & 0.12 \\\hline
+3.72 & 2.85 & 1.20 & 0.32 & 0.13 & 0.13 \\\hline
+3.69 & 2.85 & 1.17 & 0.31 & 0.13 & 0.13 \\\hline
+3.71 & 2.90 & 1.20 & 0.32 & 0.13 & 0.13 \\\hline
+3.68 & 2.85 & 1.22 & 0.32 & 0.13 & 0.13 \\\hline
+3.70 & 2.90 & 1.21 & 0.31 & 0.12 & 0.12 \\\hline
+3.72 & 2.87 & 1.22 & 0.32 & 0.13 & 0.12 \\\hline
+3.68 & 2.83 & 1.20 & 0.31 & 0.12 & 0.12 \\\hline
+3.66 & 2.88 & 1.17 & 0.31 & 0.13 & 0.13 \\\hline
+3.64 & 2.88 & 1.16 & 0.31 & 0.13 & 0.12 \\\hline
+3.64 & 2.86 & 1.21 & 0.31 & 0.13 & 0.12 \\\hline
+3.71 & 2.85 & 1.25 & 0.31 & 0.13 & 0.13 \\\hline
+3.70 & 2.84 & 1.18 & 0.31 & 0.12 & 0.12 \\\hline
+3.68 & 2.87 & 1.22 & 0.31 & 0.13 & 0.13 \\\hline
+3.70 & 2.89 & 1.17 & 0.31 & 0.12 & 0.12 \\\hline
+3.69 & 2.84 & 1.16 & 0.31 & 0.13 & 0.12 \\\hline
+3.70 & 2.86 & 1.21 & 0.31 & 0.13 & 0.13 \\\hline
+3.73 & 2.82 & 1.20 & 0.31 & 0.13 & 0.12 \\\hline
+3.66 & 2.86 & 1.21 & 0.31 & 0.13 & 0.13 \\\hline
+3.70 & 2.86 & 1.17 & 0.31 & 0.13 & 0.13 \\\hline
+3.68 & 2.85 & 1.21 & 0.31 & 0.13 & 0.13 \\\hline
+3.72 & 2.86 & 1.17 & 0.31 & 0.12 & 0.12 \\\hline
+3.71 & 2.85 & 1.14 & 0.31 & 0.13 & 0.12 \\\hline
+3.68 & 2.86 & 1.17 & 0.31 & 0.13 & 0.13 \\\hline
+3.69 & 2.86 & 1.19 & 0.31 & 0.12 & 0.13 \\\hline
+3.72 & 2.81 & 1.21 & 0.32 & 0.13 & 0.13 \\\hline
+3.67 & 2.85 & 1.16 & 0.31 & 0.12 & 0.13 \\\hline
+3.68 & 2.84 & 1.23 & 0.31 & 0.13 & 0.13 \\\hline
+3.69 & 2.87 & 1.22 & 0.32 & 0.13 & 0.13 \\\hline
+3.69 & 2.85 & 1.24 & 0.32 & 0.13 & 0.13 \\\hline
+3.69 & 2.88 & 1.16 & 0.31 & 0.12 & 0.13 \\\hline
+3.67 & 2.86 & 1.20 & 0.32 & 0.13 & 0.13 \\\hline
+3.71 & 2.83 & 1.20 & 0.31 & 0.12 & 0.12 \\\hline
+3.69 & 2.84 & 1.15 & 0.31 & 0.12 & 0.13 \\\hline
+3.75 & 2.85 & 1.18 & 0.32 & 0.13 & 0.13 \\\hline
+3.70 & 2.86 & 1.18 & 0.32 & 0.13 & 0.13 \\\hline
+3.63 & 2.85 & 1.21 & 0.31 & 0.13 & 0.13 \\\hline
+3.69 & 2.85 & 1.15 & 0.31 & 0.12 & 0.13 \\\hline
+3.73 & 2.86 & 1.15 & 0.31 & 0.12 & 0.12 \\\hline
+3.68 & 2.85 & 1.21 & 0.31 & 0.13 & 0.13 \\\hline
+3.66 & 2.84 & 1.24 & 0.31 & 0.13 & 0.12 \\\hline
+3.66 & 2.88 & 1.16 & 0.31 & 0.12 & 0.12 \\\hline
+3.67 & 2.87 & 1.19 & 0.31 & 0.12 & 0.12 \\\hline
+3.74 & 2.84 & 1.19 & 0.31 & 0.12 & 0.13 \\\hline
+3.68 & 2.84 & 1.19 & 0.31 & 0.13 & 0.12 \\\hline
+3.68 & 2.84 & 1.22 & 0.31 & 0.12 & 0.13 \\\hline
+3.70 & 2.86 & 1.17 & 0.31 & 0.13 & 0.12 \\\hline
+3.73 & 2.85 & 1.19 & 0.31 & 0.13 & 0.12 \\\hline
diff --git a/results/node2_500_mg.tab b/results/node2_500_mg.tab
new file mode 100644
index 0000000..926de43
--- /dev/null
+++ b/results/node2_500_mg.tab
@@ -0,0 +1,51 @@
+prepre & premix & prepost & realpre & realmix & realpost \\\hline\hline
+19.16 & 19.09 & 19.72 & 25.14 & 0.07 & 0.14 \\\hline
+19.22 & 19.10 & 19.61 & 23.31 & 0.07 & 0.14 \\\hline
+19.19 & 19.17 & 20.16 & 25.15 & 0.07 & 0.14 \\\hline
+19.23 & 19.15 & 20.60 & 25.35 & 0.08 & 0.14 \\\hline
+19.19 & 19.16 & 20.35 & 24.17 & 0.07 & 0.14 \\\hline
+19.17 & 19.14 & 19.18 & 23.48 & 0.07 & 0.14 \\\hline
+19.21 & 19.14 & 21.02 & 29.71 & 0.08 & 0.15 \\\hline
+19.30 & 19.15 & 19.87 & 22.71 & 0.07 & 0.13 \\\hline
+19.15 & 19.10 & 20 & 24.56 & 0.07 & 0.14 \\\hline
+19.24 & 19.12 & 19.58 & 24.48 & 0.07 & 0.14 \\\hline
+19.21 & 19.12 & 19.73 & 24.11 & 0.07 & 0.14 \\\hline
+19.22 & 19.11 & 19.41 & 25.15 & 0.07 & 0.14 \\\hline
+19.25 & 19.14 & 19.88 & 22 & 0.07 & 0.13 \\\hline
+19.27 & 19.11 & 22.16 & 27.88 & 0.08 & 0.15 \\\hline
+19.20 & 19.16 & 20.34 & 25.14 & 0.07 & 0.14 \\\hline
+19.21 & 19.16 & 20.43 & 24.20 & 0.07 & 0.14 \\\hline
+19.28 & 19.15 & 19.85 & 23.19 & 0.07 & 0.14 \\\hline
+19.16 & 19.16 & 20.06 & 25.63 & 0.07 & 0.13 \\\hline
+19.23 & 19.15 & 20 & 22.09 & 0.07 & 0.13 \\\hline
+19.20 & 19.15 & 19.82 & 22.96 & 0.07 & 0.14 \\\hline
+19.26 & 19.20 & 21.03 & 28.65 & 0.07 & 0.15 \\\hline
+19.26 & 19.14 & 19.82 & 24.43 & 0.07 & 0.13 \\\hline
+19.20 & 19.16 & 19.85 & 25.87 & 0.07 & 0.14 \\\hline
+19.20 & 19.02 & 19.44 & 24.08 & 0.07 & 0.14 \\\hline
+19.22 & 19.21 & 19.69 & 27.02 & 0.07 & 0.14 \\\hline
+19.21 & 19.14 & 20.36 & 21.62 & 0.08 & 0.13 \\\hline
+19.18 & 19.10 & 19.74 & 23.90 & 0.08 & 0.13 \\\hline
+19.22 & 19.16 & 21.44 & 27.92 & 0.08 & 0.14 \\\hline
+19.19 & 19.11 & 19.45 & 22.85 & 0.07 & 0.14 \\\hline
+19.14 & 19.09 & 19.55 & 23.68 & 0.07 & 0.13 \\\hline
+19.21 & 19.18 & 19.79 & 22.35 & 0.07 & 0.14 \\\hline
+19.14 & 19.14 & 19.38 & 21.21 & 0.06 & 0.13 \\\hline
+19.15 & 19.13 & 20.23 & 24.33 & 0.07 & 0.14 \\\hline
+19.22 & 19.19 & 19.76 & 22.75 & 0.07 & 0.14 \\\hline
+19.21 & 19.16 & 20.83 & 28.26 & 0.08 & 0.14 \\\hline
+19.18 & 19.23 & 20.69 & 23.62 & 0.07 & 0.13 \\\hline
+19.23 & 19.18 & 19.42 & 23.73 & 0.07 & 0.14 \\\hline
+19.23 & 19.12 & 19.96 & 22.55 & 0.07 & 0.14 \\\hline
+19.24 & 19.16 & 20.41 & 25.28 & 0.07 & 0.14 \\\hline
+19.16 & 19.12 & 19.75 & 21.39 & 0.07 & 0.14 \\\hline
+19.22 & 19.15 & 20.70 & 24.73 & 0.07 & 0.14 \\\hline
+19.33 & 19.17 & 22.11 & 30.07 & 0.09 & 0.16 \\\hline
+19.22 & 19.13 & 20.36 & 23.53 & 0.07 & 0.13 \\\hline
+19.25 & 19.13 & 19.94 & 24.81 & 0.07 & 0.14 \\\hline
+19.21 & 19.13 & 19.81 & 23.51 & 0.07 & 0.13 \\\hline
+19.32 & 19.16 & 19.66 & 23.07 & 0.07 & 0.14 \\\hline
+19.20 & 19.11 & 19.32 & 23.55 & 0.07 & 0.14 \\\hline
+19.21 & 19.09 & 20.32 & 25.59 & 0.08 & 0.14 \\\hline
+19.24 & 19.14 & 21.40 & 27.82 & 0.08 & 0.15 \\\hline
+19.19 & 19.11 & 19.74 & 22.89 & 0.07 & 0.13 \\\hline
diff --git a/results/node3_500_ec.tab b/results/node3_500_ec.tab
new file mode 100644
index 0000000..2073a8b
--- /dev/null
+++ b/results/node3_500_ec.tab
@@ -0,0 +1,51 @@
+prepre & premix & prepost & realpre & realmix & realpost \\\hline\hline
+3.73 & 2.86 & 1.25 & 0.31 & 0.22 & 0.47 \\\hline
+3.71 & 2.88 & 1.16 & 0.31 & 0.22 & 0.46 \\\hline
+3.67 & 2.84 & 1.26 & 0.32 & 0.22 & 0.45 \\\hline
+3.73 & 2.87 & 1.18 & 0.31 & 0.21 & 0.49 \\\hline
+3.65 & 2.88 & 1.18 & 0.32 & 0.22 & 0.48 \\\hline
+3.67 & 2.87 & 1.23 & 0.31 & 0.22 & 0.46 \\\hline
+3.70 & 2.84 & 1.23 & 0.32 & 0.22 & 0.46 \\\hline
+3.71 & 2.87 & 1.22 & 0.32 & 0.22 & 0.46 \\\hline
+3.69 & 2.86 & 1.21 & 0.31 & 0.22 & 0.45 \\\hline
+3.68 & 2.86 & 1.23 & 0.32 & 0.22 & 0.49 \\\hline
+3.68 & 2.88 & 1.26 & 0.31 & 0.22 & 0.46 \\\hline
+3.68 & 2.84 & 1.24 & 0.31 & 0.22 & 0.49 \\\hline
+3.71 & 2.86 & 1.24 & 0.31 & 0.22 & 0.46 \\\hline
+3.74 & 2.85 & 1.22 & 0.31 & 0.22 & 0.47 \\\hline
+3.70 & 2.84 & 1.20 & 0.32 & 0.22 & 0.46 \\\hline
+3.66 & 2.84 & 1.15 & 0.31 & 0.22 & 0.46 \\\hline
+3.64 & 2.84 & 1.15 & 0.31 & 0.22 & 0.48 \\\hline
+3.68 & 2.87 & 1.21 & 0.31 & 0.22 & 0.46 \\\hline
+3.67 & 2.85 & 1.15 & 0.32 & 0.22 & 0.44 \\\hline
+3.70 & 2.85 & 1.22 & 0.31 & 0.22 & 0.47 \\\hline
+3.71 & 2.85 & 1.19 & 0.31 & 0.21 & 0.47 \\\hline
+3.67 & 2.82 & 1.19 & 0.31 & 0.21 & 0.48 \\\hline
+3.70 & 2.86 & 1.16 & 0.31 & 0.22 & 0.46 \\\hline
+3.68 & 2.88 & 1.18 & 0.31 & 0.22 & 0.48 \\\hline
+3.69 & 2.86 & 1.20 & 0.31 & 0.21 & 0.47 \\\hline
+3.64 & 2.88 & 1.23 & 0.31 & 0.21 & 0.43 \\\hline
+3.68 & 2.84 & 1.17 & 0.32 & 0.22 & 0.46 \\\hline
+3.69 & 2.84 & 1.24 & 0.32 & 0.22 & 0.46 \\\hline
+3.68 & 2.86 & 1.23 & 0.31 & 0.22 & 0.48 \\\hline
+3.68 & 2.86 & 1.17 & 0.31 & 0.21 & 0.46 \\\hline
+3.70 & 2.86 & 1.16 & 0.31 & 0.21 & 0.43 \\\hline
+3.66 & 2.85 & 1.20 & 0.31 & 0.21 & 0.47 \\\hline
+3.70 & 2.85 & 1.23 & 0.32 & 0.22 & 0.49 \\\hline
+3.69 & 2.87 & 1.24 & 0.32 & 0.22 & 0.44 \\\hline
+3.70 & 2.88 & 1.19 & 0.31 & 0.22 & 0.43 \\\hline
+3.66 & 2.86 & 1.19 & 0.31 & 0.23 & 0.47 \\\hline
+3.72 & 2.82 & 1.20 & 0.31 & 0.21 & 0.44 \\\hline
+3.65 & 2.84 & 1.11 & 0.31 & 0.22 & 0.46 \\\hline
+3.69 & 2.86 & 1.20 & 0.32 & 0.22 & 0.49 \\\hline
+3.70 & 2.85 & 1.21 & 0.31 & 0.22 & 0.46 \\\hline
+3.67 & 2.86 & 1.18 & 0.32 & 0.22 & 0.45 \\\hline
+3.71 & 2.88 & 1.21 & 0.32 & 0.22 & 0.48 \\\hline
+3.69 & 2.84 & 1.26 & 0.31 & 0.21 & 0.44 \\\hline
+3.69 & 2.85 & 1.23 & 0.31 & 0.22 & 0.46 \\\hline
+3.67 & 2.86 & 1.23 & 0.31 & 0.21 & 0.48 \\\hline
+3.69 & 2.86 & 1.20 & 0.31 & 0.22 & 0.46 \\\hline
+3.68 & 2.87 & 1.19 & 0.31 & 0.22 & 0.42 \\\hline
+3.71 & 2.86 & 1.22 & 0.31 & 0.22 & 0.48 \\\hline
+3.68 & 2.87 & 1.20 & 0.31 & 0.22 & 0.47 \\\hline
+3.71 & 2.89 & 1.22 & 0.32 & 0.22 & 0.47 \\\hline
diff --git a/results/node3_500_mg.tab b/results/node3_500_mg.tab
new file mode 100644
index 0000000..f5a59d6
--- /dev/null
+++ b/results/node3_500_mg.tab
@@ -0,0 +1,51 @@
+prepre & premix & prepost & realpre & realmix & realpost \\\hline\hline
+19.22 & 19.17 & 19.55 & 23.21 & 0.07 & 1.47 \\\hline
+19.17 & 19.08 & 20.62 & 23.48 & 0.08 & 1.47 \\\hline
+19.24 & 19.15 & 19.33 & 23.88 & 0.07 & 1.48 \\\hline
+19.27 & 19.17 & 20.88 & 24.33 & 0.08 & 1.49 \\\hline
+19.16 & 19.08 & 20.24 & 23.32 & 0.07 & 1.47 \\\hline
+19.23 & 19.18 & 19.70 & 23.61 & 0.07 & 1.46 \\\hline
+19.17 & 19.15 & 20.93 & 25.27 & 0.08 & 1.50 \\\hline
+19.24 & 19.13 & 20.49 & 24.41 & 0.08 & 1.48 \\\hline
+19.22 & 19.18 & 20.12 & 23.69 & 0.08 & 1.45 \\\hline
+19.13 & 19.15 & 19.91 & 24.64 & 0.07 & 1.48 \\\hline
+19.18 & 19.15 & 20.44 & 26.87 & 0.08 & 1.47 \\\hline
+19.20 & 19.13 & 20.15 & 25.39 & 0.07 & 1.46 \\\hline
+19.23 & 19.09 & 20.05 & 22.14 & 0.07 & 1.46 \\\hline
+19.22 & 19.15 & 20.10 & 25.94 & 0.08 & 1.48 \\\hline
+19.17 & 19.18 & 19.41 & 23.63 & 0.08 & 1.45 \\\hline
+19.19 & 19.11 & 19.97 & 21.71 & 0.07 & 1.47 \\\hline
+19.19 & 19.14 & 19.84 & 23.85 & 0.07 & 1.47 \\\hline
+19.27 & 19.17 & 22.43 & 31.96 & 0.09 & 1.52 \\\hline
+19.18 & 19.14 & 20.75 & 24.01 & 0.07 & 1.46 \\\hline
+19.18 & 19.13 & 19.65 & 22.80 & 0.07 & 1.48 \\\hline
+19.22 & 19.21 & 19.95 & 25.07 & 0.07 & 1.48 \\\hline
+19.25 & 19.15 & 19.48 & 22.25 & 0.07 & 1.47 \\\hline
+19.20 & 19.13 & 20.38 & 24.56 & 0.07 & 1.46 \\\hline
+19.19 & 19.10 & 20 & 25.36 & 0.07 & 1.48 \\\hline
+19.24 & 19.13 & 19.61 & 24.45 & 0.07 & 1.48 \\\hline
+19.13 & 19.11 & 19.40 & 24.90 & 0.07 & 1.46 \\\hline
+19.20 & 19.20 & 19.57 & 22.85 & 0.08 & 1.46 \\\hline
+19.26 & 19.16 & 20.73 & 24.07 & 0.08 & 1.47 \\\hline
+19.16 & 19.11 & 19.58 & 24.01 & 0.07 & 1.48 \\\hline
+19.19 & 19.16 & 19.75 & 23.35 & 0.07 & 1.48 \\\hline
+19.19 & 19.25 & 20.15 & 23.32 & 0.08 & 1.47 \\\hline
+19.34 & 19.22 & 22.07 & 25.89 & 0.08 & 1.47 \\\hline
+19.20 & 19.09 & 20.15 & 24.08 & 0.07 & 1.48 \\\hline
+19.20 & 19.14 & 19.67 & 26.82 & 0.07 & 1.46 \\\hline
+19.22 & 19.09 & 21.44 & 29.92 & 0.08 & 1.49 \\\hline
+19.19 & 19.13 & 20.28 & 23.26 & 0.07 & 1.47 \\\hline
+19.19 & 19.23 & 19.77 & 22.21 & 0.07 & 1.48 \\\hline
+19.18 & 19.08 & 20.23 & 22.48 & 0.08 & 1.47 \\\hline
+19.22 & 19.16 & 19.66 & 23.27 & 0.07 & 1.45 \\\hline
+19.14 & 19.09 & 19.96 & 23.09 & 0.07 & 1.46 \\\hline
+19.23 & 19.14 & 19.48 & 22.94 & 0.07 & 1.47 \\\hline
+19.28 & 19.18 & 19.29 & 24.83 & 0.07 & 1.48 \\\hline
+19.21 & 19.12 & 19.92 & 24.34 & 0.07 & 1.46 \\\hline
+19.16 & 19.08 & 20.08 & 24.20 & 0.07 & 1.50 \\\hline
+19.19 & 19.19 & 19.58 & 23.40 & 0.07 & 1.47 \\\hline
+19.62 & 19.52 & 27.21 & 40.07 & 0.10 & 1.56 \\\hline
+19.31 & 19.14 & 20.24 & 24.04 & 0.08 & 1.47 \\\hline
+19.32 & 19.20 & 19.45 & 23.01 & 0.07 & 1.46 \\\hline
+19.25 & 19.14 & 19.58 & 25.29 & 0.07 & 1.49 \\\hline
+19.20 & 19.13 & 20.53 & 22.54 & 0.07 & 1.48 \\\hline
diff --git a/thesis.bib b/thesis.bib
index 8409e44..cfae771 100644
--- a/thesis.bib
+++ b/thesis.bib
@@ -12,6 +12,13 @@
urldate = {2017-04-16}
}
+@online{BoostCpuTimer,
+ title = {{Boost cpu timer} documentation},
+ author = {Boost},
+ url = {http://www.boost.org/doc/libs/1_63_0/libs/timer/doc/cpu_timers.html},
+ urldate = {2017-05-13}
+}
+
@article{Koblitz,
title={Encoding and decoding of a message in the implementation of Elliptic Curve cryptography using Koblitz's method},
author={Bh, Padma and Chandravathi, D and Roja, P Prapoorna},
diff --git a/thesis.tex b/thesis.tex
index 261a312..5db44c4 100644
--- a/thesis.tex
+++ b/thesis.tex
@@ -66,6 +66,8 @@
\usepackage{pdfpages}
+\usepackage{csquotes}
+
\usepackage{listings}
\lstset{
basicstyle=\small\ttfamily,
@@ -87,6 +89,7 @@ breaklines=true
\input{content/implementation}
\input{content/cmix_additions}
\input{content/results}
+\input{content/discussion}
\input{content/bibliography}
\input{appendices/appendix}