\documentclass{amsart}

\setlength{\oddsidemargin}{0pt}
\setlength{\evensidemargin}{0pt}
\setlength{\textwidth}{6.5in}
\begin{document}



\textit{Note: In what follows, the term "knot" is used generically to refer to knots,
links and tangles.}

\section{The Core of the Stash\label{The_Core_of_the_Stash}\index{The Core of the Stash}}


The TightKnot Stash is primarily intended for distribution, so it has two 
existances.  The core consists of

\begin{description}

\item[{Documentation}] \mbox{}

\emph{stash.pod} and the \textbf{pod2latex} output \emph{stash.tex}


\item[{The administrative scripts}] \mbox{}

\emph{maint.pl}, \emph{spreadvect.pl}, \emph{format\_stashpod}


\item[{The database}] \mbox{}

\emph{KnotDB.pl}


\item[{The directories, frozen}] \mbox{}

\emph{Hierarchy.tar.gz} contains \emph{ByEdgeCount}, \emph{ByEdgeLength}, \emph{ByKnot} as 
described below with all their files.  These directories are not checked into
CVS, since they contain multiple copies of the files already in \emph{vects/}.


\item[{The knot files}] \mbox{}

\emph{vects/}

\end{description}


There are also a few other scripts which have been added into the directory.

\begin{description}

\item[{\emph{computeRelativeResiduals.sh}}] \mbox{}

This script calls \emph{ridgerunner} to calculate residuals for
all of the knots in \emph{vects/} and prints them to \emph{stdout}.


\item[{\emph{ConvQUal.pl}}] \mbox{}

This script creates a \textbf{gnuplot} input file whose output gives a picture of the
variance in lengths between the struts in a knot (or knots).

\end{description}
\section{The TightKnot Stash directory structure\label{The_TightKnot_Stash_directory_structure}\index{The TightKnot Stash directory structure}}


The TightKnot Stash consists of many directories.  In the root directory are
the overall, administrative-type files, such as this documentation.  Under that
are the following directories:

\begin{description}

\item[{\emph{vects/}}] \mbox{}

This directory holds all of the vect files for all knots.  The names of the 
knot files must follow one of two formats:

\begin{description}

\item[{Knots identified by Rolfsen Symbol}] \mbox{}

Here the file names are \emph{kl\_cn\_idx\_tag.vect} or \emph{kl\_cn\_cp\_idx\_tag.vect} where

\begin{itemize}

\item \emph{cn} is the minimum crossing number
\item \emph{cp} is the number of components (if more than one --- for links)
\item \emph{idx} is the index (from Rolfsen, etc.)
\item \emph{tag} is an alphanumeric tag simply for identification
(actually, \_ and . are also allowed in the tag).\end{itemize}


For example, \emph{kl\_8\_18\_200e.vect} might be a 200-edge 8\_18 knot \emph{.vect} file.


\item[{Knots identified by Gauss Code}] \mbox{}

Here the filenames are \emph{kl\_:gc:\_tag.vect} where

\begin{itemize}

\item \emph{gc} is the Gauss Code with the lists seperated by colons and the 
integers seperated by periods.
\item \emph{tag} is the same "alphanumeric" tag as in the other format.\end{itemize}
\end{description}


As an example, \emph{kl\_:1.-2:2.-1:\_20050824.vect} might be the Hopf-link file
created on 24 Aug 2005.  Note that there is no attempt made to convert Gauss
Code to Rolfsen number or vice versa.  The above file would \textbf{not} be combined
with the \emph{kl\_2\_2\_1\_tag.vect} files.



This is the only directory into which \emph{.vect} files should be manually added.
All of the other directories and their contents are automatically generated 
from this one.


\item[{\emph{ByKnot/}}] \mbox{}

This directory has in it directories named \emph{x2/}, \emph{x3/}, \emph{x4/}, etc. which 
classify the knot directories by crossing number.


\item[{\emph{ByKnot/x2/}, \emph{ByKnot/x3/}, etc.}] \mbox{}

Here are found all of the individual knot directories, for example 
\emph{ByKnot/x2/kl\_2\_2\_1/} and \emph{ByKnot/x8/kl\_8\_18/}


\item[{The individual knot directories}] \mbox{}

These directories are named \emph{kl\_cn\_idx} or \emph{kl\_cn\_cp\_idx} or \emph{kl\_:gc:} (with
the parts defined as they were for the \emph{.vect} files) and hold

\begin{itemize}

