changeset 59:7bc474513431

change style to acm
author Nina Engelhardt <nengel@mailbox.tu-berlin.de>
date Tue, 26 Jun 2012 12:48:44 +0200
parents 2db21884dc2e
children 74775fd41630
files 0__Papers/Holistic_Model/Perf_Tune/latex/Holistic_Perf_Tuning.pdf 0__Papers/Holistic_Model/Perf_Tune/latex/Holistic_Perf_Tuning.tex 0__Papers/Holistic_Model/Perf_Tune/latex/sigplanconf.cls
diffstat 3 files changed, 1316 insertions(+), 286 deletions(-) [+]
line diff
     1.1 Binary file 0__Papers/Holistic_Model/Perf_Tune/latex/Holistic_Perf_Tuning.pdf has changed
     2.1 --- a/0__Papers/Holistic_Model/Perf_Tune/latex/Holistic_Perf_Tuning.tex	Wed Jun 20 15:17:14 2012 -0700
     2.2 +++ b/0__Papers/Holistic_Model/Perf_Tune/latex/Holistic_Perf_Tuning.tex	Tue Jun 26 12:48:44 2012 +0200
     2.3 @@ -1,277 +1,33 @@
     2.4 -%&latex
     2.5 -%%----------------------------------------------------------------------
     2.6 -%% ieeepes_skel.tex
     2.7 -%%
     2.8 -%% Skeleton file for papers for the IEEE Power Engineering Society using
     2.9 -%% package ieeepes.
    2.10 -%%
    2.11 -%% Not copyrighted. Copy this file to a different name and fill in your
    2.12 -%% text.
    2.13 -%%
    2.14 -%% Volker Kuhlmann
    2.15 -%% c/o EEE Dept
    2.16 -%% University of Canterbury
    2.17 -%% Private Bag 4800
    2.18 -%% Christchurch, New Zealand
    2.19 -%% Email: KUHLMAV@ELEC.CANTERBURY.AC.NZ
    2.20 -%%
    2.21 -% 1.3  13Apr99  Updated for ieeepes 4.0.
    2.22 -% 1.2  16Nov95  Fixed discussion, closure. Added summary.
    2.23 -% 1.1  12Nov95  Finished first release.
    2.24 -% 1.02 09Nov95  Option PStimes.
    2.25 -% 1.0  07Nov95  Created.
    2.26 -%%----------------------------------------------------------------------
    2.27 - 
    2.28 +%-----------------------------------------------------------------------------
    2.29 +%
    2.30 +%               Template for sigplanconf LaTeX Class
    2.31 +%
    2.32 +% Name:         sigplanconf-template.tex
    2.33 +%
    2.34 +% Purpose:      A template for sigplanconf.cls, which is a LaTeX 2e class
    2.35 +%               file for SIGPLAN conference proceedings.
    2.36 +%
    2.37 +% Guide:        Refer to "Author's Guide to the ACM SIGPLAN Class,"
    2.38 +%               sigplanconf-guide.pdf
    2.39 +%
    2.40 +% Author:       Paul C. Anagnostopoulos
    2.41 +%               Windfall Software
    2.42 +%               978 371-2316
    2.43 +%               paul@windfall.com
    2.44 +%
    2.45 +% Created:      15 February 2005
    2.46 +%
    2.47 +%-----------------------------------------------------------------------------
    2.48  
    2.49 -\documentclass[conference]{IEEEtran}
    2.50 +
    2.51 +\documentclass[preprint]{sigplanconf}
    2.52 +
    2.53 +% The following \documentclass options may be useful:
    2.54  %
    2.55 -%\usepackage{makeidx,geometry,amssymb,graphicx,calc,ifthen}
    2.56 +% 10pt          To set in 10-point type instead of 9-point.
    2.57 +% 11pt          To set in 11-point type instead of 9-point.
    2.58 +% authoryear    To obtain author/year citation style instead of numeric.
    2.59  \usepackage{amssymb,graphicx,calc,ifthen,subfig,dblfloatfix,fixltx2e}
    2.60 -%
    2.61 -
    2.62 -% *** CITATION PACKAGES ***
    2.63 -%
    2.64 -%\usepackage{cite}
    2.65 -% cite.sty was written by Donald Arseneau
    2.66 -% V1.6 and later of IEEEtran pre-defines the format of the cite.sty package
    2.67 -% \cite{} output to follow that of IEEE. Loading the cite package will
    2.68 -% result in citation numbers being automatically sorted and properly
    2.69 -% "compressed/ranged". e.g., [1], [9], [2], [7], [5], [6] without using
    2.70 -% cite.sty will become [1], [2], [5]--[7], [9] using cite.sty. cite.sty's
    2.71 -% \cite will automatically add leading space, if needed. Use cite.sty's
    2.72 -% noadjust option (cite.sty V3.8 and later) if you want to turn this off.
    2.73 -% cite.sty is already installed on most LaTeX systems. Be sure and use
    2.74 -% version 4.0 (2003-05-27) and later if using hyperref.sty. cite.sty does
    2.75 -% not currently provide for hyperlinked citations.
    2.76 -% The latest version can be obtained at:
    2.77 -% http://www.ctan.org/tex-archive/macros/latex/contrib/cite/
    2.78 -% The documentation is contained in the cite.sty file itself.
    2.79 -
    2.80 -
    2.81 -
    2.82 -
    2.83 -
    2.84 -
    2.85 -% *** GRAPHICS RELATED PACKAGES ***
    2.86 -%
    2.87 -
    2.88 -\usepackage[pdftex]{graphicx}
    2.89 -  \ifCLASSINFOpdf
    2.90 -
    2.91 -  % declare the path(s) where your graphic files are
    2.92 -  % \graphicspath{{../pdf/}{../jpeg/}}
    2.93 -  % and their extensions so you won't have to specify these with
    2.94 -  % every instance of \includegraphics
    2.95 -  % \DeclareGraphicsExtensions{.pdf,.jpeg,.png}
    2.96 -\else
    2.97 -  % or other class option (dvipsone, dvipdf, if not using dvips). graphicx
    2.98 -  % will default to the driver specified in the system graphics.cfg if no
    2.99 -  % driver is specified.
   2.100 -  % \usepackage[dvips]{graphicx}
   2.101 -  % declare the path(s) where your graphic files are
   2.102 -  % \graphicspath{{../eps/}}
   2.103 -  % and their extensions so you won't have to specify these with
   2.104 -  % every instance of \includegraphics
   2.105 -  % \DeclareGraphicsExtensions{.eps}
   2.106 -\fi
   2.107 -% graphicx was written by David Carlisle and Sebastian Rahtz. It is
   2.108 -% required if you want graphics, photos, etc. graphicx.sty is already
   2.109 -% installed on most LaTeX systems. The latest version and documentation can
   2.110 -% be obtained at: 
   2.111 -% http://www.ctan.org/tex-archive/macros/latex/required/graphics/
   2.112 -% Another good source of documentation is "Using Imported Graphics in
   2.113 -% LaTeX2e" by Keith Reckdahl which can be found as epslatex.ps or
   2.114 -% epslatex.pdf at: http://www.ctan.org/tex-archive/info/
   2.115 -%
   2.116 -% latex, and pdflatex in dvi mode, support graphics in encapsulated
   2.117 -% postscript (.eps) format. pdflatex in pdf mode supports graphics
   2.118 -% in .pdf, .jpeg, .png and .mps (metapost) formats. Users should ensure
   2.119 -% that all non-photo figures use a vector format (.eps, .pdf, .mps) and
   2.120 -% not a bitmapped formats (.jpeg, .png). IEEE frowns on bitmapped formats
   2.121 -% which can result in "jaggedy"/blurry rendering of lines and letters as
   2.122 -% well as large increases in file sizes.
   2.123 -%
   2.124 -% You can find documentation about the pdfTeX application at:
   2.125 -% http://www.tug.org/applications/pdftex
   2.126 -
   2.127 -
   2.128 -
   2.129 -
   2.130 -
   2.131 -% *** MATH PACKAGES ***
   2.132 -%
   2.133 -%\usepackage[cmex10]{amsmath}
   2.134 -% A popular package from the American Mathematical Society that provides
   2.135 -% many useful and powerful commands for dealing with mathematics. If using
   2.136 -% it, be sure to load this package with the cmex10 option to ensure that
   2.137 -% only type 1 fonts will utilized at all point sizes. Without this option,
   2.138 -% it is possible that some math symbols, particularly those within
   2.139 -% footnotes, will be rendered in bitmap form which will result in a
   2.140 -% document that can not be IEEE Xplore compliant!
   2.141 -%
   2.142 -% Also, note that the amsmath package sets \interdisplaylinepenalty to 10000
   2.143 -% thus preventing page breaks from occurring within multiline equations. Use:
   2.144 -%\interdisplaylinepenalty=2500
   2.145 -% after loading amsmath to restore such page breaks as IEEEtran.cls normally
   2.146 -% does. amsmath.sty is already installed on most LaTeX systems. The latest
   2.147 -% version and documentation can be obtained at:
   2.148 -% http://www.ctan.org/tex-archive/macros/latex/required/amslatex/math/
   2.149 -
   2.150 -
   2.151 -
   2.152 -
   2.153 -
   2.154 -% *** SPECIALIZED LIST PACKAGES ***
   2.155 -%
   2.156 -%\usepackage{algorithmic}
   2.157 -% algorithmic.sty was written by Peter Williams and Rogerio Brito.
   2.158 -% This package provides an algorithmic environment fo describing algorithms.
   2.159 -% You can use the algorithmic environment in-text or within a figure
   2.160 -% environment to provide for a floating algorithm. Do NOT use the algorithm
   2.161 -% floating environment provided by algorithm.sty (by the same authors) or
   2.162 -% algorithm2e.sty (by Christophe Fiorio) as IEEE does not use dedicated
   2.163 -% algorithm float types and packages that provide these will not provide
   2.164 -% correct IEEE style captions. The latest version and documentation of
   2.165 -% algorithmic.sty can be obtained at:
   2.166 -% http://www.ctan.org/tex-archive/macros/latex/contrib/algorithms/
   2.167 -% There is also a support site at:
   2.168 -% http://algorithms.berlios.de/index.html
   2.169 -% Also of interest may be the (relatively newer and more customizable)
   2.170 -% algorithmicx.sty package by Szasz Janos:
   2.171 -% http://www.ctan.org/tex-archive/macros/latex/contrib/algorithmicx/
   2.172 -
   2.173 -
   2.174 -
   2.175 -
   2.176 -% *** ALIGNMENT PACKAGES ***
   2.177 -%
   2.178 -%\usepackage{array}
   2.179 -% Frank Mittelbach's and David Carlisle's array.sty patches and improves
   2.180 -% the standard LaTeX2e array and tabular environments to provide better
   2.181 -% appearance and additional user controls. As the default LaTeX2e table
   2.182 -% generation code is lacking to the point of almost being broken with
   2.183 -% respect to the quality of the end results, all users are strongly
   2.184 -% advised to use an enhanced (at the very least that provided by array.sty)
   2.185 -% set of table tools. array.sty is already installed on most systems. The
   2.186 -% latest version and documentation can be obtained at:
   2.187 -% http://www.ctan.org/tex-archive/macros/latex/required/tools/
   2.188 -
   2.189 -
   2.190 -%\usepackage{mdwmath}
   2.191 -%\usepackage{mdwtab}
   2.192 -% Also highly recommended is Mark Wooding's extremely powerful MDW tools,
   2.193 -% especially mdwmath.sty and mdwtab.sty which are used to format equations
   2.194 -% and tables, respectively. The MDWtools set is already installed on most
   2.195 -% LaTeX systems. The lastest version and documentation is available at:
   2.196 -% http://www.ctan.org/tex-archive/macros/latex/contrib/mdwtools/
   2.197 -
   2.198 -
   2.199 -% IEEEtran contains the IEEEeqnarray family of commands that can be used to
   2.200 -% generate multiline equations as well as matrices, tables, etc., of high
   2.201 -% quality.
   2.202 -
   2.203 -
   2.204 -%\usepackage{eqparbox}
   2.205 -% Also of notable interest is Scott Pakin's eqparbox package for creating
   2.206 -% (automatically sized) equal width boxes - aka "natural width parboxes".
   2.207 -% Available at:
   2.208 -% http://www.ctan.org/tex-archive/macros/latex/contrib/eqparbox/
   2.209 -
   2.210 -
   2.211 -
   2.212 -
   2.213 -
   2.214 -% *** SUBFIGURE PACKAGES ***
   2.215 -%\usepackage[tight,footnotesize]{subfig}
   2.216 -% subfigure.sty was written by Steven Douglas Cochran. This package makes it
   2.217 -% easy to put subfigures in your figures. e.g., "Figure 1a and 1b". For IEEE
   2.218 -% work, it is a good idea to load it with the tight package option to reduce
   2.219 -% the amount of white space around the subfigures. subfigure.sty is already
   2.220 -% installed on most LaTeX systems. The latest version and documentation can
   2.221 -% be obtained at:
   2.222 -% http://www.ctan.org/tex-archive/obsolete/macros/latex/contrib/subfigure/
   2.223 -% subfigure.sty has been superceeded by subfig.sty.
   2.224 -
   2.225 -
   2.226 -
   2.227 -%\usepackage[caption=false]{caption}
   2.228 -%\usepackage[font=footnotesize]{subfig}
   2.229 -% subfig.sty, also written by Steven Douglas Cochran, is the modern
   2.230 -% replacement for subfigure.sty. However, subfig.sty requires and
   2.231 -% automatically loads Axel Sommerfeldt's caption.sty which will override
   2.232 -% IEEEtran.cls handling of captions and this will result in nonIEEE style
   2.233 -% figure/table captions. To prevent this problem, be sure and preload
   2.234 -% caption.sty with its "caption=false" package option. This is will preserve
   2.235 -% IEEEtran.cls handing of captions. Version 1.3 (2005/06/28) and later 
   2.236 -% (recommended due to many improvements over 1.2) of subfig.sty supports
   2.237 -% the caption=false option directly:
   2.238 -%\usepackage[caption=false,font=footnotesize]{subfig}
   2.239 -%
   2.240 -% The latest version and documentation can be obtained at:
   2.241 -% http://www.ctan.org/tex-archive/macros/latex/contrib/subfig/
   2.242 -% The latest version and documentation of caption.sty can be obtained at:
   2.243 -% http://www.ctan.org/tex-archive/macros/latex/contrib/caption/
   2.244 -
   2.245 -
   2.246 -
   2.247 -
   2.248 -% *** FLOAT PACKAGES ***
   2.249 -%
   2.250 -%\usepackage{fixltx2e}
   2.251 -% fixltx2e, the successor to the earlier fix2col.sty, was written by
   2.252 -% Frank Mittelbach and David Carlisle. This package corrects a few problems
   2.253 -% in the LaTeX2e kernel, the most notable of which is that in current
   2.254 -% LaTeX2e releases, the ordering of single and double column floats is not
   2.255 -% guaranteed to be preserved. Thus, an unpatched LaTeX2e can allow a
   2.256 -% single column figure to be placed prior to an earlier double column
   2.257 -% figure. The latest version and documentation can be found at:
   2.258 -% http://www.ctan.org/tex-archive/macros/latex/base/
   2.259 -
   2.260 -
   2.261 -
   2.262 -%\usepackage{stfloats}
   2.263 -% stfloats.sty was written by Sigitas Tolusis. This package gives LaTeX2e
   2.264 -% the ability to do double column floats at the bottom of the page as well
   2.265 -% as the top. (e.g., "\begin{figure*}[!b]" is not normally possible in
   2.266 -% LaTeX2e). It also provides a command:
   2.267 -%\fnbelowfloat
   2.268 -% to enable the placement of footnotes below bottom floats (the standard
   2.269 -% LaTeX2e kernel puts them above bottom floats). This is an invasive package
   2.270 -% which rewrites many portions of the LaTeX2e float routines. It may not work
   2.271 -% with other packages that modify the LaTeX2e float routines. The latest
   2.272 -% version and documentation can be obtained at:
   2.273 -% http://www.ctan.org/tex-archive/macros/latex/contrib/sttools/
   2.274 -% Documentation is contained in the stfloats.sty comments as well as in the
   2.275 -% presfull.pdf file. Do not use the stfloats baselinefloat ability as IEEE
   2.276 -% does not allow \baselineskip to stretch. Authors submitting work to the
   2.277 -% IEEE should note that IEEE rarely uses double column equations and
   2.278 -% that authors should try to avoid such use. Do not be tempted to use the
   2.279 -% cuted.sty or midfloat.sty packages (also by Sigitas Tolusis) as IEEE does
   2.280 -% not format its papers in such ways.
   2.281 -
   2.282 -
   2.283 -
   2.284 -
   2.285 -
   2.286 -% *** PDF, URL AND HYPERLINK PACKAGES ***
   2.287 -%
   2.288 -%\usepackage{url}
   2.289 -% url.sty was written by Donald Arseneau. It provides better support for
   2.290 -% handling and breaking URLs. url.sty is already installed on most LaTeX
   2.291 -% systems. The latest version can be obtained at:
   2.292 -% http://www.ctan.org/tex-archive/macros/latex/contrib/misc/
   2.293 -% Read the url.sty source comments for usage information. Basically,
   2.294 -% \url{my_url_here}.
   2.295 -
   2.296 -
   2.297 -
   2.298 -
   2.299 -
   2.300 -% *** Do not adjust lengths that control margins, column widths, etc. ***
   2.301 -% *** Do not use packages that alter fonts (such as pslatex).         ***
   2.302 -% There should be no need to do such things with IEEEtran.cls V1.6 and later.
   2.303 -% (Unless specifically asked to do so by the journal or conference you plan
   2.304 -% to submit to, of course. )
   2.305  
   2.306  
   2.307  % correct bad hyphenation here
   2.308 @@ -284,21 +40,26 @@
   2.309  \bibliographystyle{plain}
   2.310  %
   2.311  
   2.312 +\conferenceinfo{WXYZ '05}{date, City.} 
   2.313 +\copyrightyear{2005} 
   2.314 +\copyrightdata{[to be supplied]} 
   2.315 +
   2.316 +\titlebanner{banner above paper title}        % These are ignored unless
   2.317 +\preprintfooter{short description of paper}   % 'preprint' option specified.
   2.318 +
   2.319  
   2.320  %MOIRAI: MOdel for Integrated Runtime Analysis through Instrumentation
   2.321  \title{Integrated Performance Tuning Using Semantic Information Collected by Instrumenting the Language Runtime}
   2.322  
   2.323 -\author{
   2.324 -        Nina Engelhardt\\
   2.325 -        TU Berlin
   2.326 -\and
   2.327 -        Sean Halle\\
   2.328 -        Open Source Research Institute
   2.329 -\and
   2.330 -        Ben Juurlink\\
   2.331 -        TU Berlin
   2.332 -}
   2.333 -
   2.334 +\authorinfo{Nina Engelhardt}
   2.335 +           {TU Berlin}
   2.336 +           {nengel@mailbox.tu-berlin.de}
   2.337 +\authorinfo{Sean Halle}
   2.338 +           {Open Source Research Institute}
   2.339 +           {Email1}
   2.340 +\authorinfo{Ben Juurlink}
   2.341 +           {TU Berlin}
   2.342 +           {b.juurlink@tu-berlin.de}
   2.343  
   2.344  
   2.345  % This \maketitle command is required from ieeepes version 4.0, to make
   2.346 @@ -341,10 +102,6 @@
   2.347  
   2.348  We start with refresher on performance tuning and an overview of previous approaches in section \ref{sec:related}. We shall usage of our visualizations through a case study in section \ref{sec:casestudy}, and then expand on the model behind it in section \ref{sec:theory}. Section \ref{sec:Implementation} will tie the model to implementation details. Finally, we will conclude in section \ref{sec:conclusion}.
   2.349  
   2.350 -
   2.351 -
   2.352 -
   2.353 -
   2.354  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   2.355  \section{Background and Related Work}
   2.356  \label{sec:related}
     3.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2 +++ b/0__Papers/Holistic_Model/Perf_Tune/latex/sigplanconf.cls	Tue Jun 26 12:48:44 2012 +0200
     3.3 @@ -0,0 +1,1273 @@
     3.4 +%-----------------------------------------------------------------------------
     3.5 +%
     3.6 +%               LaTeX Class/Style File
     3.7 +%
     3.8 +% Name:         sigplanconf.cls
     3.9 +%
    3.10 +% Purpose:      A LaTeX 2e class file for SIGPLAN conference proceedings.
    3.11 +%               This class file supercedes acm_proc_article-sp,
    3.12 +%               sig-alternate, and sigplan-proc.
    3.13 +%
    3.14 +% Author:       Paul C. Anagnostopoulos
    3.15 +%               Windfall Software
    3.16 +%               978 371-2316
    3.17 +%               paul [atsign] windfall.com
    3.18 +%
    3.19 +% Created:      12 September 2004
    3.20 +%
    3.21 +% Revisions:    See end of file.
    3.22 +%
    3.23 +% This work is licensed under the Creative Commons Attribution License.
    3.24 +% To view a copy of this license, visit
    3.25 +%   http://creativecommons.org/licenses/by/3.0/
    3.26 +% or send a letter to Creative Commons, 171 2nd Street, Suite 300,
    3.27 +% San Francisco, California, 94105, U.S.A.
    3.28 +%
    3.29 +%-----------------------------------------------------------------------------
    3.30 +
    3.31 +
    3.32 +\NeedsTeXFormat{LaTeX2e}[1995/12/01]
    3.33 +\ProvidesClass{sigplanconf}[2011/11/08 v2.5 ACM SIGPLAN Proceedings]
    3.34 +
    3.35 +% The following few pages contain LaTeX programming extensions adapted
    3.36 +% from the ZzTeX macro package.
    3.37 +
    3.38 +%                       Token Hackery
    3.39 +%                       ----- -------
    3.40 +
    3.41 +
    3.42 +\def \@expandaftertwice {\expandafter\expandafter\expandafter}
    3.43 +\def \@expandafterthrice {\expandafter\expandafter\expandafter\expandafter
    3.44 +                          \expandafter\expandafter\expandafter}
    3.45 +
    3.46 +% This macro discards the next token.
    3.47 +
    3.48 +\def \@discardtok #1{}%                                  token
    3.49 +
    3.50 +% This macro removes the `pt' following a dimension.
    3.51 +
    3.52 +{\catcode `\p = 12 \catcode `\t = 12
    3.53 +
    3.54 +\gdef \@remover #1pt{#1}
    3.55 +
    3.56 +} % \catcode
    3.57 +
    3.58 +% This macro extracts the contents of a macro and returns it as plain text.
    3.59 +% Usage: \expandafter\@defof \meaning\macro\@mark
    3.60 +
    3.61 +\def \@defof #1:->#2\@mark{#2}
    3.62 +
    3.63 +%                       Control Sequence Names
    3.64 +%                       ------- -------- -----
    3.65 +
    3.66 +
    3.67 +\def \@name #1{%                                        {\tokens}
    3.68 +  \csname \expandafter\@discardtok \string#1\endcsname}
    3.69 +
    3.70 +\def \@withname #1#2{%                                  {\command}{\tokens}
    3.71 +  \expandafter#1\csname \expandafter\@discardtok \string#2\endcsname}
    3.72 +
    3.73 +%                       Flags (Booleans)
    3.74 +%                       ----- ----------
    3.75 +
    3.76 +% The boolean literals \@true and \@false are appropriate for use with
    3.77 +% the \if command, which tests the codes of the next two characters.
    3.78 +
    3.79 +\def \@true {TT}
    3.80 +\def \@false {FL}
    3.81 +
    3.82 +\def \@setflag #1=#2{\edef #1{#2}}%              \flag = boolean
    3.83 +
    3.84 +%                       IF and Predicates
    3.85 +%                       -- --- ----------
    3.86 +
    3.87 +% A "predicate" is a macro that returns \@true or \@false as its value.
    3.88 +% Such values are suitable for use with the \if conditional.  For example:
    3.89 +%
    3.90 +%   \if \@oddp{\x} <then-clause> \else <else-clause> \fi
    3.91 +
    3.92 +% A predicate can be used with \@setflag as follows:
    3.93 +%
    3.94 +%   \@setflag \flag = {<predicate>}
    3.95 +
    3.96 +% Here are the predicates for TeX's repertoire of conditional
    3.97 +% commands.  These might be more appropriately interspersed with
    3.98 +% other definitions in this module, but what the heck.
    3.99 +% Some additional "obvious" predicates are defined.
   3.100 +
   3.101 +\def \@eqlp   #1#2{\ifnum #1 = #2\@true \else \@false \fi}
   3.102 +\def \@neqlp  #1#2{\ifnum #1 = #2\@false \else \@true \fi}
   3.103 +\def \@lssp   #1#2{\ifnum #1 < #2\@true \else \@false \fi}
   3.104 +\def \@gtrp   #1#2{\ifnum #1 > #2\@true \else \@false \fi}
   3.105 +\def \@zerop  #1{\ifnum #1 = 0\@true \else \@false \fi}
   3.106 +\def \@onep   #1{\ifnum #1 = 1\@true \else \@false \fi}
   3.107 +\def \@posp   #1{\ifnum #1 > 0\@true \else \@false \fi}
   3.108 +\def \@negp   #1{\ifnum #1 < 0\@true \else \@false \fi}
   3.109 +\def \@oddp   #1{\ifodd #1\@true \else \@false \fi}
   3.110 +\def \@evenp  #1{\ifodd #1\@false \else \@true \fi}
   3.111 +\def \@rangep #1#2#3{\if \@orp{\@lssp{#1}{#2}}{\@gtrp{#1}{#3}}\@false \else
   3.112 +                                                          \@true \fi}
   3.113 +\def \@tensp  #1{\@rangep{#1}{10}{19}}
   3.114 +
   3.115 +\def \@dimeqlp   #1#2{\ifdim #1 = #2\@true \else \@false \fi}
   3.116 +\def \@dimneqlp  #1#2{\ifdim #1 = #2\@false \else \@true \fi}
   3.117 +\def \@dimlssp   #1#2{\ifdim #1 < #2\@true \else \@false \fi}
   3.118 +\def \@dimgtrp   #1#2{\ifdim #1 > #2\@true \else \@false \fi}
   3.119 +\def \@dimzerop  #1{\ifdim #1 = 0pt\@true \else \@false \fi}
   3.120 +\def \@dimposp   #1{\ifdim #1 > 0pt\@true \else \@false \fi}
   3.121 +\def \@dimnegp   #1{\ifdim #1 < 0pt\@true \else \@false \fi}
   3.122 +
   3.123 +\def \@vmodep     {\ifvmode \@true \else \@false \fi}
   3.124 +\def \@hmodep     {\ifhmode \@true \else \@false \fi}
   3.125 +\def \@mathmodep  {\ifmmode \@true \else \@false \fi}
   3.126 +\def \@textmodep  {\ifmmode \@false \else \@true \fi}
   3.127 +\def \@innermodep {\ifinner \@true \else \@false \fi}
   3.128 +
   3.129 +\long\def \@codeeqlp #1#2{\if #1#2\@true \else \@false \fi}
   3.130 +
   3.131 +\long\def \@cateqlp #1#2{\ifcat #1#2\@true \else \@false \fi}
   3.132 +
   3.133 +\long\def \@tokeqlp  #1#2{\ifx #1#2\@true \else \@false \fi}
   3.134 +\long\def \@xtokeqlp #1#2{\expandafter\ifx #1#2\@true \else \@false \fi}
   3.135 +
   3.136 +\long\def \@definedp #1{%
   3.137 +  \expandafter\ifx \csname \expandafter\@discardtok \string#1\endcsname
   3.138 +                   \relax \@false \else \@true \fi}
   3.139 +
   3.140 +\long\def \@undefinedp #1{%
   3.141 +  \expandafter\ifx \csname \expandafter\@discardtok \string#1\endcsname
   3.142 +                   \relax \@true \else \@false \fi}
   3.143 +
   3.144 +\def \@emptydefp #1{\ifx #1\@empty \@true \else \@false \fi}%       {\name}
   3.145 +
   3.146 +\let \@emptylistp = \@emptydefp
   3.147 +
   3.148 +\long\def \@emptyargp #1{%                               {#n}
   3.149 +  \@empargp #1\@empargq\@mark}
   3.150 +\long\def \@empargp #1#2\@mark{%
   3.151 +  \ifx #1\@empargq \@true \else \@false \fi}
   3.152 +\def \@empargq {\@empargq}
   3.153 +
   3.154 +\def \@emptytoksp #1{%                                   {\tokenreg}
   3.155 +  \expandafter\@emptoksp \the#1\@mark}
   3.156 +
   3.157 +\long\def \@emptoksp #1\@mark{\@emptyargp{#1}}
   3.158 +
   3.159 +\def \@voidboxp #1{\ifvoid #1\@true \else \@false \fi}
   3.160 +\def \@hboxp #1{\ifhbox #1\@true \else \@false \fi}
   3.161 +\def \@vboxp #1{\ifvbox #1\@true \else \@false \fi}
   3.162 +
   3.163 +\def \@eofp #1{\ifeof #1\@true \else \@false \fi}
   3.164 +
   3.165 +
   3.166 +% Flags can also be used as predicates, as in:
   3.167 +%
   3.168 +%   \if \flaga <then-clause> \else <else-clause> \fi
   3.169 +
   3.170 +
   3.171 +% Now here we have predicates for the common logical operators.
   3.172 +
   3.173 +\def \@notp #1{\if #1\@false \else \@true \fi}
   3.174 +
   3.175 +\def \@andp #1#2{\if #1%
   3.176 +                  \if #2\@true \else \@false \fi
   3.177 +                \else
   3.178 +                  \@false
   3.179 +                \fi}
   3.180 +
   3.181 +\def \@orp #1#2{\if #1%
   3.182 +                 \@true
   3.183 +               \else
   3.184 +                 \if #2\@true \else \@false \fi
   3.185 +               \fi}
   3.186 +
   3.187 +\def \@xorp #1#2{\if #1%
   3.188 +                  \if #2\@false \else \@true \fi
   3.189 +                \else
   3.190 +                  \if #2\@true \else \@false \fi
   3.191 +                \fi}
   3.192 +
   3.193 +%                       Arithmetic
   3.194 +%                       ----------
   3.195 +
   3.196 +\def \@increment #1{\advance #1 by 1\relax}%             {\count}
   3.197 +
   3.198 +\def \@decrement #1{\advance #1 by -1\relax}%            {\count}
   3.199 +
   3.200 +%                       Options
   3.201 +%                       -------
   3.202 +
   3.203 +
   3.204 +\@setflag \@authoryear = \@false
   3.205 +\@setflag \@blockstyle = \@false
   3.206 +\@setflag \@copyrightwanted = \@true
   3.207 +\@setflag \@explicitsize = \@false
   3.208 +\@setflag \@mathtime = \@false
   3.209 +\@setflag \@natbib = \@true
   3.210 +\@setflag \@ninepoint = \@true
   3.211 +\newcount{\@numheaddepth} \@numheaddepth = 3
   3.212 +\@setflag \@onecolumn = \@false
   3.213 +\@setflag \@preprint = \@false
   3.214 +\@setflag \@reprint = \@false
   3.215 +\@setflag \@tenpoint = \@false
   3.216 +\@setflag \@times = \@false
   3.217 +
   3.218 +% Note that all the dangerous article class options are trapped.
   3.219 +
   3.220 +\DeclareOption{9pt}{\@setflag \@ninepoint = \@true
   3.221 +                    \@setflag \@explicitsize = \@true}
   3.222 +
   3.223 +\DeclareOption{10pt}{\PassOptionsToClass{10pt}{article}%
   3.224 +                     \@setflag \@ninepoint = \@false
   3.225 +                     \@setflag \@tenpoint = \@true
   3.226 +                     \@setflag \@explicitsize = \@true}
   3.227 +
   3.228 +\DeclareOption{11pt}{\PassOptionsToClass{11pt}{article}%
   3.229 +                     \@setflag \@ninepoint = \@false
   3.230 +                     \@setflag \@explicitsize = \@true}
   3.231 +
   3.232 +\DeclareOption{12pt}{\@unsupportedoption{12pt}}
   3.233 +
   3.234 +\DeclareOption{a4paper}{\@unsupportedoption{a4paper}}
   3.235 +
   3.236 +\DeclareOption{a5paper}{\@unsupportedoption{a5paper}}
   3.237 +
   3.238 +\DeclareOption{authoryear}{\@setflag \@authoryear = \@true}
   3.239 +
   3.240 +\DeclareOption{b5paper}{\@unsupportedoption{b5paper}}
   3.241 +
   3.242 +\DeclareOption{blockstyle}{\@setflag \@blockstyle = \@true}
   3.243 +
   3.244 +\DeclareOption{cm}{\@setflag \@times = \@false}
   3.245 +
   3.246 +\DeclareOption{computermodern}{\@setflag \@times = \@false}
   3.247 +
   3.248 +\DeclareOption{executivepaper}{\@unsupportedoption{executivepaper}}
   3.249 +
   3.250 +\DeclareOption{indentedstyle}{\@setflag \@blockstyle = \@false}
   3.251 +
   3.252 +\DeclareOption{landscape}{\@unsupportedoption{landscape}}
   3.253 +
   3.254 +\DeclareOption{legalpaper}{\@unsupportedoption{legalpaper}}
   3.255 +
   3.256 +\DeclareOption{letterpaper}{\@unsupportedoption{letterpaper}}
   3.257 +
   3.258 +\DeclareOption{mathtime}{\@setflag \@mathtime = \@true}
   3.259 +
   3.260 +\DeclareOption{natbib}{\@setflag \@natbib = \@true}
   3.261 +
   3.262 +\DeclareOption{nonatbib}{\@setflag \@natbib = \@false}
   3.263 +
   3.264 +\DeclareOption{nocopyrightspace}{\@setflag \@copyrightwanted = \@false}
   3.265 +
   3.266 +\DeclareOption{notitlepage}{\@unsupportedoption{notitlepage}}
   3.267 +
   3.268 +\DeclareOption{numberedpars}{\@numheaddepth = 4}
   3.269 +
   3.270 +\DeclareOption{numbers}{\@setflag \@authoryear = \@false}
   3.271 +
   3.272 +%%%\DeclareOption{onecolumn}{\@setflag \@onecolumn = \@true}
   3.273 +
   3.274 +\DeclareOption{preprint}{\@setflag \@preprint = \@true}
   3.275 +
   3.276 +\DeclareOption{reprint}{\@setflag \@reprint = \@true}
   3.277 +
   3.278 +\DeclareOption{times}{\@setflag \@times = \@true}
   3.279 +
   3.280 +\DeclareOption{titlepage}{\@unsupportedoption{titlepage}}
   3.281 +
   3.282 +\DeclareOption{twocolumn}{\@setflag \@onecolumn = \@false}
   3.283 +
   3.284 +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
   3.285 +
   3.286 +\ExecuteOptions{9pt,indentedstyle,times}
   3.287 +\@setflag \@explicitsize = \@false
   3.288 +\ProcessOptions
   3.289 +
   3.290 +\if \@onecolumn
   3.291 +  \if \@notp{\@explicitsize}%
   3.292 +    \@setflag \@ninepoint = \@false
   3.293 +    \PassOptionsToClass{11pt}{article}%
   3.294 +  \fi
   3.295 +  \PassOptionsToClass{twoside,onecolumn}{article}
   3.296 +\else
   3.297 +  \PassOptionsToClass{twoside,twocolumn}{article}
   3.298 +\fi
   3.299 +\LoadClass{article}
   3.300 +
   3.301 +\def \@unsupportedoption #1{%
   3.302 +  \ClassError{proc}{The standard '#1' option is not supported.}}
   3.303 +
   3.304 +% This can be used with the 'reprint' option to get the final folios.
   3.305 +
   3.306 +\def \setpagenumber #1{%
   3.307 +  \setcounter{page}{#1}}
   3.308 +
   3.309 +\AtEndDocument{\label{sigplanconf@finalpage}}
   3.310 +
   3.311 +%                       Utilities
   3.312 +%                       ---------
   3.313 +
   3.314 +
   3.315 +\newcommand{\setvspace}[2]{%
   3.316 +  #1 = #2
   3.317 +  \advance #1 by -1\parskip}
   3.318 +
   3.319 +%                       Document Parameters
   3.320 +%                       -------- ----------
   3.321 +
   3.322 +
   3.323 +% Page:
   3.324 +
   3.325 +\setlength{\hoffset}{-1in}
   3.326 +\setlength{\voffset}{-1in}
   3.327 +
   3.328 +\setlength{\topmargin}{1in}
   3.329 +\setlength{\headheight}{0pt}
   3.330 +\setlength{\headsep}{0pt}
   3.331 +
   3.332 +\if \@onecolumn
   3.333 +  \setlength{\evensidemargin}{.75in}
   3.334 +  \setlength{\oddsidemargin}{.75in}
   3.335 +\else
   3.336 +  \setlength{\evensidemargin}{.75in}
   3.337 +  \setlength{\oddsidemargin}{.75in}
   3.338 +\fi
   3.339 +
   3.340 +% Text area:
   3.341 +
   3.342 +\newdimen{\standardtextwidth}
   3.343 +\setlength{\standardtextwidth}{42pc}
   3.344 +
   3.345 +\if \@onecolumn
   3.346 +  \setlength{\textwidth}{40.5pc}
   3.347 +\else
   3.348 +  \setlength{\textwidth}{\standardtextwidth}
   3.349 +\fi
   3.350 +
   3.351 +\setlength{\topskip}{8pt}
   3.352 +\setlength{\columnsep}{2pc}
   3.353 +\setlength{\textheight}{54.5pc}
   3.354 +
   3.355 +% Running foot:
   3.356 +
   3.357 +\setlength{\footskip}{30pt}
   3.358 +
   3.359 +% Paragraphs:
   3.360 +
   3.361 +\if \@blockstyle
   3.362 +  \setlength{\parskip}{5pt plus .1pt minus .5pt}
   3.363 +  \setlength{\parindent}{0pt}
   3.364 +\else
   3.365 +  \setlength{\parskip}{0pt}
   3.366 +  \setlength{\parindent}{12pt}
   3.367 +\fi
   3.368 +
   3.369 +\setlength{\lineskip}{.5pt}
   3.370 +\setlength{\lineskiplimit}{\lineskip}
   3.371 +
   3.372 +\frenchspacing
   3.373 +\pretolerance = 400
   3.374 +\tolerance = \pretolerance
   3.375 +\setlength{\emergencystretch}{5pt}
   3.376 +\clubpenalty = 10000
   3.377 +\widowpenalty = 10000
   3.378 +\setlength{\hfuzz}{.5pt}
   3.379 +
   3.380 +% Standard vertical spaces:
   3.381 +
   3.382 +\newskip{\standardvspace}
   3.383 +\setvspace{\standardvspace}{5pt plus 1pt minus .5pt}
   3.384 +
   3.385 +% Margin paragraphs:
   3.386 +
   3.387 +\setlength{\marginparwidth}{36pt}
   3.388 +\setlength{\marginparsep}{2pt}
   3.389 +\setlength{\marginparpush}{8pt}
   3.390 +
   3.391 +
   3.392 +\setlength{\skip\footins}{8pt plus 3pt minus 1pt}
   3.393 +\setlength{\footnotesep}{9pt}
   3.394 +
   3.395 +\renewcommand{\footnoterule}{%
   3.396 +  \hrule width .5\columnwidth height .33pt depth 0pt}
   3.397 +
   3.398 +\renewcommand{\@makefntext}[1]{%
   3.399 +  \noindent \@makefnmark \hspace{1pt}#1}
   3.400 +
   3.401 +% Floats:
   3.402 +
   3.403 +\setcounter{topnumber}{4}
   3.404 +\setcounter{bottomnumber}{1}
   3.405 +\setcounter{totalnumber}{4}
   3.406 +
   3.407 +\renewcommand{\fps@figure}{tp}
   3.408 +\renewcommand{\fps@table}{tp}
   3.409 +\renewcommand{\topfraction}{0.90}
   3.410 +\renewcommand{\bottomfraction}{0.30}
   3.411 +\renewcommand{\textfraction}{0.10}
   3.412 +\renewcommand{\floatpagefraction}{0.75}
   3.413 +
   3.414 +\setcounter{dbltopnumber}{4}
   3.415 +
   3.416 +\renewcommand{\dbltopfraction}{\topfraction}
   3.417 +\renewcommand{\dblfloatpagefraction}{\floatpagefraction}
   3.418 +
   3.419 +\setlength{\floatsep}{18pt plus 4pt minus 2pt}
   3.420 +\setlength{\textfloatsep}{18pt plus 4pt minus 3pt}
   3.421 +\setlength{\intextsep}{10pt plus 4pt minus 3pt}
   3.422 +
   3.423 +\setlength{\dblfloatsep}{18pt plus 4pt minus 2pt}
   3.424 +\setlength{\dbltextfloatsep}{20pt plus 4pt minus 3pt}
   3.425 +
   3.426 +% Miscellaneous:
   3.427 +
   3.428 +\errorcontextlines = 5
   3.429 +
   3.430 +%                       Fonts
   3.431 +%                       -----
   3.432 +
   3.433 +
   3.434 +\if \@times
   3.435 +  \renewcommand{\rmdefault}{ptm}%
   3.436 +  \if \@mathtime
   3.437 +    \usepackage[mtbold,noTS1]{mathtime}%
   3.438 +  \else
   3.439 +%%%    \usepackage{mathptm}%
   3.440 +  \fi
   3.441 +\else
   3.442 +  \relax
   3.443 +\fi
   3.444 +
   3.445 +\if \@ninepoint
   3.446 +
   3.447 +\renewcommand{\normalsize}{%
   3.448 +  \@setfontsize{\normalsize}{9pt}{10pt}%
   3.449 +  \setlength{\abovedisplayskip}{5pt plus 1pt minus .5pt}%
   3.450 +  \setlength{\belowdisplayskip}{\abovedisplayskip}%
   3.451 +  \setlength{\abovedisplayshortskip}{3pt plus 1pt minus 2pt}%
   3.452 +  \setlength{\belowdisplayshortskip}{\abovedisplayshortskip}}
   3.453 +
   3.454 +\renewcommand{\tiny}{\@setfontsize{\tiny}{5pt}{6pt}}
   3.455 +
   3.456 +\renewcommand{\scriptsize}{\@setfontsize{\scriptsize}{7pt}{8pt}}
   3.457 +
   3.458 +\renewcommand{\small}{%
   3.459 +  \@setfontsize{\small}{8pt}{9pt}%
   3.460 +  \setlength{\abovedisplayskip}{4pt plus 1pt minus 1pt}%
   3.461 +  \setlength{\belowdisplayskip}{\abovedisplayskip}%
   3.462 +  \setlength{\abovedisplayshortskip}{2pt plus 1pt}%
   3.463 +  \setlength{\belowdisplayshortskip}{\abovedisplayshortskip}}
   3.464 +
   3.465 +\renewcommand{\footnotesize}{%
   3.466 +  \@setfontsize{\footnotesize}{8pt}{9pt}%
   3.467 +  \setlength{\abovedisplayskip}{4pt plus 1pt minus .5pt}%
   3.468 +  \setlength{\belowdisplayskip}{\abovedisplayskip}%
   3.469 +  \setlength{\abovedisplayshortskip}{2pt plus 1pt}%
   3.470 +  \setlength{\belowdisplayshortskip}{\abovedisplayshortskip}}
   3.471 +
   3.472 +\renewcommand{\large}{\@setfontsize{\large}{11pt}{13pt}}
   3.473 +
   3.474 +\renewcommand{\Large}{\@setfontsize{\Large}{14pt}{18pt}}
   3.475 +
   3.476 +\renewcommand{\LARGE}{\@setfontsize{\LARGE}{18pt}{20pt}}
   3.477 +
   3.478 +\renewcommand{\huge}{\@setfontsize{\huge}{20pt}{25pt}}
   3.479 +
   3.480 +\renewcommand{\Huge}{\@setfontsize{\Huge}{25pt}{30pt}}
   3.481 +
   3.482 +\else\if \@tenpoint
   3.483 +
   3.484 +\relax
   3.485 +
   3.486 +\else
   3.487 +
   3.488 +\relax
   3.489 +
   3.490 +\fi\fi
   3.491 +
   3.492 +%                       Abstract
   3.493 +%                       --------
   3.494 +
   3.495 +
   3.496 +\renewenvironment{abstract}{%
   3.497 +  \section*{Abstract}%
   3.498 +  \normalsize}{%
   3.499 +  }
   3.500 +
   3.501 +%                       Bibliography
   3.502 +%                       ------------
   3.503 +
   3.504 +
   3.505 +\renewenvironment{thebibliography}[1]
   3.506 +     {\section*{\refname
   3.507 +        \@mkboth{\MakeUppercase\refname}{\MakeUppercase\refname}}%
   3.508 +      \list{\@biblabel{\@arabic\c@enumiv}}%
   3.509 +           {\settowidth\labelwidth{\@biblabel{#1}}%
   3.510 +            \leftmargin\labelwidth
   3.511 +            \advance\leftmargin\labelsep
   3.512 +            \@openbib@code
   3.513 +            \usecounter{enumiv}%
   3.514 +            \let\p@enumiv\@empty
   3.515 +            \renewcommand\theenumiv{\@arabic\c@enumiv}}%
   3.516 +      \bibfont
   3.517 +      \clubpenalty4000
   3.518 +      \@clubpenalty \clubpenalty
   3.519 +      \widowpenalty4000%
   3.520 +      \sfcode`\.\@m}
   3.521 +     {\def\@noitemerr
   3.522 +       {\@latex@warning{Empty `thebibliography' environment}}%
   3.523 +      \endlist}
   3.524 +
   3.525 +\if \@natbib
   3.526 +
   3.527 +\if \@authoryear
   3.528 +  \typeout{Using natbib package with 'authoryear' citation style.}
   3.529 +  \usepackage[authoryear,square]{natbib}
   3.530 +  \bibpunct{[}{]}{;}{a}{}{,}    % Change citation separator to semicolon,
   3.531 +                                % eliminate comma between author and year.
   3.532 +  \let \cite = \citep
   3.533 +\else
   3.534 +  \typeout{Using natbib package with 'numbers' citation style.}
   3.535 +  \usepackage[numbers,sort&compress,square]{natbib}
   3.536 +\fi
   3.537 +\setlength{\bibsep}{3pt plus .5pt minus .25pt}
   3.538 +
   3.539 +\fi
   3.540 +
   3.541 +\def \bibfont {\small}
   3.542 +
   3.543 +%                       Categories
   3.544 +%                       ----------
   3.545 +
   3.546 +
   3.547 +\@setflag \@firstcategory = \@true
   3.548 +
   3.549 +\newcommand{\category}[3]{%
   3.550 +  \if \@firstcategory
   3.551 +    \paragraph*{Categories and Subject Descriptors}%
   3.552 +    \@setflag \@firstcategory = \@false
   3.553 +  \else
   3.554 +    \unskip ;\hspace{.75em}%
   3.555 +  \fi
   3.556 +  \@ifnextchar [{\@category{#1}{#2}{#3}}{\@category{#1}{#2}{#3}[]}}
   3.557 +
   3.558 +\def \@category #1#2#3[#4]{%
   3.559 +  {\let \and = \relax
   3.560 +   #1 [\textit{#2}]%
   3.561 +   \if \@emptyargp{#4}%
   3.562 +     \if \@notp{\@emptyargp{#3}}: #3\fi
   3.563 +   \else
   3.564 +     :\space
   3.565 +     \if \@notp{\@emptyargp{#3}}#3---\fi
   3.566 +     \textrm{#4}%
   3.567 +   \fi}}
   3.568 +
   3.569 +%                       Copyright Notice
   3.570 +%                       --------- ------
   3.571 +
   3.572 +
   3.573 +\def \ftype@copyrightbox {8}
   3.574 +\def \@toappear {}
   3.575 +\def \@permission {}
   3.576 +\def \@reprintprice {}
   3.577 +
   3.578 +\def \@copyrightspace {%
   3.579 +  \@float{copyrightbox}[b]%
   3.580 +  \vbox to 1in{%
   3.581 +    \vfill
   3.582 +    \parbox[b]{20pc}{%
   3.583 +      \scriptsize
   3.584 +      \if \@preprint
   3.585 +        [Copyright notice will appear here
   3.586 +         once 'preprint' option is removed.]\par
   3.587 +      \else
   3.588 +        \@toappear
   3.589 +      \fi
   3.590 +      \if \@reprint
   3.591 +        \noindent Reprinted from \@conferencename,
   3.592 +        \@proceedings,
   3.593 +        \@conferenceinfo,
   3.594 +        pp.~\number\thepage--\pageref{sigplanconf@finalpage}.\par
   3.595 +      \fi}}%
   3.596 +  \end@float}
   3.597 +
   3.598 +\long\def \toappear #1{%
   3.599 +  \def \@toappear {#1}}
   3.600 +
   3.601 +\toappear{%
   3.602 +  \noindent \@permission \par
   3.603 +  \vspace{2pt}
   3.604 +  \noindent \textsl{\@conferencename}\quad \@conferenceinfo \par
   3.605 +  \noindent Copyright \copyright\ \@copyrightyear\ ACM \@copyrightdata
   3.606 +    \dots \@reprintprice\par}
   3.607 +
   3.608 +\newcommand{\permission}[1]{%
   3.609 +  \gdef \@permission {#1}}
   3.610 +
   3.611 +\permission{%
   3.612 +  Permission to make digital or hard copies of all or
   3.613 +  part of this work for personal or classroom use is granted without
   3.614 +  fee provided that copies are not made or distributed for profit or
   3.615 +  commercial advantage and that copies bear this notice and the full
   3.616 +  citation on the first page.  To copy otherwise, to republish, to
   3.617 +  post on servers or to redistribute to lists, requires prior specific
   3.618 +  permission and/or a fee.}
   3.619 +
   3.620 +% Here we have some alternate permission statements and copyright lines:
   3.621 +
   3.622 +\newcommand{\ACMCanadapermission}{%
   3.623 +  \permission{%
   3.624 +    Copyright \@copyrightyear\ Association for Computing Machinery.
   3.625 +    ACM acknowledges that
   3.626 +    this contribution was authored or co-authored by an affiliate of the
   3.627 +    National Research Council of Canada (NRC).
   3.628 +    As such, the Crown in Right of
   3.629 +    Canada retains an equal interest in the copyright, however granting
   3.630 +    nonexclusive, royalty-free right to publish or reproduce this article,
   3.631 +    or to allow others to do so, provided that clear attribution
   3.632 +    is also given to the authors and the NRC.}}
   3.633 +
   3.634 +\newcommand{\ACMUSpermission}{%
   3.635 +  \permission{%
   3.636 +    Copyright \@copyrightyear\ Association for
   3.637 +    Computing Machinery. ACM acknowledges that
   3.638 +    this contribution was authored or co-authored
   3.639 +    by a contractor or affiliate
   3.640 +    of the U.S. Government. As such, the Government retains a nonexclusive,
   3.641 +    royalty-free right to publish or reproduce this article,
   3.642 +    or to allow others to do so, for Government purposes only.}}
   3.643 +
   3.644 +\newcommand{\authorpermission}{%
   3.645 +  \permission{%
   3.646 +    Copyright is held by the author/owner(s).}
   3.647 +  \toappear{%
   3.648 +    \noindent \@permission \par
   3.649 +    \vspace{2pt}
   3.650 +    \noindent \textsl{\@conferencename}\quad \@conferenceinfo \par
   3.651 +    ACM \@copyrightdata.}}
   3.652 +
   3.653 +\newcommand{\Sunpermission}{%
   3.654 +  \permission{%
   3.655 +    Copyright is held by Sun Microsystems, Inc.}%
   3.656 +  \toappear{%
   3.657 +    \noindent \@permission \par
   3.658 +    \vspace{2pt}
   3.659 +    \noindent \textsl{\@conferencename}\quad \@conferenceinfo \par
   3.660 +    ACM \@copyrightdata.}}
   3.661 +
   3.662 +\newcommand{\USpublicpermission}{%
   3.663 +  \permission{%
   3.664 +    This paper is authored by an employee(s) of the United States
   3.665 +    Government and is in the public domain.}%
   3.666 +  \toappear{%
   3.667 +    \noindent \@permission \par
   3.668 +    \vspace{2pt}
   3.669 +    \noindent \textsl{\@conferencename}\quad \@conferenceinfo \par
   3.670 +    ACM \@copyrightdata.}}
   3.671 +
   3.672 +\newcommand{\reprintprice}[1]{%
   3.673 +  \gdef \@reprintprice {#1}}
   3.674 +
   3.675 +\reprintprice{\$10.00}
   3.676 +
   3.677 +\newcommand{\authorversion}[4]{%
   3.678 +  \permission{%
   3.679 +  Copyright \copyright\ ACM, #1. This is the author's version of the work.
   3.680 +  It is posted here by permission of ACM for your personal use.
   3.681 +  Not for redistribution. The definitive version was published in
   3.682 +  #2, #3, http://doi.acm.org/10.1145/#4.}}
   3.683 +
   3.684 +%                       Enunciations
   3.685 +%                       ------------
   3.686 +
   3.687 +
   3.688 +\def \@begintheorem #1#2{%                      {name}{number}
   3.689 +  \trivlist
   3.690 +  \item[\hskip \labelsep \textsc{#1 #2.}]%
   3.691 +  \itshape\selectfont
   3.692 +  \ignorespaces}
   3.693 +
   3.694 +\def \@opargbegintheorem #1#2#3{%               {name}{number}{title}
   3.695 +  \trivlist
   3.696 +  \item[%
   3.697 +    \hskip\labelsep \textsc{#1\ #2}%
   3.698 +    \if \@notp{\@emptyargp{#3}}\nut (#3).\fi]%
   3.699 +  \itshape\selectfont
   3.700 +  \ignorespaces}
   3.701 +
   3.702 +%                       Figures
   3.703 +%                       -------
   3.704 +
   3.705 +
   3.706 +\@setflag \@caprule = \@true
   3.707 +
   3.708 +\long\def \@makecaption #1#2{%
   3.709 +  \addvspace{4pt}
   3.710 +  \if \@caprule
   3.711 +    \hrule width \hsize height .33pt
   3.712 +    \vspace{4pt}
   3.713 +  \fi
   3.714 +  \setbox \@tempboxa = \hbox{\@setfigurenumber{#1.}\nut #2}%
   3.715 +  \if \@dimgtrp{\wd\@tempboxa}{\hsize}%
   3.716 +    \noindent \@setfigurenumber{#1.}\nut #2\par
   3.717 +  \else
   3.718 +    \centerline{\box\@tempboxa}%
   3.719 +  \fi}
   3.720 +
   3.721 +\newcommand{\nocaptionrule}{%
   3.722 +  \@setflag \@caprule = \@false}
   3.723 +
   3.724 +\def \@setfigurenumber #1{%
   3.725 +  {\rmfamily \bfseries \selectfont #1}}
   3.726 +
   3.727 +%                       Hierarchy
   3.728 +%                       ---------
   3.729 +
   3.730 +
   3.731 +\setcounter{secnumdepth}{\@numheaddepth}
   3.732 +
   3.733 +\newskip{\@sectionaboveskip}
   3.734 +\setvspace{\@sectionaboveskip}{10pt plus 3pt minus 2pt}
   3.735 +
   3.736 +\newskip{\@sectionbelowskip}
   3.737 +\if \@blockstyle
   3.738 +  \setlength{\@sectionbelowskip}{0.1pt}%
   3.739 +\else
   3.740 +  \setlength{\@sectionbelowskip}{4pt}%
   3.741 +\fi
   3.742 +
   3.743 +\renewcommand{\section}{%
   3.744 +  \@startsection
   3.745 +    {section}%
   3.746 +    {1}%
   3.747 +    {0pt}%
   3.748 +    {-\@sectionaboveskip}%
   3.749 +    {\@sectionbelowskip}%
   3.750 +    {\large \bfseries \raggedright}}
   3.751 +
   3.752 +\newskip{\@subsectionaboveskip}
   3.753 +\setvspace{\@subsectionaboveskip}{8pt plus 2pt minus 2pt}
   3.754 +
   3.755 +\newskip{\@subsectionbelowskip}
   3.756 +\if \@blockstyle
   3.757 +  \setlength{\@subsectionbelowskip}{0.1pt}%
   3.758 +\else
   3.759 +  \setlength{\@subsectionbelowskip}{4pt}%
   3.760 +\fi
   3.761 +
   3.762 +\renewcommand{\subsection}{%
   3.763 +  \@startsection%
   3.764 +    {subsection}%
   3.765 +    {2}%
   3.766 +    {0pt}%
   3.767 +    {-\@subsectionaboveskip}%
   3.768 +    {\@subsectionbelowskip}%
   3.769 +    {\normalsize \bfseries \raggedright}}
   3.770 +
   3.771 +\renewcommand{\subsubsection}{%
   3.772 +  \@startsection%
   3.773 +    {subsubsection}%
   3.774 +    {3}%
   3.775 +    {0pt}%
   3.776 +    {-\@subsectionaboveskip}
   3.777 +    {\@subsectionbelowskip}%
   3.778 +    {\normalsize \bfseries \raggedright}}
   3.779 +
   3.780 +\newskip{\@paragraphaboveskip}
   3.781 +\setvspace{\@paragraphaboveskip}{6pt plus 2pt minus 2pt}
   3.782 +
   3.783 +\renewcommand{\paragraph}{%
   3.784 +  \@startsection%
   3.785 +    {paragraph}%
   3.786 +    {4}%
   3.787 +    {0pt}%
   3.788 +    {\@paragraphaboveskip}
   3.789 +    {-1em}%
   3.790 +    {\normalsize \bfseries \if \@times \itshape \fi}}
   3.791 +
   3.792 +\renewcommand{\subparagraph}{%
   3.793 +  \@startsection%
   3.794 +    {subparagraph}%
   3.795 +    {4}%
   3.796 +    {0pt}%
   3.797 +    {\@paragraphaboveskip}
   3.798 +    {-1em}%
   3.799 +    {\normalsize \itshape}}
   3.800 +
   3.801 +% Standard headings:
   3.802 +
   3.803 +\newcommand{\acks}{\section*{Acknowledgments}}
   3.804 +
   3.805 +\newcommand{\keywords}{\paragraph*{Keywords}}
   3.806 +
   3.807 +\newcommand{\terms}{\paragraph*{General Terms}}
   3.808 +
   3.809 +%                       Identification
   3.810 +%                       --------------
   3.811 +
   3.812 +
   3.813 +\def \@conferencename {}
   3.814 +\def \@conferenceinfo {}
   3.815 +\def \@copyrightyear {}
   3.816 +\def \@copyrightdata {[to be supplied]}
   3.817 +\def \@proceedings {[Unknown Proceedings]}
   3.818 +
   3.819 +
   3.820 +\newcommand{\conferenceinfo}[2]{%
   3.821 +  \gdef \@conferencename {#1}%
   3.822 +  \gdef \@conferenceinfo {#2}}
   3.823 +
   3.824 +\newcommand{\copyrightyear}[1]{%
   3.825 +  \gdef \@copyrightyear {#1}}
   3.826 +
   3.827 +\let \CopyrightYear = \copyrightyear
   3.828 +
   3.829 +\newcommand{\copyrightdata}[1]{%
   3.830 +  \gdef \@copyrightdata {#1}}
   3.831 +
   3.832 +\let \crdata = \copyrightdata
   3.833 +
   3.834 +\newcommand{\proceedings}[1]{%
   3.835 +  \gdef \@proceedings {#1}}
   3.836 +
   3.837 +%                       Lists
   3.838 +%                       -----
   3.839 +
   3.840 +
   3.841 +\setlength{\leftmargini}{13pt}
   3.842 +\setlength\leftmarginii{13pt}
   3.843 +\setlength\leftmarginiii{13pt}
   3.844 +\setlength\leftmarginiv{13pt}
   3.845 +\setlength{\labelsep}{3.5pt}
   3.846 +
   3.847 +\setlength{\topsep}{\standardvspace}
   3.848 +\if \@blockstyle
   3.849 +  \setlength{\itemsep}{1pt}
   3.850 +  \setlength{\parsep}{3pt}
   3.851 +\else
   3.852 +  \setlength{\itemsep}{1pt}
   3.853 +  \setlength{\parsep}{3pt}
   3.854 +\fi
   3.855 +
   3.856 +\renewcommand{\labelitemi}{{\small \centeroncapheight{\textbullet}}}
   3.857 +\renewcommand{\labelitemii}{\centeroncapheight{\rule{2.5pt}{2.5pt}}}
   3.858 +\renewcommand{\labelitemiii}{$-$}
   3.859 +\renewcommand{\labelitemiv}{{\Large \textperiodcentered}}
   3.860 +
   3.861 +\renewcommand{\@listi}{%
   3.862 +  \leftmargin = \leftmargini
   3.863 +  \listparindent = 0pt}
   3.864 +%%%  \itemsep = 1pt
   3.865 +%%%  \parsep = 3pt}
   3.866 +%%%  \listparindent = \parindent}
   3.867 +
   3.868 +\let \@listI = \@listi
   3.869 +
   3.870 +\renewcommand{\@listii}{%
   3.871 +  \leftmargin = \leftmarginii
   3.872 +  \topsep = 1pt
   3.873 +  \labelwidth = \leftmarginii
   3.874 +  \advance \labelwidth by -\labelsep
   3.875 +  \listparindent = \parindent}
   3.876 +
   3.877 +\renewcommand{\@listiii}{%
   3.878 +  \leftmargin = \leftmarginiii
   3.879 +  \labelwidth = \leftmarginiii
   3.880 +  \advance \labelwidth by -\labelsep
   3.881 +  \listparindent = \parindent}
   3.882 +
   3.883 +\renewcommand{\@listiv}{%
   3.884 +  \leftmargin = \leftmarginiv
   3.885 +  \labelwidth = \leftmarginiv
   3.886 +  \advance \labelwidth by -\labelsep
   3.887 +  \listparindent = \parindent}
   3.888 +
   3.889 +%                       Mathematics
   3.890 +%                       -----------
   3.891 +
   3.892 +
   3.893 +\def \theequation {\arabic{equation}}
   3.894 +
   3.895 +%                       Miscellaneous
   3.896 +%                       -------------
   3.897 +
   3.898 +
   3.899 +\newcommand{\balancecolumns}{%
   3.900 +  \vfill\eject
   3.901 +  \global\@colht = \textheight
   3.902 +  \global\ht\@cclv = \textheight}
   3.903 +
   3.904 +\newcommand{\nut}{\hspace{.5em}}
   3.905 +
   3.906 +\newcommand{\softraggedright}{%
   3.907 +  \let \\ = \@centercr
   3.908 +  \leftskip = 0pt
   3.909 +  \rightskip = 0pt plus 10pt}
   3.910 +
   3.911 +%                       Program Code
   3.912 +%                       ------- ----
   3.913 +
   3.914 +
   3.915 +\newcommand{\mono}[1]{%
   3.916 +  {\@tempdima = \fontdimen2\font
   3.917 +   \texttt{\spaceskip = 1.1\@tempdima #1}}}
   3.918 +
   3.919 +%                       Running Heads and Feet
   3.920 +%                       ------- ----- --- ----
   3.921 +
   3.922 +
   3.923 +\def \@preprintfooter {}
   3.924 +
   3.925 +\newcommand{\preprintfooter}[1]{%
   3.926 +  \gdef \@preprintfooter {#1}}
   3.927 +
   3.928 +\if \@preprint
   3.929 +
   3.930 +\def \ps@plain {%
   3.931 +  \let \@mkboth = \@gobbletwo
   3.932 +  \let \@evenhead = \@empty
   3.933 +  \def \@evenfoot {\scriptsize
   3.934 +                   \rlap{\textit{\@preprintfooter}}\hfil
   3.935 +                   \thepage \hfil
   3.936 +                   \llap{\textit{\@formatyear}}}%
   3.937 +  \let \@oddhead = \@empty
   3.938 +  \let \@oddfoot = \@evenfoot}
   3.939 +
   3.940 +\else\if \@reprint
   3.941 +
   3.942 +\def \ps@plain {%
   3.943 +  \let \@mkboth = \@gobbletwo
   3.944 +  \let \@evenhead = \@empty
   3.945 +  \def \@evenfoot {\scriptsize \hfil \thepage \hfil}%
   3.946 +  \let \@oddhead = \@empty
   3.947 +  \let \@oddfoot = \@evenfoot}
   3.948 +
   3.949 +\else
   3.950 +
   3.951 +\let \ps@plain = \ps@empty
   3.952 +\let \ps@headings = \ps@empty
   3.953 +\let \ps@myheadings = \ps@empty
   3.954 +
   3.955 +\fi\fi
   3.956 +
   3.957 +\def \@formatyear {%
   3.958 +  \number\year/\number\month/\number\day}
   3.959 +
   3.960 +%                       Special Characters
   3.961 +%                       ------- ----------
   3.962 +
   3.963 +
   3.964 +\DeclareRobustCommand{\euro}{%
   3.965 +  \protect{\rlap{=}}{\sf \kern .1em C}}
   3.966 +
   3.967 +%                       Title Page
   3.968 +%                       ----- ----
   3.969 +
   3.970 +
   3.971 +\@setflag \@addauthorsdone = \@false
   3.972 +
   3.973 +\def \@titletext {\@latex@error{No title was provided}{}}
   3.974 +\def \@subtitletext {}
   3.975 +
   3.976 +\newcount{\@authorcount}
   3.977 +
   3.978 +\newcount{\@titlenotecount}
   3.979 +\newtoks{\@titlenotetext}
   3.980 +
   3.981 +\def \@titlebanner {}
   3.982 +
   3.983 +\renewcommand{\title}[1]{%
   3.984 +  \gdef \@titletext {#1}}
   3.985 +
   3.986 +\newcommand{\subtitle}[1]{%
   3.987 +  \gdef \@subtitletext {#1}}
   3.988 +
   3.989 +\newcommand{\authorinfo}[3]{%           {names}{affiliation}{email/URL}
   3.990 +  \global\@increment \@authorcount
   3.991 +  \@withname\gdef {\@authorname\romannumeral\@authorcount}{#1}%
   3.992 +  \@withname\gdef {\@authoraffil\romannumeral\@authorcount}{#2}%
   3.993 +  \@withname\gdef {\@authoremail\romannumeral\@authorcount}{#3}}
   3.994 +
   3.995 +\renewcommand{\author}[1]{%
   3.996 +  \@latex@error{The \string\author\space command is obsolete;
   3.997 +                use \string\authorinfo}{}}
   3.998 +
   3.999 +\newcommand{\titlebanner}[1]{%
  3.1000 +  \gdef \@titlebanner {#1}}
  3.1001 +
  3.1002 +\renewcommand{\maketitle}{%
  3.1003 +  \pagestyle{plain}%
  3.1004 +  \if \@onecolumn
  3.1005 +    {\hsize = \standardtextwidth
  3.1006 +     \@maketitle}%
  3.1007 +  \else
  3.1008 +    \twocolumn[\@maketitle]%
  3.1009 +  \fi
  3.1010 +  \@placetitlenotes
  3.1011 +  \if \@copyrightwanted \@copyrightspace \fi}
  3.1012 +
  3.1013 +\def \@maketitle {%
  3.1014 +  \begin{center}
  3.1015 +  \@settitlebanner
  3.1016 +  \let \thanks = \titlenote
  3.1017 +  {\leftskip = 0pt plus 0.25\linewidth
  3.1018 +   \rightskip = 0pt plus 0.25 \linewidth
  3.1019 +   \parfillskip = 0pt
  3.1020 +   \spaceskip = .7em
  3.1021 +   \noindent \LARGE \bfseries \@titletext \par}
  3.1022 +  \vskip 6pt
  3.1023 +  \noindent \Large \@subtitletext \par
  3.1024 +  \vskip 12pt
  3.1025 +  \ifcase \@authorcount
  3.1026 +    \@latex@error{No authors were specified for this paper}{}\or
  3.1027 +    \@titleauthors{i}{}{}\or
  3.1028 +    \@titleauthors{i}{ii}{}\or
  3.1029 +    \@titleauthors{i}{ii}{iii}\or
  3.1030 +    \@titleauthors{i}{ii}{iii}\@titleauthors{iv}{}{}\or
  3.1031 +    \@titleauthors{i}{ii}{iii}\@titleauthors{iv}{v}{}\or
  3.1032 +    \@titleauthors{i}{ii}{iii}\@titleauthors{iv}{v}{vi}\or
  3.1033 +    \@titleauthors{i}{ii}{iii}\@titleauthors{iv}{v}{vi}%
  3.1034 +                  \@titleauthors{vii}{}{}\or
  3.1035 +    \@titleauthors{i}{ii}{iii}\@titleauthors{iv}{v}{vi}%
  3.1036 +                  \@titleauthors{vii}{viii}{}\or
  3.1037 +    \@titleauthors{i}{ii}{iii}\@titleauthors{iv}{v}{vi}%
  3.1038 +                  \@titleauthors{vii}{viii}{ix}\or
  3.1039 +    \@titleauthors{i}{ii}{iii}\@titleauthors{iv}{v}{vi}%
  3.1040 +                  \@titleauthors{vii}{viii}{ix}\@titleauthors{x}{}{}\or
  3.1041 +    \@titleauthors{i}{ii}{iii}\@titleauthors{iv}{v}{vi}%
  3.1042 +                  \@titleauthors{vii}{viii}{ix}\@titleauthors{x}{xi}{}\or
  3.1043 +    \@titleauthors{i}{ii}{iii}\@titleauthors{iv}{v}{vi}%
  3.1044 +                  \@titleauthors{vii}{viii}{ix}\@titleauthors{x}{xi}{xii}%
  3.1045 +  \else
  3.1046 +    \@latex@error{Cannot handle more than 12 authors}{}%
  3.1047 +  \fi
  3.1048 +  \vspace{1.75pc}
  3.1049 +  \end{center}}
  3.1050 +
  3.1051 +\def \@settitlebanner {%
  3.1052 +  \if \@andp{\@preprint}{\@notp{\@emptydefp{\@titlebanner}}}%
  3.1053 +    \vbox to 0pt{%
  3.1054 +      \vskip -32pt
  3.1055 +      \noindent \textbf{\@titlebanner}\par
  3.1056 +      \vss}%
  3.1057 +    \nointerlineskip
  3.1058 +  \fi}
  3.1059 +
  3.1060 +\def \@titleauthors #1#2#3{%
  3.1061 +  \if \@andp{\@emptyargp{#2}}{\@emptyargp{#3}}%
  3.1062 +    \noindent \@setauthor{40pc}{#1}{\@false}\par
  3.1063 +  \else\if \@emptyargp{#3}%
  3.1064 +    \noindent \@setauthor{17pc}{#1}{\@false}\hspace{3pc}%
  3.1065 +              \@setauthor{17pc}{#2}{\@false}\par
  3.1066 +  \else
  3.1067 +    \noindent \@setauthor{12.5pc}{#1}{\@false}\hspace{2pc}%
  3.1068 +              \@setauthor{12.5pc}{#2}{\@false}\hspace{2pc}%
  3.1069 +              \@setauthor{12.5pc}{#3}{\@true}\par
  3.1070 +    \relax
  3.1071 +  \fi\fi
  3.1072 +  \vspace{20pt}}
  3.1073 +
  3.1074 +\def \@setauthor #1#2#3{%                       {width}{text}{unused}
  3.1075 +  \vtop{%
  3.1076 +    \def \and {%
  3.1077 +      \hspace{16pt}}
  3.1078 +    \hsize = #1
  3.1079 +    \normalfont
  3.1080 +    \centering
  3.1081 +    \large \@name{\@authorname#2}\par
  3.1082 +    \vspace{5pt}
  3.1083 +    \normalsize \@name{\@authoraffil#2}\par
  3.1084 +    \vspace{2pt}
  3.1085 +    \textsf{\@name{\@authoremail#2}}\par}}
  3.1086 +
  3.1087 +\def \@maybetitlenote #1{%
  3.1088 +  \if \@andp{#1}{\@gtrp{\@authorcount}{3}}%
  3.1089 +    \titlenote{See page~\pageref{@addauthors} for additional authors.}%
  3.1090 +  \fi}
  3.1091 +
  3.1092 +\newtoks{\@fnmark}
  3.1093 +
  3.1094 +\newcommand{\titlenote}[1]{%
  3.1095 +  \global\@increment \@titlenotecount
  3.1096 +  \ifcase \@titlenotecount \relax \or
  3.1097 +    \@fnmark = {\ast}\or
  3.1098 +    \@fnmark = {\dagger}\or
  3.1099 +    \@fnmark = {\ddagger}\or
  3.1100 +    \@fnmark = {\S}\or
  3.1101 +    \@fnmark = {\P}\or
  3.1102 +    \@fnmark = {\ast\ast}%
  3.1103 +  \fi
  3.1104 +  \,$^{\the\@fnmark}$%
  3.1105 +  \edef \reserved@a {\noexpand\@appendtotext{%
  3.1106 +                       \noexpand\@titlefootnote{\the\@fnmark}}}%
  3.1107 +  \reserved@a{#1}}
  3.1108 +
  3.1109 +\def \@appendtotext #1#2{%
  3.1110 +  \global\@titlenotetext = \expandafter{\the\@titlenotetext #1{#2}}}
  3.1111 +
  3.1112 +\newcount{\@authori}
  3.1113 +
  3.1114 +\iffalse
  3.1115 +\def \additionalauthors {%
  3.1116 +  \if \@gtrp{\@authorcount}{3}%
  3.1117 +    \section{Additional Authors}%
  3.1118 +    \label{@addauthors}%
  3.1119 +    \noindent
  3.1120 +    \@authori = 4
  3.1121 +    {\let \\ = ,%
  3.1122 +     \loop 
  3.1123 +       \textbf{\@name{\@authorname\romannumeral\@authori}},
  3.1124 +       \@name{\@authoraffil\romannumeral\@authori},
  3.1125 +       email: \@name{\@authoremail\romannumeral\@authori}.%
  3.1126 +       \@increment \@authori
  3.1127 +     \if \@notp{\@gtrp{\@authori}{\@authorcount}} \repeat}%
  3.1128 +    \par
  3.1129 +  \fi
  3.1130 +  \global\@setflag \@addauthorsdone = \@true}
  3.1131 +\fi
  3.1132 +
  3.1133 +\let \addauthorsection = \additionalauthors
  3.1134 +
  3.1135 +\def \@placetitlenotes {
  3.1136 +  \the\@titlenotetext}
  3.1137 +
  3.1138 +%                       Utilities
  3.1139 +%                       ---------
  3.1140 +
  3.1141 +
  3.1142 +\newcommand{\centeroncapheight}[1]{%
  3.1143 +  {\setbox\@tempboxa = \hbox{#1}%
  3.1144 +   \@measurecapheight{\@tempdima}%         % Calculate ht(CAP) - ht(text)
  3.1145 +   \advance \@tempdima by -\ht\@tempboxa   %           ------------------
  3.1146 +   \divide \@tempdima by 2                 %                   2
  3.1147 +   \raise \@tempdima \box\@tempboxa}}
  3.1148 +
  3.1149 +\newbox{\@measbox}
  3.1150 +
  3.1151 +\def \@measurecapheight #1{%                            {\dimen}
  3.1152 +  \setbox\@measbox = \hbox{ABCDEFGHIJKLMNOPQRSTUVWXYZ}%
  3.1153 +  #1 = \ht\@measbox}
  3.1154 +
  3.1155 +\long\def \@titlefootnote #1#2{%
  3.1156 +  \insert\footins{%
  3.1157 +    \reset@font\footnotesize
  3.1158 +    \interlinepenalty\interfootnotelinepenalty
  3.1159 +    \splittopskip\footnotesep
  3.1160 +    \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
  3.1161 +    \hsize\columnwidth \@parboxrestore
  3.1162 +%%%    \protected@edef\@currentlabel{%
  3.1163 +%%%       \csname p@footnote\endcsname\@thefnmark}%
  3.1164 +    \color@begingroup
  3.1165 +      \def \@makefnmark {$^{#1}$}%
  3.1166 +      \@makefntext{%
  3.1167 +        \rule\z@\footnotesep\ignorespaces#2\@finalstrut\strutbox}%
  3.1168 +    \color@endgroup}}
  3.1169 +
  3.1170 +%                       LaTeX Modifications
  3.1171 +%                       ----- -------------
  3.1172 +
  3.1173 +\def \@seccntformat #1{%
  3.1174 +  \@name{\the#1}%
  3.1175 +  \@expandaftertwice\@seccntformata \csname the#1\endcsname.\@mark
  3.1176 +  \quad}
  3.1177 +
  3.1178 +\def \@seccntformata #1.#2\@mark{%
  3.1179 +  \if \@emptyargp{#2}.\fi}
  3.1180 +
  3.1181 +%                       Revision History
  3.1182 +%                       -------- -------
  3.1183 +
  3.1184 +
  3.1185 +%  Date         Person  Ver.    Change
  3.1186 +%  ----         ------  ----    ------
  3.1187 +
  3.1188 +%  2004.09.12   PCA     0.1--5  Preliminary development.
  3.1189 +
  3.1190 +%  2004.11.18   PCA     0.5     Start beta testing.
  3.1191 +
  3.1192 +%  2004.11.19   PCA     0.6     Obsolete \author and replace with
  3.1193 +%                               \authorinfo.
  3.1194 +%                               Add 'nocopyrightspace' option.
  3.1195 +%                               Compress article opener spacing.
  3.1196 +%                               Add 'mathtime' option.
  3.1197 +%                               Increase text height by 6 points.
  3.1198 +
  3.1199 +%  2004.11.28   PCA     0.7     Add 'cm/computermodern' options.
  3.1200 +%                               Change default to Times text.
  3.1201 +
  3.1202 +%  2004.12.14   PCA     0.8     Remove use of mathptm.sty; it cannot
  3.1203 +%                               coexist with latexsym or amssymb.
  3.1204 +
  3.1205 +%  2005.01.20   PCA     0.9     Rename class file to sigplanconf.cls.
  3.1206 +
  3.1207 +%  2005.03.05   PCA     0.91    Change default copyright data.
  3.1208 +
  3.1209 +%  2005.03.06   PCA     0.92    Add at-signs to some macro names.
  3.1210 +
  3.1211 +%  2005.03.07   PCA     0.93    The 'onecolumn' option defaults to '11pt',
  3.1212 +%                               and it uses the full type width.
  3.1213 +
  3.1214 +%  2005.03.15   PCA     0.94    Add at-signs to more macro names.
  3.1215 +%                               Allow margin paragraphs during review.
  3.1216 +
  3.1217 +%  2005.03.22   PCA     0.95    Implement \euro.
  3.1218 +%                               Remove proof and newdef environments.
  3.1219 +
  3.1220 +%  2005.05.06   PCA     1.0     Eliminate 'onecolumn' option.
  3.1221 +%                               Change footer to small italic and eliminate
  3.1222 +%                               left portion if no \preprintfooter.
  3.1223 +%                               Eliminate copyright notice if preprint.
  3.1224 +%                               Clean up and shrink copyright box.
  3.1225 +
  3.1226 +%  2005.05.30   PCA     1.1     Add alternate permission statements.
  3.1227 +
  3.1228 +%  2005.06.29   PCA     1.1     Publish final first edition of guide.
  3.1229 +
  3.1230 +%  2005.07.14   PCA     1.2     Add \subparagraph.
  3.1231 +%                               Use block paragraphs in lists, and adjust
  3.1232 +%                               spacing between items and paragraphs.
  3.1233 +
  3.1234 +%  2006.06.22   PCA     1.3     Add 'reprint' option and associated
  3.1235 +%                               commands.
  3.1236 +
  3.1237 +%  2006.08.24   PCA     1.4     Fix bug in \maketitle case command.
  3.1238 +
  3.1239 +%  2007.03.13   PCA     1.5     The title banner only displays with the
  3.1240 +%                               'preprint' option.
  3.1241 +
  3.1242 +%  2007.06.06   PCA     1.6     Use \bibfont in \thebibliography.
  3.1243 +%                               Add 'natbib' option to load and configure
  3.1244 +%                                 the natbib package.
  3.1245 +
  3.1246 +%  2007.11.20   PCA     1.7     Balance line lengths in centered article
  3.1247 +%                                 title (thanks to Norman Ramsey).
  3.1248 +
  3.1249 +%  2009.01.26   PCA     1.8     Change natbib \bibpunct values.
  3.1250 +
  3.1251 +%  2009.03.24   PCA     1.9     Change natbib to use the 'numbers' option.
  3.1252 +%                               Change templates to use 'natbib' option.
  3.1253 +
  3.1254 +%  2009.09.01   PCA     2.0     Add \reprintprice command (suggested by
  3.1255 +%                                 Stephen Chong).
  3.1256 +
  3.1257 +%  2009.09.08   PCA     2.1     Make 'natbib' the default; add 'nonatbib'.
  3.1258 +%               SB              Add 'authoryear' and 'numbers' (default) to
  3.1259 +%                               control citation style when using natbib.
  3.1260 +%                               Add \bibpunct to change punctuation for
  3.1261 +%                               'authoryear' style.
  3.1262 +
  3.1263 +%  2009.09.21   PCA     2.2     Add \softraggedright to the thebibliography
  3.1264 +%                               environment. Also add to template so it will
  3.1265 +%                               happen with natbib.
  3.1266 +
  3.1267 +%  2009.09.30   PCA     2.3     Remove \softraggedright from thebibliography.  
  3.1268 +%                               Just include in the template.
  3.1269 +
  3.1270 +%  2010.05.24   PCA     2.4     Obfuscate author's email address.
  3.1271 +
  3.1272 +%  2011.11.08   PCA     2.5     Add copyright notice to this file.
  3.1273 +%                               Remove 'sort' option from natbib when using
  3.1274 +%                                 'authoryear' style.
  3.1275 +%                               Add the \authorversion command.
  3.1276 +