r535: no message
authorKevin M. Rosenberg <kevin@rosenberg.net>
Tue, 13 Feb 2001 17:48:37 +0000 (17:48 +0000)
committerKevin M. Rosenberg <kevin@rosenberg.net>
Tue, 13 Feb 2001 17:48:37 +0000 (17:48 +0000)
doc/ctsim-appendix.tex
doc/ctsim-concepts.tex
doc/ctsim-gui.tex
doc/ctsim-install.tex
doc/ctsim-textui.tex
doc/ctsim.tex

index 9c97a7f98727a22f26ea0966937c57865431b902..86305a5bb376cefb3dbf0e283aa75f3ef3a58dfa 100644 (file)
-\chapter{Appendix}\label{appendix}\index{Appendix}%
-\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
+\appendix
+
+\chapter{Simple Graphics Package}\label{appendix}\index{Appendix}%
+\setheader{{\it Appendix \thechapter}}{}{}{}{}{{\it Appendix \thechapter}}%
 \ctsimfooter%
 
-\section{Simple Graphics Package}\index{Simple Graphics Package}%
 
-\subsection{Overview}%
 Simple Graphics Package was created in 1980 by Kevin Rosenberg and
 is modelled after the graphics library in Foley and van
-Dam\cite{FOLEY82}.
-
-\begin{verbatim}
-                       +------------------------+
-                       | World Coordinate level |
-                       +-----------+------------+
-                                   |
-                     +-------------+-------------+
-                     | Clipping against Window() |
-                     +-------------+-------------+
-                                   |
-                      +------------+-------------+
-                      | Convert to Normalized    |
-                      | device coordinates (NDC) |
-                      +------------+-------------+
-                                   |
-                     +-------------+-------------+
-                     | Clipping against Viewport |
-                     +-------------+-------------+
-                                   |
-                      +------------+-------------+
-                      | Convert to Physical      |
-                      | device coordinates (PDC) |
-                      +--------------------------+
-\end{verbatim}
-
-\subsection{Functions}%
-
-\subsubsection{World Coordinate Level}
+Dam\cite{FOLEY82}. It is designed to be platform-independent.
+
+\section{Flowchart}
+Master coordinate (MC) level \\
+$\hspace{3cm} \downarrow$ \\
+Apply \emph{Current transformation matrix} \\
+$\hspace{3cm} \downarrow$ \\
+World coordinate (WC) level \\
+$\hspace{4cm} \downarrow$ \\
+Clipping against Window \\
+$\hspace{3cm} \downarrow$ \\
+Convert to Normalized device coordinates (NDC) \\
+$\hspace{3cm}  \downarrow$ \\
+Clipping against Viewport \\
+$\hspace{3cm}  \downarrow$ \\
+Convert to Physical device coordinates (PDC) \\
+
+
+\section{Functions}%
+
+\subsection{State functions}
 \begin{twocollist}
-\twocolitem{initgrf2}{Initialize 2 dimensional graphics}
-\twocolitem{termgrf2}{Terminate 2 dimensional graphics}
-\twocolitem{setColor(color)}{Set current drawing color}
-\twocolitem{setLinestyle (style)}{Set current line style}
-\twocolitem{setLinewidth (width)}{Set current line width}
-\twocolitem{setTextColor (foreground, background)}{If back=-1,
-then transparent} \twocolitem{setMarker (type, color)}{Set marker
-attibutes}
+\twocolitem{\texttt{eraseWindow()}}{Clears the screen}
+\twocolitem{\texttt{setColor(color)}}{Set current pen color}
+\twocolitem{\texttt{setLinestyle(style)}}{Set current pen style}
+\twocolitem{\texttt{setLinewidth(width)}}{Set current pen width}
+\twocolitem{\texttt{setTextColor(foreground, background)}}{Set text colors}
+\twocolitem{\texttt{setMarker(type, color)}}{Set marker attibutes}
+\twocolitem{\texttt{setRasterOp(rasterOp)}}{Set raster operator}
 \end{twocollist}
 
