Index: doc/LaTeXmacros/common.tex
===================================================================
--- doc/LaTeXmacros/common.tex	(revision ed49dbd8bfe367b6f266f0906501f3ebe5951dd0)
+++ doc/LaTeXmacros/common.tex	(revision f4fe7fd2c9f3581d5bf7b0beac6cf44faa553c46)
@@ -11,6 +11,6 @@
 %% Created On       : Sat Apr  9 10:06:17 2016
 %% Last Modified By : Peter A. Buhr
-%% Last Modified On : Sat Apr  2 16:42:31 2022
-%% Update Count     : 553
+%% Last Modified On : Tue Apr 26 16:02:48 2022
+%% Update Count     : 558
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
@@ -30,5 +30,5 @@
 \setlist[itemize,1]{label=\textbullet}% local
 %\renewcommand{\labelitemi}{{\raisebox{0.25ex}{\footnotesize$\bullet$}}}
-\setlist[enumerate]{listparindent=\parindent}% global
+\setlist[enumerate]{topsep=0.5ex,parsep=0.25ex,itemsep=0.25ex,listparindent=\parindent}% global
 \setlist[enumerate,2]{leftmargin=\parindent,labelsep=*,align=parleft,label=\alph*.}% local
 \setlist[description]{topsep=0.5ex,itemsep=0pt,listparindent=\parindent,leftmargin=\parindent,labelsep=1.5ex}
