aboutsummaryrefslogtreecommitdiff
path: root/thesis/parts/design.tex
diff options
context:
space:
mode:
authorAria Shrimpton <me@aria.rip>2024-03-19 23:45:14 +0000
committerAria Shrimpton <me@aria.rip>2024-03-19 23:45:14 +0000
commitdb7c7a0bb4b96635737c4351d641aa87318865bf (patch)
tree4ab058c62a5537fffff5225323516f0bf2f1c457 /thesis/parts/design.tex
parent4f34dc852c94f36e972799cfe87257ed547af906 (diff)
improve citation style & bibliography
Diffstat (limited to 'thesis/parts/design.tex')
-rw-r--r--thesis/parts/design.tex6
1 files changed, 3 insertions, 3 deletions
diff --git a/thesis/parts/design.tex b/thesis/parts/design.tex
index 18efa9c..6d9c482 100644
--- a/thesis/parts/design.tex
+++ b/thesis/parts/design.tex
@@ -87,7 +87,7 @@ We now go into more detail on how each step works, although we leave some specif
%% Explain role in entire process
As described in Chapter \ref{chap:background}, any implementation we pick must satisfy the program's functional requirements.
-To do this, we integrate Primrose \parencite{qin_primrose_2023} as a first step.
+To do this, we integrate Primrose \citep{qin_primrose_2023} as a first step.
Primrose allows users to specify both the traits they require in an implementation (essentially the API and methods available), and what properties must be satisfied.
@@ -126,7 +126,7 @@ Although we use primrose in our implementation, the rest of our system isn't dep
\section{Cost Models}
Now that we have a list of possible implementations, we need to understand the performance characteristics of each of them.
-We use an approach similar to CollectionSwitch\parencite{costa_collectionswitch_2018}, which assumes that the main factor in how long an operation takes is the current size of the collection.
+We use an approach similar to CollectionSwitch\citep{costa_collectionswitch_2018}, which assumes that the main factor in how long an operation takes is the current size of the collection.
%% Benchmarks
An implementation has a seperate cost model for each operation, which we obtain by executing the operation repeatedly on collections of various sizes.
@@ -199,7 +199,7 @@ But when the size of the container grows, the cost of doing \code{contains} may
Adaptive containers attempt to address this need, by starting off with one implementation (the low or before implementation), and switching to a new implemenation (the high or after implementation) once the size of the container passes a certain threshold.
-This is similar to systems such as CoCo\parencite{hutchison_coco_2013} and in work by \"{O}sterlund\parencite{osterlund_dynamically_2013}.
+This is similar to systems such as CoCo\citep{hutchison_coco_2013} and in work by \"{O}sterlund\citep{osterlund_dynamically_2013}.
However, we decide when to switch container implementation before the program is run, rather than as it is running.
We also do so in a way that requires no knowledge of the implementation internals.