-\subsubsection{State Commands}
+
+\subsection{Master coordinate functions}
 \begin{twocollist}
-\twocolitem{Window(xmin, ymin, xmax, ymax)}{Set window for world
-coordinates} \twocolitem{MoveAbs(x, y)}{Move graphics cursor}
-\twocolitem{MoveRel(dx, dy)}{} \twocolitem{PointAbs (x, y)}{Plot
-point at current position} \twocolitem{PointRel (dx, dy)}{}
-\twocolitem{LineAbs2 (x, y)}{Draw line from current point to
-point} \twocolitem{LineRel2 (dx, dy)}{} \twocolitem{MarkerAbs2 (x,
-y)}{Draw marker at current position} \twocolitem{MarkerRel2 (dx,
-dy)}{} \twocolitem{PolylineAbs (x[], y[], n)}{Draw a set of lines}
-\twocolitem{PolylineRel (dx[], dy[], n)}{}
-\twocolitem{wc\_to\_ndc(xwc, ywc, xndc, yndc)}{Convert from world
-coord to NDC} \twocolitem{ndc\_to\_wc(xndc, yndc, xwc,
-ywc)}{Convert from NDC to world coord} \twocolitem{DrawText
-(str)}{Draw text string at current positon}
+\twocolitem{setWindow(xmin, ymin, xmax, ymax)}{Set window for world
+coordinates}
+\twocolitem{\texttt{moveAbs(x, y)}}{Move graphics cursor to absolute position}
+\twocolitem{\texttt{moveRel(dx, dy)}}{Move graphics cursor relative to current position}
+\twocolitem{\texttt{pointAbs(x, y)}}{Draw point at current position}
+\twocolitem{\texttt{pointRel(dx, dy)}}{Draw point relative to current position}
+\twocolitem{\texttt{lineAbs(x, y)}}{Draw line from current position to
+absolute position}
+\twocolitem{\texttt{lineRel(dx, dy)}}{Draw line from current position to position
+relative to current position}
+\twocolitem{\texttt{markerAbs(x,y)}}{Draw marker at current position}
+\twocolitem{\texttt{markerRel(dx,dy)}}{Draw marker relative to current position}
+\twocolitem{\texttt{polylineAbs(x[], y[], n)}}{Draw a series of lines to absolute position}
+\twocolitem{\texttt{polylineRel(dx[], dy[], n)}}{Draw series of lines relative to current position}
+\twocolitem{\texttt{drawString(str)}}{Draw text string at current positon}
+\twocolitem{\texttt{drawCircle(r}}{Draw circle at current positon}
+\twocolitem{\texttt{drawArc(r,start,stop)}}{Draw arc with center at current positon}
+\twocolitem{\texttt{drawRect(xmin,ymin,xmax,ymax)}}{Draw rectangle}
 \end{twocollist}
 
-
-\subsubsection{Normalized Coordinate level}%
+\subsection{Normalized coordinate functions}%
 \begin{twocollist}
-\twocolitem{Viewport (xmin, ymin, xmax, ymax)}{Viewport for window
-in NDC} \twocolitem{stylus (x, y, beam)}{Draw a line from current
-position} \twocolitem{markerNDC(xndc, yndc)}{Draw marker at NDC
+\twocolitem{\texttt{Viewport(xmin, ymin, xmax, ymax)}}{Viewport for window
+in NDC}
+\twocolitem{\texttt{stylus(x, y, beam)}}{Draw a line from current
 position}
+\twocolitem{\texttt{markerNDC(xndc, yndc)}}{Draw marker at NDC position}
 \end{twocollist}
 
+\subsection{Master coordinate to World coordinate transformations}%
+These transformation functions operate on the \emph{Current transformation
+matrix} (CTM).
 
-\subsection{Coordinate Mapping}
+\begin{twocollist}
+\twocolitem{\texttt{clearCTM()}}{Sets the CTM to an identity matrix}
+\twocolitem{\texttt{preTranslate(x,y)}}{Apply translation to CTM}
+\twocolitem{\texttt{postTranslate(x,y)}}{Apply translation to CTM}
+\twocolitem{\texttt{preScale(x,y)}}{Apply scale to CTM}
+\twocolitem{\texttt{postScale(x,y)}}{Apply scale to CTM}
+\twocolitem{\texttt{preRotate(angle)}}{Apply rotation to CTM}
+\twocolitem{\texttt{postRotate(angle)}}{Apply rotation to CTM}
+\twocolitem{\texttt{preShear(x,y)}}{Apply shear to CTM}
+\twocolitem{\texttt{postShear(x,y)}}{Apply shear to CTM}
+\end{twocollist}
+
+\subsection{Coordinate transformation functions}%
+\begin{twocollist}
+\twocolitem{\texttt{transformMCtoNDC(\&x,\&y)}}{Convert from master
+coordinates to NDC}
+\twocolitem{\texttt{transformNDCtoMC(\&x,\&y)}}{Convert from NDC to master
+coordinates}
+\end{twocollist}
 
-\subsubsection{Mapping from world coordinates to physical device coordinates}%
+\section{Coordinate Mapping}
 
+\subsection{Dimensions}
 Window (World Coordinates):  $X_{wmin}, X_{wmax}, Y_{wmin}, Y_{wmax}$ \\
 Viewport (Normalized Device Coordinates): $X_{vmin}, X_{vmax}, Y_{vmin}, Y_{vmax}$\\
 Physical (Physicial Device Coordinates): $X_{pmax}, Y_{pmax}$\\
 
+\subsection{Formulas}
+To convert from Master coordinates to World coordinates: \\
+Apply current transformation matrix
+
 To convert from WC to NDC:\\
 \begin{equation}
-     X_{ndc} = X_{vmin} + (X_{vmax} - X_{vmin})  (X_{wc} - X_{wmin}) / (X_{wmax} - X_{wmin})
+X_{ndc} = X_{vmin} + (X_{vmax} - X_{vmin})  (X_{wc} - X_{wmin}) / (X_{wmax} - X_{wmin})
 \end{equation}
 \begin{equation}
-     Y_{ndc} = Y_{vmin} + (Y_{vmax} - Y_{vmin}) (Y_{wc} - Y_{wmin}) / (Y_{wmax} - Y_{wmin})
+Y_{ndc} = Y_{vmin} + (Y_{vmax} - Y_{vmin}) (Y_{wc} - Y_{wmin}) / (Y_{wmax} - Y_{wmin})
 \end{equation}
 
 To convert from NDC to PDC:
index 21f94ddec9e999d3d39ea3f09613f51bbf824f0d..3f0dab0ff558207cc4a9411e5a90b35027811ea2 100644 (file)
@@ -122,22 +122,21 @@ ratios rather than absolute values.
 \subsubsection{Phantom Diameter}
 \begin{figure}
 $$\image{5cm;0cm}{scangeometry.eps}$$
-\caption{Phantom Geometry}
+\caption{\label{phantomgeomfig} Phantom Geometry}
 \end{figure}
-The phantom diameter is automatically calculated by \ctsim\ from the
-phantom definition. The maximum of the phantom length and height is
-used to define the square that completely surrounds the phantom. Let
-\latexonly{$p_l$}\latexignore{\emph{Pl}}
-be the width and height of this square. The diameter of this boundary box,
-\latexonly{$p_d$,}\latexignore{\emph{Pd},}
-\rtfsp is then
-\latexignore{\\$$\emph{Pl x sqrt(2)}$$\\}
-\latexonly{$$p_d = p_l \sqrt{2}$$}
-CT scanners actually collect projections around a circle rather than a
-square. The diameter of this circle is also the diameter of the boundary
-square
-\latexonly{$p_d$.}\latexignore{\rtfsp\emph{Pd}.}
-These relationships are diagrammed in figure 2.1.
+The phantom diameter is automatically calculated by \ctsim\ from
+the phantom definition. The maximum of the phantom length and
+height is used to define the square that completely surrounds the
+phantom. Let \latexonly{$p_l$}\latexignore{\emph{Pl}} be the width
+and height of this square. The diameter of this boundary box,
+\latexonly{$p_d$,}\latexignore{\emph{Pd},} \rtfsp is then
+\latexignore{\\$$\emph{Pl x sqrt(2)}$$\\} \latexonly{$$p_d = p_l
+\sqrt{2}$$} CT scanners actually collect projections around a
+circle rather than a square. The diameter of this circle is also
+the diameter of the boundary square
+\latexonly{$p_d$.  These
+relationships are diagrammed in figure~\ref{phantomgeomfig}.}
+\latexignore{emph{Pd}.}
 
 \subsubsection{View Diameter}
 The \emph{view diameter} is the area that is being processed
@@ -211,10 +210,10 @@ the x-ray beams diverge from a single source to a detector array.
 In the equilinear mode, a single
 source produces a fan beam which is read by a linear array of detectors.  If
 the detectors occupy an arc of a circle, then the geometry is equiangular.
-See figure 2.2.
+\latexonly{See figure~\ref{divergentfig}.}
 \begin{figure}
 \image{10cm;0cm}{divergent.eps}
-\caption{Equilinear and equiangular geometries.}
+\caption{\label{divergentfig} Equilinear and equiangular geometries.}
 \end{figure}
 
 
@@ -226,10 +225,11 @@ at the time of manufacture. \ctsim, however, calculates the
 the \emph{focal length} \latexignore{\\$$\emph{alpha = 2 x asin (
 (Sd / 2) / f)}$$\\}
 \latexonly{\begin{equation}\label{alphacalc}\alpha = 2 \sin^{-1}
-((s_d / 2) / f)\end{equation}} This is illustrated in figure 2.3.
+((s_d / 2) / f)\end{equation}
+ This is illustrated in figure~\ref{alphacalcfig}.}
 \begin{figure}
 \image{10cm;0cm}{alphacalc.eps}
-\caption{Calculation of $\alpha$}
+\caption{\label{alphacalcfig} Calculation of $\alpha$}
 \end{figure}
 
 
@@ -276,10 +276,11 @@ For equiangular geometry, the detectors are spaced around a circle
 covering an angular distance of
 \latexonly{$2\,\alpha$.}\latexignore{\emph{2 \alpha}.} The dotted
 circle in
-\begin{figure}\label{equiangularfig}
-\image{10cm;0cm}{equiangular.eps} \caption{Equiangular geometry}
+\begin{figure}
+\image{10cm;0cm}{equiangular.eps}
+\caption{\label{equiangularfig}Equiangular geometry}
 \end{figure}
-figure 2.4 indicates the positions of the detectors in this case.
+figure~\ref{equiangularfig} indicates the positions of the detectors in this case.
 
 For equilinear geometry, the detectors are space along a straight
 line. The length of the line depends upon
@@ -288,9 +289,9 @@ length}. It is calculated as \latexonly{$4\,f \tan (\alpha / 2)$}
 \latexignore{\emph{4 x F x tan(\alpha/2)}}
 \begin{figure}\label{equilinearfig}
 \image{10cm;0cm}{equilinear.eps}