@@ -247,5 +247,7 @@
 \renewcommand{\reftextpagerange}[2]{\unskip, pp.~\pageref{#1}--\pageref{#2}}
 \newcommand{\VRef}[2][Section]{\ifx#1\@empty\else{#1}\nobreakspace\fi\vref{#2}}
+\newcommand{\VRefrange}[3][Sections]{\ifx#1\@empty\else{#1}\nobreakspace\fi\vrefrange{#2}{#3}}
 \newcommand{\VPageref}[2][page]{\ifx#1\@empty\else{#1}\nobreakspace\fi\pageref{#2}}
+\newcommand{\VPagerefrange}[3][pages]{\ifx#1\@empty\else{#1}\nobreakspace\fi\pageref{#2}{#3}}
 
 \let\Oldthebibliography\thebibliography
Index: doc/theses/mubeen_zulfiqar_MMath/allocator.tex
===================================================================
--- doc/theses/mubeen_zulfiqar_MMath/allocator.tex	(revision ed49dbd8bfe367b6f266f0906501f3ebe5951dd0)
+++ doc/theses/mubeen_zulfiqar_MMath/allocator.tex	(revision f4fe7fd2c9f3581d5bf7b0beac6cf44faa553c46)
@@ -1,3 +1,4 @@
 \chapter{Allocator}
+\label{c:Allocator}
 
 This chapter presents a new stand-alone concurrent low-latency memory-allocator ($\approx$1,200 lines of code), called llheap (low-latency heap), for C/\CC programs using kernel threads (1:1 threading), and specialized versions of the allocator for the programming languages \uC and \CFA using user-level threads running over multiple kernel threads (M:N threading).
Index: doc/theses/mubeen_zulfiqar_MMath/benchmarks.tex
===================================================================
--- doc/theses/mubeen_zulfiqar_MMath/benchmarks.tex	(revision ed49dbd8bfe367b6f266f0906501f3ebe5951dd0)
+++ doc/theses/mubeen_zulfiqar_MMath/benchmarks.tex	(revision f4fe7fd2c9f3581d5bf7b0beac6cf44faa553c46)
@@ -69,4 +69,5 @@
 
 The following new benchmarks were created to assess multi-threaded programs at the KT and UT level.
+For generating random values, two generators are supported: uniform~\cite{uniformPRNG} and fisher~\cite{fisherPRNG}.
 
 
@@ -79,5 +80,5 @@
 
 \VRef[Figure]{fig:ChurnBenchFig} shows the pseudo code for the churn micro-benchmark.
-This benchmark creates a buffer with M spots and starts K threads.
+This benchmark creates a buffer with M spots and an allocation in each spot, and then starts K threads.
 Each thread picks a random spot in M, frees the object currently at that spot, and allocates a new object for that spot.
 Each thread repeats this cycle N times.
Index: doc/theses/mubeen_zulfiqar_MMath/performance.tex
===================================================================
--- doc/theses/mubeen_zulfiqar_MMath/performance.tex	(revision ed49dbd8bfe367b6f266f0906501f3ebe5951dd0)
+++ doc/theses/mubeen_zulfiqar_MMath/performance.tex	(revision f4fe7fd2c9f3581d5bf7b0beac6cf44faa553c46)
@@ -8,5 +8,5 @@
 \section{Machine Specification}
 
-The performance experiments were run on two different multi-core architectures (x86 and ARM) to determine if there is consistency across platforms:
+The performance experiments were run on two different multi-core architectures (x64 and ARM) to determine if there is consistency across platforms:
 \begin{itemize}
 \item
@@ -21,8 +21,15 @@
 
 With dynamic allocation being an important feature of C, there are many stand-alone memory allocators that have been designed for different purposes.
-For this thesis, 7 of the most popular and widely used memory allocators were selected for comparison.
-
-\subsection{glibc}
-glibc~\cite{glibc} is the default gcc thread-safe allocator.
+For this thesis, 7 of the most popular and widely used memory allocators were selected for comparison, along with llheap.
+
+\paragraph{llheap (\textsf{llh})} 
+is the thread-safe allocator from \VRef[Chapter]{c:Allocator}
+\\
+\textbf{Version:} 1.0
+\textbf{Configuration:} Compiled with dynamic linking, but without statistics or debugging.\\
+\textbf{Compilation command:} @make@
+
+\paragraph{glibc (\textsf{glc})}
+\cite{glibc} is the default gcc thread-safe allocator.
 \\
 \textbf{Version:} Ubuntu GLIBC 2.31-0ubuntu9.7 2.31\\
@@ -30,6 +37,6 @@
 \textbf{Compilation command:} N/A
 
-\subsection{dlmalloc}
-dlmalloc~\cite{dlmalloc} is a thread-safe allocator that is single threaded and single heap.
+\paragraph{dlmalloc (\textsf{dl})}
+\cite{dlmalloc} is a thread-safe allocator that is single threaded and single heap.
 It maintains free-lists of different sizes to store freed dynamic memory.
 \\
@@ -38,6 +45,6 @@
 \textbf{Compilation command:} @gcc -g3 -O3 -Wall -Wextra -fno-builtin-malloc -fno-builtin-calloc@ @-fno-builtin-realloc -fno-builtin-free -fPIC -shared -DUSE_LOCKS -o libdlmalloc.so malloc-2.8.6.c@
 
-\subsection{hoard}
-Hoard~\cite{hoard} is a thread-safe allocator that is multi-threaded and using a heap layer framework. It has per-thread heaps that have thread-local free-lists, and a global shared heap.
+\paragraph{hoard (\textsf{hrd})}
+\cite{hoard} is a thread-safe allocator that is multi-threaded and using a heap layer framework. It has per-thread heaps that have thread-local free-lists, and a global shared heap.
 \\
 \textbf{Version:} 3.13\\
@@ -45,6 +52,7 @@
 \textbf{Compilation command:} @make all@
 
-\subsection{jemalloc}
-jemalloc~\cite{jemalloc} is a thread-safe allocator that uses multiple arenas. Each thread is assigned an arena. Each arena has chunks that contain contagious memory regions of same size. An arena has multiple chunks that contain regions of multiple sizes.
+\paragraph{jemalloc (\textsf{je})}
+\cite{jemalloc} is a thread-safe allocator that uses multiple arenas. Each thread is assigned an arena.
+Each arena has chunks that contain contagious memory regions of same size. An arena has multiple chunks that contain regions of multiple sizes.
 \\
 \textbf{Version:} 5.2.1\\
@@ -52,7 +60,8 @@
 \textbf{Compilation command:} @autogen.sh; configure; make; make install@
 
-\subsection{pt3malloc}
-pt3malloc~\cite{pt3malloc} is a modification of dlmalloc.
-It is a thread-safe multi-threaded memory allocator that uses multiple heaps. pt3malloc heap has similar design to dlmalloc's heap.
+\paragraph{pt3malloc (\textsf{pt3})}
+\cite{pt3malloc} is a modification of dlmalloc.
+It is a thread-safe multi-threaded memory allocator that uses multiple heaps.
+pt3malloc heap has similar design to dlmalloc's heap.
 \\
 \textbf{Version:} 1.8\\
@@ -60,6 +69,7 @@
 \textbf{Compilation command:} @make linux-shared@
 
-\subsection{rpmalloc}
-rpmalloc~\cite{rpmalloc} is a thread-safe allocator that is multi-threaded and uses per-thread heap. Each heap has multiple size-classes and each size-class contains memory regions of the relevant size.
+\paragraph{rpmalloc (\textsf{rp})}
+\cite{rpmalloc} is a thread-safe allocator that is multi-threaded and uses per-thread heap.
+Each heap has multiple size-classes and each size-class contains memory regions of the relevant size.
 \\
 \textbf{Version:} 1.4.1\\
@@ -67,7 +77,7 @@
 \textbf{Compilation command:} @python3 configure.py; ninja@
 
-\subsection{tbb malloc}
-tbb malloc~\cite{tbbmallocmail
-} is a thread-safe allocator that is multi-threaded and uses private heap for each thread. Each private-heap has multiple bins of different sizes. Each bin contains free regions of the same size.
+\paragraph{tbb malloc (\textsf{tbb})}
+\cite{tbbmalloc} is a thread-safe allocator that is multi-threaded and uses private heap for each thread.
+Each private-heap has multiple bins of different sizes. Each bin contains free regions of the same size.
 \\
 \textbf{Version:} intel tbb 2020 update 2, tbb\_interface\_version == 11102\\
@@ -79,5 +89,7 @@
 
 \section{Experiments}
-% FIX ME: add experiment, knobs, graphs, description+analysis
+
+The each micro-benchmark is configured and run with each of the allocators,
+The less time an allocator takes to complete a benchmark the better, so lower in the graphs is better.
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -115,17 +127,19 @@
 
 \VRef[Figure]{fig:churn} shows the results for algol and nasus.
-The X-axis shows the number of threads.
+The X-axis shows the number of threads;
+the Y-axis shows the total experiment time.
 Each allocator's performance for each thread is shown in different colors.
-The Y-axis shows the total experiment time.
-
-\begin{figure}
-\centering
-    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/churn} }
-    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/churn} }
+
+\begin{figure}
+\centering
+    \subfigure[Algol]{ \includegraphics[width=0.95\textwidth]{evaluations/algol-perf-eps/churn} }
+    \subfigure[Nasus]{ \includegraphics[width=0.95\textwidth]{evaluations/nasus-perf-eps/churn} }
 \caption{Churn}
 \label{fig:churn}
 \end{figure}
 
-All allocators did well in this micro-benchmark, except for dmalloc on the ARM, 
+All allocators did well in this micro-benchmark, except for \textsf{dl} on the ARM.
+llheap is slightly slower because it uses ownership, where many of the allocations have remote frees, which requires locking.
+When llheap is compiled without ownership, its performance is the same as the other allocators (not shown).
 
 
@@ -137,39 +151,4 @@
 
 Thrash tests memory allocators for active false sharing (see \VRef{sec:benchThrashSec}).
-This experiment was run with following configurations:
-\begin{description}[itemsep=0pt,parsep=0pt]
-\item[thread:]
-1, 2, 4, 8, 16
-\item[iterations:]
-1,000
-\item[cacheRW:]
-1,000,000
-\item[size:]
-1
-\end{description}
-
-% * Each allocator was tested for its performance across different number of threads.
-% Experiment was repeated for each allocator for 1, 2, 4, 8, and 16 threads by setting the configuration -threadN.
-
-Results are shown in figure \ref{fig:cacheThrash} for both algol and nasus.
-X-axis shows number of threads. Each allocator's performance for each thread is shown in different colors.
-Y-axis shows the total time experiment took to finish.
-
-\begin{figure}
-\centering
-    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/cache-time-0-thrash} }
-    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/cache-time-0-thrash} }
-\caption{Cache Thrash}
-\label{fig:cacheThrash}
-\end{figure}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% SCRATCH
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\subsection{Cache Scratch}
-\label{s:CacheScratch}
-
-Scratch tests memory allocators for program-induced allocator-preserved passive false-sharing.
 This experiment was run with following configurations:
 \begin{description}[itemsep=0pt,parsep=0pt]
