changeset 421:c2c28c3e27c4

get mit thesis template file.
author Robert McIntyre <rlm@mit.edu>
date Fri, 21 Mar 2014 00:08:49 -0400
parents 7f3581dc58ff
children 6b0f77df0e53
files .hgignore thesis/Makefile thesis/mitthesis/README.bibliography thesis/mitthesis/README.main thesis/mitthesis/README.text thesis/mitthesis/abstract.tex thesis/mitthesis/appa.tex thesis/mitthesis/appb.tex thesis/mitthesis/biblio.tex thesis/mitthesis/chap1.tex thesis/mitthesis/contents.tex thesis/mitthesis/cover.tex thesis/mitthesis/lgrind.sty thesis/mitthesis/main.bib thesis/mitthesis/main.bib.info thesis/mitthesis/main.tex thesis/mitthesis/mitthesis.cls thesis/mitthesis/propcover.tex thesis/mitthesis/sample.org thesis/mitthesis/sample.tex thesis/mitthesis/signature.tex thesis/mitthesis/templates.zip
diffstat 21 files changed, 2241 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
     1.1 --- a/.hgignore	Thu Mar 20 22:57:06 2014 -0400
     1.2 +++ b/.hgignore	Fri Mar 21 00:08:49 2014 -0400
     1.3 @@ -15,6 +15,7 @@
     1.4  libbulletjme.so
     1.5  java/build/*
     1.6  java/dist/*
     1.7 +thesis/tmp
     1.8  
     1.9  syntax: regexp
    1.10  ^.*blend\d$
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/thesis/mitthesis/README.bibliography	Fri Mar 21 00:08:49 2014 -0400
     2.3 @@ -0,0 +1,28 @@
     2.4 +This file gives an overview on what you will need to do to create a
     2.5 +bibliographic database for references, as well as create the actual
     2.6 +bibliography for your thesis.
     2.7 +
     2.8 +You should not need to touch the file biblio.tex.  This merely tells
     2.9 +latex to look for the file with the bibliographic info.  The file you
    2.10 +want to edit is main.bib.  For each entry, use the appropriate style
    2.11 +as designated in the file.
    2.12 +
    2.13 +Citing your references:
    2.14 +
    2.15 +When you cite a reference, you need to use the ``key'' you declare in
    2.16 +main.bib for the entry.  No one ever sees the keys, but you'll want to
    2.17 +use something you will easily remember.  For instance, if you had an
    2.18 +entry with:
    2.19 +
    2.20 +	key=geer1
    2.21 +
    2.22 +Then you would use \cite{geer1} to reference it within your thesis.
    2.23 +
    2.24 +NOTE: You can not include references in your bibliography that are
    2.25 +never cited in your paper by default. If you need to do this, create a
    2.26 +key for the entry and at the end of your thesis include the line:
    2.27 +
    2.28 +\nocite{key}
    2.29 +
    2.30 +This should be done for every entry which is not explicitly cited.
    2.31 +
     3.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2 +++ b/thesis/mitthesis/README.main	Fri Mar 21 00:08:49 2014 -0400
     3.3 @@ -0,0 +1,54 @@
     3.4 +This file explains the options available to you for editting the file
     3.5 +main.tex.
     3.6 +
     3.7 +The commands in the this file allow you to specify options such as
     3.8 +spacing, double-sided printing, a draft copy, etc.   By default, 12pt
     3.9 +and lgrind are included; lgrind is the 2e style for including code in
    3.10 +your thesis.
    3.11 +
    3.12 +\documentclass[12pt]{mitthesis}
    3.13 +\usepackage{lgrind}
    3.14 +\pagestyle{plain}
    3.15 +
    3.16 +You can add options in the documentclass line as follows:
    3.17 +
    3.18 +	o  singlespace
    3.19 +
    3.20 +	\documentclass[12pt,singlespace]{mitthesis}
    3.21 +	
    3.22 +	o  twoside
    3.23 +
    3.24 +	\documentclass[12pt,twoside]{mitthesis}
    3.25 +
    3.26 +	o  draft   (make sure to change the pagestyle to drafthead as
    3.27 +			well)
    3.28 +
    3.29 +	\documentclass[12pt,draft]{mitthesis}
    3.30 +	\usepackage{lgrind}
    3.31 +	\pagestyle{drafthead}
    3.32 +
    3.33 +	o vi   (for course vi and course viii theses)
    3.34 +
    3.35 +	\documentclass[12pt,vi]{mitthesis}
    3.36 +
    3.37 +Any options you would use for report.sty will work here as well.
    3.38 +
    3.39 +
    3.40 +You should not need to change the first three lines and last two lines
    3.41 +below.  Be sure to include an \include command for each file you are
    3.42 +including in your thesis.
    3.43 +  
    3.44 +\include{cover}
    3.45 +\pagestyle{plain}
    3.46 +\include{contents}
    3.47 +\include{chap1}
    3.48 +\include{chap2}
    3.49 +\appendix
    3.50 +\include{appa}
    3.51 +\include{appb}
    3.52 +\include{biblio}
    3.53 +\end{document}
    3.54 +
    3.55 +Comment: to include appendices use a single \appendix command followed by
    3.56 +a number of \include{} commands as many files as needed, each of which
    3.57 +should contain a \chapter{} command for the appendix title.
     4.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.2 +++ b/thesis/mitthesis/README.text	Fri Mar 21 00:08:49 2014 -0400
     4.3 @@ -0,0 +1,34 @@
     4.4 +This file includes the basic commands you will need to use within each
     4.5 +chapter of your thesis.
     4.6 +
     4.7 +The file chap1.tex is a sample first chapter.  To get started, you may
     4.8 +just want to replace the text and commands in that file as needed.  In
     4.9 +general though, for each new chapter you want to do the following:
    4.10 +
    4.11 +	o Make sure the name has the extension .tex .  Otherwise, you
    4.12 +	can call it anything you want.  For ease of use, all the
    4.13 +	examples use chap1, chap2, etc.
    4.14 +
    4.15 +	o Add a line to the file main.tex that reads:
    4.16 +
    4.17 +	\include{yourfilename}
    4.18 +
    4.19 +	This should not include the .tex extension, because latex
    4.20 +	assumes that is there.
    4.21 +
    4.22 +Basic syntax:
    4.23 +
    4.24 +	o The first line of each chapter should be:
    4.25 +
    4.26 +	\chapter{Chapter Title}
    4.27 +
    4.28 +	o To start a new section (labeled chap#.sec# -- as in 1.1,
    4.29 +	1.2, etc):
    4.30 +
    4.31 +	\section{Section Heading}
    4.32 +
    4.33 +	You can also include subsections:
    4.34 +
    4.35 +	\subsection{Heading}
    4.36 +
    4.37 +
     5.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.2 +++ b/thesis/mitthesis/abstract.tex	Fri Mar 21 00:08:49 2014 -0400
     5.3 @@ -0,0 +1,22 @@
     5.4 +% $Log: abstract.tex,v $
     5.5 +% Revision 1.1  93/05/14  14:56:25  starflt
     5.6 +% Initial revision
     5.7 +% 
     5.8 +% Revision 1.1  90/05/04  10:41:01  lwvanels
     5.9 +% Initial revision
    5.10 +% 
    5.11 +%
    5.12 +%% The text of your abstract and nothing else (other than comments) goes here.
    5.13 +%% It will be single-spaced and the rest of the text that is supposed to go on
    5.14 +%% the abstract page will be generated by the abstractpage environment.  This
    5.15 +%% file should be \input (not \include 'd) from cover.tex.
    5.16 +In this thesis, I designed and implemented a compiler which performs
    5.17 +optimizations that reduce the number of low-level floating point operations
    5.18 +necessary for a specific task; this involves the optimization of chains of
    5.19 +floating point operations as well as the implementation of a ``fixed'' point
    5.20 +data type that allows some floating point operations to simulated with integer
    5.21 +arithmetic.  The source language of the compiler is a subset of C, and the
    5.22 +destination language is assembly language for a micro-floating point CPU.  An
    5.23 +instruction-level simulator of the CPU was written to allow testing of the
    5.24 +code.  A series of test pieces of codes was compiled, both with and without
    5.25 +optimization, to determine how effective these optimizations were.
     6.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     6.2 +++ b/thesis/mitthesis/appa.tex	Fri Mar 21 00:08:49 2014 -0400
     6.3 @@ -0,0 +1,15 @@
     6.4 +\chapter{Tables}
     6.5 +
     6.6 +\begin{table}
     6.7 +\caption{Armadillos}
     6.8 +\label{arm:table}
     6.9 +\begin{center}
    6.10 +\begin{tabular}{||l|l||}\hline
    6.11 +Armadillos & are \\\hline
    6.12 +our	   & friends \\\hline
    6.13 +\end{tabular}
    6.14 +\end{center}
    6.15 +\end{table}
    6.16 +
    6.17 +\clearpage
    6.18 +\newpage
     7.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     7.2 +++ b/thesis/mitthesis/appb.tex	Fri Mar 21 00:08:49 2014 -0400
     7.3 @@ -0,0 +1,19 @@
     7.4 +\chapter{Figures}
     7.5 +
     7.6 +\vspace*{-3in}
     7.7 +
     7.8 +\begin{figure}
     7.9 +\vspace{2.4in}
    7.10 +\caption{Armadillo slaying lawyer.}
    7.11 +\label{arm:fig1}
    7.12 +\end{figure}
    7.13 +\clearpage
    7.14 +\newpage
    7.15 +
    7.16 +\begin{figure}
    7.17 +\vspace{2.4in}
    7.18 +\caption{Armadillo eradicating national debt.}
    7.19 +\label{arm:fig2}
    7.20 +\end{figure}
    7.21 +\clearpage
    7.22 +\newpage
     8.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     8.2 +++ b/thesis/mitthesis/biblio.tex	Fri Mar 21 00:08:49 2014 -0400
     8.3 @@ -0,0 +1,8 @@
     8.4 +%% This defines the bibliography file (main.bib) and the bibliography style.
     8.5 +%% If you want to create a bibliography file by hand, change the contents of
     8.6 +%% this file to a `thebibliography' environment.  For more information 
     8.7 +%% see section 4.3 of the LaTeX manual.
     8.8 +\begin{singlespace}
     8.9 +\bibliography{main}
    8.10 +\bibliographystyle{plain}
    8.11 +\end{singlespace}
     9.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     9.2 +++ b/thesis/mitthesis/chap1.tex	Fri Mar 21 00:08:49 2014 -0400
     9.3 @@ -0,0 +1,250 @@
     9.4 +%% This is an example first chapter.  You should put chapter/appendix that you
     9.5 +%% write into a separate file, and add a line \include{yourfilename} to
     9.6 +%% main.tex, where `yourfilename.tex' is the name of the chapter/appendix file.
     9.7 +%% You can process specific files by typing their names in at the 
     9.8 +%% \files=
     9.9 +%% prompt when you run the file main.tex through LaTeX.
    9.10 +\chapter{Introduction}
    9.11 +
    9.12 +Micro-optimization is a technique to reduce the overall operation count of
    9.13 +floating point operations.  In a standard floating point unit, floating
    9.14 +point operations are fairly high level, such as ``multiply'' and ``add'';
    9.15 +in a micro floating point unit ($\mu$FPU), these have been broken down into
    9.16 +their constituent low-level floating point operations on the mantissas and
    9.17 +exponents of the floating point numbers.
    9.18 +
    9.19 +Chapter two describes the architecture of the $\mu$FPU unit, and the
    9.20 +motivations for the design decisions made.
    9.21 +
    9.22 +Chapter three describes the design of the compiler, as well as how the
    9.23 +optimizations discussed in section~\ref{ch1:opts} were implemented.
    9.24 +
    9.25 +Chapter four describes the purpose of test code that was compiled, and which
    9.26 +statistics were gathered by running it through the simulator.  The purpose
    9.27 +is to measure what effect the micro-optimizations had, compared to
    9.28 +unoptimized code.  Possible future expansions to the project are also
    9.29 +discussed.
    9.30 +
    9.31 +\section{Motivations for micro-optimization}
    9.32 +
    9.33 +The idea of micro-optimization is motivated by the recent trends in computer
    9.34 +architecture towards low-level parallelism and small, pipelineable
    9.35 +instruction sets \cite{patterson:risc,rad83}.  By getting rid of more
    9.36 +complex instructions and concentrating on optimizing frequently used
    9.37 +instructions, substantial increases in performance were realized.
    9.38 +
    9.39 +Another important motivation was the trend towards placing more of the
    9.40 +burden of performance on the compiler.  Many of the new architectures depend
    9.41 +on an intelligent, optimizing compiler in order to realize anywhere near
    9.42 +their peak performance
    9.43 +\cite{ellis:bulldog,pet87,coutant:precision-compilers}.  In these cases, the
    9.44 +compiler not only is responsible for faithfully generating native code to
    9.45 +match the source language, but also must be aware of instruction latencies,
    9.46 +delayed branches, pipeline stages, and a multitude of other factors in order
    9.47 +to generate fast code \cite{gib86}.
    9.48 +
    9.49 +Taking these ideas one step further, it seems that the floating point
    9.50 +operations that are normally single, large instructions can be further broken
    9.51 +down into smaller, simpler, faster instructions, with more control in the
    9.52 +compiler and less in the hardware.  This is the idea behind a
    9.53 +micro-optimizing FPU; break the floating point instructions down into their
    9.54 +basic components and use a small, fast implementation, with a large part of
    9.55 +the burden of hardware allocation and optimization shifted towards
    9.56 +compile-time.
    9.57 +
    9.58 +Along with the hardware speedups possible by using a $\mu$FPU, there are
    9.59 +also optimizations that the compiler can perform on the code that is
    9.60 +generated.  In a normal sequence of floating point operations, there are
    9.61 +many hidden redundancies that can be eliminated by allowing the compiler to
    9.62 +control the floating point operations down to their lowest level.  These
    9.63 +optimizations are described in detail in section~\ref{ch1:opts}.
    9.64 +
    9.65 +\section{Description of micro-optimization}\label{ch1:opts}
    9.66 +
    9.67 +In order to perform a sequence of floating point operations, a normal FPU
    9.68 +performs many redundant internal shifts and normalizations in the process of
    9.69 +performing a sequence of operations.  However, if a compiler can
    9.70 +decompose the floating point operations it needs down to the lowest level,
    9.71 +it then can optimize away many of these redundant operations.  
    9.72 +
    9.73 +If there is some additional hardware support specifically for
    9.74 +micro-optimization, there are additional optimizations that can be
    9.75 +performed.  This hardware support entails extra ``guard bits'' on the
    9.76 +standard floating point formats, to allow several unnormalized operations to
    9.77 +be performed in a row without the loss information\footnote{A description of
    9.78 +the floating point format used is shown in figures~\ref{exponent-format}
    9.79 +and~\ref{mantissa-format}.}.  A discussion of the mathematics behind
    9.80 +unnormalized arithmetic is in appendix~\ref{unnorm-math}.
    9.81 +
    9.82 +The optimizations that the compiler can perform fall into several categories:
    9.83 +
    9.84 +\subsection{Post Multiply Normalization}
    9.85 +
    9.86 +When more than two multiplications are performed in a row, the intermediate
    9.87 +normalization of the results between multiplications can be eliminated.
    9.88 +This is because with each multiplication, the mantissa can become
    9.89 +denormalized by at most one bit.  If there are guard bits on the mantissas
    9.90 +to prevent bits from ``falling off'' the end during multiplications, the
    9.91 +normalization can be postponed until after a sequence of several
    9.92 +multiplies\footnote{Using unnormalized numbers for math is not a new idea; a
    9.93 +good example of it is the Control Data CDC 6600, designed by Seymour Cray.
    9.94 +\cite{thornton:cdc6600} The CDC 6600 had all of its instructions performing
    9.95 +unnormalized arithmetic, with a separate {\tt NORMALIZE} instruction.}.
    9.96 +
    9.97 +% This is an example of how you would use tgrind to include an example
    9.98 +% of source code; it is commented out in this template since the code
    9.99 +% example file does not exist.  To use it, you need to remove the '%' on the
   9.100 +% beginning of the line, and insert your own information in the call.
   9.101 +%
   9.102 +%\tagrind[htbp]{code/pmn.s.tex}{Post Multiply Normalization}{opt:pmn}
   9.103 +
   9.104 +As you can see, the intermediate results can be multiplied together, with no
   9.105 +need for intermediate normalizations due to the guard bit.  It is only at
   9.106 +the end of the operation that the normalization must be performed, in order
   9.107 +to get it into a format suitable for storing in memory\footnote{Note that
   9.108 +for purposed of clarity, the pipeline delays were considered to be 0, and
   9.109 +the branches were not delayed.}.
   9.110 +
   9.111 +\subsection{Block Exponent}
   9.112 +
   9.113 +In a unoptimized sequence of additions, the sequence of operations is as
   9.114 +follows for each pair of numbers ($m_1$,$e_1$) and ($m_2$,$e_2$).
   9.115 +\begin{enumerate}
   9.116 +  \item Compare $e_1$ and $e_2$.
   9.117 +  \item Shift the mantissa associated with the smaller exponent $|e_1-e_2|$
   9.118 +        places to the right.
   9.119 +  \item Add $m_1$ and $m_2$.
   9.120 +  \item Find the first one in the resulting mantissa.
   9.121 +  \item Shift the resulting mantissa so that normalized
   9.122 +  \item Adjust the exponent accordingly.
   9.123 +\end{enumerate}
   9.124 +
   9.125 +Out of 6 steps, only one is the actual addition, and the rest are involved
   9.126 +in aligning the mantissas prior to the add, and then normalizing the result
   9.127 +afterward.  In the block exponent optimization, the largest mantissa is
   9.128 +found to start with, and all the mantissa's shifted before any additions
   9.129 +take place.  Once the mantissas have been shifted, the additions can take
   9.130 +place one after another\footnote{This requires that for n consecutive
   9.131 +additions, there are $\log_{2}n$ high guard bits to prevent overflow.  In
   9.132 +the $\mu$FPU, there are 3 guard bits, making up to 8 consecutive additions
   9.133 +possible.}.  An example of the Block Exponent optimization on the expression
   9.134 +X = A + B + C is given in figure~\ref{opt:be}.
   9.135 +
   9.136 +% This is an example of how you would use tgrind to include an example
   9.137 +% of source code; it is commented out in this template since the code
   9.138 +% example file does not exist.  To use it, you need to remove the '%' on the
   9.139 +% beginning of the line, and insert your own information in the call.
   9.140 +%
   9.141 +%\tgrind[htbp]{code/be.s.tex}{Block Exponent}{opt:be}
   9.142 +
   9.143 +\section{Integer optimizations}
   9.144 +
   9.145 +As well as the floating point optimizations described above, there are
   9.146 +also integer optimizations that can be used in the $\mu$FPU.  In concert
   9.147 +with the floating point optimizations, these can provide a significant
   9.148 +speedup.  
   9.149 +
   9.150 +\subsection{Conversion to fixed point}
   9.151 +
   9.152 +Integer operations are much faster than floating point operations; if it is
   9.153 +possible to replace floating point operations with fixed point operations,
   9.154 +this would provide a significant increase in speed.
   9.155 +
   9.156 +This conversion can either take place automatically or or based on a
   9.157 +specific request from the programmer.  To do this automatically, the
   9.158 +compiler must either be very smart, or play fast and loose with the accuracy
   9.159 +and precision of the programmer's variables.  To be ``smart'', the computer
   9.160 +must track the ranges of all the floating point variables through the
   9.161 +program, and then see if there are any potential candidates for conversion
   9.162 +to floating point.  This technique is discussed further in
   9.163 +section~\ref{range-tracking}, where it was implemented.
   9.164 +
   9.165 +The other way to do this is to rely on specific hints from the programmer
   9.166 +that a certain value will only assume a specific range, and that only a
   9.167 +specific precision is desired.  This is somewhat more taxing on the
   9.168 +programmer, in that he has to know the ranges that his values will take at
   9.169 +declaration time (something normally abstracted away), but it does provide
   9.170 +the opportunity for fine-tuning already working code.
   9.171 +
   9.172 +Potential applications of this would be simulation programs, where the
   9.173 +variable represents some physical quantity; the constraints of the physical
   9.174 +system may provide bounds on the range the variable can take.
   9.175 +\subsection{Small Constant Multiplications}
   9.176 +
   9.177 +One other class of optimizations that can be done is to replace
   9.178 +multiplications by small integer constants into some combination of
   9.179 +additions and shifts.  Addition and shifting can be significantly faster
   9.180 +than multiplication.  This is done by using some combination of
   9.181 +\begin{eqnarray*}
   9.182 +a_i & = & a_j + a_k \\
   9.183 +a_i & = & 2a_j + a_k \\
   9.184 +a_i & = & 4a_j + a_k \\
   9.185 +a_i & = & 8a_j + a_k \\
   9.186 +a_i & = & a_j - a_k \\
   9.187 +a_i & = & a_j \ll m \mbox{shift}
   9.188 +\end{eqnarray*}
   9.189 +instead of the multiplication.  For example, to multiply $s$ by 10 and store
   9.190 +the result in $r$, you could use:
   9.191 +\begin{eqnarray*}
   9.192 +r & = & 4s + s\\
   9.193 +r & = & r + r
   9.194 +\end{eqnarray*}
   9.195 +Or by 59:
   9.196 +\begin{eqnarray*}
   9.197 +t & = & 2s + s \\
   9.198 +r & = & 2t + s \\
   9.199 +r & = & 8r + t
   9.200 +\end{eqnarray*}
   9.201 +Similar combinations can be found for almost all of the smaller
   9.202 +integers\footnote{This optimization is only an ``optimization'', of course,
   9.203 +when the amount of time spent on the shifts and adds is less than the time
   9.204 +that would be spent doing the multiplication.  Since the time costs of these
   9.205 +operations are known to the compiler in order for it to do scheduling, it is
   9.206 +easy for the compiler to determine when this optimization is worth using.}.
   9.207 +\cite{magenheimer:precision}
   9.208 +
   9.209 +\section{Other optimizations}
   9.210 +
   9.211 +\subsection{Low-level parallelism}
   9.212 +
   9.213 +The current trend is towards duplicating hardware at the lowest level to
   9.214 +provide parallelism\footnote{This can been seen in the i860; floating point
   9.215 +additions and multiplications can proceed at the same time, and the RISC
   9.216 +core be moving data in and out of the floating point registers and providing
   9.217 +flow control at the same time the floating point units are active. \cite{byte:i860}}
   9.218 +
   9.219 +Conceptually, it is easy to take advantage to low-level parallelism in the
   9.220 +instruction stream by simply adding more functional units to the $\mu$FPU,
   9.221 +widening the instruction word to control them, and then scheduling as many
   9.222 +operations to take place at one time as possible.
   9.223 +
   9.224 +However, simply adding more functional units can only be done so many times;
   9.225 +there is only a limited amount of parallelism directly available in the
   9.226 +instruction stream, and without it, much of the extra resources will go to
   9.227 +waste.  One process used to make more instructions potentially schedulable
   9.228 +at any given time is ``trace scheduling''.  This technique originated in the
   9.229 +Bulldog compiler for the original VLIW machine, the ELI-512.
   9.230 +\cite{ellis:bulldog,colwell:vliw}  In trace scheduling, code can be
   9.231 +scheduled through many basic blocks at one time, following a single
   9.232 +potential ``trace'' of program execution.  In this way, instructions that
   9.233 +{\em might\/} be executed depending on a conditional branch further down in
   9.234 +the instruction stream are scheduled, allowing an increase in the potential
   9.235 +parallelism.  To account for the cases where the expected branch wasn't
   9.236 +taken, correction code is inserted after the branches to undo the effects of
   9.237 +any prematurely executed instructions.
   9.238 +
   9.239 +\subsection{Pipeline optimizations}
   9.240 +
   9.241 +In addition to having operations going on in parallel across functional
   9.242 +units, it is also typical to have several operations in various stages of
   9.243 +completion in each unit.  This pipelining allows the throughput of the
   9.244 +functional units to be increased, with no increase in latency.
   9.245 +
   9.246 +There are several ways pipelined operations can be optimized.  On the
   9.247 +hardware side, support can be added to allow data to be recirculated back
   9.248 +into the beginning of the pipeline from the end, saving a trip through the
   9.249 +registers.  On the software side, the compiler can utilize several tricks to
   9.250 +try to fill up as many of the pipeline delay slots as possible, as
   9.251 +seendescribed by Gibbons. \cite{gib86}
   9.252 +
   9.253 +
    10.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    10.2 +++ b/thesis/mitthesis/contents.tex	Fri Mar 21 00:08:49 2014 -0400
    10.3 @@ -0,0 +1,11 @@
    10.4 +  % -*- Mode:TeX -*-
    10.5 +%% This file simply contains the commands that actually generate the table of
    10.6 +%% contents and lists of figures and tables.  You can omit any or all of
    10.7 +%% these files by simply taking out the appropriate command.  For more
    10.8 +%% information on these files, see appendix C.3.3 of the LaTeX manual. 
    10.9 +\tableofcontents
   10.10 +\newpage
   10.11 +\listoffigures
   10.12 +\newpage
   10.13 +\listoftables
   10.14 +
    11.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    11.2 +++ b/thesis/mitthesis/cover.tex	Fri Mar 21 00:08:49 2014 -0400
    11.3 @@ -0,0 +1,132 @@
    11.4 +% -*-latex-*-
    11.5 +% 
    11.6 +% For questions, comments, concerns or complaints:
    11.7 +% thesis@mit.edu
    11.8 +% 
    11.9 +%
   11.10 +% $Log: cover.tex,v $
   11.11 +% Revision 1.8  2008/05/13 15:02:15  jdreed
   11.12 +% Degree month is June, not May.  Added note about prevdegrees.
   11.13 +% Arthur Smith's title updated
   11.14 +%
   11.15 +% Revision 1.7  2001/02/08 18:53:16  boojum
   11.16 +% changed some \newpages to \cleardoublepages
   11.17 +%
   11.18 +% Revision 1.6  1999/10/21 14:49:31  boojum
   11.19 +% changed comment referring to documentstyle
   11.20 +%
   11.21 +% Revision 1.5  1999/10/21 14:39:04  boojum
   11.22 +% *** empty log message ***
   11.23 +%
   11.24 +% Revision 1.4  1997/04/18  17:54:10  othomas
   11.25 +% added page numbers on abstract and cover, and made 1 abstract
   11.26 +% page the default rather than 2.  (anne hunter tells me this
   11.27 +% is the new institute standard.)
   11.28 +%
   11.29 +% Revision 1.4  1997/04/18  17:54:10  othomas
   11.30 +% added page numbers on abstract and cover, and made 1 abstract
   11.31 +% page the default rather than 2.  (anne hunter tells me this
   11.32 +% is the new institute standard.)
   11.33 +%
   11.34 +% Revision 1.3  93/05/17  17:06:29  starflt
   11.35 +% Added acknowledgements section (suggested by tompalka)
   11.36 +% 
   11.37 +% Revision 1.2  92/04/22  13:13:13  epeisach
   11.38 +% Fixes for 1991 course 6 requirements
   11.39 +% Phrase "and to grant others the right to do so" has been added to 
   11.40 +% permission clause
   11.41 +% Second copy of abstract is not counted as separate pages so numbering works
   11.42 +% out
   11.43 +% 
   11.44 +% Revision 1.1  92/04/22  13:08:20  epeisach
   11.45 +
   11.46 +% NOTE:
   11.47 +% These templates make an effort to conform to the MIT Thesis specifications,
   11.48 +% however the specifications can change.  We recommend that you verify the
   11.49 +% layout of your title page with your thesis advisor and/or the MIT 
   11.50 +% Libraries before printing your final copy.
   11.51 +\title{An Optimizing Compiler for Low-Level Floating Point Operations}
   11.52 +
   11.53 +\author{Robert McIntyre}
   11.54 +% If you wish to list your previous degrees on the cover page, use the 
   11.55 +% previous degrees command:
   11.56 +%       \prevdegrees{A.A., Harvard University (1985)}
   11.57 +% You can use the \\ command to list multiple previous degrees
   11.58 +%       \prevdegrees{B.S., University of California (1978) \\
   11.59 +%                    S.M., Massachusetts Institute of Technology (1981)}
   11.60 +\department{Department of Electrical Engineering and Computer Science}
   11.61 +
   11.62 +% If the thesis is for two degrees simultaneously, list them both
   11.63 +% separated by \and like this:
   11.64 +% \degree{Doctor of Philosophy \and Master of Science}
   11.65 +\degree{Bachelor of Science in Computer Science and Engineering}
   11.66 +
   11.67 +% As of the 2007-08 academic year, valid degree months are September, 
   11.68 +% February, or June.  The default is June.
   11.69 +\degreemonth{June}
   11.70 +\degreeyear{1990}
   11.71 +\thesisdate{May 18, 1990}
   11.72 +
   11.73 +%% By default, the thesis will be copyrighted to MIT.  If you need to copyright
   11.74 +%% the thesis to yourself, just specify the `vi' documentclass option.  If for
   11.75 +%% some reason you want to exactly specify the copyright notice text, you can
   11.76 +%% use the \copyrightnoticetext command.  
   11.77 +%\copyrightnoticetext{\copyright IBM, 1990.  Do not open till Xmas.}
   11.78 +
   11.79 +% If there is more than one supervisor, use the \supervisor command
   11.80 +% once for each.
   11.81 +\supervisor{William J. Dally}{Associate Professor}
   11.82 +
   11.83 +% This is the department committee chairman, not the thesis committee
   11.84 +% chairman.  You should replace this with your Department's Committee
   11.85 +% Chairman.
   11.86 +\chairman{Arthur C. Smith}{Chairman, Department Committee on Graduate Theses}
   11.87 +
   11.88 +% Make the titlepage based on the above information.  If you need
   11.89 +% something special and can't use the standard form, you can specify
   11.90 +% the exact text of the titlepage yourself.  Put it in a titlepage
   11.91 +% environment and leave blank lines where you want vertical space.
   11.92 +% The spaces will be adjusted to fill the entire page.  The dotted
   11.93 +% lines for the signatures are made with the \signature command.
   11.94 +\maketitle
   11.95 +
   11.96 +% The abstractpage environment sets up everything on the page except
   11.97 +% the text itself.  The title and other header material are put at the
   11.98 +% top of the page, and the supervisors are listed at the bottom.  A
   11.99 +% new page is begun both before and after.  Of course, an abstract may
  11.100 +% be more than one page itself.  If you need more control over the
  11.101 +% format of the page, you can use the abstract environment, which puts
  11.102 +% the word "Abstract" at the beginning and single spaces its text.
  11.103 +
  11.104 +%% You can either \input (*not* \include) your abstract file, or you can put
  11.105 +%% the text of the abstract directly between the \begin{abstractpage} and
  11.106 +%% \end{abstractpage} commands.
  11.107 +
  11.108 +% First copy: start a new page, and save the page number.
  11.109 +\cleardoublepage
  11.110 +% Uncomment the next line if you do NOT want a page number on your
  11.111 +% abstract and acknowledgments pages.
  11.112 +% \pagestyle{empty}
  11.113 +\setcounter{savepage}{\thepage}
  11.114 +\begin{abstractpage}
  11.115 +\input{abstract}
  11.116 +\end{abstractpage}
  11.117 +
  11.118 +% Additional copy: start a new page, and reset the page number.  This way,
  11.119 +% the second copy of the abstract is not counted as separate pages.
  11.120 +% Uncomment the next 6 lines if you need two copies of the abstract
  11.121 +% page.
  11.122 +% \setcounter{page}{\thesavepage}
  11.123 +% \begin{abstractpage}
  11.124 +% \input{abstract}
  11.125 +% \end{abstractpage}
  11.126 +
  11.127 +\cleardoublepage
  11.128 +
  11.129 +\section*{Acknowledgments}
  11.130 +
  11.131 +This is the acknowledgements section.  You should replace this with your
  11.132 +own acknowledgements.
  11.133 +
  11.134 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  11.135 +% -*-latex-*-
    12.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    12.2 +++ b/thesis/mitthesis/lgrind.sty	Fri Mar 21 00:08:49 2014 -0400
    12.3 @@ -0,0 +1,228 @@
    12.4 +%%
    12.5 +%% This is file `lgrind.sty',
    12.6 +%% generated with the docstrip utility.
    12.7 +%%
    12.8 +%% The original source files were:
    12.9 +%%
   12.10 +%% lgrind.dtx  (with options: `package')
   12.11 +%% 
   12.12 +%% LGrind is used to format source code of different programming
   12.13 +%% languages for LaTeX.
   12.14 +%% 
   12.15 +%% LGrind is a minor adaptation of Jerry Leichter's tgrind for LaTeX,
   12.16 +%% which was a notable improvement upon Van Jacobsen's tgrind for
   12.17 +%% plain TeX, which was adapted from vgrind, a troff prettyprinter.
   12.18 +%% 
   12.19 +%% Based on Van Jacobson's ``tgrindmac'', a macro package for TeX.
   12.20 +%% Modified, 1987 by Jerry Leichter. Put '@' in all internal names.
   12.21 +%% Modified, 1991 by George Reilly. Changed name from tgrind to lgrind.
   12.22 +%% Modified, 1995 by Michael Piefel. Made it work with \LaTeXe.
   12.23 +\NeedsTeXFormat{LaTeX2e}[1995/06/01]
   12.24 +\ProvidesPackage{lgrind}
   12.25 +          [1997/01/30 v3.4 LGrind environment and supporting stuff]
   12.26 +\newcount\lc@unt
   12.27 +\newcount\ln@xt
   12.28 +\newcount\LGnuminterval
   12.29 +\LGnuminterval=10
   12.30 +\DeclareOption{nolineno}{\LGnuminterval=50000}
   12.31 +\DeclareOption{lineno5}{\LGnuminterval=5}
   12.32 +\newif\ifLGleftnum
   12.33 +\DeclareOption{leftnum}{\LGleftnumtrue}
   12.34 +\newskip\LGindent
   12.35 +\LGindent=1.6667\parindent
   12.36 +\DeclareOption{noindent}{\LGindent=0pt}
   12.37 +\newif\ifLGnorules
   12.38 +\DeclareOption{norules}{\LGnorulestrue}
   12.39 +\newlength{\LGsloppy}
   12.40 +\setlength{\LGsloppy}{7.2pt}
   12.41 +\DeclareOption{fussy}{\LGsloppy=0pt}
   12.42 +\newcommand{\DefaultProc}{\@gobble}
   12.43 +\newcommand{\DefaultProcCont}{\@gobble}
   12.44 +\DeclareOption{procnames}{
   12.45 +\renewcommand{\DefaultProc}[1]{\renewcommand{\Procname}{#1}%
   12.46 +\global\setbox\procbox=\hbox{\PNsize #1}}
   12.47 +\renewcommand{\DefaultProcCont}[1]{\renewcommand\Procname{#1}
   12.48 +\global\setbox\procbox=\hbox{\PNsize\dots #1}}}
   12.49 +\newbox\procbox
   12.50 +\newcommand{\Procname}{}
   12.51 +\ProcessOptions
   12.52 +\def\BGfont{\sffamily}
   12.53 +\def\CMfont{\rmfamily\itshape}
   12.54 +\def\NOfont{\sffamily}
   12.55 +\def\KWfont{\rmfamily\bfseries}
   12.56 +\def\STfont{\ttfamily}
   12.57 +\def\VRfont{\rmfamily}
   12.58 +\def\PNsize{\BGfont\small}
   12.59 +\def\LGsize{\small}
   12.60 +\def\LGfsize{\footnotesize}
   12.61 +\newif\ifLGinline
   12.62 +\newif\ifLGd@fault
   12.63 +\def\LGbegin{\ifLGinline$\hbox\else$$\vbox\fi\bgroup\LGd@faulttrue}
   12.64 +\def\LGend{\ifLGd@fault\egroup\ifLGinline$\else$$\fi\LGd@faultfalse\fi}
   12.65 +\newif\ifc@mment
   12.66 +\newif\ifstr@ng
   12.67 +\newif\ifright@
   12.68 +\newbox\ls@far
   12.69 +\newbox\tb@x
   12.70 +\newdimen\TBw@d
   12.71 +\newdimen\@ts
   12.72 +{\catcode`\_=\active \gdef\@setunder{\let_=\sp@ce}}
   12.73 +\newcommand{\lgrindheader}{}
   12.74 +\newcommand{\lgrindfilename}{}\newcommand{\lgrindfilesize}{}
   12.75 +\newcommand{\lgrindmodyear}{}\newcommand{\lgrindmodmonth}{}
   12.76 +\newcommand{\lgrindmodday}{}\newcommand{\lgrindmodtime}{}
   12.77 +\newenvironment{lgrind}[1][1]{%
   12.78 +\def\Line##1{\L{\LB{##1}}}%
   12.79 +\newcommand{\Head}[1]{\gdef\lgrindhead{##1}}%
   12.80 +\newcommand{\File}[6]{\gdef\lgrindfilename{##1}\message{(LGround: ##1)}%
   12.81 +    \gdef\lgrindmodyear{##2}\gdef\lgrindmodmonth{##3}%
   12.82 +    \gdef\lgrindmodday{##4}\gdef\lgrindmodtime{##5}%
   12.83 +    \gdef\lgrindfilesize{##6}}%
   12.84 +\let\Proc=\DefaultProc%
   12.85 +\let\ProcCont=\DefaultProcCont%
   12.86 +\hfuzz=\LGsloppy
   12.87 +\def\NewPage{\filbreak\bigskip}%
   12.88 +\ifLGinline
   12.89 + \def\L##1{\setbox\ls@far\null{\CF\strut##1}\ignorespaces}%
   12.90 +\else
   12.91 + \let\r@ghtlno\relax\let\l@ftlno\relax
   12.92 + \ifnum\LGnuminterval>\z@
   12.93 +  \ifLGleftnum
   12.94 +   \def\l@ftlno{\ifvoid\procbox\ifnum\lc@unt>\ln@xt
   12.95 +     \global\advance\ln@xt by\LGnuminterval
   12.96 +     \llap{{\normalfont\scriptsize\the\lc@unt\quad}}\fi
   12.97 +     \else\llap{\box\procbox\quad}\fi}%
   12.98 +  \else
   12.99 +   \def\r@ghtlno{\ifvoid\procbox\ifnum\lc@unt>\ln@xt
  12.100 +     \global\advance\ln@xt by\LGnuminterval
  12.101 +     \rlap{{\normalfont\scriptsize\enspace\the\lc@unt}}\fi
  12.102 +     \else\rlap{\enspace\box\procbox}\fi}%
  12.103 +  \fi
  12.104 + \fi
  12.105 + \def\L##1{\@@par\setbox\ls@far=\null\strut
  12.106 +  \global\advance\lc@unt by1%
  12.107 +  \hbox to \hsize{\hskip\LGindent\l@ftlno ##1\egroup%
  12.108 +  \hfil\r@ghtlno}%
  12.109 +  \ignorespaces}%
  12.110 +\fi
  12.111 +\lc@unt=#1\advance\lc@unt by-1%
  12.112 +\ln@xt=\LGnuminterval\advance\ln@xt by-1%
  12.113 +\loop\ifnum\lc@unt>\ln@xt\advance\ln@xt by\LGnuminterval\repeat%
  12.114 +\def\LB{\hbox\bgroup\bgroup\box\ls@far\CF\let\next=}%
  12.115 +\def\Tab##1{\egroup\setbox\tb@x=\lastbox\TBw@d=\wd\tb@x%
  12.116 + \advance\TBw@d by 1\@ts\ifdim\TBw@d>##1\@ts
  12.117 +  \setbox\ls@far=\hbox{\box\ls@far \box\tb@x \sp@ce}\else
  12.118 +  \setbox\ls@far=\hbox to ##1\@ts{\box\ls@far \box\tb@x \hfil}\fi\LB}%
  12.119 +\ifLGinline\def\sp@ce{\hskip .3333em}%
  12.120 +\else \setbox\tb@x=\hbox{\texttt{0}}%
  12.121 +      \@ts=0.8\wd\tb@x \def\sp@ce{\hskip 1\@ts}\fi
  12.122 +\catcode`\_=\active \@setunder
  12.123 +\def\CF{\ifc@mment\CMfont\else\ifstr@ng\STfont\fi\fi}
  12.124 +\def\N##1{{\NOfont ##1}\global\futurelet\next\ic@r}%
  12.125 +\def\K##1{{\KWfont ##1}\global\futurelet\next\ic@r}%
  12.126 +\def\V##1{{\VRfont ##1}\global\futurelet\next\ic@r}%
  12.127 +\def\ic@r{\let\@tempa\/\ifx.\next\let\@tempa\relax%
  12.128 + \else\ifx,\next\let\@tempa\relax\fi\fi\@tempa}%
  12.129 +\def\C{\egroup\bgroup\CMfont \global\c@mmenttrue \global\right@false}%
  12.130 +\def\CE{\egroup\bgroup \global\c@mmentfalse}%
  12.131 +\def\S{\egroup\bgroup\STfont \global\str@ngtrue}%
  12.132 +\def\SE{\egroup\bgroup \global\str@ngfalse}%
  12.133 +\def\,{\relax \ifmmode\mskip\thinmuskip \else\thinspace \fi}%
  12.134 +\def\!{\relax \ifmmode\mskip-\thinmuskip \else\negthinspace \fi}%
  12.135 +\def\CH##1##2##3{\relax\ifmmode ##1\relax
  12.136 +\else\ifstr@ng ##2\relax\else$##3$\fi\fi }%
  12.137 +\def\{{\CH\lbrace {\char'173}\lbrace }%
  12.138 +\def\}{\CH\rbrace {\char'175}\rbrace }%
  12.139 +\def\1{\CH///}%                                % /
  12.140 +\def\2{\CH\backslash {\char'134}\backslash }%  % \
  12.141 +\def\|{\CH|{\char'174}|}%
  12.142 +\def\<{\CH<<<}%
  12.143 +\def\>{\CH>>>}%
  12.144 +\def\*{\CH***}\relax %\relax for DOCSTY
  12.145 +\def\-{\CH---}%
  12.146 +\def\_{\ifstr@ng {\char'137}\else
  12.147 +  \leavevmode \kern.06em \vbox{\hrule width.35em}%
  12.148 +  \ifdim\fontdimen\@ne\font=\z@ \kern.06em \fi\fi }%
  12.149 +\def\&{\textsf{\char'046}}%
  12.150 +\def\#{{\STfont\char'043}}%
  12.151 +\def\%{{\char'045}}%
  12.152 +\def\~{{\char'176}}%
  12.153 +\def\3{\ifc@mment\ifright@ ''\global\right@false%
  12.154 +                      \else``\global\right@true \fi
  12.155 +   \else{\texttt{\char'042}}\fi}%
  12.156 +\def\4{\ifc@mment'\else {\texttt{\char'015}}\fi}%
  12.157 +\def\5{{\texttt{\char'136}}}%
  12.158 +\def\${{\ifmmode\slshape\else\ifdim\fontdimen\@ne\font>\z@\slshape\fi\fi
  12.159 +  \char'044}}% %No $ in \it, use \sl
  12.160 +\parindent\z@\parskip\z@ plus 1pt\hsize\linewidth%
  12.161 +\bgroup\BGfont
  12.162 +}
  12.163 +{\egroup\@@par}           % end of environment lgrind
  12.164 +\def\lgrinde{\ifLGinline\else\LGsize\fi\begin{lgrind}}
  12.165 +\def\endlgrinde{\end{lgrind}}
  12.166 +\def\lagrind{\@ifstar{\@slagrind}{\@lagrind}}
  12.167 +
  12.168 +\def\@lagrind{\@ifnextchar[{\@@lagrind}{\@@lagrind[t]}}
  12.169 +\def\@slagrind{\@ifnextchar[{\@@slagrind}{\@@slagrind[t]}}
  12.170 +\def\@@lagrind[#1]#2#3#4{%
  12.171 +    \begin{figure}[#1]
  12.172 +\ifLGnorules\else\hrule\fi
  12.173 +\vskip .5\baselineskip
  12.174 +\begin{minipage}\columnwidth\LGsize\LGindent\z@
  12.175 +    \begin{lgrind}
  12.176 +\input #2\relax
  12.177 +    \end{lgrind}
  12.178 +\end{minipage}
  12.179 +\vskip .5\baselineskip plus .5\baselineskip
  12.180 +\ifLGnorules\else\hrule\fi\vskip .5\baselineskip
  12.181 +\begingroup
  12.182 +    \setbox\z@=\hbox{#4}%
  12.183 +    \ifdim\wd\z@>\z@
  12.184 +\caption{#3}%
  12.185 +\label{#4}%
  12.186 +    \else
  12.187 +\captcont{#3}%
  12.188 +    \fi
  12.189 +\endgroup
  12.190 +\vskip 2pt
  12.191 +    \end{figure}
  12.192 +}
  12.193 +\def\@@slagrind[#1]#2#3#4{%
  12.194 +    \begin{figure*}[#1]
  12.195 +\ifLGnorules\else\hrule\fi
  12.196 +\vskip .5\baselineskip
  12.197 +\begin{minipage}\linewidth\LGsize\LGindent\z@
  12.198 +    \begin{lgrind}
  12.199 +\input #2\relax
  12.200 +    \end{lgrind}
  12.201 +\end{minipage}
  12.202 +\vskip .5\baselineskip plus .5\baselineskip
  12.203 +\ifLGnorules\else\hrule\fi\vskip .5\baselineskip
  12.204 +\begingroup
  12.205 +    \setbox\z@=\hbox{#4}%
  12.206 +    \ifdim\wd\z@>\z@
  12.207 +\caption{#3}%
  12.208 +\label{#4}%
  12.209 +    \else
  12.210 +\captcont{#3}%
  12.211 +    \fi
  12.212 +\endgroup
  12.213 +\vskip 2pt
  12.214 +    \end{figure*}
  12.215 +}
  12.216 +\def\lgrindfile#1{%
  12.217 +    \par\addvspace{0.1in}
  12.218 +    \ifLGnorules\else\hrule\fi
  12.219 +    \vskip .5\baselineskip
  12.220 +    \begingroup\LGfsize\LGindent\z@
  12.221 +\begin{lgrind}
  12.222 +    \input #1\relax
  12.223 +\end{lgrind}
  12.224 +    \endgroup
  12.225 +    \vskip .5\baselineskip
  12.226 +    \ifLGnorules\else\hrule\fi
  12.227 +    \addvspace{0.1in}
  12.228 +}
  12.229 +\endinput
  12.230 +%%
  12.231 +%% End of file `lgrind.sty'.
    13.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    13.2 +++ b/thesis/mitthesis/main.bib	Fri Mar 21 00:08:49 2014 -0400
    13.3 @@ -0,0 +1,356 @@
    13.4 +@preamble{ "\newcommand{\noopsort}[1]{} "
    13.5 +	# "\newcommand{\printfirst}[2]{#1} "
    13.6 +	# "\newcommand{\singleletter}[1]{#1} "
    13.7 +	# "\newcommand{\switchargs}[2]{#2#1} " }
    13.8 +
    13.9 +@ARTICLE{article-minimal,
   13.10 +   author = {L[eslie] A. Aamport},
   13.11 +   title = {The Gnats and Gnus Document Preparation System},
   13.12 +   journal = {\mbox{G-Animal's} Journal},
   13.13 +   year = 1986,
   13.14 +}
   13.15 +
   13.16 +@ARTICLE{article-full,
   13.17 +   author = {L[eslie] A. Aamport},
   13.18 +   title = {The Gnats and Gnus Document Preparation System},
   13.19 +   journal = {\mbox{G-Animal's} Journal},
   13.20 +   year = 1986,
   13.21 +   volume = 41,
   13.22 +   number = 7,
   13.23 +   pages = "73+",
   13.24 +   month = jul,
   13.25 +   note = "This is a full ARTICLE entry",
   13.26 +}
   13.27 +
   13.28 +The KEY field is here to override the KEY field in the journal being
   13.29 +cross referenced (so is the NOTE field, in addition to its imparting
   13.30 +information).
   13.31 +
   13.32 +@ARTICLE{article-crossref,
   13.33 +   crossref = {WHOLE-JOURNAL},
   13.34 +   key = "",
   13.35 +   author = {L[eslie] A. Aamport},
   13.36 +   title = {The Gnats and Gnus Document Preparation System},
   13.37 +   pages = "73+",
   13.38 +   note = "This is a cross-referencing ARTICLE entry",
   13.39 +}
   13.40 +
   13.41 +@ARTICLE{whole-journal,
   13.42 +   key = "GAJ",
   13.43 +   journal = {\mbox{G-Animal's} Journal},
   13.44 +   year = 1986,
   13.45 +   volume = 41,
   13.46 +   number = 7,
   13.47 +   month = jul,
   13.48 +   note = {The entire issue is devoted to gnats and gnus
   13.49 +		(this entry is a cross-referenced ARTICLE (journal))},
   13.50 +}
   13.51 +
   13.52 +@INBOOK{inbook-minimal,
   13.53 +   author = "Donald E. Knuth",
   13.54 +   title = "Fundamental Algorithms",
   13.55 +   publisher = "Addison-Wesley",
   13.56 +   year = "{\noopsort{1973b}}1973",
   13.57 +   chapter = "1.2",
   13.58 +}
   13.59 +
   13.60 +@INBOOK{inbook-full,
   13.61 +   author = "Donald E. Knuth",
   13.62 +   title = "Fundamental Algorithms",
   13.63 +   volume = 1,
   13.64 +   series = "The Art of Computer Programming",
   13.65 +   publisher = "Addison-Wesley",
   13.66 +   address = "Reading, Massachusetts",
   13.67 +   edition = "Second",
   13.68 +   month = "10~" # jan,
   13.69 +   year = "{\noopsort{1973b}}1973",
   13.70 +   type = "Section",
   13.71 +   chapter = "1.2",
   13.72 +   pages = "10--119",
   13.73 +   note = "This is a full INBOOK entry",
   13.74 +}
   13.75 +
   13.76 +@INBOOK{inbook-crossref,
   13.77 +   crossref = "whole-set",
   13.78 +   title = "Fundamental Algorithms",
   13.79 +   volume = 1,
   13.80 +   series = "The Art of Computer Programming",
   13.81 +   edition = "Second",
   13.82 +   year = "{\noopsort{1973b}}1973",
   13.83 +   type = "Section",
   13.84 +   chapter = "1.2",
   13.85 +   note = "This is a cross-referencing INBOOK entry",
   13.86 +}
   13.87 +
   13.88 +@BOOK{book-minimal,
   13.89 +   author = "Donald E. Knuth",
   13.90 +   title = "Seminumerical Algorithms",
   13.91 +   publisher = "Addison-Wesley",
   13.92 +   year = "{\noopsort{1973c}}1981",
   13.93 +}
   13.94 +
   13.95 +@BOOK{book-full,
   13.96 +   author = "Donald E. Knuth",
   13.97 +   title = "Seminumerical Algorithms",
   13.98 +   volume = 2,
   13.99 +   series = "The Art of Computer Programming",
  13.100 +   publisher = "Addison-Wesley",
  13.101 +   address = "Reading, Massachusetts",
  13.102 +   edition = "Second",
  13.103 +   month = "10~" # jan,
  13.104 +   year = "{\noopsort{1973c}}1981",
  13.105 +   note = "This is a full BOOK entry",
  13.106 +}
  13.107 +
  13.108 +@BOOK{book-crossref,
  13.109 +   crossref = "whole-set",
  13.110 +   title = "Seminumerical Algorithms",
  13.111 +   volume = 2,
  13.112 +   series = "The Art of Computer Programming",
  13.113 +   edition = "Second",
  13.114 +   year = "{\noopsort{1973c}}1981",
  13.115 +   note = "This is a cross-referencing BOOK entry",
  13.116 +}
  13.117 +
  13.118 +@BOOK{whole-set,
  13.119 +   author = "Donald E. Knuth",
  13.120 +   publisher = "Addison-Wesley",
  13.121 +   title = "The Art of Computer Programming",
  13.122 +   series = "Four volumes",
  13.123 +   year = "{\noopsort{1973a}}{\switchargs{--90}{1968}}",
  13.124 +   note = "Seven volumes planned (this is a cross-referenced set of BOOKs)",
  13.125 +}
  13.126 +
  13.127 +@BOOKLET{booklet-minimal,
  13.128 +   key = "Kn{\printfirst{v}{1987}}",
  13.129 +   title = "The Programming of Computer Art",
  13.130 +}
  13.131 +
  13.132 +@BOOKLET{booklet-full,
  13.133 +   author = "Jill C. Knvth",
  13.134 +   title = "The Programming of Computer Art",
  13.135 +   howpublished = "Vernier Art Center",
  13.136 +   address = "Stanford, California",
  13.137 +   month = feb,
  13.138 +   year = 1988,
  13.139 +   note = "This is a full BOOKLET entry",
  13.140 +}
  13.141 +
  13.142 +@INCOLLECTION{incollection-minimal,
  13.143 +   author = "Daniel D. Lincoll",
  13.144 +   title = "Semigroups of Recurrences",
  13.145 +   booktitle = "High Speed Computer and Algorithm Organization",
  13.146 +   publisher = "Academic Press",
  13.147 +   year = 1977,
  13.148 +}
  13.149 +
  13.150 +@INCOLLECTION{incollection-full,
  13.151 +   author = "Daniel D. Lincoll",
  13.152 +   title = "Semigroups of Recurrences",
  13.153 +   editor = "David J. Lipcoll and D. H. Lawrie and A. H. Sameh",
  13.154 +   booktitle = "High Speed Computer and Algorithm Organization",
  13.155 +   number = 23,
  13.156 +   series = "Fast Computers",
  13.157 +   chapter = 3,
  13.158 +   type = "Part",
  13.159 +   pages = "179--183",
  13.160 +   publisher = "Academic Press",
  13.161 +   address = "New York",
  13.162 +   edition = "Third",
  13.163 +   month = sep,
  13.164 +   year = 1977,
  13.165 +   note = "This is a full INCOLLECTION entry",
  13.166 +}
  13.167 +
  13.168 +@INCOLLECTION{incollection-crossref,
  13.169 +   crossref = "whole-collection",
  13.170 +   author = "Daniel D. Lincoll",
  13.171 +   title = "Semigroups of Recurrences",
  13.172 +   pages = "179--183",
  13.173 +   note = "This is a cross-referencing INCOLLECTION entry",
  13.174 +}
  13.175 +
  13.176 +@BOOK{whole-collection,
  13.177 +   editor = "David J. Lipcoll and D. H. Lawrie and A. H. Sameh",
  13.178 +   title = "High Speed Computer and Algorithm Organization",
  13.179 +   booktitle = "High Speed Computer and Algorithm Organization",
  13.180 +   number = 23,
  13.181 +   series = "Fast Computers",
  13.182 +   publisher = "Academic Press",
  13.183 +   address = "New York",
  13.184 +   edition = "Third",
  13.185 +   month = sep,
  13.186 +   year = 1977,
  13.187 +   note = "This is a cross-referenced BOOK (collection) entry",
  13.188 +}
  13.189 +
  13.190 +@MANUAL{manual-minimal,
  13.191 +   key = "Manmaker",
  13.192 +   title = "The Definitive Computer Manual",
  13.193 +}
  13.194 +
  13.195 +@MANUAL{manual-full,
  13.196 +   author = "Larry Manmaker",
  13.197 +   title = "The Definitive Computer Manual",
  13.198 +   organization = "Chips-R-Us",
  13.199 +   address = "Silicon Valley",
  13.200 +   edition = "Silver",
  13.201 +   month = apr # "-" # may,
  13.202 +   year = 1986,
  13.203 +   note = "This is a full MANUAL entry",
  13.204 +}
  13.205 +
  13.206 +@MASTERSTHESIS{mastersthesis-minimal,
  13.207 +   author = "{\'{E}}douard Masterly",
  13.208 +   title = "Mastering Thesis Writing",
  13.209 +   school = "Stanford University",
  13.210 +   year = 1988,
  13.211 +}
  13.212 +
  13.213 +@MASTERSTHESIS{mastersthesis-full,
  13.214 +   author = "{\'{E}}douard Masterly",
  13.215 +   title = "Mastering Thesis Writing",
  13.216 +   school = "Stanford University",
  13.217 +   type = "Master's project",
  13.218 +   address = "English Department",
  13.219 +   month = jun # "-" # aug,
  13.220 +   year = 1988,
  13.221 +   note = "This is a full MASTERSTHESIS entry",
  13.222 +}
  13.223 +
  13.224 +@MISC{misc-minimal,
  13.225 +   key = "Missilany",
  13.226 +   note = "This is a minimal MISC entry",
  13.227 +}
  13.228 +
  13.229 +@MISC{misc-full,
  13.230 +   author = "Joe-Bob Missilany",
  13.231 +   title = "Handing out random pamphlets in airports",
  13.232 +   howpublished = "Handed out at O'Hare",
  13.233 +   month = oct,
  13.234 +   year = 1984,
  13.235 +   note = "This is a full MISC entry",
  13.236 +}
  13.237 +
  13.238 +@STRING{STOC-key = "OX{\singleletter{stoc}}"}
  13.239 +
  13.240 +@STRING{ACM = "The OX Association for Computing Machinery"}
  13.241 +
  13.242 +@STRING{STOC = " Symposium on the Theory of Computing"}
  13.243 +
  13.244 +@INPROCEEDINGS{inproceedings-minimal,
  13.245 +   author = "Alfred V. Oaho and Jeffrey D. Ullman and Mihalis Yannakakis",
  13.246 +   title = "On Notions of Information Transfer in {VLSI} Circuits",
  13.247 +   booktitle = "Proc. Fifteenth Annual ACM" # STOC,
  13.248 +   year = 1983,
  13.249 +}
  13.250 +
  13.251 +@INPROCEEDINGS{inproceedings-full,
  13.252 +   author = "Alfred V. Oaho and Jeffrey D. Ullman and Mihalis Yannakakis",
  13.253 +   title = "On Notions of Information Transfer in {VLSI} Circuits",
  13.254 +   editor = "Wizard V. Oz and Mihalis Yannakakis",
  13.255 +   booktitle = "Proc. Fifteenth Annual ACM" # STOC,
  13.256 +   number = 17,
  13.257 +   series = "All ACM Conferences",
  13.258 +   pages = "133--139",
  13.259 +   month = mar,
  13.260 +   year = 1983,
  13.261 +   address = "Boston",
  13.262 +   organization = ACM,
  13.263 +   publisher = "Academic Press",
  13.264 +   note = "This is a full INPROCEDINGS entry",
  13.265 +}
  13.266 +
  13.267 +@INPROCEEDINGS{inproceedings-crossref,
  13.268 +   crossref = "whole-proceedings",
  13.269 +   author = "Alfred V. Oaho and Jeffrey D. Ullman and Mihalis Yannakakis",
  13.270 +   title = "On Notions of Information Transfer in {VLSI} Circuits",
  13.271 +   organization = "",
  13.272 +   pages = "133--139",
  13.273 +   note = "This is a cross-referencing INPROCEEDINGS entry",
  13.274 +}
  13.275 +
  13.276 +@PROCEEDINGS{proceedings-minimal,
  13.277 +   key = STOC-key,
  13.278 +   title = "Proc. Fifteenth Annual" # STOC,
  13.279 +   year = 1983,
  13.280 +}
  13.281 +
  13.282 +@PROCEEDINGS{proceedings-full,
  13.283 +   editor = "Wizard V. Oz and Mihalis Yannakakis",
  13.284 +   title = "Proc. Fifteenth Annual" # STOC,
  13.285 +   number = 17,
  13.286 +   series = "All ACM Conferences",
  13.287 +   month = mar,
  13.288 +   year = 1983,
  13.289 +   address = "Boston",
  13.290 +   organization = ACM,
  13.291 +   publisher = "Academic Press",
  13.292 +   note = "This is a full PROCEEDINGS entry",
  13.293 +}
  13.294 +
  13.295 +@PROCEEDINGS{whole-proceedings,
  13.296 +   key = STOC-key,
  13.297 +   organization = ACM,
  13.298 +   title = "Proc. Fifteenth Annual" # STOC,
  13.299 +   address = "Boston",
  13.300 +   year = 1983,
  13.301 +   booktitle = "Proc. Fifteenth Annual ACM" # STOC,
  13.302 +   note = "This is a cross-referenced PROCEEDINGS",
  13.303 +}
  13.304 +
  13.305 +@PHDTHESIS{phdthesis-minimal,
  13.306 +   author = "F. Phidias Phony-Baloney",
  13.307 +   title = "Fighting Fire with Fire: Festooning {F}rench Phrases",
  13.308 +   school = "Fanstord University",
  13.309 +   year = 1988,
  13.310 +}
  13.311 +
  13.312 +@PHDTHESIS{phdthesis-full,
  13.313 +   author = "F. Phidias Phony-Baloney",
  13.314 +   title = "Fighting Fire with Fire: Festooning {F}rench Phrases",
  13.315 +   school = "Fanstord University",
  13.316 +   type = "{PhD} Dissertation",
  13.317 +   address = "Department of French",
  13.318 +   month = jun # "-" # aug,
  13.319 +   year = 1988,
  13.320 +   note = "This is a full PHDTHESIS entry",
  13.321 +}
  13.322 +
  13.323 +@TECHREPORT{techreport-minimal,
  13.324 +   author = "Tom Terrific",
  13.325 +   title = "An {$O(n \log n / \! \log\log n)$} Sorting Algorithm",
  13.326 +   institution = "Fanstord University",
  13.327 +   year = 1988,
  13.328 +}
  13.329 +
  13.330 +@TECHREPORT{techreport-full,
  13.331 +   author = "Tom T{\'{e}}rrific",
  13.332 +   title = "An {$O(n \log n / \! \log\log n)$} Sorting Algorithm",
  13.333 +   institution = "Fanstord University",
  13.334 +   type = "Wishful Research Result",
  13.335 +   number = "7",
  13.336 +   address = "Computer Science Department, Fanstord, California",
  13.337 +   month = oct,
  13.338 +   year = 1988,
  13.339 +   note = "This is a full TECHREPORT entry",
  13.340 +}
  13.341 +
  13.342 +@UNPUBLISHED{unpublished-minimal,
  13.343 +   author = "Ulrich {\"{U}}nderwood and Ned {\~N}et and Paul {\={P}}ot",
  13.344 +   title = "Lower Bounds for Wishful Research Results",
  13.345 +   note = "Talk at Fanstord University (this is a minimal UNPUBLISHED entry)",
  13.346 +}
  13.347 +
  13.348 +@UNPUBLISHED{unpublished-full,
  13.349 +   author = "Ulrich {\"{U}}nderwood and Ned {\~N}et and Paul {\={P}}ot",
  13.350 +   title = "Lower Bounds for Wishful Research Results",
  13.351 +   month = nov # ", " # dec,
  13.352 +   year = 1988,
  13.353 +   note = "Talk at Fanstord University (this is a full UNPUBLISHED entry)",
  13.354 +}
  13.355 +
  13.356 +@MISC{random-note-crossref,
  13.357 +   key = {Volume-2},
  13.358 +   note = "Volume~2 is listed under Knuth \cite{book-full}"
  13.359 +}
    14.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    14.2 +++ b/thesis/mitthesis/main.bib.info	Fri Mar 21 00:08:49 2014 -0400
    14.3 @@ -0,0 +1,67 @@
    14.4 +To comment out part of an entry in BibTeX, you can use:
    14.5 +
    14.6 +	@Comment{body of text}
    14.7 +
    14.8 +If you wish to comment out the entire entry, just remove the @ sign in
    14.9 +front of the entry type (i.e., get rid of the '@' in "@Book").
   14.10 +
   14.11 +*************************************************************************
   14.12 +
   14.13 +You can specify fixed strings (say if you needed to use it multiple
   14.14 +times in your BibTeX file) with the @String command:
   14.15 +
   14.16 +	@String(Leslie-Lamport = {Leslie Lamport})
   14.17 +
   14.18 +and then you could use it in various entries:
   14.19 +
   14.20 +	@Book{latex,
   14.21 +		Author = Leslie-Lamport,
   14.22 +		Title = "\LaTeX",
   14.23 +		...
   14.24 +		Year = "1993"}
   14.25 +
   14.26 +*************************************************************************
   14.27 +
   14.28 +The required fields are not prefaced with OPT.  Those that are optional
   14.29 +*are* prefaced with OPT (remember to delete those three characters should
   14.30 +you wish to use those fields).
   14.31 +
   14.32 +[Note:
   14.33 +     For most entry types the "author" information is simply the AUTHOR
   14.34 +field.  However:  For the @Book and @Inbook entry types it's the AUTHOR
   14.35 +field, but if there's no author then it's the EDITOR field; for the
   14.36 +@Manual entry type it's the AUTHOR field, but if there's no author then
   14.37 +it's the ORGANIZATION field; and for the @Proceedings entry type it's
   14.38 +the EDITOR filed, but if there's no editor then it's the ORGANIZATION
   14.39 +field.]
   14.40 +
   14.41 +To use this, just have your main.tex specify the following:
   14.42 +
   14.43 +	\bibliography{main}
   14.44 +	\bibliographystyle{plain}
   14.45 +
   14.46 +There are several options for bibliographystyle:
   14.47 +
   14.48 +        plain   normal style - listed in ABC order and labeled numerically
   14.49 +        unsrt   same as plain except entries appear in order of citation
   14.50 +        alpha   same as plain except entry labels are used
   14.51 +        abbrv   same as plain except uses abbreviations for first names,
   14.52 +                month names, and journal names
   14.53 +
   14.54 +Now that you have the basis for a bibliography, you have to run both
   14.55 +latex and bibtex on the document.  First, you should run latex (to
   14.56 +create a foo.aux file, which bibtex reads).  Then run bibtex once to get
   14.57 +some of the citations and create a .bbl file.  Then run latex again so
   14.58 +that the cross references between the text file and the bibliography are
   14.59 +correct.  You may want to repeat running bibtex and latex on the file to
   14.60 +make sure that all cross references are correct.  Be warned that
   14.61 +adding/deleting citations and sources will require running bibtex again.
   14.62 +
   14.63 +For more information on this topic, please refer the following pages in
   14.64 +the LaTeX manual by Leslie Lamport:
   14.65 +
   14.66 +        72-74    Bibliography and Citation
   14.67 +        74-74    BibTeX
   14.68 +        140-147  Format of the .bib File (also gives info on other entry types)        187-188  Bibliography and Citation
   14.69 +
   14.70 +                 ----------------------------------------
    15.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    15.2 +++ b/thesis/mitthesis/main.tex	Fri Mar 21 00:08:49 2014 -0400
    15.3 @@ -0,0 +1,57 @@
    15.4 +% -*- Mode:TeX -*-
    15.5 +
    15.6 +%% IMPORTANT: The official thesis specifications are available at:
    15.7 +%%            http://libraries.mit.edu/archives/thesis-specs/
    15.8 +%%
    15.9 +%%            Please verify your thesis' formatting and copyright
   15.10 +%%            assignment before submission.  If you notice any
   15.11 +%%            discrepancies between these templates and the 
   15.12 +%%            MIT Libraries' specs, please let us know
   15.13 +%%            by e-mailing thesis@mit.edu
   15.14 +
   15.15 +%% The documentclass options along with the pagestyle can be used to generate
   15.16 +%% a technical report, a draft copy, or a regular thesis.  You may need to
   15.17 +%% re-specify the pagestyle after you \include  cover.tex.  For more
   15.18 +%% information, see the first few lines of mitthesis.cls. 
   15.19 +
   15.20 +%\documentclass[12pt,vi,twoside]{mitthesis}
   15.21 +%%
   15.22 +%%  If you want your thesis copyright to you instead of MIT, use the
   15.23 +%%  ``vi'' option, as above.
   15.24 +%%
   15.25 +%\documentclass[12pt,twoside,leftblank]{mitthesis}
   15.26 +%%
   15.27 +%% If you want blank pages before new chapters to be labelled ``This
   15.28 +%% Page Intentionally Left Blank'', use the ``leftblank'' option, as
   15.29 +%% above. 
   15.30 +
   15.31 +\documentclass[12pt,twoside]{mitthesis}
   15.32 +\usepackage{lgrind}
   15.33 +\pagestyle{plain}
   15.34 +
   15.35 +%% This bit allows you to either specify only the files which you wish to
   15.36 +%% process, or `all' to process all files which you \include.
   15.37 +%% Krishna Sethuraman (1990).
   15.38 +
   15.39 +\typein [\files]{Enter file names to process, (chap1,chap2 ...), or `all' to
   15.40 +process all files:}
   15.41 +\def\all{all}
   15.42 +\ifx\files\all \typeout{Including all files.} \else \typeout{Including only \files.} \includeonly{\files} \fi
   15.43 +
   15.44 +\begin{document}
   15.45 +
   15.46 +\include{cover}
   15.47 +% Some departments (e.g. 5) require an additional signature page.  See
   15.48 +% signature.tex for more information and uncomment the following line if
   15.49 +% applicable.
   15.50 +% \include{signature}
   15.51 +\pagestyle{plain}
   15.52 +\include{contents}
   15.53 +\include{chap1}
   15.54 +\include{chap2}
   15.55 +\appendix
   15.56 +\include{appa}
   15.57 +\include{appb}
   15.58 +\include{biblio}
   15.59 +\end{document}
   15.60 +
    16.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    16.2 +++ b/thesis/mitthesis/mitthesis.cls	Fri Mar 21 00:08:49 2014 -0400
    16.3 @@ -0,0 +1,535 @@
    16.4 +% $Log: mitthesis.cls,v $
    16.5 +% Revision 1.9  2012/02/15 15:48:16  jdreed
    16.6 +% Tweak the "permission" statement per the Libraries' specs
    16.7 +% retrieved 15-Feb-2012
    16.8 +%
    16.9 +% Revision 1.8  2009/07/27 14:23:50  boojum
   16.10 +% added changing draft mark
   16.11 +%
   16.12 +% Revision 1.6  2005/05/13 19:57:40  boojum
   16.13 +% added leftblank option
   16.14 +%
   16.15 +% Revision 1.5  2002/04/18 14:10:08  boojum
   16.16 +% changed doublespace into setspace for 2e compliance
   16.17 +%
   16.18 +% Revision 1.4  2001/02/08 18:57:13  boojum
   16.19 +% turned two newpages into cleardoublepages
   16.20 +%
   16.21 +% Revision 1.3  2000/08/14 14:53:29  boojum
   16.22 +% commented out footheight, which is relevant for drafthead
   16.23 +%
   16.24 +% Revision 1.2  1999/10/21 14:51:33  boojum
   16.25 +% changed references to documentstyle to documentclass in comments
   16.26 +%
   16.27 +% Revision 1.1  1999/10/21 14:39:31  boojum
   16.28 +% Initial revision
   16.29 +%
   16.30 +%Revision 1.7  1998/04/01  20:45:34  othomas
   16.31 +%removed offending phrase ", and to grant others the right to do so" from copyright notice.
   16.32 +%
   16.33 +%Revision 1.6  96/06/26  15:07:29  othomas
   16.34 +%safety checkin.
   16.35 +%
   16.36 +%Revision 1.5  93/06/07  15:38:50  starflt
   16.37 +%Altered 'vi' option copyright wording to comply with new Institute
   16.38 +%Archives requirements and MIT lawyers.
   16.39 +%
   16.40 +%Revision 1.4  92/08/19  16:51:06  lwvanels
   16.41 +%Updated Course 6 title page for new permissions.
   16.42 +%
   16.43 +%Revision 1.3  92/04/23  10:16:15  epeisach
   16.44 +%Fixed comment character in rcs file
   16.45 +%
   16.46 +%Revision 1.2  92/04/22  13:12:02  epeisach
   16.47 +%Fixes for 1991 course 6 requirements
   16.48 +%Phrase "and to grant others the right to do so" has been added to 
   16.49 +%permission clause
   16.50 +%Second copy of abstract is not counted as separate pages so numbering works
   16.51 +%out
   16.52 +%
   16.53 +%Revision 1.1  90/05/04  11:45:53  lwvanels
   16.54 +%Initial revision
   16.55 +
   16.56 +%
   16.57 +% LaTeX format for theses at MIT
   16.58 +% Based on "Specifications for Thesis Preparation" 
   16.59 +
   16.60 +% `vi' and `upcase' options by Krishna Sethuraman - krishna@athena.mit.edu
   16.61 +% Margins and heading types by Peter Nuth  - nuth@ai.mit.edu
   16.62 +% Title and abstract page by Stephen Gildea - gildea@erl.mit.edu
   16.63 +% Look in this directory for example file mitthesis.doc
   16.64 +% Also for propcover.tex - Boilerplate for PHD proposal.
   16.65 +
   16.66 +% To use this style - say something like:
   16.67 +%  for dull, boring thesis format:
   16.68 +%	\documentclass[12pt]{mitthesis}
   16.69 +%       \pagestyle{plain}
   16.70 +% OR for fast drafts: 
   16.71 +%	\documentclass[11pt,singlespace,draft]{mitthesis}
   16.72 +%	\pagestyle{drafthead}
   16.73 +% OR for Tech Reports:
   16.74 +%	\documentclass[12pt,twoside]{mitthesis}	
   16.75 +%	\pagestyle{headings}
   16.76 +% OR
   16.77 +%  some other combination...
   16.78 +%
   16.79 +%%%% New options:
   16.80 +% 
   16.81 +% Option `twoside':
   16.82 +%   Good for producing Tech Reports.
   16.83 +%   The default is single-sided printing, which is what M.I.T. wants on the
   16.84 +%   thesis document itself.
   16.85 +%
   16.86 +% Option `singlespace':
   16.87 +%   Good for drafts.
   16.88 +%   Double-spaced theses are the default.
   16.89 +%   That is what M.I.T. asks for in the formal specifications.
   16.90 +%
   16.91 +% 	Note that MIT does not REQUIRE all theses to be double-spaced anymore.
   16.92 +% 	Someone in the library system said that it's OK to be single-spaced.
   16.93 +% 	(Regardless of what the specs. say...)
   16.94 +%   To get singlespacing in an area - Use  the 'singlespace' environment. 
   16.95 +%
   16.96 +% Option `draft':
   16.97 +%   Puts `overfull' boxes at the end of lines that are too long. 
   16.98 +%
   16.99 +% Pagestyle `drafthead':
  16.100 +%   Puts the date and the label ``*DRAFT*'' in the footer.
  16.101 +%
  16.102 +%%%%%%%%%%
  16.103 +%
  16.104 +%%%% Parameters to initialize for boilerplate page:
  16.105 +%
  16.106 +%	\title{Mixed Circular Cylindrical Shells}
  16.107 +% 	\author{J. Casey Salas}
  16.108 +% 	\prevdegrees{B.S., University of California (1978) \\
  16.109 +%		     S.M., Massachusetts Institute of Technology (1981)}
  16.110 +% 	\department{Department of Electrical Engineering and Computer Science}
  16.111 +% 	\degree{Doctor of Philosophy}
  16.112 +%% If the thesis is for two degrees simultaneously, list them both
  16.113 +%% separated by \and like this:
  16.114 +% 	\degree{Doctor of Philosophy \and Master of Science}
  16.115 +% 	\degreemonth{February}
  16.116 +% 	\degreeyear{1987}
  16.117 +% 	\thesisdate{December 10, 1986}
  16.118 +%% If the thesis is copyright by the Institute, leave this line out and
  16.119 +%% the standard copyright line will be used instead.
  16.120 +% 	\copyrightnotice{J. Casey Salas, 1986}
  16.121 +%% If there is more than one supervisor, use the \supervisor command
  16.122 +%% once for each.
  16.123 +% 	\supervisor{John D. Galli}{Director, Sound Instrument Laboratory}
  16.124 +%% This is the department committee chairman, not the thesis committee chairman
  16.125 +% 	\chairman{Arthur C. Smith}
  16.126 +%		 {Chairman, Departmental Committee on Graduate Students}
  16.127 +%% Make the titlepage based on the above information.  If you need
  16.128 +%% something special and can't use the standard form, you can specify
  16.129 +%% the exact text of the titlepage yourself.  Put it in a titlepage
  16.130 +%% environment and leave blank lines where you want vertical space.
  16.131 +%% The spaces will be adjusted to fill the entire page.  The dotted
  16.132 +%% lines for the signatures are made with the \signature command.
  16.133 +%
  16.134 +%% The abstractpage environment sets up everything on the page except
  16.135 +%% the text itself.  The title and other header material are put at the
  16.136 +%% top of the page, and the supervisors are listed at the bottom.  A
  16.137 +%% new page is begun both before and after.  Of course, an abstract may
  16.138 +%% be more than one page itself.  If you need more control over the
  16.139 +%% format of the page, you can use the abstract environment, which puts
  16.140 +%% the word "Abstract" at the beginning and single spaces its text.
  16.141 +%
  16.142 +% 	\begin{abstractpage}
  16.143 +%	    Abstract goes here.
  16.144 +%	\end{abstractpage}
  16.145 +%
  16.146 +%%%%%%%% Newer additions 
  16.147 +%
  16.148 +% documentclass options - 
  16.149 +% vi		For MIT course VI or VIII thesis - will copyright the thesis to
  16.150 +% 		you while giving MIT permission to copy and distribute it.
  16.151 +% upcase	Will put much of the cover page in uppercase, as per the
  16.152 +% 		example on page 17 of the *Specifications for Thesis
  16.153 +% 		Preparation*, (revised 1989)
  16.154 +% Also added ``All Rights Reserved'' to default copyright notice.
  16.155 +%
  16.156 +%%%%%%%%%%%
  16.157 +% 
  16.158 +% Documentclass options (vi and upcase) and changes to copyright notice
  16.159 +%	Copyright (c) 1990, by Krishna Sethuraman.
  16.160 +%
  16.161 +% Pagestyle and header generation
  16.162 +%	Copyright (c) 1987, 1988 by Peter Nuth
  16.163 +%
  16.164 +% Original version
  16.165 +%	 Copyright (c) 1987 by Stephen Gildea
  16.166 +% Permission to copy all or part of this work is granted, provided
  16.167 +% that the copies are not made or distributed for resale, and that
  16.168 +% the copyright notice and this notice are retained.
  16.169 +% 
  16.170 +% THIS WORK IS PROVIDED ON AN "AS IS" BASIS.  THE AUTHOR PROVIDES NO
  16.171 +% WARRANTY WHATSOEVER, EITHER EXPRESS OR IMPLIED, REGARDING THE WORK,
  16.172 +% INCLUDING WARRANTIES WITH RESPECT TO ITS MERCHANTABILITY OR FITNESS
  16.173 +% FOR ANY PARTICULAR PURPOSE.
  16.174 +%%%%%%%%
  16.175 +
  16.176 +\NeedsTeXFormat{LaTeX2e}
  16.177 +\ProvidesClass{mitthesis}[1999/10/20]
  16.178 +
  16.179 +\def\mystretch{1.5}		% Double spacing hack
  16.180 +\DeclareOption{doublespace}{}	% This is default
  16.181 +				% So we do not read this style twice
  16.182 +\DeclareOption{singlespace}{		% If he explicitly wants single spacing
  16.183 +    \typeout{Single spaced}
  16.184 +    \def\mystretch{1}}	
  16.185 +
  16.186 +%% `vi' and `upcase' document style options.  Krishna Sethuraman (1990)
  16.187 +\newcount\vithesis
  16.188 +\DeclareOption{vi}{\typeout{Course VI/VIII thesis style.}\advance\vithesis by1}
  16.189 +\vithesis=0
  16.190 +
  16.191 +\DeclareOption{upcase}{\typeout{Uppercase cover page.}
  16.192 +	\gdef\choosecase#1{\uppercase\expandafter{#1}}}
  16.193 +\def\choosecase#1{#1}
  16.194 +
  16.195 +%% leftblank option by Kevin Fu
  16.196 +\newif\if@leftblank \@leftblankfalse
  16.197 +
  16.198 +\DeclareOption{leftblank}{\typeout{Intentionally Leaving Pages Blank}
  16.199 +\@leftblanktrue}
  16.200 +
  16.201 +%  Thesis looks much like report
  16.202 +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{report}}
  16.203 +\ProcessOptions
  16.204 +\LoadClass{report}
  16.205 +
  16.206 +% If the user wants single spacing, set baselinestretch=1.
  16.207 +
  16.208 +\usepackage{setspace}
  16.209 +
  16.210 +% Note - doublespace.sty has some float-related troubles in
  16.211 +% combination with graphics or color, and is not officially compliant
  16.212 +% with 2e.  setspace is a replacement which is 2e-compliant.
  16.213 +
  16.214 +% Read the doublespace style that we got from Rochester:
  16.215 +%\input setdoublespace.sty 		
  16.216 +
  16.217 +\def\baselinestretch{\mystretch}	% Double spacing hack
  16.218 +
  16.219 +%%%%%%%  Set up margins and formatting params %%%
  16.220 +
  16.221 +% Margins.
  16.222 +%  Note we want 1in top margin assuming no header line, so push header
  16.223 +%	into 1in margin.
  16.224 +%  Draft mode brings the header back down.
  16.225 +
  16.226 +\setlength{\oddsidemargin}{0.25in}	% 1.25in left margin 
  16.227 +\setlength{\evensidemargin}{0.25in}	% 1.25in left margin (even pages)
  16.228 +\setlength{\topmargin}{0.0in}		% 1in top margin
  16.229 +\setlength{\textwidth}{6.0in}		% 6.0in text - 1.25in rt margin
  16.230 +\setlength{\textheight}{9in}		% Body ht for 1in margins
  16.231 +\addtolength{\topmargin}{-\headheight}	% No header, so compensate
  16.232 +\addtolength{\topmargin}{-\headsep}	% for header height and separation
  16.233 +
  16.234 +% The next two macros compensate page style for headers and footers
  16.235 +% We only need them in page styles that USE headers and footers.
  16.236 +    % If we have a header, it must be 1in from top of page.
  16.237 +\def\pulldownheader{			% Shift header down 1in from top
  16.238 +    \addtolength{\topmargin}{\headheight}	
  16.239 +    \addtolength{\topmargin}{\headsep}	
  16.240 +    \addtolength{\textheight}{-\headheight}
  16.241 +    \addtolength{\textheight}{-\headsep}
  16.242 +}
  16.243 +    % If we have a footer, put it 1in up from bottom
  16.244 +\def\pullupfooter{				% Shift footer up
  16.245 +    \addtolength{\textheight}{-\footskip}
  16.246 +%    \addtolength{\textheight}{-\footheight}  %footheight doesn't
  16.247 +%    						exist in 2e
  16.248 +}
  16.249 +
  16.250 +%%%%%%%  End of margins and formatting params %%%
  16.251 +
  16.252 +%%%%%%%  Fix various header and footer problems %%%
  16.253 +
  16.254 +% Draft mark on the right side of left pages (outside)
  16.255 +% this mark is also the only one visible on single sided.
  16.256 +\newcommand{\draftrmark}{**DRAFT**} 
  16.257 +% Draft mark on the left side of right pages (outside)
  16.258 +\newcommand{\draftlmark}{**DRAFT**} % 
  16.259 +
  16.260 +% Macros to make changing the Draft easier
  16.261 +\newcommand{\drmark}[1]{\renewcommand{\draftrmark}{#1}}
  16.262 +\newcommand{\dlmark}[1]{\renewcommand{\draftlmark}{#1}}
  16.263 +\newcommand{\dmark}[1]{\drmark{#1}\dlmark{#1}}
  16.264 +
  16.265 +% Format for draft of thesis.  Define our own PageStyle -
  16.266 +% Just like headings, but has foot lines with the date and warning
  16.267 +
  16.268 +\if@twoside         % If two-sided printing.
  16.269 +\def\ps@drafthead{
  16.270 +    \let\@mkboth\markboth
  16.271 +    \def\@oddfoot{\rm \today \hfil \sc \draftrmark}
  16.272 +    \def\@evenfoot{\sc \draftlmark \hfil \rm \today }
  16.273 +    \def\@evenhead{\rm \thepage\hfil \sl \leftmark}
  16.274 +    \def\@oddhead{\hbox{}\sl \rightmark \hfil \rm\thepage}
  16.275 +    \def\chaptermark##1{\markboth {\uppercase{\ifnum \c@secnumdepth >\m@ne
  16.276 +	\@chapapp\ \thechapter. \ \fi ##1}}{}}
  16.277 +    \def\sectionmark##1{\markright {\uppercase{\ifnum \c@secnumdepth >\z@
  16.278 +	\thesection. \ \fi ##1}}}
  16.279 +    \pulldownheader				% Bring header down from edge
  16.280 +    \pullupfooter				% Bring footer up
  16.281 +}
  16.282 +\else               % If one-sided printing.
  16.283 +\def\ps@drafthead{
  16.284 +    \let\@mkboth\markboth
  16.285 +    \def\@oddfoot{\rm \today \hfil \sc \draftrmark}
  16.286 +    \def\@oddhead{\hbox{}\sl \rightmark \hfil \rm\thepage}
  16.287 +    \def\chaptermark##1{\markright {\uppercase{\ifnum \c@secnumdepth >\m@ne
  16.288 +	\@chapapp\ \thechapter. \ \fi ##1}}}
  16.289 +    \pulldownheader				% Bring header down from edge
  16.290 +    \pullupfooter				% Bring footer up
  16.291 +}
  16.292 +\fi
  16.293 +
  16.294 +% I redefine these formats that were defined in report.sty
  16.295 +% Definition of 'headings' page style 
  16.296 +%  Note the use of ##1 for parameter of \def\chaptermark inside the
  16.297 +%  \def\ps@headings.
  16.298 +%
  16.299 +
  16.300 +\if@twoside					% If two-sided printing.
  16.301 +\def\ps@headings{\let\@mkboth\markboth
  16.302 +    \def\@oddfoot{}
  16.303 +    \def\@evenfoot{}		% No feet.
  16.304 +    \def\@evenhead{\rm \thepage\hfil \sl \leftmark}	% Left heading.
  16.305 +    \def\@oddhead{\hbox{}\sl \rightmark \hfil \rm\thepage}	% Right heading.
  16.306 +    \def\chaptermark##1{\markboth {\uppercase{\ifnum \c@secnumdepth >\m@ne
  16.307 +	\@chapapp\ \thechapter. \ \fi ##1}}{}}	
  16.308 +    \def\sectionmark##1{\markright {\uppercase{\ifnum \c@secnumdepth >\z@
  16.309 +	\thesection. \ \fi ##1}}}
  16.310 +    \pulldownheader				% Bring header down from edge
  16.311 +}
  16.312 +\else						% If one-sided printing.
  16.313 +\def\ps@headings{\let\@mkboth\markboth
  16.314 +    \def\@oddfoot{}
  16.315 +    \def\@evenfoot{}		%     No feet.
  16.316 +    \def\@oddhead{\hbox {}\sl \rightmark \hfil \rm\thepage}	% Heading.
  16.317 +    \def\chaptermark##1{\markright {\uppercase{\ifnum \c@secnumdepth >\m@ne
  16.318 +	\@chapapp\ \thechapter. \ \fi ##1}}}
  16.319 +    \pulldownheader				% Bring header down from edge
  16.320 +}
  16.321 +\fi
  16.322 +
  16.323 +% Redefinition of 'myheadings' page style.  
  16.324 +%
  16.325 +\def\ps@myheadings{\let\@mkboth\@gobbletwo
  16.326 +    \def\@oddfoot{}
  16.327 +    \def\@evenfoot{}
  16.328 +    \def\sectionmark##1{}
  16.329 +    \def\subsectionmark##1{}
  16.330 +    \def\@evenhead{\rm \thepage\hfil\sl\leftmark\hbox {}}	%
  16.331 +    \def\@oddhead{\hbox{}\sl\rightmark \hfil \rm\thepage}	%
  16.332 +    \pulldownheader				% Bring header down from edge
  16.333 +}						
  16.334 +
  16.335 +% Redefine '/chapter' to always start on an odd page.
  16.336 +% Should make no difference in singleside mode.
  16.337 +%
  16.338 +\if@leftblank
  16.339 +% Prints "THIS PAGE INTENTIONALLY LEFT BLANK" on blank pages.
  16.340 +\def\chapter{\clearpage\ifodd\c@page\else
  16.341 +   \hbox{}\par\vfill\centerline%
  16.342 +   {THIS PAGE INTENTIONALLY LEFT BLANK}%
  16.343 +   \vfill\newpage\fi
  16.344 +   \thispagestyle{plain}	% Page style of chapter page is 'plain'
  16.345 +   \global\@topnum\z@		% Prevents figures from going at top of page.
  16.346 +   \@afterindentfalse		% Suppresses indent in first paragraph.  Change
  16.347 +   \secdef\@chapter\@schapter}	% to \@afterindenttrue to have indent.
  16.348 +\else
  16.349 +\def\chapter{\cleardoublepage	% Starts new page.
  16.350 +   \thispagestyle{plain}	% Page style of chapter page is 'plain'
  16.351 +   \global\@topnum\z@		% Prevents figures from going at top of page.
  16.352 +   \@afterindentfalse		% Suppresses indent in first paragraph.  Change
  16.353 +   \secdef\@chapter\@schapter}	% to \@afterindenttrue to have indent.
  16.354 +\fi
  16.355 +% If using the report style, use - instead of . in the figure number.
  16.356 +\@ifundefined{thechapter}{}{\def\thefigure{\thechapter-\arabic{figure}}}
  16.357 +
  16.358 +
  16.359 +%%%%%%%%%  End of Style parameters %%%%
  16.360 +
  16.361 +% Here's Gildea's Boilerplate Stuff.
  16.362 +% Copyright (c) 1987 by Stephen Gildea
  16.363 +% Permission to copy all or part of this work is granted, provided
  16.364 +% that the copies are not made or distributed for resale, and that
  16.365 +% the copyright notice and this notice are retained.
  16.366 +
  16.367 +%% Define all the pieces that go on the title page and the abstract.
  16.368 +
  16.369 +% \title and \author already exist
  16.370 +
  16.371 +\def\prevdegrees#1{\gdef\@prevdegrees{#1}}
  16.372 +\def\@prevdegrees{}
  16.373 +
  16.374 +\def\department#1{\gdef\@department{#1}}
  16.375 +
  16.376 +% If you are getting two degrees, use \and between the names.
  16.377 +\def\degree#1{\setbox0\hbox{#1}	 %for side effect of setting \@degreeword
  16.378 +  \gdef\@degree{#1}}
  16.379 +
  16.380 +% \and is used inside the \degree argument to separate two degrees
  16.381 +\def\and{\gdef\@degreeword{degrees} \par and \par}
  16.382 +\def\@degreeword{degree}
  16.383 +
  16.384 +% The copyright notice stuff is a tremendous mess.
  16.385 +%
  16.386 +% \@copyrightnotice is used by \maketitle to actually put text on the
  16.387 +% page; it defaults to ``Copyright MIT 19xx.  All rights reserved.''
  16.388 +% \copyrightnoticetext takes an argument and defined \@copyrightnotice
  16.389 +% to that argument.  \copyrightnotice takes an argument, and calls
  16.390 +% \copyrightnoticetext with that argument, preceeded by a copyright
  16.391 +% symbol and followed by ``All rights reserved.'' and the standard
  16.392 +% permission notice.
  16.393 +% 
  16.394 +% If you use the 'vi' option, \copyrightnoticetext is used to set the
  16.395 +% copyright to ``(C) Your Name, Current Year in Roman Numerals.''
  16.396 +% followed by the permission notice.
  16.397 +
  16.398 +% If there is no \copyrightnotice command, it is asssumed that MIT
  16.399 +% holds the copyright.  This commands adds the copyright symbol to the
  16.400 +% beginning, and puts the standard permission notice below.
  16.401 +%% ``All rights reserved'' added.  Krishna Sethuraman (1990)
  16.402 +\def\copyrightnotice#1{\copyrightnoticetext{\copyright\ #1.  All rights
  16.403 +reserved.\par\permission}}
  16.404 +
  16.405 +% Occacionally you will need to exactly specify the text of the 
  16.406 +% copyright notice.  The \copyrightnoticetext command is then useful.
  16.407 +\long\def\copyrightnoticetext#1{\gdef\@copyrightnotice{#1}}
  16.408 +\def\@copyrightnotice{\copyright\ \Mit\ \@degreeyear.  All rights reserved.}
  16.409 +
  16.410 +%% `vi' documentclass option: Specifying this option automatically
  16.411 +%% copyrights the thesis to the author and gives MIT permission to copy and
  16.412 +%% distribute the document.  If you want, you can still specify
  16.413 +%% \copyrightnotice{stuff} to copyright to someone else, or
  16.414 +%% \copyrightnoticetext{stuff} to specify the exact text of the copyright
  16.415 +%% notice.
  16.416 +\ifodd\vithesis \copyrightnoticetext{\copyright\ \@author,
  16.417 +\uppercase\expandafter{\romannumeral\@degreeyear}.  All rights reserved.\par\permission}
  16.418 +%% or just
  16.419 +%%\@degreeyear}}
  16.420 +\typeout{Copyright given to author,
  16.421 +	permission to copy/distribute given to MIT.}
  16.422 +\else \typeout{Thesis document copyright MIT unless otherwise (manually) specified}
  16.423 +\fi
  16.424 +
  16.425 +\def\thesisdate#1{\gdef\@thesisdate{#1}}
  16.426 +
  16.427 +% typically just a month and year
  16.428 +\def\degreemonth#1{\gdef\@degreemonth{#1}}
  16.429 +\def\degreeyear#1{\gdef\@degreeyear{#1}}
  16.430 +
  16.431 +% Usage: \supervisor{name}{title}
  16.432 +%        \chairman{name}{title}
  16.433 +
  16.434 +% since there can be more than one supervisor,
  16.435 +% we build the appropriate boxes for the titlepage and
  16.436 +% the abstractpage as the user makes multiple calls
  16.437 +% to \supervisor
  16.438 +\newbox\@titlesupervisor 	\newbox\@abstractsupervisor
  16.439 +
  16.440 +\def\supervisor#1#2{\setbox\@titlesupervisor\vbox
  16.441 +  {\unvbox\@titlesupervisor \vskip 10pt% plus 1fil minus 1fil
  16.442 +  \def\baselinestretch{1}\large
  16.443 +  \signature{Certified by}{#1 \\ #2 \\ Thesis Supervisor}}
  16.444 +  \setbox\@abstractsupervisor\vbox{\unvbox\@abstractsupervisor
  16.445 +  \vskip\baselineskip \def\baselinestretch{1}\@normalsize 
  16.446 +  \par\noindent Thesis Supervisor: #1 \\ Title: #2}}
  16.447 +
  16.448 +% department chairman, not thesis committee chairman
  16.449 +\def\chairman#1#2{\gdef\@chairmanname{#1}\gdef\@chairmantitle{#2}}
  16.450 +
  16.451 +%% `upcase' documentclass option: \choosecase is defined either as a dummy or
  16.452 +%% a macro to change the (expanded) argument to uppercase.
  16.453 +\def\maketitle{\begin{titlepage}
  16.454 +\large
  16.455 +{\def\baselinestretch{1.2}\Large\bf \choosecase{\@title} \par}
  16.456 +by\par
  16.457 +{\Large  \choosecase{\@author}}
  16.458 +\par
  16.459 +\@prevdegrees
  16.460 +\par
  16.461 +\choosecase{Submitted to the} \choosecase{\@department} \\
  16.462 +\choosecase{in partial fulfillment of the requirements for the}
  16.463 +\choosecase{\@degreeword} 
  16.464 +\choosecase{of}
  16.465 +\par
  16.466 +\choosecase{\@degree}
  16.467 +\par
  16.468 +at the
  16.469 +\par\MIT\par
  16.470 +\@degreemonth\ \@degreeyear
  16.471 +\par
  16.472 +\@copyrightnotice
  16.473 +\par
  16.474 +\vskip 3\baselineskip
  16.475 +\signature{Author}{\@department \\ \@thesisdate}
  16.476 +\par
  16.477 +\vfill
  16.478 +\unvbox\@titlesupervisor
  16.479 +\par
  16.480 +\vfill
  16.481 +\signature{Accepted by}{\@chairmanname \\ \@chairmantitle}
  16.482 +\vfill
  16.483 +\end{titlepage}}
  16.484 +
  16.485 +% this environment should probably be called abstract,
  16.486 +% but we want people to also be able to get at the more
  16.487 +% basic abstract environment
  16.488 +\def\abstractpage{\cleardoublepage
  16.489 +\begin{center}{\large{\bf \@title} \\
  16.490 +by \\
  16.491 +\@author \\[\baselineskip]}
  16.492 +\par
  16.493 +\def\baselinestretch{1}\@normalsize
  16.494 +Submitted to the \@department \\
  16.495 +on \@thesisdate, in partial fulfillment of the \\
  16.496 +requirements for the \@degreeword\ of \\
  16.497 +\@degree
  16.498 +\end{center}
  16.499 +\par
  16.500 +\begin{abstract}}
  16.501 +
  16.502 +%% Changed from \unvbox to \unvcopy for use with multiple copies of abstract
  16.503 +%% page.
  16.504 +%% Krishna Sethuraman (1990)
  16.505 +\def\endabstractpage{\end{abstract}\noindent
  16.506 + \unvcopy\@abstractsupervisor \newpage}
  16.507 +
  16.508 +%% This counter is used to save the page number for the second copy of
  16.509 +%% the abstract.
  16.510 +\newcounter{savepage}
  16.511 +
  16.512 +% You can use the titlepage environment to do it all yourself if you
  16.513 +% don't want to use \maketitle.  If the titlepage environment, the
  16.514 +% paragraph skip is infinitely stretchable, so if you leave a blank line
  16.515 +% between lines that you want space between, the space will stretch so
  16.516 +% that the title page fills up the entire page.
  16.517 +\def\titlepage{\cleardoublepage\centering
  16.518 +  \thispagestyle{empty}
  16.519 +  \parindent 0pt \parskip 10pt plus 1fil minus 1fil
  16.520 +  \def\baselinestretch{1}\@normalsize\vbox to \vsize\bgroup\vbox to 9in\bgroup}
  16.521 +% The \kern0pt pushes any depth into the height.  Thanks to Richard Stone.
  16.522 +\def\endtitlepage{\par\kern 0pt\egroup\vss\egroup\newpage}
  16.523 +
  16.524 +\def\MIT{MASSACHUSETTS INSTITUTE OF TECHNOLOGY}
  16.525 +\def\Mit{Massachusetts Institute of Technology}
  16.526 +
  16.527 +\def\permission{\par\noindent{\centering
  16.528 +   The author hereby grants to MIT permission to reproduce and to
  16.529 +   distribute publicly paper and electronic copies of this thesis
  16.530 +   document in whole or in part in any medium now known or hereafter
  16.531 +   created.}\par}
  16.532 +
  16.533 +\def\signature#1#2{\par\noindent#1\dotfill\null\\*
  16.534 +  {\raggedleft #2\par}}
  16.535 +
  16.536 +\def\abstract{\subsection*{Abstract}\small\def\baselinestretch{1}\@normalsize}
  16.537 +\def\endabstract{\par}
  16.538 +
    17.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    17.2 +++ b/thesis/mitthesis/propcover.tex	Fri Mar 21 00:08:49 2014 -0400
    17.3 @@ -0,0 +1,346 @@
    17.4 +%% This file is for producing a Doctoral Thesis proposal.  It should be fairly
    17.5 +%% self-explanatory.  
    17.6 +
    17.7 +\documentclass{article}
    17.8 +\begin{document}
    17.9 +
   17.10 +\bibliographystyle{plain}
   17.11 +\pagestyle{empty}
   17.12 +\markboth{{\sc thesis proposal}}{{\sc thesis proposal}}
   17.13 +\def\title{Parallel Processor Architecture}
   17.14 +\def\author{Peter Nuth}
   17.15 +\def\addrone{305 Memorial Drive, 606C}
   17.16 +\def\addrtwo{Cambridge, MA  02139}
   17.17 +
   17.18 +\def\degree{Doctor of Philosophy}
   17.19 +%% Added \deptname for PhD proposals in other fields.
   17.20 +%% Krishna Sethuraman (1990)
   17.21 +\def\deptname{Electrical Engineering \\ and Computer Science}
   17.22 +\def\laboratory{Artificial Intelligence Laboratory}
   17.23 +
   17.24 +\def\submissiondate{\today}
   17.25 +\def\completiondate{September 1990}
   17.26 +
   17.27 +\def\supervisor{Professor William J. Dally}
   17.28 +\def\supertitleone{Associate Professor of Electrical Engineering}
   17.29 +\def\supertitletwo{and Computer Science}
   17.30 +
   17.31 +\def\readerone{Professor Arvind}
   17.32 +\def\readeronetitleone{Professor of Electrical Engineering}
   17.33 +\def\readeronetitletwo{and Computer Science}
   17.34 +
   17.35 +\def\readertwo{Professor Thomas Knight}
   17.36 +\def\readertwotitleone{Assistant Professor of Electrical Engineering}
   17.37 +\def\readertwotitletwo{and Computer Science}
   17.38 +
   17.39 +\def\readerthree{Professor William J. Dally}
   17.40 +\def\readerthreetitleone{Associate Professor of Electrical Engineering}
   17.41 +\def\readerthreetitletwo{and Computer Science}
   17.42 +
   17.43 +
   17.44 +\def\abstract{
   17.45 +The proposed research
   17.46 +is a study of processor architecture for 
   17.47 +large scale parallel computer systems.
   17.48 +The thesis introduces mechanisms
   17.49 +for fast context switching, 
   17.50 +synchronization between tasks,
   17.51 +and run-time binding of 
   17.52 +variable names to processor memory.
   17.53 +Various design tradeoffs are evaluated 
   17.54 +through simulation of a processor running a typical load.
   17.55 +This work contains
   17.56 +estimates of
   17.57 +the speed and complexity of the different 
   17.58 +alternatives as implemented in  VLSI.
   17.59 +}
   17.60 +
   17.61 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   17.62 +%%%%%%%%%% You Should Not Need To Modify Anything Below Here %%%%%%%%%%%%%%%
   17.63 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   17.64 +
   17.65 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   17.66 +%%% Cover Page - Author signs %%%
   17.67 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   17.68 +
   17.69 +\begin{center}
   17.70 +{\Large \bf 
   17.71 +   Massachusetts Institute of Technology
   17.72 +\\ Department of \deptname \\}
   17.73 +\vspace{.25in}
   17.74 +{\Large \bf
   17.75 +   Proposal for Thesis Research in Partial Fulfillment
   17.76 +\\ of the Requirements for the Degree of
   17.77 +\\ \degree \\}
   17.78 +\end{center}
   17.79 +
   17.80 +\vspace{.5in}
   17.81 +
   17.82 +\def\sig{{\small \sc (Signature of Author)}}
   17.83 +
   17.84 +\begin{tabular}{rlc}
   17.85 +   {\small \sc Title:}                       & \multicolumn{2}{l}{\title}
   17.86 +\\ {\small \sc Submitted by:}
   17.87 +                            & \author  & \\
   17.88 +                            & \addrone & \\
   17.89 +                            & \addrtwo & \\ \cline{3-3}
   17.90 +			    &	       & \makebox[2in][c]{\sig}
   17.91 +\\ {\small \sc Date of Submission:}          & \multicolumn{2}{l}{\submissiondate}
   17.92 +\\ {\small \sc Expected Date of Completion:} & \multicolumn{2}{l}{\completiondate}
   17.93 +\\ {\small \sc Laboratory:}                  & \multicolumn{2}{l}{\laboratory}
   17.94 +\end{tabular}
   17.95 +
   17.96 +
   17.97 +\vspace{.75in}
   17.98 +{\bf \sc Brief Statement of the Problem:}
   17.99 +
  17.100 +\abstract
  17.101 +
  17.102 +         %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  17.103 +\newpage %%% Supervision Agreement %%%
  17.104 +         %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  17.105 +
  17.106 +\begin{flushright}
  17.107 +   Massachusetts Institute of Technology
  17.108 +\\ Department of \deptname
  17.109 +\\ Cambridge, Massachusetts 02139
  17.110 +\end{flushright}
  17.111 +
  17.112 +\underline{\bf Doctoral Thesis Supervision Agreement}
  17.113 +
  17.114 +\vspace{.25in}
  17.115 +\begin{tabular}{rl}
  17.116 +   {\small \sc To:}   & Department Graduate Committee
  17.117 +\\ {\small \sc From:} & \supervisor
  17.118 +\end{tabular}
  17.119 +
  17.120 +\vspace{.25in}
  17.121 +The program outlined in the proposal:
  17.122 +
  17.123 +\vspace{.25in}
  17.124 +\begin{tabular}{rl}
  17.125 +   {\small \sc Title:}  & \title
  17.126 +\\ {\small \sc Author:} & \author
  17.127 +\\ {\small \sc Date:}   & \submissiondate
  17.128 +\end{tabular}
  17.129 +
  17.130 +\vspace{.25in}
  17.131 +is adequate for a Doctoral thesis.
  17.132 +I believe that appropriate readers for this thesis would be:
  17.133 +
  17.134 +\vspace{.25in}
  17.135 +\begin{tabular}{rl}
  17.136 +   {\small \sc Reader 1:} & \readerone
  17.137 +\\ {\small \sc Reader 2:} & \readertwo
  17.138 +%\\ {\small \sc Reader 3:} & \readerthree
  17.139 +\end{tabular}
  17.140 +
  17.141 +\vspace{.25in}
  17.142 +Facilities and support for the research outlined in the proposal are available.
  17.143 +I am willing to supervise the thesis and evaluate the thesis report.
  17.144 +
  17.145 +\vspace{.25in}
  17.146 +\begin{tabular}{crc}
  17.147 +  \hspace{2in} & {\sc Signed:} & \\ \cline{3-3}
  17.148 +               &               & {\small \sc \supertitleone} \\
  17.149 +               &               & {\small \sc \supertitletwo} \\
  17.150 +               &               &                             \\
  17.151 +               & {\sc Date:}   & \\ \cline{3-3}
  17.152 +\end{tabular}
  17.153 +
  17.154 +\vspace{0in plus 1fill}
  17.155 +
  17.156 +Comments: \\
  17.157 +\begin{tabular}{c}
  17.158 +  \hspace{6.25in} \\
  17.159 +  \mbox{} \\ \cline{1-1} \mbox{} \\
  17.160 +  \mbox{} \\ \cline{1-1} \mbox{} \\
  17.161 +  \mbox{} \\ \cline{1-1} \mbox{} \\
  17.162 +%  \mbox{} \\ \cline{1-1} \mbox{} \\
  17.163 +%  \mbox{} \\ \cline{1-1} \mbox{} \\
  17.164 +%  \mbox{} \\ \cline{1-1} \mbox{} \\
  17.165 +\end{tabular}
  17.166 +
  17.167 +          %%%%%%%%%%%%%%%%%%%%%%%%%%
  17.168 +\newpage  %%% Reader I Agreement %%%
  17.169 +          %%%%%%%%%%%%%%%%%%%%%%%%%%
  17.170 +
  17.171 +\begin{flushright}
  17.172 +   Massachusetts Institute of Technology
  17.173 +\\ Department of \deptname
  17.174 +\\ Cambridge, Massachusetts 02139
  17.175 +\end{flushright}
  17.176 +
  17.177 +\underline{\bf Doctoral Thesis Reader Agreement}
  17.178 +
  17.179 +\vspace{.25in}
  17.180 +\begin{tabular}{rl}
  17.181 +   {\small \sc To:}   & Department Graduate Committee
  17.182 +\\ {\small \sc From:} & \readerone
  17.183 +\end{tabular}
  17.184 +
  17.185 +\vspace{.25in}
  17.186 +The program outlined in the proposal:
  17.187 +
  17.188 +\vspace{.25in}
  17.189 +\begin{tabular}{rl}
  17.190 +   {\small \sc Title:}          & \title
  17.191 +\\ {\small \sc Author:}         & \author
  17.192 +\\ {\small \sc Date:}           & \submissiondate
  17.193 +\\ {\small \sc Supervisor:}     & \supervisor
  17.194 +\\ {\small \sc Other Reader:}   & \readertwo
  17.195 +%\\ {\small \sc Other Reader:}   & \readerthree
  17.196 +\end{tabular}
  17.197 +
  17.198 +\vspace{.25in}
  17.199 +is adequate for a Doctoral thesis.
  17.200 +I am willing to aid in guiding the research
  17.201 +and in evaluating the thesis report as a reader.
  17.202 +
  17.203 +\vspace{.25in}
  17.204 +\begin{tabular}{crc}
  17.205 +  \hspace{2in} & {\sc Signed:} & \\ \cline{3-3}
  17.206 +               &               & {\small \sc \readeronetitleone} \\
  17.207 +               &               & {\small \sc \readeronetitletwo} \\
  17.208 +               &               &                                 \\
  17.209 +               & {\sc Date:}   & \\ \cline{3-3}
  17.210 +\end{tabular}
  17.211 +
  17.212 +\vspace{0in plus 1fill}
  17.213 +
  17.214 +Comments: \\
  17.215 +\begin{tabular}{c}
  17.216 +  \hspace{6.25in} \\
  17.217 +  \mbox{} \\ \cline{1-1} \mbox{} \\
  17.218 +  \mbox{} \\ \cline{1-1} \mbox{} \\
  17.219 +  \mbox{} \\ \cline{1-1} \mbox{} \\
  17.220 +  \mbox{} \\ \cline{1-1} \mbox{} \\
  17.221 +  \mbox{} \\ \cline{1-1} \mbox{} \\
  17.222 +  \mbox{} \\ \cline{1-1} \mbox{} \\
  17.223 +\end{tabular}
  17.224 +
  17.225 +
  17.226 +          %%%%%%%%%%%%%%%%%%%%%%%%%%%
  17.227 +\newpage  %%% Reader II Agreement %%%
  17.228 +          %%%%%%%%%%%%%%%%%%%%%%%%%%%
  17.229 +
  17.230 +
  17.231 +\begin{flushright}
  17.232 +   Massachusetts Institute of Technology
  17.233 +\\ Department of \deptname
  17.234 +\\ Cambridge, Massachusetts 02139
  17.235 +\end{flushright}
  17.236 +
  17.237 +\underline{\bf Doctoral Thesis Reader Agreement}
  17.238 +
  17.239 +\vspace{.25in}
  17.240 +\begin{tabular}{rl}
  17.241 +   {\small \sc To:}   & Department Graduate Committee
  17.242 +\\ {\small \sc From:} & \readertwo
  17.243 +\end{tabular}
  17.244 +
  17.245 +\vspace{.25in}
  17.246 +The program outlined in the proposal:
  17.247 +
  17.248 +\vspace{.25in}
  17.249 +\begin{tabular}{rl}
  17.250 +   {\small \sc Title:}          & \title
  17.251 +\\ {\small \sc Author:}         & \author
  17.252 +\\ {\small \sc Date:}           & \submissiondate
  17.253 +\\ {\small \sc Supervisor:}     & \supervisor
  17.254 +\\ {\small \sc Other Reader:}   & \readerone
  17.255 +%\\ {\small \sc Other Reader:}   & \readerthree
  17.256 +\end{tabular}
  17.257 +
  17.258 +\vspace{.25in}
  17.259 +is adequate for a Doctoral thesis.
  17.260 +I am willing to aid in guiding the research
  17.261 +and in evaluating the thesis report as a reader.
  17.262 +
  17.263 +\vspace{.25in}
  17.264 +\begin{tabular}{crc}
  17.265 +  \hspace{2in} & {\sc Signed:} & \\ \cline{3-3}
  17.266 +               &               & {\small \sc \readertwotitleone} \\
  17.267 +               &               & {\small \sc \readertwotitletwo} \\
  17.268 +               &               &                                 \\
  17.269 +               & {\sc Date:}   & \\ \cline{3-3}
  17.270 +\end{tabular}
  17.271 +
  17.272 +\vspace{0in plus 1fill}
  17.273 +
  17.274 +Comments: \\
  17.275 +\begin{tabular}{c}
  17.276 +  \hspace{6.25in} \\
  17.277 +  \mbox{} \\ \cline{1-1} \mbox{} \\
  17.278 +  \mbox{} \\ \cline{1-1} \mbox{} \\
  17.279 +  \mbox{} \\ \cline{1-1} \mbox{} \\
  17.280 +  \mbox{} \\ \cline{1-1} \mbox{} \\
  17.281 +  \mbox{} \\ \cline{1-1} \mbox{} \\
  17.282 +  \mbox{} \\ \cline{1-1} \mbox{} \\
  17.283 +\end{tabular}
  17.284 +\newpage
  17.285 +          %%%%%%%%%%%%%%%%%%%%%%%%%%%
  17.286 +\newpage  %%% Reader III Agreement %%%
  17.287 +          %%%%%%%%%%%%%%%%%%%%%%%%%%%
  17.288 +
  17.289 +
  17.290 +\begin{flushright}
  17.291 +   Massachusetts Institute of Technology
  17.292 +\\ Department of \deptname
  17.293 +\\ Cambridge, Massachusetts 02139
  17.294 +\end{flushright}
  17.295 +
  17.296 +\underline{\bf Doctoral Thesis Reader Agreement}
  17.297 +
  17.298 +\vspace{.25in}
  17.299 +\begin{tabular}{rl}
  17.300 +   {\small \sc To:}   & Department Graduate Committee
  17.301 +\\ {\small \sc From:} & \readerthree
  17.302 +\end{tabular}
  17.303 +
  17.304 +\vspace{.25in}
  17.305 +The program outlined in the proposal:
  17.306 +
  17.307 +\vspace{.25in}
  17.308 +\begin{tabular}{rl}
  17.309 +   {\small \sc Title:}          & \title
  17.310 +\\ {\small \sc Author:}         & \author
  17.311 +\\ {\small \sc Date:}           & \submissiondate
  17.312 +\\ {\small \sc Supervisor:}     & \supervisor
  17.313 +\\ {\small \sc Other Reader:}   & \readerone
  17.314 +\\ {\small \sc Other Reader:}   & \readertwo
  17.315 +\end{tabular}
  17.316 +
  17.317 +\vspace{.25in}
  17.318 +is adequate for a Doctoral thesis.
  17.319 +I am willing to aid in guiding the research
  17.320 +and in evaluating the thesis report as a reader.
  17.321 +
  17.322 +\vspace{.25in}
  17.323 +\begin{tabular}{crc}
  17.324 +  \hspace{2in} & {\sc Signed:} & \\ \cline{3-3}
  17.325 +               &               & {\small \sc \readerthreetitleone} \\
  17.326 +               &               & {\small \sc \readerthreetitletwo} \\
  17.327 +               &               &                                 \\
  17.328 +               & {\sc Date:}   & \\ \cline{3-3}
  17.329 +\end{tabular}
  17.330 +
  17.331 +\vspace{0in plus 1fill}
  17.332 +
  17.333 +Comments: \\
  17.334 +\begin{tabular}{c}
  17.335 +  \hspace{6.25in} \\
  17.336 +  \mbox{} \\ \cline{1-1} \mbox{} \\
  17.337 +  \mbox{} \\ \cline{1-1} \mbox{} \\
  17.338 +  \mbox{} \\ \cline{1-1} \mbox{} \\
  17.339 +  \mbox{} \\ \cline{1-1} \mbox{} \\
  17.340 +  \mbox{} \\ \cline{1-1} \mbox{} \\
  17.341 +  \mbox{} \\ \cline{1-1} \mbox{} \\
  17.342 +\end{tabular}
  17.343 +\newpage
  17.344 +
  17.345 +\end{document}
  17.346 +
  17.347 +
  17.348 +
  17.349 +
    18.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    18.2 +++ b/thesis/mitthesis/sample.org	Fri Mar 21 00:08:49 2014 -0400
    18.3 @@ -0,0 +1,7 @@
    18.4 +#+TITLE: asdhfklasdfkljasdf
    18.5 +#+AUTHOR: asdhfkjasdhfkljdasf
    18.6 +
    18.7 +* Section one
    18.8 +asdfasdfasdf
    18.9 +* Another section
   18.10 +aqghowahaoshfwhowehorwer
   18.11 \ No newline at end of file
    19.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    19.2 +++ b/thesis/mitthesis/sample.tex	Fri Mar 21 00:08:49 2014 -0400
    19.3 @@ -0,0 +1,40 @@
    19.4 +% Created 2014-03-20 Thu 23:12
    19.5 +\documentclass[11pt]{article}
    19.6 +\usepackage[utf8]{inputenc}
    19.7 +\usepackage[T1]{fontenc}
    19.8 +\usepackage{fixltx2e}
    19.9 +\usepackage{graphicx}
   19.10 +\usepackage{longtable}
   19.11 +\usepackage{float}
   19.12 +\usepackage{wrapfig}
   19.13 +\usepackage{rotating}
   19.14 +\usepackage[normalem]{ulem}
   19.15 +\usepackage{amsmath}
   19.16 +\usepackage{textcomp}
   19.17 +\usepackage{marvosym}
   19.18 +\usepackage{wasysym}
   19.19 +\usepackage{amssymb}
   19.20 +\usepackage{hyperref}
   19.21 +\tolerance=1000
   19.22 +\author{asdhfkjasdhfkljdasf}
   19.23 +\date{\today}
   19.24 +\title{asdhfklasdfkljasdf}
   19.25 +\hypersetup{
   19.26 +  pdfkeywords={},
   19.27 +  pdfsubject={},
   19.28 +  pdfcreator={Emacs 24.2.1 (Org mode 8.2.5h)}}
   19.29 +\begin{document}
   19.30 +
   19.31 +\maketitle
   19.32 +\tableofcontents
   19.33 +
   19.34 +
   19.35 +\section{Section one}
   19.36 +\label{sec-1}
   19.37 +asdfasdfasdf
   19.38 +
   19.39 +\section{Another section}
   19.40 +\label{sec-2}
   19.41 +aqghowahaoshfwhowehorwer
   19.42 +% Emacs 24.2.1 (Org mode 8.2.5h)
   19.43 +\end{document}
   19.44 \ No newline at end of file
    20.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    20.2 +++ b/thesis/mitthesis/signature.tex	Fri Mar 21 00:08:49 2014 -0400
    20.3 @@ -0,0 +1,31 @@
    20.4 +% -*- Mode:TeX -*-
    20.5 +%
    20.6 +% Some departments (e.g. Chemistry) require an additional cover page
    20.7 +% with signatures of the thesis committee.  Please check with your
    20.8 +% thesis advisor or other appropriate person to determine if such a 
    20.9 +% page is required for your thesis.  
   20.10 +%
   20.11 +% If you choose not to use the "titlepage" environment, a \newpage
   20.12 +% commands, and several \vspace{\fill} commands may be necessary to
   20.13 +% achieve the required spacing.  The \signature command is defined in
   20.14 +% the "mitthesis" class
   20.15 +%
   20.16 +% The following sample appears courtesy of Ben Kaduk <kaduk@mit.edu> and
   20.17 +% was used in his June 2012 doctoral thesis in Chemistry. 
   20.18 +
   20.19 +\begin{titlepage}
   20.20 +\begin{large}
   20.21 +This doctoral thesis has been examined by a Committee of the Department
   20.22 +of Chemistry as follows:
   20.23 +
   20.24 +\signature{Professor Jianshu Cao}{Chairman, Thesis Committee \\
   20.25 +   Professor of Chemistry}
   20.26 +
   20.27 +\signature{Professor Troy Van Voorhis}{Thesis Supervisor \\
   20.28 +   Associate Professor of Chemistry}
   20.29 +
   20.30 +\signature{Professor Robert W. Field}{Member, Thesis Committee \\
   20.31 +   Haslam and Dewey Professor of Chemistry}
   20.32 +\end{large}
   20.33 +\end{titlepage}
   20.34 +
    21.1 Binary file thesis/mitthesis/templates.zip has changed