-\caption{Equilinear geometry}
+\caption{\label{equilinearfig} Equilinear geometry}
 \end{figure}
-This geometry is shown in figure~2.5.
+\latexonly{This geometry is shown in figure~\ref{equilinearfig}.}
 
 
 \subsubsection{Examples of Geometry Settings}
@@ -336,3 +337,20 @@ multiple filters for this purpose.
 Backprojection is the process of ``smearing'' the filtered
 projections over the reconstructing image. Various levels of
 interpolation can be specified.
+
+\section{Image Comparison}
+Images can be compared statistically. Three measurements can be calculated
+by \ctsim. They are taken from the standard measurements used by
+Herman\cite{HERMAN80}.
+$d$ is the standard error, $e$ is the maximum error, and
+$r$ is the maximum error of a 2 by 2 pixel area.
+
+To compare two images, $A$ and $B$, each of which has $n$ columns and $m$ rows,
+these values are calculated as below.
+
+\begin{equation}
+d = \frac{\sum_{i=0}^{n}{\sum_{j=0}^{m}{(A_{ij} - B_{ij})^2}}}{m n}
+\end{equation}
+\begin{equation}
+r = max(|A_{ij} - B{ij}|)
+\end{equation}
index a790baac9839ff0ee9e9f8b81f20aab206fee222..d54bfeb0cd652473fb168b9f786b49a35b1c2955 100644 (file)
@@ -398,11 +398,22 @@ frequency-based filtering. A setting of \texttt{1} is optimal.}
 
 \section{Plot Menus}
 \subsection{File - Properties}