@@ -187,16 +166,58 @@
 % Experiment was repeated for each allocator for 1, 2, 4, 8, and 16 threads by setting the configuration -threadN.
 
-Results are shown in figure \ref{fig:cacheScratch} for both algol and nasus.
-X-axis shows number of threads. Each allocator's performance for each thread is shown in different colors.
-Y-axis shows the total time experiment took to finish.
-
-\begin{figure}
-\centering
-    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/cache-time-0-scratch} }
-    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/cache-time-0-scratch} }
+\VRef[Figure]{fig:cacheThrash} shows the results for algol and nasus.
+The X-axis shows the number of threads;
+the Y-axis shows the total experiment time.
+Each allocator's performance for each thread is shown in different colors.
+
+\begin{figure}
+\centering
+    \subfigure[Algol]{ \includegraphics[width=0.95\textwidth]{evaluations/algol-perf-eps/cache-time-0-thrash} }
+    \subfigure[Nasus]{ \includegraphics[width=0.95\textwidth]{evaluations/nasus-perf-eps/cache-time-0-thrash} }
+\caption{Cache Thrash}
+\label{fig:cacheThrash}
+\end{figure}
+
+All allocators did well in this micro-benchmark, except for \textsf{dl} and \textsf{pt3} on the x64.
+Either the memory allocators generate little active false-sharing or the micro-benchmark is not generating scenarios that cause active false-sharing.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% SCRATCH
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\subsection{Cache Scratch}
+
+Scratch tests memory allocators for program-induced allocator-preserved passive false-sharing (see \VRef{s:CacheScratch}).
+This experiment was run with following configurations:
+\begin{description}[itemsep=0pt,parsep=0pt]
+\item[threads:]
+1, 2, 4, 8, 16
+\item[iterations:]
+1,000
+\item[cacheRW:]
+1,000,000
+\item[size:]
+1
+\end{description}
+
+% * Each allocator was tested for its performance across different number of threads.
+% Experiment was repeated for each allocator for 1, 2, 4, 8, and 16 threads by setting the configuration -threadN.
+
+\VRef[Figure]{fig:cacheScratch} shows the results for algol and nasus.
+The X-axis shows the number of threads;
+the Y-axis shows the total experiment time.
+Each allocator's performance for each thread is shown in different colors.
+
+\begin{figure}
+\centering
+    \subfigure[Algol]{ \includegraphics[width=0.95\textwidth]{evaluations/algol-perf-eps/cache-time-0-scratch} }
+    \subfigure[Nasus]{ \includegraphics[width=0.95\textwidth]{evaluations/nasus-perf-eps/cache-time-0-scratch} }
 \caption{Cache Scratch}
 \label{fig:cacheScratch}
 \end{figure}
 
+All allocators did well in this micro-benchmark on the ARM.
+Allocators \textsf{llh}, \textsf{je}, and \textsf{rp} did well on the x64, while the remaining allocators experienced significant slowdowns from the false sharing.
+
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %% SPEED
@@ -205,5 +226,5 @@
 \subsection{Speed Micro-Benchmark}
 
-Speed testa memory allocators for runtime latency (see \VRef{s:SpeedMicroBenchmark}).
+Speed tests memory allocators for runtime latency (see \VRef{s:SpeedMicroBenchmark}).
 This experiment was run with following configurations:
 \begin{description}[itemsep=0pt,parsep=0pt]
@@ -232,28 +253,31 @@
 %Experiment was repeated for each allocator for 1, 2, 4, 8, and 16 threads by setting the configuration -threadN.
 
-Results for speed benchmark are shown in 12 figures, one figure for each chain of speed benchmark.
-X-axis shows number of threads. Each allocator's performance for each thread is shown in different colors.
-Y-axis shows the total time experiment took to finish. Less time an allocator takes to complete allocation, better it is so lower the better.
+\VRefrange[Figures]{fig:speed-3-malloc}{fig:speed-14-malloc-calloc-realloc-free} show 12 figures, one figure for each chain of the speed benchmark.
+The X-axis shows the number of threads;
+the Y-axis shows the total experiment time.
+Each allocator's performance for each thread is shown in different colors.
 
 \begin{itemize}
