-
-\section{Methods}
-
-Initial research and software development is being conducted in collaboration with David Gow\cite{proposalGow}. Once a simple testbed application has been developed, we will individually explore approaches for introducing arbitrary levels of precision; these approaches will be implemented as alternate versions of the same software. The focus will be on drawing simple primitives (lines, polygons, circles). However, if time permits we will explore adding more complicated primitives (font glyphs, bezier curves, embedded bitmaps).
-
-At this stage we have identified two possible areas for individual research:
-
-\begin{enumerate}
-
- \item {\bf Arbitrary Precision real valued numbers} --- Sam Moore
-
- We plan to investigate the representation of real values to a high or arbitary degree of precision. Such representations would allow for a document to be implemented
- using a single global coordinate system. However, we would expect a decrease in performance with increased complexity of the data structure used to represent a real value. \rephrase{Both software and hardware techniques will be explored.} We will also consider the limitations imposed by performing calculations on the GPU or CPU.
-
- Starting points for research in this area are Priest's 1991 paper, ``Algorithms for Arbitrary Precision Floating Point Arithmetic''\cite{priest1991algorithms}, and Goldberg's 1992 paper ``The design of floating point data types''\cite{goldberg1992thedesign}. \rephrase{A more recent and comprehensive text book, ``Handbook of Floating Point Arithmetic''\cite{hfpa}, published in 2010, has also been identified as highly relevant.}
-
- \item {\bf Local coordinate systems} --- David Gow \cite{proposalGow}
-
- An alternative approach involves segmenting the document into different regions using fixed precision floats to define primitives within each region. A quadtree or similar data structure could be employed to identify and render those regions currently visible in the document viewer.\rephrase{Say more here?}
-
-\end{enumerate}
-\pagebreak
-We aim to compare these and any additional implementations considered using the following metrics:
-\begin{enumerate}
-
- \item {\bf Performance vs Number of Primitives}
-
- As it is clearly desirable to include more objects in a document, this is a natural metric for the usefulness of an implementation.
- We will compare the performance of rendering different implementations, using several ``standard'' test documents.
-
- \item {\bf Performance vs Visible Primitives}
-
- There will inevitably be an overhead to all primitives in the document, whether drawn or not.
- As the structure of the document format and rendering algorithms may be designed independently, we will repeat the above tests considering only the number of visible primitives.
-
-
- \item {\bf Performance vs Zoom Level}
-
- We will also consider the performance of rendering at zoom levels that include primitives on both small and large scales, since these are the cases under which floating point precision causes problems in the PostScript and PDF standards.
-
- \item {\bf Performance whilst translation and scaling}
-
- Whilst changing the view, it is ideal that the document be re-rendered as efficiently as possible, to avoid disorienting and confusing the user.
- We will therefore compare the speed of rendering as the standard documents are translated or scaled at a constant rate.
-
- \item {\bf Artifacts and Limitations on Precision}
-
- As we are unlikely to achieve truly ``infinite'' precision, qualitative comparisons of the accuracy of rendering under different implementations should be made.
-
-\end{enumerate}
-
-\section{Software and Hardware Requirements}
-
-Due to the relative immaturity and inconsistency of graphics drivers on mobile devices, our proof of concept will be developed for a conventional GNU/Linux desktop or laptop computer using OpenGL. However, the techniques explored could easily be extended to other platforms and libraries.
-
-
-\pagebreak
-
-\section{Timeline}
-
-Deadlines enforced by the faculty of Engineering Computing and Mathematics are \emph{italicised}.\footnote{David Gow is being assessed under the 2014 rules for a BEng (Software) Final Year Project, whilst the author is being assessed under the 2014 rules for a BEng (Mechatronics) Final Year Project; deadlines and requirements as shown in Gow's proposal\cite{proposalGow} may differ}.
-
-\begin{center}
-\begin{tabular}{l|p{0.5\textwidth}}
- {\bf Date} & {\bf Milestone}\\
- \hline
- $17^{\text{th}}$ April & Draft Literature Review completed. \rephrase{This sort of didn't happen...}\\
- \hline
- $1^{\text{st}}$ May & Testbed Software (basic document format and viewer) completed and approaches for extending to allow infinite precision identified. \\
- \hline
- $26^{\text{th}}$ May & \emph{Progress Report and Revised Literature Review due.}\\
- \hline
- $9^{\text{th}}$ June & Demonstrations of limitations of floating point precision in the Testbed software. \\
- $1^{\text{st}}$ July & At least one implementation of infinite precision for basic primitives (lines, polygons, curves) completed. Other implementations, advanced features, and areas for more detailed research identified. \\
- \hline
- $1^{\text{st}}$ August & Experiments and comparison of various infinite precision implementations completed. \\
- \hline
- $1^{\text{st}}$ September & Advanced features implemented and tested, work underway on Final Report. \\
- \hline
- TBA & \emph{Conference Abstract and Presentation due.} \\
- \hline
- $10^{\text{th}}$ October & \emph{Draft of Final Report due.} \\
- \hline
- $27^{\text{th}}$ October & \emph{Final Report due.}\\
- \hline
-\end{tabular}
-\end{center}
-