r535: no message
[ctsim.git] / doc / ctsim-textui.tex
index 5a7976fc5adccab637efce9c7565be052f989a69..0c123cccd421daee7e0fac5067325bacd63b5912 100644 (file)
 \chapter{The Command Line Interface}\label{ctsimtext}\index{ctsimtext}%
 \setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
-\setfooter{\thepage}{}{}{}{}{\thepage}%
+\ctsimfooter%
 
 \ctsimtext\ is a master shell for all of the command-line utilities.
 
-\usage
-\ctsimtext\ can be executed without any parameters. In that case, \ctsimtext\
-offers a command-line to enter the function-names and their parameters. The output of the command is displayed. Further commands may be given to \ctsimtext. The shell is exited by the \texttt{quit} command.
-
-\ctsimtext\ can also be called to execute a single command. This is especially useful for batch files containing multiple \ctsimtext\ commands. This is invoked by calling \par
-\texttt{ctsimtext function-name parameters...}.
+\usage \ctsimtext\ can be invoked via three different
+methods.
+\begin{enumerate}\itemsep=3pt
+\item \ctsimtext\ can executed without any parameters. In that case,
+\ctsimtext\ offers a command-line to enter the function-names and
+their parameters. The output of the command is displayed. Further
+commands may be given to \ctsimtext. The shell is exited by the
+\texttt{quit} command.
+
+\item \ctsimtext\ can also be called to
+execute a single command. This is especially useful for batch
+files containing multiple \ctsimtext\ commands. This is invoked by
+calling\\ \texttt{ctsimtext function-name parameters...}.
+
+\item Using operating systems that support soft or hard linking of
+files (such as UNIX and Linux), the executable file \ctsimtext\ can
+be linked to the function names. This is automatically done by
+the installation file for Linux. Thus, to use \ctsimtext\ with the
+function name \texttt{pjrec}, the below command can be executed:\\
+\texttt{pjrec parameters...} \\
+as a shortcut rather than the equivalent command \\
+\texttt{ctsimtext pjrec parameters...}
+
+\end{enumerate}
+
+\section{Parallel Processing With a Computer Cluster}
+\ctsimtext\ can be used to spread it's processing over a cluster. Specifically,
+\ctsimtext\ supports the \urlref{LAM}{http://www.mpi.nd.edu/lam} version of
+the MPI environment. On platforms with LAM installed, a parallel version of
+\ctsimtext\ is created. The name of this program is \texttt{ctsimtext-lam}.
+The functions that take advantage of the parallel processing are
+\texttt{phm2if}, \texttt{phm2pj}, \texttt{pjrec}.
+
+This parallel processing version has been tested with excellent results on
+a 16-CPU \urlref{Beowulf}{http://www.beowulf.org} cluster.
 
-The available functions are:
 
 \section{if1}\label{if1}\index{ctsimtext,if1}%
-Perfoms math functions on a single image.
+Performs math functions on a single image.
 
 \usage
 \begin{itemize}\itemsep=0pt
-  \item -\,-invert
-  \item -\,-log
-  \item -\,-exp
-  \item -\,-sqr
-  \item -\,-sqrt
+  \item \doublehyphen{invert}
+  \item \doublehyphen{log}
+  \item \doublehyphen{exp}
+  \item \doublehyphen{sqr}
+  \item \doublehyphen{sqrt}
 \end{itemize}
 
 \section{if2}\label{if2}\index{ctsimtext,if2}%
-Perfoms math functions on a two images.
+Performs math functions on a two images.
 
 \usage
 \begin{itemize}\itemsep=0pt
-  \item -\,-add
-  \item -\,-sub
-  \item -\,-mul
-  \item -\,-comp
-  \item -\,-column-plot
-  \item -\,-row-plot
+  \item \doublehyphen{add}
+  \item \doublehyphen{sub}
+  \item \doublehyphen{mul}
+  \item \doublehyphen{comp}
+  \item \doublehyphen{column-plot}
+  \item \doublehyphen{row-plot}
 \end{itemize}
 
 \section{ifexport}\label{ifexport}\index{ctsimtext,ifexport}%
-Export an imagefile to a standard graphics file.
+Export an image file to a standard graphics file.
 
 \usage
 \begin{itemize}\itemsep=0pt
-  \item --format
+  \item \doublehyphen{format}
   \begin{itemize}\itemsep=0pt
-    \item -\,-pgm
-    \item -\,-pgmasc
-    \item -\,-png
-    \item -\,-png16
+    \item \texttt{gm}
+    \item \texttt{pgmasc}
+    \item \texttt{png}
+    \item \texttt{png16}
   \end{itemize}
-  \item -\,-center
+  \item \doublehyphen{center}
   \begin{itemize}\itemsep=0pt
-    \item median
-    \item mode
-    \item mean
+    \item \texttt{median}
+    \item \texttt{mode}
+    \item \texttt{mean}
   \end{itemize}
-  \item -\,-auto
+  \item \doublehyphen{auto}
   \begin{itemize}\itemsep=0pt
-     \item -\,-full
-     \item -\,-std0.1
-     \item -\,-std0.5
-     \item -\,-std1
-     \item -\,-std2
-     \item -\,-std3
+     \item \texttt{full}
+     \item \texttt{std0.1}
+     \item \texttt{std0.5}
+     \item \texttt{std1}
+     \item \texttt{std2}
+     \item \texttt{std3}
   \end{itemize}
-  \item -\,-scale
-  \item -\,-min
-  \item -\,-max
+  \item \doublehyphen{scale}
+  \item \doublehyphen{min}
+  \item \doublehyphen{max}
 \end{itemize}
 
 \section{ifinfo}\label{ifinfo}\index{ctsimtext,ifinfo}%
@@ -76,52 +104,55 @@ Displays information about an imagefile.
 
 \usage
 \begin{itemize}\itemsep=0pt
-  \item -\,-labels
-  \item -\,-no-labels
-  \item -\,-stats
-  \item -\,-no-stats
-  \item -\,-help
+  \item \doublehyphen{labels}
+  \item \doublehyphen{no-labels}
+  \item \doublehyphen{stats}
+  \item \doublehyphen{no-stats}
+  \item \doublehyphen{help}
 \end{itemize}
 
 \section{phm2pj}\label{phm2pj}\index{ctsimtext,phm2pj}%
 Simulates collection of X-rays data (projections) around a phantom object.
 
 \usage
-phm2pj projection-file-name number-of-detectors number-of-views [options...]
-\begin{itemize}\itemsep=0pt
-  \item -\,-phantom
-  Select a standard phantom
-  \begin{itemize}\itemsep=0pt
-    \item herman
-    \item shepp-logan
-    \item unit-pulse
-  \end{itemize}
+\texttt{phm2pj projection-file-name number-of-detectors number-of-views [options...]}
 
-  \item -\,-phmfile
-  Load a phantom definition definition
+\begin{twocollist}
+\twocolitem{\doublehyphen{phantom}}{Select a standard phantom.
+\begin{itemize}\itemsep=0pt
+\item \texttt{herman}
+\item \texttt{shepp-logan}
+\item \texttt{unit-pulse}
+\end{itemize}
+}
+\twocolitem{\doublehyphen{phmfile}}{Load a phantom definition definition}
 
-  \item -\,-geometry
+\twocolitem{\doublehyphen{geometry}}{
   \begin{itemize}\itemsep=0pt
-    \item parallel
-    \item equiangular
-    \item equilinear
+    \item \texttt{parallel}
+    \item \texttt{equiangular}
+    \item \texttt{equilinear}
   \end{itemize}
+}
 
-  \item -\,-nray
-    Number of samples per each detector
+\twocolitem{\doublehyphen{nray}}{ Number of samples per each detector}
 
-  \item -\,-rotangle
-    Sets the rotation amount as a multiple of pi. For parallel geometries use
-a rotation angle of 1 and for equilinear and equiangular geometries use a rotation angle of 2.
+\twocolitem{\doublehyphen{rotangle}}{Sets the rotation amount as a multiple of pi.
+For parallel geometries use a rotation angle of \texttt{1} and for equilinear and equiangular
+geometries use a rotation angle of \texttt{2}. The default is to use to
+appropriate rotation angle based on the geometry.}
 
-  \item -\,-field-of-view
-    Sets the field of view as a ratio of the diameter of the phantom. For parallel geometries, using a value of 1.0 is fine. For other geometies, this should be at least 1.3 to avoid artifacts.
+\twocolitem{\doublehyphen{view-ratio}}{Sets the field of view as a ratio of the diameter of the phantom.
+    For normal scanning, a default value of \texttt{1.0} is optimal.}
 
-  \item -\,-focal-length
-    Sets the distance of the radiation source and detectors from the center of the object as a ratio of the radius of the object. For parallel geometries, a value of 1.0 is fine. For other geometries, this should be at least 2.0 to avoid artifacts.
-\end{itemize}
+\twocolitem{\doublehyphen{scan-ratio}}{Sets the length of scanning as a ratio of the view diameter.
+    For normal scanning, a value of \texttt{1.0} is optimal.}
+
+\twocolitem{\doublehyphen{focal-length}}{Sets the distance of the radiation source and detectors from the center of the object as a ratio of the radius of the object.
+    For parallel geometries, a value of \texttt{1.0} is optimal. For other
+    geometries, this should be at least \texttt{2.0} to avoid artifacts.}
+\end{twocollist}
 
-The Herman phantom is taken with permission from Gabor Hermans 1980 book\cite{HERMAN80}. The Shepp-Logan phantom was published in 1974\cite{SHEPP74}.
 
 \section{phm2if}\label{phm2if}\index{ctsimtext,phm2if}%
 Converts a geometric phantom object into an imagefile. The size of the
@@ -129,61 +160,78 @@ imagefile in pixels must be specified as well as the number of samples
 to average per pixel.
 
 \usage
-\begin{itemize}\itemsep=0pt
-  \item -\,-nsamples
-\end{itemize}
+\begin{twocollist}
+  \twocolitem{\doublehyphen{nsamples}}{Number of samples in x \& y directions per pixel}
+  \twocolitem{\doublehyphen{view-ratio}}{Sets the view ration. For normal scanning,
+  the default value of \texttt{1.0} is optimal.}
+\end{twocollist}
 
 \section{pj2if}\label{pj2if}\index{ctsimtext,pj2if}%
 Convert a projection file into an imagefile.
 
 \usage
-\begin{itemize}\itemsep=0pt
-\item -\,-help    Print brief online help
-\end{itemize}
+\texttt{pj2if projection-file-name image-file-name x-size ysize [options...]}
+
+\begin{twocollist}
+\twocolitem{\doublehyphen{help}}{Print brief online help}
+\end{twocollist}
 
 \section{pjinfo}\label{pjinfo}\index{ctsimtext,pjinfo}%
 Displays information about a projection file.
 
 \usage
 \begin{itemize}\itemsep=0pt
-  \item -\,-binaryheader
-  \item -\,-binaryview
-  \item -\,-startview
-  \item -\,-endview
-  \item -\,-dump
+  \item \doublehyphen{binaryheader}
+  \item \doublehyphen{binaryview}
+  \item \doublehyphen{startview}
+  \item \doublehyphen{endview}
+  \item \doublehyphen{dump}
 \end{itemize}
 
 \section{pjrec}\label{pjrec}\index{ctsimtext,pjrec}%
 Reconstructs the interior of an object from a projection file.
 
-\usage
 \begin{twocollist}
 \twocolitemruled{\textbf{Parameter}}{\textbf{Options}}
-\twocolitem{\textbf{-\,-filter}}{Selects which filter to apply to
+\twocolitem{\doublehyphen{filter}}{Selects which filter to apply to
 each projection. To properly reconstruct an image, this filter
 should be multiplied by the absolute value of distance from zero
 frequency.
 \begin{itemize}\itemsep=0pt
-\item abs\_bandlimit
-\item abs\_cosine
-\item abs\_hamming
+\item \texttt{abs\_bandlimit}
+\item \texttt{abs\_cosine}
+\item \texttt{abs\_hamming}
 \end{itemize}
-} \twocolitem{\textbf{-\,-filter-parameter}}{Sets the alpha level
-for Hamming
-  window. At setting of 0.54, this equals the Hanning window.}
+} \twocolitem{\doublehyphen{filter-parameter}}{Sets the alpha level
+for Hamming window. At setting of \texttt{0.54}, this equals
+the Hanning window.}
 
-\twocolitem{\textbf{-\,-filter-method}}{Selects the filtering
+\twocolitem{\doublehyphen{filter-method}}{Selects the filtering
 method. For large numbers of detectors, \texttt{rfftw} is optimal.
 For smaller numbers of detectors, \texttt{convolution} might be a
 bit faster.
 \begin{itemize}\itemsep=0pt
-\item convolution
-\item fourier
-\item fourier\_table
+\item \texttt{convolution}
+\item \texttt{fourier}
+\item \texttt{fourier-table}
+\item \texttt{fftw}
+\item \texttt{rfftw}
 \item fftw
 \item rfftw
 \end{itemize}
-} \twocolitem{\textbf{-\,-interpolation}}{Interpolation technique.
+}
+
+\twocolitem{\doublehyphen{filter-generation}}{Selects the filter
+generation. With convolution, \texttt{direct} is the proper method
+to select. With any of the frequency methods,
+\texttt{inverse-fourier} is the best method.
+\begin{itemize}\itemsep=0pt
+\item direct
+\item inverse-fourier
+\end{itemize}
+}
+
+\twocolitem{\doublehyphen{interpolation}}{Interpolation technique.
 \texttt{linear} is optimal.
 \begin{itemize}\itemsep=0pt
 \item nearest
@@ -191,15 +239,8 @@ bit faster.
 \item cubic
 \end{itemize}
 }
-\end{twocollist}
-
-\subsection{Advanced Options}
 
-These options are only visible if \emph{Advanced Options} has been
-selected in the \texttt{File/Preferences} dialog.
-
-\begin{twocollist}
-\twocolitem{\textbf{-\,-backprojection}}{Selects the
+\twocolitem{\doublehyphen{backprojection}}{Selects the
 backprojection technique. A setting of \texttt{idiff} is optimal.
 \begin{itemize}\itemsep=0pt
 \item trig
@@ -209,17 +250,7 @@ backprojection technique. A setting of \texttt{idiff} is optimal.
 \end{itemize}
 }
 
-\twocolitem{\textbf{-\,-zeropad}}{Zeropad factor. A setting of
+\twocolitem{\doublehyphen{zeropad}}{Zeropad factor. A setting of
 \texttt{1} is optimal.}
 
-\twocolitem{\textbf{-\,-filter-generation}}{Selects the filter
-generation. With convolution, \texttt{direct} is the proper method
-to select. With any of the frequency methods,
-\texttt{inverse-fourier} is the best method.
-\begin{itemize}\itemsep=0pt
-\item direct
-\item inverse-fourier
-\end{itemize}
-
 \end{twocollist}
-}