-\item Fig. \ref{fig:speed-3-malloc} shows results for chain: malloc
-\item Fig. \ref{fig:speed-4-realloc} shows results for chain: realloc
-\item Fig. \ref{fig:speed-5-free} shows results for chain: free
-\item Fig. \ref{fig:speed-6-calloc} shows results for chain: calloc
-\item Fig. \ref{fig:speed-7-malloc-free} shows results for chain: malloc-free
-\item Fig. \ref{fig:speed-8-realloc-free} shows results for chain: realloc-free
-\item Fig. \ref{fig:speed-9-calloc-free} shows results for chain: calloc-free
-\item Fig. \ref{fig:speed-10-malloc-realloc} shows results for chain: malloc-realloc
-\item Fig. \ref{fig:speed-11-calloc-realloc} shows results for chain: calloc-realloc
-\item Fig. \ref{fig:speed-12-malloc-realloc-free} shows results for chain: malloc-realloc-free
-\item Fig. \ref{fig:speed-13-calloc-realloc-free} shows results for chain: calloc-realloc-free
-\item Fig. \ref{fig:speed-14-malloc-calloc-realloc-free} shows results for chain: malloc-realloc-free-calloc
+\item \VRef[Figure]{fig:speed-3-malloc} shows results for chain: malloc
+\item \VRef[Figure]{fig:speed-4-realloc} shows results for chain: realloc
+\item \VRef[Figure]{fig:speed-5-free} shows results for chain: free
+\item \VRef[Figure]{fig:speed-6-calloc} shows results for chain: calloc
+\item \VRef[Figure]{fig:speed-7-malloc-free} shows results for chain: malloc-free
+\item \VRef[Figure]{fig:speed-8-realloc-free} shows results for chain: realloc-free
+\item \VRef[Figure]{fig:speed-9-calloc-free} shows results for chain: calloc-free
+\item \VRef[Figure]{fig:speed-10-malloc-realloc} shows results for chain: malloc-realloc
+\item \VRef[Figure]{fig:speed-11-calloc-realloc} shows results for chain: calloc-realloc
+\item \VRef[Figure]{fig:speed-12-malloc-realloc-free} shows results for chain: malloc-realloc-free
+\item \VRef[Figure]{fig:speed-13-calloc-realloc-free} shows results for chain: calloc-realloc-free
+\item \VRef[Figure]{fig:speed-14-malloc-calloc-realloc-free} shows results for chain: malloc-realloc-free-calloc
 \end{itemize}
 
+All allocators did well in this micro-benchmark across all allocation chains, except for \textsf{dl} and \textsf{pt3}.
+
 %speed-3-malloc.eps
 \begin{figure}
 \centering
-    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/speed-3-malloc} }
-    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/speed-3-malloc} }
+    \subfigure[Algol]{ \includegraphics[width=0.95\textwidth]{evaluations/algol-perf-eps/speed-3-malloc} }
+    \subfigure[Nasus]{ \includegraphics[width=0.95\textwidth]{evaluations/nasus-perf-eps/speed-3-malloc} }
 \caption{Speed benchmark chain: malloc}
 \label{fig:speed-3-malloc}
@@ -263,6 +287,6 @@
 \begin{figure}
 \centering
-    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/speed-4-realloc} }
-    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/speed-4-realloc} }
+    \subfigure[Algol]{ \includegraphics[width=0.95\textwidth]{evaluations/algol-perf-eps/speed-4-realloc} }
+    \subfigure[Nasus]{ \includegraphics[width=0.95\textwidth]{evaluations/nasus-perf-eps/speed-4-realloc} }
 \caption{Speed benchmark chain: realloc}
 \label{fig:speed-4-realloc}
@@ -272,6 +296,6 @@
 \begin{figure}
 \centering
-    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/speed-5-free} }
-    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/speed-5-free} }
+    \subfigure[Algol]{ \includegraphics[width=0.95\textwidth]{evaluations/algol-perf-eps/speed-5-free} }
+    \subfigure[Nasus]{ \includegraphics[width=0.95\textwidth]{evaluations/nasus-perf-eps/speed-5-free} }
 \caption{Speed benchmark chain: free}
 \label{fig:speed-5-free}
@@ -281,6 +305,6 @@
 \begin{figure}
 \centering
-    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/speed-6-calloc} }
-    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/speed-6-calloc} }
+    \subfigure[Algol]{ \includegraphics[width=0.95\textwidth]{evaluations/algol-perf-eps/speed-6-calloc} }
+    \subfigure[Nasus]{ \includegraphics[width=0.95\textwidth]{evaluations/nasus-perf-eps/speed-6-calloc} }
 \caption{Speed benchmark chain: calloc}
 \label{fig:speed-6-calloc}
@@ -290,6 +314,6 @@
 \begin{figure}
 \centering
-    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/speed-7-malloc-free} }
-    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/speed-7-malloc-free} }
+    \subfigure[Algol]{ \includegraphics[width=0.95\textwidth]{evaluations/algol-perf-eps/speed-7-malloc-free} }
+    \subfigure[Nasus]{ \includegraphics[width=0.95\textwidth]{evaluations/nasus-perf-eps/speed-7-malloc-free} }
 \caption{Speed benchmark chain: malloc-free}
 \label{fig:speed-7-malloc-free}
