More presentation, also videos
[ipdf/sam.git] / chapters / Progress.tex
index a88e002..e37865d 100644 (file)
@@ -1,10 +1,9 @@
 \chapter{Progress Report}\label{Progress}
 
 \chapter{Progress Report}\label{Progress}
 
-We describe the current state of our research in relation to the aims outlined in Chapter \ref{Introduction}.
+We describe the current state of our project in relation to the aims outlined in Chapter \ref{Introduction}. At this stage work on the project has been done in collaboration with David Gow; however the Project Proposals and Literature Reviews were produced individually.
 
 \section{Literature Review}
 
 \section{Literature Review}
-
-We have examined a range of literature that can be broadly classed into three different areas (with major references indicated):
+The literature examined in Chapter\ref{Background} can broadly classed into three different areas (with major references indicated):
 \begin{enumerate}
        \item Rendering Vector Graphics \cite{computergraphics2, knuth1983metafont, kilgard2012gpu}
        \begin{itemize}
 \begin{enumerate}
        \item Rendering Vector Graphics \cite{computergraphics2, knuth1983metafont, kilgard2012gpu}
        \begin{itemize}
@@ -22,17 +21,24 @@ We have examined a range of literature that can be broadly classed into three di
                \item Most document standards either specify, suggest, or imply a IEEE-754 floating point representation ({\TeX} is an exception)
                \item IEEE-754 is widely used, although there are instances of languages or processors which do not conform exactly to the standard
                \item Some GPUs in particular may not conform to IEEE-754, possibly trading some accuracy for performance
                \item Most document standards either specify, suggest, or imply a IEEE-754 floating point representation ({\TeX} is an exception)
                \item IEEE-754 is widely used, although there are instances of languages or processors which do not conform exactly to the standard
                \item Some GPUs in particular may not conform to IEEE-754, possibly trading some accuracy for performance
+               \item Arbitrary precision floating point arithmetic is possible through several libraries
        \end{itemize}
 \end{enumerate}
 
 To improve the Literature Review we could consider the following topics in more detail:
 \begin{enumerate}
        \end{itemize}
 \end{enumerate}
 
 To improve the Literature Review we could consider the following topics in more detail:
 \begin{enumerate}
-       \item Additional approaches to arbitrary or infinite precision, possibly including symbolic computation
+       \item Additional approaches to arbitrary precision possibly including symbolic computation
+       \begin{itemize}
+               \item The Mathematica computational package claims to use symbolic computation, but we have yet to explore this field
+       \end{itemize}
        \item Floating point errors in the context of computing B\'{e}zier Curves or similar
        \item Floating point errors in the context of computing B\'{e}zier Curves or similar
+       \item Algorithms for reducing overall error other than Fast2Sum
+       \item Alternative number representations such as rationals (eg: $\frac{1}{3}$)
        \item How well GPUs conform or do not conform to IEEE-754 in more detail
        \item Additional aspects of rendering vector documents including shading
 \end{enumerate}
 
        \item How well GPUs conform or do not conform to IEEE-754 in more detail
        \item Additional aspects of rendering vector documents including shading
 \end{enumerate}
 
+
 \section{Development of Testbed Software}
 
 We have produced a basic Document Viewer capable of rendering simple primitives under translation and scaling. The OpenGL 3.1 API is used to interface with graphics hardware. This software has the following features:
 \section{Development of Testbed Software}
 
 We have produced a basic Document Viewer capable of rendering simple primitives under translation and scaling. The OpenGL 3.1 API is used to interface with graphics hardware. This software has the following features:
@@ -52,9 +58,9 @@ Algorithms for floating point arithmetic may be implemented in software (CPU) or
 
 An open source Virtual FPU implemented in the VHDL language has been successfully compiled and can be substituted into our testbed software in place of native arithmetic running on the CPU. The timing diagram for this FPU throughout the execution of test programs can be extracted. Currently the virtual FPU is restricted to 32 bit floats and the square root operation is unimplemented.
 
 
 An open source Virtual FPU implemented in the VHDL language has been successfully compiled and can be substituted into our testbed software in place of native arithmetic running on the CPU. The timing diagram for this FPU throughout the execution of test programs can be extracted. Currently the virtual FPU is restricted to 32 bit floats and the square root operation is unimplemented.
 
-Mainly motivated by producing Figure \ref{minifloat.pdf} we have also implemented functions to convert an arbitrary \verb/Real/ type (which may be IEEE-754 floats) to and from a fixed size floating point representation of our choosing. We have not implemented any operations for floating point arithmetic using these representations.
+Mainly motivated by producing Figure \ref{floats.pdf} we have also implemented functions to convert an arbitrary \verb/Real/ type (which may be IEEE-754 floats) to and from a fixed size floating point representation of our choosing. We have not implemented any operations for floating point arithmetic using these representations.
 
 
-By using the functions to convert real numbers to variable precision floats as an interface for the virtual FPU, we hope to illustrate the limitations of floating point arithmetic more clearly than would be possible using IEEE-754 binary32 as is native to the C and C++ languages.
+By using the functions to convert real numbers to variable precision floats as an interface for the virtual FPU, we hope to illustrate the limitations of floating point arithmetic more clearly than would be possible using IEEE-754 binary32 as is native to the C and C++ languages. Using the virtual FPU instead of a CPU based software library will prove useful for determining the exact performance of floating point operations.
 
 \section{Prototype Document Formats}
 
 
 \section{Prototype Document Formats}
 
@@ -83,9 +89,9 @@ Deadlines enforced by the faculty of Engineering Computing and Mathematics are \
        $26^{\text{th}}$ May & \emph{Progress Report and Literature Review due.}\\
        \hline
        $9^{\text{th}}$ June & Demonstrations of limitations of floating point precision in the Testbed software. \\
        $26^{\text{th}}$ May & \emph{Progress Report and 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. \\
+       $1^{\text{st}}$ July & At least one implementation of arbitrary precision for basic primitives (lines, polygons, curves) completed. Other implementations, advanced features, and areas for more detailed research identified. \\
        \hline
        \hline
-       $1^{\text{st}}$ August & Experiments and comparison of various infinite precision implementations completed. \\
+       $1^{\text{st}}$ August & Experiments and comparison of various arbitrary precision implementations completed. \\
        \hline
        $1^{\text{st}}$ September & Advanced features implemented and tested, work underway on Final Report. \\
        \hline
        \hline
        $1^{\text{st}}$ September & Advanced features implemented and tested, work underway on Final Report. \\
        \hline

UCC git Repository :: git.ucc.asn.au