-The displayed properties include
+The displayed properties include the number of curves in the plot
+and the number of points per curve. Additionally, the EZPlot
+commands used to format the plot are displayed.
 
 \subsection{View Menu}
 These commands set the scaling for the y-axis. They are analogous
 to the options used for setting the intensity scale for images.
+
 \subsubsection{Set}
+This command sets the upper and lower limits for the y-axis.
+
 \subsubsection{Auto}
+This command automatically sets the upper and lower limits for the
+y-axis. Please refer to the \texttt{View - Auto} documentation for
+image files for the details.
+
 \subsubsection{Full}
+The command resets the upper and lower limits of the y-axis to the
+minimum and maximum values of the curves.
index 7e5598f4aa01bff0772074997388d1d9926bd27b..c697bf44f1bc00ebabf52c5520afcfc41758dadf 100644 (file)
@@ -4,16 +4,15 @@
 
 \section{Download}\label{download}\index{Installation,Download}%
 
-The latest version of \ctsim, plus source code, can be accessed from:
+The latest version of \ctsim, both executable programs and source code,
+ can be downloaded from the official
+ \ctsim\ \urlref{web site}{http://www.ctsim.org}. Additionally, these
+ files are also available from the \urlref{FTP site}{ftp://ftp.ctsim.org}.
 
-\begin{verbatim}
-http://www.ctsim.org
-ftp://ftp.ctsim.org
-\end{verbatim}
 
 \section{Installing Windows Binary}\index{Installation,Windows}%
 
-Download the Windows executable file as helprefn{shown}{download}.
+Download the Windows executable file.
 Simply execute this program to unpack \ctsim\ and begin the
 installation program. \ctsim\ will then be accessible from the
 \texttt{Start} Menu under the \texttt{Programs} submenu.
@@ -27,37 +26,41 @@ Download the RPM file from as \helprefn{shown}{download}. Then use
 the \texttt{rpm} manager program:\\
 \hspace{1cm}\texttt{rpm -Uvh} \emph{ctsim-*.rpm}\\
 
-\ctsim will then be installed in the \texttt{/usr/local/bin}
-directory.
+\ctsim\ and \ctsimtext\ will then be installed in the \texttt{/usr/local/bin}
+directory. The online help file, \texttt{ctsim.hhp}, will be installed in
+directory \texttt{/usr/local/man}.
 
 \section{Build From Sources}\label{build}\index{Installation,Build}%
 
 Refer to the INSTALL file included in the source distribution for
 instructions.
 
-\subsection{Optional Libraries When Building For Source}%
+\subsection{Optional Libraries}%
   \begin{itemize}
-  \item zlib Library\\
-        Used for PNG file export.
+  \item \textbf{wxWindows}\\
+  Used for platform-independent graphical interface. The graphical version
+  of \ctsim\ requires this library.\\
+  \urlref{Web site}{http://www.wxwindows.org}
 
-  \item libpng Library)\\
-        Used for PNG file export.\\
-    www.libpng.org
+  \item \textbf{FFTW}\\
+    Used for fast frequency-based filtering and fourier transformations of images.
+    Without this library \ctsim\ will use slower, traditional Fourier transformations.\\
+    \urlref{Web site}{http://www.fftw.org}
 
-  \item FFTW library)\\
-    Used for frequency-based filtering and fourier transformations of images.\\
-    www.fftw.org
+  \item \textbf{libpng}\\
+        Used for PNG file export.\\
+    \urlref{Web site}{http://www.libpng.org/pub/png/libpng.html}
 
-  \item readline library\\
-    Used for \ctsimtext\ interactive shell.
+  \item \textbf{zlib}\\
+        Used for PNG file export.\\
+    \urlref{Web site}{http://www.info-zip.org/pub/infozip/zlib/zlib_docs.html}
 
-  \item wxWindows library\\
-  Used for platform-independent graphical interface. The graphical-shell
-  program \ctsim\ requires this library.\\
-  www.wxwindows.org
+  \item \textbf{readline}\\
+    Used for \ctsimtext\ interactive shell.\\
+    \urlref{Web site}{http://www.gnu.org}
 
   \item dmalloc library\\
     Used for debugging memory allocation\\
-    www.dmalloc.com
+    \urlref{Web site}{http://www.dmalloc.com}
 
 \end{itemize}
index ea452b8b9c1ee8de78af907f4b4f62e7f32f6ca9..0c123cccd421daee7e0fac5067325bacd63b5912 100644 (file)
@@ -6,7 +6,7 @@
 
 \usage \ctsimtext\ can be invoked via three different
 methods.
-\begin{itemize}\itemsep=0pt
+\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
@@ -23,65 +23,79 @@ 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...}
+\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.
 
-\end{itemize}
 
 \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}%
@@ -90,60 +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. The default is to use to
-appropriate rotation angle based on the geometry.
+\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 -\,-view-ratio
-    Sets the field of view as a ratio of the diameter of the phantom.
-    For normal scanning, a value of 1.0 is fine.
+\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 -\,-scan-ratio
-    Sets the length of scanning as a ratio of the view diameter.
-    For normal scanning, a value of 1.0 is fine.
+\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.}
 
-  \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{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
@@ -151,29 +160,32 @@ imagefile in pixels must be specified as well as the number of samples
 to average per pixel.
 
 \usage
-\begin{itemize}\itemsep=0pt
-  \item -\,-nsamples
-  \item -\,-view-ratio
-\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}%
@@ -181,33 +193,35 @@ Reconstructs the interior of an object from a projection file.
 
 \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{-\,-filter-generation}}{Selects the filter
+\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.
@@ -217,7 +231,7 @@ to select. With any of the frequency methods,
 \end{itemize}
 }
 
-\twocolitem{\textbf{-\,-interpolation}}{Interpolation technique.
+\twocolitem{\doublehyphen{interpolation}}{Interpolation technique.
 \texttt{linear} is optimal.
 \begin{itemize}\itemsep=0pt
 \item nearest
@@ -226,7 +240,7 @@ to select. With any of the frequency methods,
 \end{itemize}
 }
 
-\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
@@ -236,7 +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.}
 
 \end{twocollist}
index 5a5f7c75d8dd0f9c8a1ca108d08a5e86d2c5a8d9..75672f78a3e83245d2bb3e5eb4b85de0da692567 100644 (file)
@@ -1,4 +1,4 @@
-\documentclass[letter,12pt]{report}%
+\documentclass[letterpaper,12pt]{report}%
 \usepackage{graphicx}
 \usepackage{texhelp}
 \usepackage{fancyhea}
 \newcommand{\indexit}[1]{#1\index{#1}}%
 \newcommand{\inioption}[1]{{\bf {\tt #1}}\index{#1}}%
 
-\newcommand{\manvernum}[0]{0.21}
+\newcommand{\manvernum}[0]{0.3}
 \newcommand{\manver}[0]{v\manvernum}
 \newcommand{\mandate}[0]{February 12, 2001}
 \newcommand{\ctsimfooter}{\setfooter{\thepage}{}{}{\small Manual \manver}{\small \mandate}{\thepage}}
+\newcommand{\doublehyphen}[1]{-\,-\texttt{#1}}
 
 \latexignore{\newcommand{\sqrt}[2]{sqrt(#2)}}