@@ -299,6 +323,6 @@
 \begin{figure}
 \centering
-    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/speed-8-realloc-free} }
-    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/speed-8-realloc-free} }
+    \subfigure[Algol]{ \includegraphics[width=0.95\textwidth]{evaluations/algol-perf-eps/speed-8-realloc-free} }
+    \subfigure[Nasus]{ \includegraphics[width=0.95\textwidth]{evaluations/nasus-perf-eps/speed-8-realloc-free} }
 \caption{Speed benchmark chain: realloc-free}
 \label{fig:speed-8-realloc-free}
@@ -308,6 +332,6 @@
 \begin{figure}
 \centering
-    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/speed-9-calloc-free} }
-    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/speed-9-calloc-free} }
+    \subfigure[Algol]{ \includegraphics[width=0.95\textwidth]{evaluations/algol-perf-eps/speed-9-calloc-free} }
+    \subfigure[Nasus]{ \includegraphics[width=0.95\textwidth]{evaluations/nasus-perf-eps/speed-9-calloc-free} }
 \caption{Speed benchmark chain: calloc-free}
 \label{fig:speed-9-calloc-free}
@@ -317,6 +341,6 @@
 \begin{figure}
 \centering
-    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/speed-10-malloc-realloc} }
-    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/speed-10-malloc-realloc} }
+    \subfigure[Algol]{ \includegraphics[width=0.95\textwidth]{evaluations/algol-perf-eps/speed-10-malloc-realloc} }
+    \subfigure[Nasus]{ \includegraphics[width=0.95\textwidth]{evaluations/nasus-perf-eps/speed-10-malloc-realloc} }
 \caption{Speed benchmark chain: malloc-realloc}
 \label{fig:speed-10-malloc-realloc}
@@ -326,6 +350,6 @@
 \begin{figure}
 \centering
-    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/speed-11-calloc-realloc} }
-    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/speed-11-calloc-realloc} }
+    \subfigure[Algol]{ \includegraphics[width=0.95\textwidth]{evaluations/algol-perf-eps/speed-11-calloc-realloc} }
+    \subfigure[Nasus]{ \includegraphics[width=0.95\textwidth]{evaluations/nasus-perf-eps/speed-11-calloc-realloc} }
 \caption{Speed benchmark chain: calloc-realloc}
 \label{fig:speed-11-calloc-realloc}
@@ -335,6 +359,6 @@
 \begin{figure}
 \centering
-    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/speed-12-malloc-realloc-free} }
-    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/speed-12-malloc-realloc-free} }
+    \subfigure[Algol]{ \includegraphics[width=0.95\textwidth]{evaluations/algol-perf-eps/speed-12-malloc-realloc-free} }
+    \subfigure[Nasus]{ \includegraphics[width=0.95\textwidth]{evaluations/nasus-perf-eps/speed-12-malloc-realloc-free} }
 \caption{Speed benchmark chain: malloc-realloc-free}
 \label{fig:speed-12-malloc-realloc-free}
@@ -344,6 +368,6 @@
 \begin{figure}
 \centering
-    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/speed-13-calloc-realloc-free} }
-    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/speed-13-calloc-realloc-free} }
+    \subfigure[Algol]{ \includegraphics[width=0.95\textwidth]{evaluations/algol-perf-eps/speed-13-calloc-realloc-free} }
+    \subfigure[Nasus]{ \includegraphics[width=0.95\textwidth]{evaluations/nasus-perf-eps/speed-13-calloc-realloc-free} }
 \caption{Speed benchmark chain: calloc-realloc-free}
 \label{fig:speed-13-calloc-realloc-free}
@@ -353,6 +377,6 @@
 \begin{figure}
 \centering
-    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/speed-14-m-c-re-alloc-free} }
-    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/speed-14-m-c-re-alloc-free} }
+    \subfigure[Algol]{ \includegraphics[width=0.95\textwidth]{evaluations/algol-perf-eps/speed-14-m-c-re-alloc-free} }
+    \subfigure[Nasus]{ \includegraphics[width=0.95\textwidth]{evaluations/nasus-perf-eps/speed-14-m-c-re-alloc-free} }
 \caption{Speed benchmark chain: malloc-calloc-realloc-free}
 \label{fig:speed-14-malloc-calloc-realloc-free}
@@ -363,9 +387,10 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
+\newpage
 \subsection{Memory Micro-Benchmark}
 
-This experiment is run with following two configurations for each allocator.
+This experiment is run with the following two configurations for each allocator.
 The difference between the two configurations is the number of producers and consumers.
-Configuration 1 has one producer and one consumer, and configuration 2 has 4 producers where each producer has 4 consumers.
+Configuration 1 has one producer and one consumer, and configuration 2 has 4 producers, where each producer has 4 consumers.
 
 \noindent
@@ -435,19 +460,19 @@
     Memory Allocator & Configuration 1 Result & Configuration 2 Result\\
      \hline