\item copies of all of the \emph{.vect} files we have for this knot type
\item \emph{best.vect} --- a copy of the \emph{.vect} file with the lowest ropelength
upper bound
\item \emph{best.stplot.ps}, which has the associated strut plot
\item \emph{best.ps}, which will contain an "arrow-tube" picture of it
\item \emph{best.png} and \emph{best.stplot.png} which are the two previous files
in PNG format.\end{itemize}

\item[{\emph{ByEdgeCount/} (and subdirs)}] \mbox{}

Here is a set of directories \emph{n10/}, \emph{n100/}, etc. which hold copies of the
\emph{.vect} files categorized by the number of edges each has.  The directory
names are "approximate" meaning that \emph{n100/} actually holds \emph{.vect} files
with edge counts from 32 to 316 (that is, from \texttt{ceil(10*sqrt(10))} to
\texttt{floor(100*sqrt(10))}).


\item[{\emph{ByEdgeLength/} (and subdirs)}] \mbox{}

Within \emph{ByEdgeLength/} is a set of directories \emph{l0/}, \emph{l1/}, \emph{l2/}, etc.
which hold copies of the \emph{.vect} files categorized by the average edge length
where \emph{l1/} holds files with average edge length about \texttt{1e-1}, \emph{l2/} holds
those with average edge length about \texttt{1e-2}, and so on.  Files with average
edge length about 1 or larger all go in \emph{l0/}.  The actual edge cutoffs will
be as with the previous ones so that \emph{l2/}, for example, will hold files with
average edge lengths from \texttt{0.01*sqrt(10)} (about 0.0316) down to
\texttt{0.001*sqrt(10)} (about 0.00316).

\section{The TightKnot Stash files\label{The_TightKnot_Stash_files}\index{The TightKnot Stash files}}

\item[{\emph{PublishedBounds.tex}}] \mbox{}

This file is \textbf{maintained by hand}.  It defines LaTeX commands which give the
best published ropelength bounds to date (for some definition of "to date").


\item[{\emph{KnotBoundCitations.bib}}] \mbox{}

This file, which is also \textbf{maintained by hand}, is a BiBTeX file which has the
citations for the ropelength bounds found in \emph{PublishedBounds.tex}.


\item[{\emph{KnotBoundCitations.tex}}] \mbox{}

This file, which is also \textbf{maintained by hand}, defines LaTeX commands which 
link to the citations in \emph{KnotBoundCitations.bib}


\item[{\emph{RopelenUpperBounds.tex}}] \mbox{}

This file is automatically built from the files in \emph{vects/} and defines
LaTeX commands giving the best ropelength upper bound we have for each of the
knot types.


\item[{\emph{SmallestPolyRopelen.tex}}] \mbox{}

This file is automatically built from the files in \emph{vects/} and defines 
LaTeX commands giving the polygonal ropelengths for the same polygonal knots
used in \emph{RopelenUpperBounds.tex}.


\item[{\emph{TightPolyknotDetails.tex}}] \mbox{}

This file is automatically built from the files in \emph{vects/} and defines 
LaTeX commands which give the knot symbols, number of edges and average
edgelength for the same polygonal knots used in \emph{RopelenUpperBounds.tex}.


\item[{\emph{AddRopelengthData.pl}}] \mbox{}

This is a Perl filter which takes as input a LaTeX file which uses the commands
from the files listed above.  It replaces the commands with their values and
gives the resulting file as output.


\item[{\emph{KnotDB.pl}}] \mbox{}

A Perl-format database with statistics about all of the knots and all of the
\emph{.vect} files.


\item[{\emph{KnotCatalog.pdf}}] \mbox{}

A PDF file containing all of the knots with their plots and data.


\item[{\emph{maint.pl}}] \mbox{}

A Perl script which builds all of the above things


\item[{\emph{spreadvect.pl}}] \mbox{}

A Perl helper script used by \emph{maint.pl}


\item[{\emph{format\_stashpod}}] \mbox{}

A tiny shell script to convert this file into \emph{.tex} source, run it through
LaTeX and then display the pod using perldoc.

\end{description}
\section{The TightKnot Stash Modules\label{The_TightKnot_Stash_Modules}\index{The TightKnot Stash Modules}}


With CVS one can check out any of the individual directories or the entire
TightKnot Stash as a whole.  There is, however, one module as well.  That
module contains only the \emph{.vect} files which show up as \emph{best.vect} in each
of the individual knot diretories and which get used for building
\emph{RopelenUpperBounds.tex} and friends.  To get this,

\begin{verbatim}
  cvs co TightKnot/Best
\end{verbatim}
\end{document}

