3
This file constitutes the full distribution for SIAM Proceedings
4
Series LaTeX version macros. The files included here are:
6
ltexproc.tex (An example file, also containing documentation)
8
ltexproc.sty (The style file)
10
siamproc.bst (for BiBTeX users)
12
To use these macros, separate the files at the indicated cut lines.
14
%%%%%%%%%%%%%%%%%%%%%%%%CUT HERE%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16
% This is ltexproc.tex, an example file for use with the SIAM LaTeX
17
% Proceedings Series macros.
18
% Please take the time to read the following comments, as they describe
19
% how to use these macros. This file can be composed and printed out for
20
% use as sample output.
22
% Any comments or questions regarding these macros should be directed to:
26
% 3600 University City Science Center
27
% Philadelphia, PA 19104-2688
29
% Telephone: (215) 382-9800
31
% e-mail: gray@siam.org
34
% This file is to be used as an example for style only. It should not be read
37
%%%%%%%%%%%%%%% PLEASE NOTE THE FOLLOWING STYLE RESTRICTIONS %%%%%%%%%%%%%%%
39
%% 1. There are no new tags. Existing LaTeX tags have been formatted to
40
%% match the Proceedings series style.
42
%% 2. You must use \cite in the text to mark your reference citations and
43
%% \bibitem in the listing of references at the end of your chapter. See
44
%% the examples in the following file. The file siamproc.bst has been
45
%% included for use with BiBTeX. Please be sure to include the appropriate
46
%% .bib file with BiBTeX submissions. You may also submit the .bbl file
47
%% instead of the .bib file.
49
%% 3. Unless otherwise stated by your editor, do your chapter as if it
50
%% is Chapter 1. The appropriate chapter number will be included during
51
%% the production of the proceedings.
53
%% 4. This macro is set up for three levels of headings (\section,
54
%% \subsection, and \subsubsection). The macro will automatically number
55
%% the headings for you.
57
%% 5. The running heads are indicated by the \markboth command. Please
58
%% define the running heads by placing the authors last names in the
59
%% first field and the title of the paper in the second field.
60
%% They should be typed initial cap and lower case. Please see the example.
61
%% Neither field can contain more than 50 characters including spaces,
62
%% so please use a shortened version of the title if necessary. For
63
%% papers with multiple authors please follow these rules; for
64
%% two authors type {Author 1 and Author 2}; for more that two authors type
67
%% 6. Theorems, Lemmas, Definitions, etc. are to be double-numbered,
68
%% indicating the section and the occurrence of that element
69
%% within that section. (For example, the first theorem in the second
70
%% section would be numbered 2.1. The macro will
71
%% automatically do the numbering for you.
73
%% 7. Proofs are handled with the commands \begin{proof}\end{proof}.
74
%% If you wish to use an end of proof box, use \qed preceding \end{proof}.
75
%% The example uses one. It is not required.
77
%% 8. Figures, equations, and tables must be single-numbered. All equation
78
%% numbers are to be on the left. Figure captions should be placed under
79
%% the figures they pertain to. Table captions should be placed above
80
%% the tables. Use existing LaTeX tags for these elements. Numbering of
81
%% these elements will be done automatically. SIAM supports the use of
82
%% psfig for including Postscript figures. All Postscript figures should be
83
%% sent as separate files. A hardcopy version of all Postscript figures
84
%% is also required. See note regarding this under How to Submit Your Paper.
86
%% 9. Grant information and author affiliations.
87
%% This information is included in the file with the two commands,
88
%% \thanks and \footnotemark []. (See example). The \thanks command
89
%% produces a footnote for the title or author, and places the
90
%% appropriate footnote symbol with the title or author and at the
91
%% bottom of the page. The \footnotemark [] command allows the use of
92
%% duplicate footnote symbols. This macro follows the normal LaTeX order
93
%% of footnote symbols. Below is a list of these symbols, and their
94
%% corresponding footnotemark:
96
%% asterisk \footnotemark[1]
97
%% single-dagger \footnotemark[2]
98
%% double-dagger \footnotemark[3]
99
%% section sign \footnotemark[4]
100
%% paragraph \footnotemark[5]
101
%% parallel \footnotemark[6]
102
%% double asterisk \footnotemark[7]
103
%% double single-dagger \footnotemark[8]
104
%% double double-dagger \footnotemark[9]
106
%% The following general rules for grants and affiliations apply:
107
%% a) If there is a single grant for the paper, then the grant
108
%% information should be footnoted to the title.
109
%% b) If there is more than one grant, include the grant information
110
%% with each author's affiliation.
111
%% c) If there are different grants for the paper but the authors share
112
%% the same affiliation, footnote the grant information to the title.
113
%% For example, The work of the first author was supported by xyz.
114
%% The work of the second author was supported by abc. And so on.
115
%% d) For authors sharing the same affiliation, use \thanks for the
116
%% first author with that affiliation and the appropriate
117
%% \footnotemark[] (from the list above) for all subsequent authors
118
%% with that affiliation.
120
%% 10. Special fonts.
121
%% SIAM supports the use of AMS-TeX fonts version 2.0 and later. As
122
%% described in the manual for these fonts, they can be included by
123
%% \input{amssym.def} and \input{amssym.tex}. These macros are not yet
124
%% updated to make use of the New Font Selection Scheme (NFSS) of
125
%% Mittelbach and Schopf. To make these macros compatible with NFSS, use
126
%% the oldlfont style option.
128
%% 11. How to Submit Your Paper.
129
%% The electronic version of your paper should be sent to proceed@siam.org.
130
%% A hardcopy version should also be submitted. Instructions are included
131
%% in your acceptance letter. Please be sure to send hardcopy
132
%% versions of any Postscript figures you have submitted electronically.
133
%% Be sure to return your signed Copyright Transfer Agreement. We cannot
134
%% publish your paper without it.
139
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%-
143
\documentstyle[leqno,twoside,11pt,ltexproc]{article} %You must set up your
144
%\documentstyle line like this.
149
\pagestyle{myheadings}
152
SIAM Proceedings Series Macros\\
153
for Use With LaTeX\thanks{Any information regarding grants should be placed
155
\author{J. Corey Gray\thanks{Production Manager, Society for Industrial and Applied
156
Mathematics, Philadelphia, PA.}
158
Tricia Manning\thanks{Publications Specialist, Society for Industrial and Applied
159
Mathematics, Philadelphia, PA.}
161
Vickie Kearn\thanks{Publisher, Society for Industrial and Applied Mathematics,
164
Nancy Abbott\thanks{Design Supervisor, Society for Industrial and Applied
165
Mathematics, Philadelphia, PA}
167
Sue Ciambrano\thanks{Acquisitions Editor, Society for Industrial and Applied
168
Mathematics, Philadelphia, PA}
170
Paul Duggan\thanks{Composition Specialist, Society for Industrial and Applied
171
Mathematics, Philadelphia, PA}
173
Robbi Anne Albert\thanks{Production Assistant, Society for Industrial and Applied
174
Mathematics, Philadelphia, PA}
176
Jean Anderson\thanks{Composition Coordinator, Society for Industrial and Applied
177
Mathematics, Philadelphia, PA}
181
\markboth{Gray et al.}{SIAM Proceedings Series Macros} % See section 5 above
183
\pagenumbering{arabic}
185
\begin{abstract}An equivalence is shown between realizability of input/output (i/o) operators by
186
rational control systems and high-order algebraic differential equations for
187
i/o pairs. This generalizes, to nonlinear systems, the equivalence
188
between autoregressive representations and finite dimensional linear
189
realizability. \end{abstract}
190
\section{Problem Specification}In this paper, we consider the solution of the $N \times
193
\begin{equation} \label{e1.1}
196
where $A$ is large, sparse, symmetric, and positive definite. We consider
197
the direct solution of (\ref{e1.1}) by means of general sparse Gaussian
198
elimination. In such a procedure, we find a permutation matrix $P$, and
199
compute the decomposition
201
P A P^{t} = L D L^{t}
203
where $L$ is unit lower triangular and $D$ is diagonal.
206
\section{Design Considerations}Several good ordering algorithms (nested dissection and
208
are available for computing $P$ \cite{GEORGELIU}, \cite{ROSE72}.
209
Since our interest here does not
210
focus directly on the ordering, we assume for convenience that $P=I$,
211
or that $A$ has been preordered to reflect an appropriate choice of $P$.
213
Our purpose here is to examine the nonnumerical complexity of the
214
sparse elimination algorithm given in \cite{BANKSMITH}.
215
As was shown there, a general sparse elimination scheme based on the
216
bordering algorithm requires less storage for pointers and
217
row/column indices than more traditional implementations of general
218
sparse elimination. This is accomplished by exploiting the m-tree,
219
a particular spanning tree for the graph of the filled-in matrix.
221
\begin{theorem} The method was extended to three
222
dimensions. For the standard multigrid
224
(in which, for a given grid, the next coarser grid has $1/8$
225
as many points), anisotropic problems require plane
227
obtain a good smoothing factor.\end{theorem}
229
Several good ordering algorithms (nested dissection and minimum degree)
230
are available for computing $P$ \cite{GEORGELIU}, \cite{ROSE72}.
231
Since our interest here does not
232
focus directly on the ordering, we assume for convenience that $P=I$,
233
or that $A$ has been preordered to reflect an appropriate choice of $P$.
236
\begin{proof} In this paper we consider two methods. The first method
238
basically the method considered with two differences:
239
first, we perform plane relaxation by a two-dimensional
240
multigrid method, and second, we use a slightly different
242
interpolation operator, which improves performance
243
for nearly singular problems. In the second method coarsening
244
is done by successively coarsening in each of the three
245
independent variables and then ignoring the intermediate
246
grids; this artifice simplifies coding considerably.\qed
249
Our purpose here is to examine the nonnumerical complexity of the
250
sparse elimination algorithm given in \cite{BANKSMITH}.
251
As was shown there, a general sparse elimination scheme based on the
252
bordering algorithm requires less storage for pointers and
253
row/column indices than more traditional implementations of general
254
sparse elimination. This is accomplished by exploiting the m-tree,
255
a particular spanning tree for the graph of the filled-in matrix.
257
\begin{Definition}{\rm We describe the two methods in \S 1.2. In \S\ 1.3. we
259
some remaining details.}
264
\caption{This is figure 1.}
267
Our purpose here is to examine the nonnumerical complexity of the
268
sparse elimination algorithm given in \cite{BANKSMITH}.
269
As was shown there, a general sparse elimination scheme based on the
270
bordering algorithm requires less storage for pointers and
271
row/column indices than more traditional implementations of general
274
\begin{lemma} We discuss first the choice for $I_{k-1}^k$
275
which is a generalization. We assume that $G^{k-1}$ is
278
by standard coarsening; that is, if $G^k$ is a tensor product
279
grid $G_{x}^k \times G_{y}^k \times G_{z}^k$,
280
$G^{k-1}=G_{x}^{k-1} \times G_{y}^{k-1} \times G_{z}^{k-1}$,
281
where $G_{x}^{k-1}$ is obtained by deleting every other grid
282
point of $G_x^k$ and similarly for $G_{y}^k$ and $G_{z}^k$.
285
This is accomplished by exploiting the m-tree,
286
a particular spanning tree for the graph of the filled-in matrix.
287
To our knowledge, the m-tree previously has not been applied in this
288
fashion to the numerical factorization, but it has been used,
289
directly or indirectly, in several optimal order algorithms for
290
computing the fill-in during the symbolic factorization phase
291
\cite{EISENSTAT} - \cite{LIU2}, \cite{ROSE76}, \cite{SCHREIBER}.
293
\subsection{Robustness}
295
attempt to present an overview
296
here, but rather attempt to focus on those results that
297
are relevant to our particular algorithm.
298
This section assumes prior knowledge of the role of graph theory
299
in sparse Gaussian elimination; surveys of this role are
300
available in \cite{ROSE72} and \cite{GEORGELIU}. More general
301
discussions of elimination trees are given in
302
\cite{LAW} - \cite{LIU2}, \cite{SCHREIBER}.
303
Thus, at the $k$th stage, the bordering algorithm consists of
304
solving the lower triangular system
305
\begin{equation} \label{1.2}
310
\ell &=& D^{-1}_{k-1}v , \\
311
\delta &=& \alpha - \ell^{t} v .
314
\subsubsection{Versatility.} We do not
315
attempt to present an overview
316
here, but rather attempt to focus on those results that
317
are relevant to our particular algorithm.
319
\section{Conclusions} The special
320
structure of this problem allows us to make exact estimates of
321
the complexity. For the old approach, we show that the
322
complexity of the intersection problem is $O(n^{3})$, the same
323
as the complexity of the numerical computations
324
\cite{GEORGELIU}, \cite{ROSEWHITTEN}. For the
325
new approach, the complexity of the second part is reduced to
326
$O(n^{2} (\log n)^{2})$.
328
\begin{thebibliography}{99}
332
R.~E. Bank and R.~K. Smith, {\em General sparse elimination requires no
333
permanent integer storage}, SIAM J. Sci. Stat. Comput., 8 (1987),
337
S.~C. Eisenstat, M.~C. Gursky, M.~Schultz, and A.~Sherman, {\em
338
Algorithms and data structures for sparse symmetric gaussian elimination},
339
SIAM J. Sci. Stat. Comput., 2 (1982), pp.~225--237.
342
A.~George and J.~Liu, {\em Computer Solution of Large Sparse Positive
343
Definite Systems}, Prentice Hall, Englewood Cliffs, NJ, 1981.
346
K.~H. Law and S.~J. Fenves, {\em A node addition model for symbolic
347
factorization}, ACM TOMS, 12 (1986), pp.~37--50.
350
J.~W.~H. Liu, {\em A compact row storage scheme for cholesky factors
351
using elimination trees}, ACM TOMS, 12 (1986), pp.~127--148.
354
\sameauthor , {\em The role of
355
elimination trees in sparse factorization}, Tech. Report CS-87-12,Department
356
of Computer Science, York University, Ontario, Canada, 1987.
359
D.~J. Rose, {\em A graph theoretic study of the numeric solution of
360
sparse positive definite systems}, in Graph Theory and Computing, Academic Press, New
364
D.~J. Rose, R.~E. Tarjan, and G.~S. Lueker, {\em Algorithmic aspects of
365
vertex elimination on graphs}, SIAM J. Comput., 5 (1976), pp.~226--283.
367
\bibitem{ROSEWHITTEN}
368
D.~J. Rose and G.~F. Whitten, {\em A recursive analysis of disection
369
strategies}, in Sparse Matrix Computations, Academic Press, New York, 1976.
372
R.~Schreiber, {\em A new implementation of sparse gaussian elimination},
373
ACM TOMS, 8 (1982), pp.~256--276.
375
\end{thebibliography}
379
%%%%%%%%%%%%%%%%%%%%%%%%%%CUT HERE%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
381
% This is ltexproc.sty.
382
% This file may be freely distributed but may not be altered in any way.
383
% Any comments or questions regarding these macros should be directed to:
387
% 3600 University City Science Center
388
% Philadelphia, PA 19104-2688
390
% Telephone: (215) 382-9800
391
% Fax: (215) 386-7999
392
% e-mail: gray@siam.org
394
% This is a file of macros and definitions for creating a chapter for
395
% publication in the SIAM Proceedings series using LaTeX.
397
% Report the version.
398
\message{*** SIAM LaTeX Proceedings Series macro package, version 1.0,
399
November 6, 1992 ***}
415
\textheight 53.5pc \advance\textheight by \topskip
420
\def\textfraction{.1}
422
%% footnotes to be set 8/10
423
\def\footnotesize{\@setsize\footnotesize{11pt}\ixpt\@ixpt
425
\abovedisplayskip \z@
427
\abovedisplayshortskip\abovedisplayskip
428
\belowdisplayshortskip\belowdisplayshortskip
429
\def\@listi{\leftmargin\leftmargini \topsep 3pt plus 1pt minus 1pt
430
\parsep 2pt plus 1pt minus 1pt
433
\let\referencesize\footnotesize
437
\skip\footins 12pt plus 12pt
439
\def\footnoterule{\kern3\p@ \hrule width 3em\vspace{3pt}} % the \hrule is .4pt high
442
\def\ps@plain{\let\@mkboth\@gobbletwo
443
\def\@oddfoot{{\hfil\small\thepage\hfil}}%
445
\def\@evenhead{}\def\@evenfoot{}}
449
\def\ps@headings{\let\@mkboth\markboth
450
\def\@oddfoot{}\def\@evenfoot{}%
451
\def\@evenhead{{\rm\thepage}\hspace*{2pc}{\sc\leftmark}\hfil}%
452
\def\@oddhead{\hfil{\noindent\sc\rightmark}\hspace*{2pc}{\rm\thepage}}%
456
\def\ps@myheadings{\let\@mkboth\@gobbletwo
457
\def\@oddfoot{}\def\@evenfoot{}%
458
\def\@oddhead{\hfil{\sc\rightmark}\hspace*{2pc}{\normalsize\rm\thepage}}%
459
\def\@evenhead{{\normalsize\rm\thepage}\hspace*{2pc}{\sc\leftmark}\hfil}%
460
% \def\chaptermark##1{}%
461
% \def\sectionmark##1{}\def\subsectionmark##1{}}
466
\def\theequation{\arabic{equation}}
468
\def\abstract{\if@twocolumn
472
{\bf Abstract\vspace{-.5em}\vspace{3pt}}
476
\def\endabstract{\if@twocolumn\else\endquotation\fi}
478
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
480
% THEOREMS, PROOFS, ALGORITHMS %
482
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
484
%%% defined proof environment by theorem model (took out counter)
486
\def\qed{{\qquad \vbox{\hrule\hbox{%
487
\vrule height1.3ex\hskip0.8ex\vrule}\hrule
490
\def\newproof#1{\@nprf{#1}}
492
\def\@nprf#1#2{\@xnprf{#1}{#2}}
494
\def\@xnprf#1#2{\expandafter\@ifdefinable\csname #1\endcsname
495
\global\@namedef{#1}{\@prf{#1}{#2}}\global\@namedef{end#1}{\@endproof}}
497
\def\@prf#1#2{\@xprf{#1}{#2}}
499
\def\@xprf#1#2{\@beginproof{#2}{\csname the#1\endcsname}\ignorespaces}
503
%%% defined algorithm environment by theorem model
505
\def\newalgorithm#1{\@ifnextchar[{\@oalg{#1}}{\@nalg{#1}}}
508
\@ifnextchar[{\@xnalg{#1}{#2}}{\@ynalg{#1}{#2}}}
510
\def\@xnalg#1#2[#3]{\expandafter\@ifdefinable\csname #1\endcsname
511
{\@definecounter{#1}\@addtoreset{#1}{#3}%
512
\expandafter\xdef\csname the#1\endcsname{\expandafter\noexpand
513
\csname the#3\endcsname \@thmcountersep \@thmcounter{#1}}%
514
\global\@namedef{#1}{\@alg{#1}{#2}}\global\@namedef{end#1}{\@endalgorithm}}}
516
\def\@ynalg#1#2{\expandafter\@ifdefinable\csname #1\endcsname
517
{\@definecounter{#1}%
518
\expandafter\xdef\csname the#1\endcsname{\@thmcounter{#1}}%
519
\global\@namedef{#1}{\@alg{#1}{#2}}\global\@namedef{end#1}{\@endalgorithm}}}
521
\def\@oalg#1[#2]#3{\expandafter\@ifdefinable\csname #1\endcsname
522
{\global\@namedef{the#1}{\@nameuse{the#2}}%
523
\global\@namedef{#1}{\@alg{#2}{#3}}%
524
\global\@namedef{end#1}{\@endalgorithm}}}
526
\def\@alg#1#2{\refstepcounter
527
{#1}\@ifnextchar[{\@yalg{#1}{#2}}{\@xalg{#1}{#2}}}
529
\def\@xalg#1#2{\@beginalgorithm{#2}{\csname the#1\endcsname}\ignorespaces}
530
\def\@yalg#1#2[#3]{\@opargbeginalgorithm{#2}{\csname
531
the#1\endcsname}{#3}\ignorespaces}
536
\def\@beginproof#1{\rm {\it #1.\ }}
537
\def\@endproof{\outerparskip 0pt\endtrivlist}
539
\def\@begintheorem#1#2{\it {\sc #1\ #2.\ }}
540
\def\@opargbegintheorem#1#2#3{\it
541
{\sc #1\ #2\ (#3).\ }}
542
\def\@endtheorem{\outerparskip 0pt\endtrivlist}
544
%\def\@begindefinition#1#2{\rm \trivlist \item[\hskip \labelsep{\sc #1\ #2.}]}
545
%\def\@opargbegindefinition#1#2#3{\rm \trivlist
546
% \item[\hskip \labelsep{\sc #1\ #2.\ (#3)}]}
547
%\def\@enddefinition{\outerparskip 0pt\endtrivlist}
550
\def\@beginalgorithm#1#2{\rm \trivlist \item[\hskip \labelsep{\sc #1\ #2.}]}
551
\def\@opargbeginalgorithm#1#2#3{\rm \trivlist
552
\item[\hskip \labelsep{\sc #1\ #2.\ (#3)}]}
553
\def\@endalgorithm{\outerparskip 6pt\endtrivlist}
556
\newskip\outerparskip
558
\def\trivlist{\parsep\outerparskip
559
\@trivlist \labelwidth\z@ \leftmargin\z@
560
\itemindent\parindent \def\makelabel##1{##1}}
562
\def\@trivlist{\topsep=0pt\@topsepadd\topsep
563
\if@noskipsec \leavevmode \fi
564
\ifvmode \advance\@topsepadd\partopsep \else \unskip\par\fi
565
\if@inlabel \@noparitemtrue \@noparlisttrue
566
\else \@noparlistfalse \@topsep\@topsepadd \fi
567
\advance\@topsep \parskip
568
\leftskip\z@\rightskip\@rightskip \parfillskip\@flushglue
569
\@setpar{\if@newlist\else{\@@par}\fi}%
570
\global\@newlisttrue \@outerparskip\parskip}
573
\def\endtrivlist{\if@newlist\@noitemerr\fi
574
\if@inlabel\indent\fi
575
\ifhmode\unskip \par\fi
577
\ifdim\lastskip >\z@ \@tempskipa\lastskip \vskip -\lastskip
578
\advance\@tempskipa\parskip \advance\@tempskipa -\@outerparskip
585
\newproof{@proof}{Proof}
586
\newenvironment{proof}{\begin{@proof}}{\end{@proof}}
588
\newtheorem{@theorem}{Theorem}[section]
589
\newenvironment{theorem}{\begin{@theorem}}{\end{@theorem}}
591
% \newalgorithm{@algorithm}{Algorithm}[section]
592
% \newenvironment{algorithm}{\begin{@algorithm}}{\end{@algorithm}}
596
\newtheorem{lemma}{Lemma}[section]
597
\newtheorem{fact}{Fact}[section]
598
\newtheorem{corollary}{Corollary}[section]
599
\newtheorem{axiom}{Axiom}[section]
600
\newtheorem{cond}{Condition}[section]
601
\newtheorem{property}{Property}[section]
602
\newtheorem{proposition}{Proposition}[section]
604
\newtheorem{Conjecture}{Conjecture}[section]
605
\newtheorem{Definition}{Definition}[section]
606
\newtheorem{Lemma}{Lemma}[section]
607
\newtheorem{Remark}{Remark}[section]
609
\newproof{Example}{Example}
610
\newproof{Method}{Method}
611
\newproof{Exercise}{Exercise}
613
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
615
% TABLE AND FIGURE CAPTIONS %
617
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
619
\long\def\@makecaption#1#2{\small
620
\setlength{\parindent}{18pt}
622
\ifx\@captype\@figtxt
624
\setbox\@tempboxa\hbox{{\sc #1} {\it #2}}
625
\ifdim \wd\@tempboxa >\hsize {\sc #1} {\it #2}\par \else \hbox
626
to\hsize{\hfil\box\@tempboxa\hfil}%
627
\fi\else\hbox to\hsize{\hfil{\sc #1}\hfil}%
628
\setbox\@tempboxa\hbox{{\it #2}}%
629
\ifdim \wd\@tempboxa >\hsize {\it #2}\par \else
630
\hbox to \hsize{\hfil\box\@tempboxa\hfil}\fi
635
%\newif\iftable \global\tablefalse
638
%\long\def\@makecaption#1#2{%
639
%\setlength{\parindent}{18pt}
642
% \hbox to \hsize{\hfil\sc #1\hfil}
643
% \hbox to \hsize{\hfil\it #2\hfil}
646
% \setbox\@tempboxa\hbox{{\small#1} {\small\it#2}}
647
% \ifdim \wd\@tempboxa >\hsize
648
% \indent{\small#1}{\small\it#2}\par
650
% \hbox to\hsize{\hfil\box\@tempboxa\hfil}\fi
656
%\def\figure{\global\tablefalse\@float{figure}}
657
\def\fnum@figure{\par\sc Fig. \thefigure.\ }
658
%\def\fnum@figure{\par\sc Fig. \thefigure\ }
660
%\def\table{\global\tabletrue\@float{table}}
661
\def\fnum@table{\small \sc Table \thetable}
668
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
672
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
674
\def\section{\@startsection {section}{1}{\z@}{-3.5ex plus -1ex minus
675
-.2ex}%{2.3ex plus .2ex}
677
\def\subsection{\@startsection{subsection}{2}{\z@}{-3.25ex plus -1ex minus
678
-.2ex}%{1.5ex plus .2ex}
680
\def\subsubsection{\@startsection {subsubsection}{3}{\z@}{1.3ex plus .5ex minus
681
.2ex}{-.5em plus -.1em}{\normalsize\bf}}
688
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
692
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
695
\def\thebibliography#1{%
699
\begin{flushleft}\large\bf {References}\end{flushleft}
700
\addvspace{3pt}\nopagebreak\list
701
%% default is no labels, for those not using \cite or BibTeX
702
{[\arabic{enumi}]} {\settowidth\labelwidth{[#1]}
703
%%{[\arabic{enumi}]}{\settowidth\labelwidth{mm}
704
\leftmargin\labelwidth
706
\advance\leftmargin\labelsep
707
\usecounter{enumi}\@bibsetup}
708
\def\newblock{\hskip .11em plus .33em minus -.07em}
709
\sloppy\clubpenalty4000\widowpenalty4000
710
\sfcode`\.=1000\relax}
715
\def\@bibsetup{%\itemindent=0pt
716
\itemsep=0pt \parsep=0pt
719
\def\sameauthor{\leavevmode\vrule height 2pt depth -1.6pt width 23pt}
722
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
726
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
729
%makeindex.sty official version 6.4
730
%The second line came from /usr/misc/lib/tex82/report.sty.
732
\def\theindex{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi
734
\columnsep 35pt\twocolumn[\chapter*{Index}]
735
\parskip\z@ plus .3pt\relax\let\item\@idxitem}
738
\def\printindex{\cleardoublepage\markboth{INDEX}{INDEX}
739
\addcontentsline{toc}{chapter}{Index}\@input{\jobname.ind}}
744
%%% end of style file
746
%%%%%%%%%%%%%%%%%%%%%%%%%%CUT HERE%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
748
% This is siamproc.bst
749
% SIAM bibliography style (29-Jan-88 version)
750
% numeric labels, alphabetic order, Mathematical Reviews abbreviations,
751
% names in \sc, titles in italics, book titles mixed upper-lower and article
752
% titles lowercase, commas separate all fields except before "notes".
755
% 1/30/86 (HWT) Original version, by Howard Trickey.
756
% 6/15/87 (HWT) Fix format.editors---Martin Costabel.
757
% 1/29/88 (OP&HWT) Updated for BibTeX version 0.99a, Oren Patashnik;
758
% THIS `siam' VERSION DOES NOT WORK WITH BIBTEX 0.98i.
787
INTEGERS { output.state before.all mid.sentence after.block }
789
FUNCTION {init.state.consts}
797
FUNCTION {output.nonnull}
799
output.state mid.sentence =
801
{ output.state after.block =
808
mid.sentence 'output.state :=
821
FUNCTION {output.check}
824
{ pop$ "empty " t * " in " * cite$ * warning$ }
829
FUNCTION {output.bibitem}
836
before.all 'output.state :=
846
{ output.state before.all =
848
{ after.block 'output.state := }
870
FUNCTION {new.block.checka}
877
FUNCTION {field.or.null}
887
{ "{\em " swap$ * "}" * }
894
{ "{\sc " swap$ * "}" * }
898
INTEGERS { nameptr namesleft numnames }
900
FUNCTION {format.names}
903
s num.names$ 'numnames :=
904
numnames 'namesleft :=
906
{ s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=
923
nameptr #1 + 'nameptr :=
924
namesleft #1 - 'namesleft :=
929
STRINGS { last.authors }
931
FUNCTION {init.last.authors}
932
{ "" 'last.authors :=
935
FUNCTION {format.authors}
937
{ "" 'last.authors :=
940
{ author last.authors =
941
{ "\leavevmode\vrule height 2pt depth -1.6pt width 23pt" }
942
{ author format.names }% scapify }
944
author 'last.authors :=
949
FUNCTION {format.organization}
950
{ organization empty$
951
{ "" 'last.authors :=
954
{ organization last.authors =
955
{ "\leavevmode\vrule height 2pt depth -1.6pt width 23pt" }
956
{ organization scapify }
958
organization 'last.authors :=
963
FUNCTION {format.editors}
965
{ "" 'last.authors :=
968
{ editor last.authors =
969
{ "\leavevmode\vrule height 2pt depth -1.6pt width 23pt" }
970
{ editor format.names scapify }
972
editor num.names$ #1 >
976
editor 'last.authors :=
981
FUNCTION {format.ineditors}
984
{ editor format.names
985
editor num.names$ #1 >
993
FUNCTION {format.title}
996
{ title "t" change.case$ emphasize }
1000
FUNCTION {n.dashify}
1004
{ t #1 #1 substring$ "-" =
1005
{ t #1 #2 substring$ "--" = not
1007
t #2 global.max$ substring$ 't :=
1009
{ { t #1 #1 substring$ "-" = }
1011
t #2 global.max$ substring$ 't :=
1017
{ t #1 #1 substring$ *
1018
t #2 global.max$ substring$ 't :=
1025
FUNCTION {format.date}
1029
{ "there's a month but no year in " cite$ * warning$
1036
{ month " " * year * }
1042
FUNCTION {format.btitle}
1046
FUNCTION {tie.or.space.connect}
1047
{ duplicate$ text.length$ #3 <
1054
FUNCTION {either.or.check}
1057
{ "can't use both " swap$ * " fields in " * cite$ * warning$ }
1061
FUNCTION {format.bvolume}
1067
{ " of " * series * }
1069
"volume and number" number either.or.check
1074
FUNCTION {format.number.series}
1077
{ series field.or.null }
1080
{ "there's a number but no series in " cite$ * warning$ }
1081
{ " in " * series * }
1090
FUNCTION {format.edition}
1093
{ edition "l" change.case$ "~ed." * }
1097
INTEGERS { multiresult }
1099
FUNCTION {multi.page.check}
1106
{ t #1 #1 substring$
1108
swap$ duplicate$ "," =
1111
{ #1 'multiresult := }
1112
{ t #2 global.max$ substring$ 't := }
1119
FUNCTION {format.pages}
1122
{ pages multi.page.check
1123
{ "pp.~" pages n.dashify * }
1130
FUNCTION {format.vol.year}
1131
{ volume field.or.null
1133
{ "empty year in " cite$ * warning$ }
1134
{ " (" year * ")" * * }
1138
FUNCTION {format.chapter.pages}
1142
{ "ch.~" chapter * }
1143
{ type "l" change.case$ chapter tie.or.space.connect }
1147
{ ", " * format.pages * }
1153
FUNCTION {format.in.ed.booktitle}
1157
{ "in " booktitle * }
1158
{ "in " booktitle * ", " * format.ineditors * }
1164
FUNCTION {empty.misc.check}
1165
{ author empty$ title empty$ howpublished empty$
1166
month empty$ year empty$ note empty$
1169
{ "all relevant fields are empty in " cite$ * warning$ }
1174
FUNCTION {format.thesis.type}
1178
type "l" change.case$
1183
FUNCTION {format.tr.number}
1189
{ "l" change.case$ }
1190
{ number tie.or.space.connect }
1194
FUNCTION {format.article.crossref}
1197
{ "need key or journal for " cite$ * " to crossref " * crossref *
1206
" \cite{" * crossref * "}" *
1209
FUNCTION {format.crossref.editor}
1210
{ editor #1 "{vv~}{ll}" format.name$
1211
editor num.names$ duplicate$
1213
{ pop$ " et~al." * }
1216
{ editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
1218
{ " and " * editor #2 "{vv~}{ll}" format.name$ * }
1226
FUNCTION {format.book.crossref}
1228
{ "empty volume in " cite$ * "'s crossref of " * crossref * warning$
1236
editor field.or.null author field.or.null =
1240
{ "need editor, key, or series for " cite$ * " to crossref " *
1250
{ format.crossref.editor * }
1252
" \cite{" * crossref * "}" *
1255
FUNCTION {format.incoll.inproc.crossref}
1257
editor field.or.null author field.or.null =
1261
{ "need editor, key, or booktitle for " cite$ * " to crossref " *
1265
{ "in " booktitle * }
1271
{ "in " format.crossref.editor * }
1273
" \cite{" * crossref * "}" *
1278
format.authors "author" output.check
1279
format.title "title" output.check
1281
{ journal "journal" output.check
1282
format.vol.year output
1284
{ format.article.crossref output.nonnull }
1295
{ format.editors "author and editor" output.check }
1296
{ format.authors output.nonnull
1298
{ "author and editor" editor either.or.check }
1303
format.btitle "title" output.check
1305
{ format.bvolume output
1306
format.number.series output
1307
publisher "publisher" output.check
1310
{ format.book.crossref output.nonnull }
1312
format.edition output
1313
format.date "year" output.check
1321
format.authors output
1322
format.title "title" output.check
1323
howpublished new.block.checka
1335
{ format.editors "author and editor" output.check }
1336
{ format.authors output.nonnull
1338
{ "author and editor" editor either.or.check }
1343
format.btitle "title" output.check
1345
{ format.bvolume output
1346
format.number.series output
1347
publisher "publisher" output.check
1350
{ format.book.crossref output.nonnull }
1352
format.edition output
1353
format.date "year" output.check
1354
format.chapter.pages "chapter and pages" output.check
1360
FUNCTION {incollection}
1362
format.authors "author" output.check
1363
format.title "title" output.check
1365
{ format.in.ed.booktitle "booktitle" output.check
1366
format.bvolume output
1367
format.number.series output
1368
publisher "publisher" output.check
1370
format.edition output
1371
format.date "year" output.check
1373
{ format.incoll.inproc.crossref output.nonnull }
1375
format.chapter.pages output
1381
FUNCTION {inproceedings}
1383
format.authors "author" output.check
1384
format.title "title" output.check
1386
{ format.in.ed.booktitle "booktitle" output.check
1387
format.bvolume output
1388
format.number.series output
1390
{ organization output
1392
format.date "year" output.check
1394
{ address output.nonnull
1395
format.date "year" output.check
1401
{ format.incoll.inproc.crossref output.nonnull }
1409
FUNCTION {conference} { inproceedings }
1414
{ format.organization output }
1415
{ format.authors output.nonnull }
1417
format.btitle "title" output.check
1420
{ organization output }
1423
format.edition output
1430
FUNCTION {mastersthesis}
1432
format.authors "author" output.check
1433
format.title "title" output.check
1434
"Master's thesis" format.thesis.type output.nonnull
1435
school "school" output.check
1437
format.date "year" output.check
1445
format.authors output
1447
howpublished new.block.checka
1456
FUNCTION {phdthesis}
1458
format.authors "author" output.check
1459
format.btitle "title" output.check
1460
"PhD thesis" format.thesis.type output.nonnull
1461
school "school" output.check
1463
format.date "year" output.check
1469
FUNCTION {proceedings}
1472
{ format.organization output }
1473
{ format.editors output.nonnull }
1475
format.btitle "title" output.check
1476
format.bvolume output
1477
format.number.series output
1481
{ organization output }
1484
format.date "year" output.check
1486
{ address output.nonnull
1487
format.date "year" output.check
1490
{ organization output }
1500
FUNCTION {techreport}
1502
format.authors "author" output.check
1503
format.title "title" output.check
1504
format.tr.number output.nonnull
1505
institution "institution" output.check
1507
format.date "year" output.check
1513
FUNCTION {unpublished}
1515
format.authors "author" output.check
1516
format.title "title" output.check
1518
note "note" output.check
1523
FUNCTION {default.type} { misc }
1525
MACRO {jan} {"Jan."}
1527
MACRO {feb} {"Feb."}
1529
MACRO {mar} {"Mar."}
1531
MACRO {apr} {"Apr."}
1535
MACRO {jun} {"June"}
1537
MACRO {jul} {"July"}
1539
MACRO {aug} {"Aug."}
1541
MACRO {sep} {"Sept."}
1543
MACRO {oct} {"Oct."}
1545
MACRO {nov} {"Nov."}
1547
MACRO {dec} {"Dec."}
1549
MACRO {acmcs} {"ACM Comput. Surveys"}
1551
MACRO {acta} {"Acta Inf."}
1553
MACRO {cacm} {"Comm. ACM"}
1555
MACRO {ibmjrd} {"IBM J. Res. Dev."}
1557
MACRO {ibmsj} {"IBM Syst.~J."}
1559
MACRO {ieeese} {"IEEE Trans. Softw. Eng."}
1561
MACRO {ieeetc} {"IEEE Trans. Comput."}
1564
{"IEEE Trans. Comput.-Aided Design Integrated Circuits"}
1566
MACRO {ipl} {"Inf. Process. Lett."}
1568
MACRO {jacm} {"J.~Assoc. Comput. Mach."}
1570
MACRO {jcss} {"J.~Comput. System Sci."}
1572
MACRO {scp} {"Sci. Comput. Programming"}
1574
MACRO {sicomp} {"SIAM J. Comput."}
1576
MACRO {tocs} {"ACM Trans. Comput. Syst."}
1578
MACRO {tods} {"ACM Trans. Database Syst."}
1580
MACRO {tog} {"ACM Trans. Gr."}
1582
MACRO {toms} {"ACM Trans. Math. Softw."}
1584
MACRO {toois} {"ACM Trans. Office Inf. Syst."}
1586
MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."}
1588
MACRO {tcs} {"Theoretical Comput. Sci."}
1599
FUNCTION {chop.word}
1602
s #1 len substring$ =
1603
{ s len #1 + global.max$ substring$ }
1608
FUNCTION {sort.format.names}
1612
s num.names$ 'numnames :=
1613
numnames 'namesleft :=
1619
s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't :=
1620
nameptr numnames = t "others" = and
1624
nameptr #1 + 'nameptr :=
1625
namesleft #1 - 'namesleft :=
1630
FUNCTION {sort.format.title}
1634
"The " #4 t chop.word
1638
#1 global.max$ substring$
1641
FUNCTION {author.sort}
1644
{ "to sort, need author or key in " cite$ * warning$
1650
{ author sort.format.names }
1654
FUNCTION {author.editor.sort}
1658
{ "to sort, need author, editor, or key in " cite$ * warning$
1664
{ editor sort.format.names }
1667
{ author sort.format.names }
1671
FUNCTION {author.organization.sort}
1673
{ organization empty$
1675
{ "to sort, need author, organization, or key in " cite$ * warning$
1681
{ "The " #4 organization chop.word sortify }
1684
{ author sort.format.names }
1688
FUNCTION {editor.organization.sort}
1690
{ organization empty$
1692
{ "to sort, need editor, organization, or key in " cite$ * warning$
1698
{ "The " #4 organization chop.word sortify }
1701
{ editor sort.format.names }
1710
{ type$ "proceedings" =
1711
'editor.organization.sort
1713
'author.organization.sort
1722
year field.or.null sortify
1729
#1 entry.max$ substring$
1737
STRINGS { longest.label }
1739
INTEGERS { number.label longest.label.width }
1741
FUNCTION {initialize.longest.label}
1742
{ "" 'longest.label :=
1744
#0 'longest.label.width :=
1747
FUNCTION {longest.label.pass}
1748
{ number.label int.to.str$ 'label :=
1749
number.label #1 + 'number.label :=
1750
label width$ longest.label.width >
1751
{ label 'longest.label :=
1752
label width$ 'longest.label.width :=
1758
EXECUTE {initialize.longest.label}
1760
ITERATE {longest.label.pass}
1762
FUNCTION {begin.bib}
1765
{ preamble$ write$ newline$ }
1767
"\begin{thebibliography}{" longest.label * "}" * write$ newline$
1772
EXECUTE {init.state.consts}
1774
EXECUTE {init.last.authors}
1776
ITERATE {call.type$}
1780
"\end{thebibliography}" write$ newline$