-    cfa & Fig. \ref{fig:mem-1-prod-1-cons-100-cfa} & Fig. \ref{fig:mem-4-prod-4-cons-100-cfa}\\
-     \hline
-    dl & Fig. \ref{fig:mem-1-prod-1-cons-100-dl} & Fig. \ref{fig:mem-4-prod-4-cons-100-dl}\\
-     \hline
-    glibc & Fig. \ref{fig:mem-1-prod-1-cons-100-glc} & Fig. \ref{fig:mem-4-prod-4-cons-100-glc}\\
-     \hline
-    hoard & Fig. \ref{fig:mem-1-prod-1-cons-100-hrd} & Fig. \ref{fig:mem-4-prod-4-cons-100-hrd}\\
-     \hline
-    je & Fig. \ref{fig:mem-1-prod-1-cons-100-je} & Fig. \ref{fig:mem-4-prod-4-cons-100-je}\\
-     \hline
-    pt3 & Fig. \ref{fig:mem-1-prod-1-cons-100-pt3} & Fig. \ref{fig:mem-4-prod-4-cons-100-pt3}\\
-     \hline
-    rp & Fig. \ref{fig:mem-1-prod-1-cons-100-rp} & Fig. \ref{fig:mem-4-prod-4-cons-100-rp}\\
-     \hline
-    tbb & Fig. \ref{fig:mem-1-prod-1-cons-100-tbb} & Fig. \ref{fig:mem-4-prod-4-cons-100-tbb}\\
+    llh & \VRef[Figure]{fig:mem-1-prod-1-cons-100-cfa} & \VRef[Figure]{fig:mem-4-prod-4-cons-100-cfa}\\
+     \hline
+    dl & \VRef[Figure]{fig:mem-1-prod-1-cons-100-dl} & \VRef[Figure]{fig:mem-4-prod-4-cons-100-dl}\\
+     \hline
+    glibc & \VRef[Figure]{fig:mem-1-prod-1-cons-100-glc} & \VRef[Figure]{fig:mem-4-prod-4-cons-100-glc}\\
+     \hline
+    hoard & \VRef[Figure]{fig:mem-1-prod-1-cons-100-hrd} & \VRef[Figure]{fig:mem-4-prod-4-cons-100-hrd}\\
+     \hline
+    je & \VRef[Figure]{fig:mem-1-prod-1-cons-100-je} & \VRef[Figure]{fig:mem-4-prod-4-cons-100-je}\\
+     \hline
+    pt3 & \VRef[Figure]{fig:mem-1-prod-1-cons-100-pt3} & \VRef[Figure]{fig:mem-4-prod-4-cons-100-pt3}\\
+     \hline
+    rp & \VRef[Figure]{fig:mem-1-prod-1-cons-100-rp} & \VRef[Figure]{fig:mem-4-prod-4-cons-100-rp}\\
+     \hline
+    tbb & \VRef[Figure]{fig:mem-1-prod-1-cons-100-tbb} & \VRef[Figure]{fig:mem-4-prod-4-cons-100-tbb}\\
      \hline
     \end{tabular}
@@ -456,5 +481,5 @@
 \end{table}
 
-Results for memory benchmark are shown in 16 figures, two figures for each of the 8 allocators, one for each configuration.
+\VRefrange[Figures]{fig:mem-1-prod-1-cons-100-cfa}{fig:mem-4-prod-4-cons-100-tbb} show 16 figures, two figures for each of the 8 allocators, one for each configuration.
 Table \ref{table:mem-benchmark-figs} shows the list of figures that contain memory benchmark results.
 
@@ -482,7 +507,7 @@
 \begin{figure}
 \centering
-    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/mem-1-prod-1-cons-100-cfa} }
-    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/mem-1-prod-1-cons-100-cfa} }
-\caption{Memory benchmark results with 1 producer for cfa memory allocator}
+    \subfigure[Algol]{ \includegraphics[width=0.95\textwidth]{evaluations/algol-perf-eps/mem-1-prod-1-cons-100-cfa} }
+    \subfigure[Nasus]{ \includegraphics[width=0.95\textwidth]{evaluations/nasus-perf-eps/mem-1-prod-1-cons-100-cfa} }
+\caption{Memory benchmark results with 1 producer for llh memory allocator}
 \label{fig:mem-1-prod-1-cons-100-cfa}
 \end{figure}
@@ -491,6 +516,6 @@
 \begin{figure}
 \centering
-    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/mem-1-prod-1-cons-100-dl} }
-    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/mem-1-prod-1-cons-100-dl} }
+    \subfigure[Algol]{ \includegraphics[width=0.95\textwidth]{evaluations/algol-perf-eps/mem-1-prod-1-cons-100-dl} }
+    \subfigure[Nasus]{ \includegraphics[width=0.95\textwidth]{evaluations/nasus-perf-eps/mem-1-prod-1-cons-100-dl} }
 \caption{Memory benchmark results with 1 producer for dl memory allocator}
 \label{fig:mem-1-prod-1-cons-100-dl}
@@ -500,6 +525,6 @@
 \begin{figure}
 \centering
-    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/mem-1-prod-1-cons-100-glc} }
-    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/mem-1-prod-1-cons-100-glc} }
+    \subfigure[Algol]{ \includegraphics[width=0.95\textwidth]{evaluations/algol-perf-eps/mem-1-prod-1-cons-100-glc} }
+    \subfigure[Nasus]{ \includegraphics[width=0.95\textwidth]{evaluations/nasus-perf-eps/mem-1-prod-1-cons-100-glc} }
 \caption{Memory benchmark results with 1 producer for glibc memory allocator}
 \label{fig:mem-1-prod-1-cons-100-glc}
@@ -509,6 +534,6 @@
 \begin{figure}
 \centering
-    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/mem-1-prod-1-cons-100-hrd} }
-    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/mem-1-prod-1-cons-100-hrd} }
+    \subfigure[Algol]{ \includegraphics[width=0.95\textwidth]{evaluations/algol-perf-eps/mem-1-prod-1-cons-100-hrd} }
+    \subfigure[Nasus]{ \includegraphics[width=0.95\textwidth]{evaluations/nasus-perf-eps/mem-1-prod-1-cons-100-hrd} }
 \caption{Memory benchmark results with 1 producer for hoard memory allocator}
 \label{fig:mem-1-prod-1-cons-100-hrd}
