% AUTORIGHTS
% Copyright (C) 2007 Princeton University
%       
% This file is part of Ferret Toolkit.
% 
% Ferret Toolkit is free software; you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation; either version 2, or (at your option)
% any later version.
% 
% This program is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
% GNU General Public License for more details.
% 
% You should have received a copy of the GNU General Public License
% along with this program; if not, write to the Free Software Foundation,
% Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
\documentclass[]{article}

%\usepackage{code} 
\usepackage{epsfig}
\usepackage{verbatim} 

\paperwidth=8.5in
\paperheight=11in
\pdfpagewidth=\paperwidth
\pdfpageheight=\paperheight

\evensidemargin .05in  
\oddsidemargin .05in 
\setlength\topmargin{0.0 in}
\setlength\textheight{9.25in} \setlength\textwidth{6.25in} 
\setlength\columnsep{0.25in}  \newlength\titlebox  
\setlength\titlebox{2.0in} 
%\setlength\titlebox{2.375in} 
\setlength\headheight{0pt}   \setlength\headsep{0pt} 
%\setlength\footheight{0pt}   
\setlength\footskip{0pt} 

\begin{document}

\title{CASS (Content-Aware Similarity Search) Toolkit System Specifications}

\maketitle

\input{overview}

\input{vecset}

\input{distfunc}

\input{index}

\input{storage}

\input{management}

\input{queryplan}

\end{document}