@@ -518,6 +543,6 @@
 \begin{figure}
 \centering
-    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/mem-1-prod-1-cons-100-je} }
-    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/mem-1-prod-1-cons-100-je} }
+    \subfigure[Algol]{ \includegraphics[width=0.95\textwidth]{evaluations/algol-perf-eps/mem-1-prod-1-cons-100-je} }
+    \subfigure[Nasus]{ \includegraphics[width=0.95\textwidth]{evaluations/nasus-perf-eps/mem-1-prod-1-cons-100-je} }
 \caption{Memory benchmark results with 1 producer for je memory allocator}
 \label{fig:mem-1-prod-1-cons-100-je}
@@ -527,6 +552,6 @@
 \begin{figure}
 \centering
-    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/mem-1-prod-1-cons-100-pt3} }
-    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/mem-1-prod-1-cons-100-pt3} }
+    \subfigure[Algol]{ \includegraphics[width=0.95\textwidth]{evaluations/algol-perf-eps/mem-1-prod-1-cons-100-pt3} }
+    \subfigure[Nasus]{ \includegraphics[width=0.95\textwidth]{evaluations/nasus-perf-eps/mem-1-prod-1-cons-100-pt3} }
 \caption{Memory benchmark results with 1 producer for pt3 memory allocator}
 \label{fig:mem-1-prod-1-cons-100-pt3}
@@ -536,6 +561,6 @@
 \begin{figure}
 \centering
-    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/mem-1-prod-1-cons-100-rp} }
-    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/mem-1-prod-1-cons-100-rp} }
+    \subfigure[Algol]{ \includegraphics[width=0.95\textwidth]{evaluations/algol-perf-eps/mem-1-prod-1-cons-100-rp} }
+    \subfigure[Nasus]{ \includegraphics[width=0.95\textwidth]{evaluations/nasus-perf-eps/mem-1-prod-1-cons-100-rp} }
 \caption{Memory benchmark results with 1 producer for rp memory allocator}
 \label{fig:mem-1-prod-1-cons-100-rp}
@@ -545,6 +570,6 @@
 \begin{figure}
 \centering
-    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/mem-1-prod-1-cons-100-tbb} }
-    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/mem-1-prod-1-cons-100-tbb} }
+    \subfigure[Algol]{ \includegraphics[width=0.95\textwidth]{evaluations/algol-perf-eps/mem-1-prod-1-cons-100-tbb} }
+    \subfigure[Nasus]{ \includegraphics[width=0.95\textwidth]{evaluations/nasus-perf-eps/mem-1-prod-1-cons-100-tbb} }
 \caption{Memory benchmark results with 1 producer for tbb memory allocator}
 \label{fig:mem-1-prod-1-cons-100-tbb}
@@ -554,7 +579,7 @@
 \begin{figure}
 \centering
-    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/mem-4-prod-4-cons-100-cfa} }
-    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/mem-4-prod-4-cons-100-cfa} }
-\caption{Memory benchmark results with 4 producers for cfa memory allocator}
+    \subfigure[Algol]{ \includegraphics[width=0.95\textwidth]{evaluations/algol-perf-eps/mem-4-prod-4-cons-100-cfa} }
+    \subfigure[Nasus]{ \includegraphics[width=0.95\textwidth]{evaluations/nasus-perf-eps/mem-4-prod-4-cons-100-cfa} }
+\caption{Memory benchmark results with 4 producers for llh memory allocator}
 \label{fig:mem-4-prod-4-cons-100-cfa}
 \end{figure}
@@ -563,6 +588,6 @@
 \begin{figure}
 \centering
-    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/mem-4-prod-4-cons-100-dl} }
-    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/mem-4-prod-4-cons-100-dl} }
+    \subfigure[Algol]{ \includegraphics[width=0.95\textwidth]{evaluations/algol-perf-eps/mem-4-prod-4-cons-100-dl} }
+    \subfigure[Nasus]{ \includegraphics[width=0.95\textwidth]{evaluations/nasus-perf-eps/mem-4-prod-4-cons-100-dl} }
 \caption{Memory benchmark results with 4 producers for dl memory allocator}
 \label{fig:mem-4-prod-4-cons-100-dl}
@@ -572,6 +597,6 @@
 \begin{figure}
 \centering
-    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/mem-4-prod-4-cons-100-glc} }
-    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/mem-4-prod-4-cons-100-glc} }
+    \subfigure[Algol]{ \includegraphics[width=0.95\textwidth]{evaluations/algol-perf-eps/mem-4-prod-4-cons-100-glc} }
+    \subfigure[Nasus]{ \includegraphics[width=0.95\textwidth]{evaluations/nasus-perf-eps/mem-4-prod-4-cons-100-glc} }
 \caption{Memory benchmark results with 4 producers for glibc memory allocator}
 \label{fig:mem-4-prod-4-cons-100-glc}
@@ -581,6 +606,6 @@
 \begin{figure}
 \centering
-    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/mem-4-prod-4-cons-100-hrd} }
-    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/mem-4-prod-4-cons-100-hrd} }
+    \subfigure[Algol]{ \includegraphics[width=0.95\textwidth]{evaluations/algol-perf-eps/mem-4-prod-4-cons-100-hrd} }
+    \subfigure[Nasus]{ \includegraphics[width=0.95\textwidth]{evaluations/nasus-perf-eps/mem-4-prod-4-cons-100-hrd} }
 \caption{Memory benchmark results with 4 producers for hoard memory allocator}
 \label{fig:mem-4-prod-4-cons-100-hrd}
@@ -590,6 +615,6 @@
 \begin{figure}
 \centering
-    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/mem-4-prod-4-cons-100-je} }
-    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/mem-4-prod-4-cons-100-je} }
+    \subfigure[Algol]{ \includegraphics[width=0.95\textwidth]{evaluations/algol-perf-eps/mem-4-prod-4-cons-100-je} }
+    \subfigure[Nasus]{ \includegraphics[width=0.95\textwidth]{evaluations/nasus-perf-eps/mem-4-prod-4-cons-100-je} }
 \caption{Memory benchmark results with 4 producers for je memory allocator}
 \label{fig:mem-4-prod-4-cons-100-je}
@@ -599,6 +624,6 @@
 \begin{figure}
 \centering
-    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/mem-4-prod-4-cons-100-pt3} }
-    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/mem-4-prod-4-cons-100-pt3} }
+    \subfigure[Algol]{ \includegraphics[width=0.95\textwidth]{evaluations/algol-perf-eps/mem-4-prod-4-cons-100-pt3} }
+    \subfigure[Nasus]{ \includegraphics[width=0.95\textwidth]{evaluations/nasus-perf-eps/mem-4-prod-4-cons-100-pt3} }
 \caption{Memory benchmark results with 4 producers for pt3 memory allocator}
 \label{fig:mem-4-prod-4-cons-100-pt3}
@@ -608,6 +633,6 @@
 \begin{figure}
 \centering
-    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/mem-4-prod-4-cons-100-rp} }
-    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/mem-4-prod-4-cons-100-rp} }
+    \subfigure[Algol]{ \includegraphics[width=0.95\textwidth]{evaluations/algol-perf-eps/mem-4-prod-4-cons-100-rp} }
+    \subfigure[Nasus]{ \includegraphics[width=0.95\textwidth]{evaluations/nasus-perf-eps/mem-4-prod-4-cons-100-rp} }
 \caption{Memory benchmark results with 4 producers for rp memory allocator}
 \label{fig:mem-4-prod-4-cons-100-rp}
@@ -617,6 +642,6 @@
 \begin{figure}
 \centering
-    \subfigure[Algol]{ \includegraphics[width=0.9\textwidth]{evaluations/algol-perf-eps/mem-4-prod-4-cons-100-tbb} }
-    \subfigure[Nasus]{ \includegraphics[width=0.9\textwidth]{evaluations/nasus-perf-eps/mem-4-prod-4-cons-100-tbb} }
+    \subfigure[Algol]{ \includegraphics[width=0.95\textwidth]{evaluations/algol-perf-eps/mem-4-prod-4-cons-100-tbb} }
+    \subfigure[Nasus]{ \includegraphics[width=0.95\textwidth]{evaluations/nasus-perf-eps/mem-4-prod-4-cons-100-tbb} }
 \caption{Memory benchmark results with 4 producers for tbb memory allocator}
 \label{fig:mem-4-prod-4-cons-100-tbb}
Index: doc/theses/mubeen_zulfiqar_MMath/uw-ethesis.bib
===================================================================
--- doc/theses/mubeen_zulfiqar_MMath/uw-ethesis.bib	(revision ed49dbd8bfe367b6f266f0906501f3ebe5951dd0)
+++ doc/theses/mubeen_zulfiqar_MMath/uw-ethesis.bib	(revision f4fe7fd2c9f3581d5bf7b0beac6cf44faa553c46)
@@ -80,13 +80,5 @@
     month	= may,
     year	= 2009,
-    note	= {\textsf{ftp://g.oswego.edu/\-pub/\-misc/\-malloc.c}},
-}
-
-@misc{ptmalloc2,
-    author	= {Wolfram Gloger},
-    title	= {ptmalloc version 2},
-    month	= jun,
-    year	= 2006,
-    note	= {\textsf{http://www.malloc.de/\-malloc/\-ptmalloc2-current.tar.gz}},
+    note	= {\href{ftp://g.oswego.edu/pub/misc/malloc.c}{ftp://g.oswego.edu/\-pub/\-misc/\-malloc.c}},
 }
 
@@ -119,5 +111,5 @@
     month	= mar,
     year	= 2022,
-    note	= {\href{https://github.com/compudj/librseq}{https://github.com/compudj/librseq}},
+    note	= {\href{https://github.com/compudj/librseq}{https://github.com/\-compudj/\-librseq}},
 }
 
@@ -176,4 +168,20 @@
     year	= 2010,
     note	= {\textsf{http://google-perftools.\-googlecode.\-com/\-files/\-google-perftools-1.5.tar.gz}},
+}
+
+@misc{uniformPRNG,
+    author	= {\CC Standard Library},
+    title	= {\lstinline{uniform_int_distribution}},
+    month	= apr,
+    year	= 2022,
+    note	= {\href{https://en.cppreference.com/w/cpp/numeric/random/uniform_int_distribution}{https://en.cppreference.com/w/\-cpp/numeric/\-random/\-uniform\_int\_distribution}},
+}
+
+@misc{fisherPRNG,
+    author	= {\CC Standard Library},
+    title	= {\lstinline{fister_f_distribution}},
+    month	= apr,
+    year	= 2022,
+    note	= {\href{https://www.cplusplus.com/reference/random/fisher_f_distribution}{https://www.cplusplus.com/\-reference/\-random/\-fisher\_f\_distribution}},
 }
 
