1% Copyright 2014 IEEEE
2% for terms of use see https://www.ieee.org/publications_standards/publications/rights/copyrightpolicy.html
3
4% =========================================================================
5% -------------------------------------------------------------------------
6%               XX                              X
7%                                               X
8%               XX    XXX   XXX   XXX      XXX  X  XXXX
9%                X   X   X X   X X   X    X   X X X
10%                X   XXXXX XXXXX XXXXX    X     X  XXX
11%                X   X     X     X     XX X   X X     X
12%               XXX   XXX   XXX   XXX  XX  XXX  X XXXX
13% -------------------------------------------------------------------------
14% =========================================================================
15% ieee.cls --- For formatting IEEE conference & journal papers
16%          --- Compiled by Gregory Plett, Sept 1997
17%
18% This class was inspired by one first compiled by Gerry Murray and
19% Silvano Balemi for LaTeX209. It was later updated for use with
20% LaTeX2e, and some bugs were fixed, all by Istvan Kollar. Lastly,
21% I have tried to make the class easier to use by paper authors.
22% Significant new functionality has been added. Many routines are
23% "borrowed" from other people's packages and modified extensively.
24% When I rembered where I got the routines from, I gave the author
25% credit.
26%
27% After I made many changes on my own, I found a version by Peter
28% N"uchter, and tried to retain some amount of compatibility with his
29% version.  To be completely compatible with him, you may need to
30% manually:
31% \usepackage{rawfonts}\usepackage{oldlfont}
32% \AtBeginDocument{\parindent1.0em} (?)
33%
34%===========================================================================
35%
36% Usage:
37%	\documentclass[main-mode,sub-mode,misc-options]{ieee}
38%	\usepackage{your own packages}
39%	\begin{document}
40%	\bibliographystyle{IEEEbib}
41%	\title[short]{regular}
42%	\author[short]{full}
43%	\maketitle
44%	\begin{abstract}...\end{abstract}
45%	\begin{keywords}...\end{keywords}
46%	\section{...}
47%	  \PARstart ... or \PARstartCal ...
48%	...
49%	\begin{biography}[picname.ps]{Author's name}...\end{biography}
50%	\end{document}
51%
52% The document class options are:
53%
54% main-mode: One of the following is required. (draft is the default)
55%	draft: Double-spaced, single column with date/time stamp.
56%	submission: Double-spaced, suitable for submission for review.
57%	compressed: Same as "submission", only single spaced.
58%	final: Double-column, for assessing page-length and
59%		format of final version.
60%
61% sub-mode:
62%       techreport: This can modify "final" to produce a two-col
63%               technical report.
64%	internal: This can modify "submission", "compressed" or "final".
65%		It changes the header to notify the reader that
66%		this is a version of the manuscript to be used for
67%		internal review processes only, and not to be
68%		distributed.
69%	submitted: This can modify "compressed" or "final". It changes
70%		the header to notify the reader that this
71%		is a preprint and not to be distributed.
72%	inpress: This can modify "compressed" or "final". It changes the
73%		header to notify the reader that this paper has
74%		been accepted for publishing, but it is not yet to be
75%		distributed.
76%	reprint: This can modify "final". It changes the header
77%		to notify the reader where the paper is reprinted from.
78%
79% misc-options:
80%	narroweqnarray: Changes the spacing around the "=" sign in
81%		equation arrays to make it the same as in displayed math.
82%	inline: Compresses the horizontal spacing of inline math equations.
83%       notitlepage: No separate title page. (default)
84%       titlepage: Separate title page.
85%       anonymous: Omit all author information from main part of paper.
86%		Author info only prints on titlepage.
87%       9pt,10pt,11pt,12pt: Choose the appropriate type size. You should
88%               not need to do this as the "correct" size is automatically
89%               chosen. However, if you want, you may use these to change
90%               the type size of the main text. "9pt" is a bit of a hack
91%               to retain backward-compatibility.
92%       invited: If the paper is an "invited" paper, then this option
93%               prints "(Invited Paper)" under the authors' names.
94%
95% For regular IEEE submissions, define the journal name as:
96% \journal{IEEE Trans. Inst. Meas.}
97%
98% To specify the conference place and date:
99% \confplacedate{Ottawa, Canada, May 19--21, 1997}
100%
101% Before \maketitle, define:
102% \title{Title of paper}
103% \author{Author1\member{Fellow}\authorinfo{Department of
104% Electrical Engineering\\ Some University, Somewhere, CA 94305
105% USA} \and Author2\member{Senior Member}\authorinfo{Deptartment of
106% Measurement and Instrument Eng., Another University, ...}}
107%
108% Note, the contents of \authorinfo tends to vary depending on if it is
109% a conference or journal paper. The amount of manual changes are
110% small, and must be done by a human anyway. The example given is for an
111% IMTC conference.
112%
113% See also IEEEbib.bst and ieeefig.sty
114% Also very useful for document preparation is the style file "endfloat",
115% available on all CTAN TeX archives.
116%
117%===========================================================================
118% modified 14 October 2002:
119% 	- fixed bibliography listing of [#] when # < 10 and number of
120%	  references is greater than 9. Thanks for Janos Markus for finding
121%	  this bug and suggesting a solution.
122% modified 15 January 2000:
123%	- "fixed" narroweqnarray. Never implemented! Now it is...
124% modified 12 January 2000:
125%	- modified so only first \title and \author commands are recognized.
126%	  This allows LyX to have \title and \author with full syntax in
127%         header, but dummy \title and \author show up in GUI.
128%	- added "\date" so the \date command can change "submitted" and
129%         "draft" date headers.
130% modified 11 January 2000:
131% 	- added PARstartLyX and PARstartCalLyX for LyX compatibility
132% 	- added biographyLyX
133% modified 1 Dec 1997:
134%       - fixed first page in reprint mode to be same length as other pages
135%       - added "invited" misc-option
136% modified 5 Sept 1997:
137%	- added the inpress, reprint and internal sub-modes
138%	- removed IMTC-conf and CDC-conf to separate files
139% modified 1 Sept 1997:
140%	- included Babel package compatibility
141%	- removed paper title from header on first page of draft
142%	  manuscript
143%	- removed the fixed option "letterpaper" to allow a4paper (etc)
144% modified 1 Aug 1997:
145%	- included the CDC-conf option
146%===========================================================================
147% **************************************************************************
148% ******                          ******************************************
149% *****   LaTeX2e INITIALIZATION   *****************************************
150% ******                          ******************************************
151% **************************************************************************
152\typeout{Document Class `ieee' <Modified: 2000, Gregory L. Plett>.}
153\NeedsTeXFormat{LaTeX2e}[1993/11/11] % Oldest acceptable version of LaTeX2e
154\ProvidesClass{ieee}[2000/01/11]     % Name of package provided, date
155\def\i@@@cls{exists}
156
157% Initial Code & Declaration of Options
158% -------------------------------------
159\newif\ifev@l \ev@lfalse             	% true if "final" mode.
160\newif\ifsubm@t \subm@tfalse         	% true if "submission" mode.
161\newif\ifdr@ft \dr@fttrue            	% true if "draft" mode.
162\newif\ifc@mpress \c@mpressfalse       	% true if "compressed" mode.
163
164\newif\if@technote \@technotefalse	% true if "technote" sub-mode.
165\newif\ifintern@l  \intern@lfalse	% true if "internal" sub-mode.
166\newif\ifprepr@nt \prepr@ntfalse	% true if "preprint" sub-mode.
167\newif\ifinpr@ss \inpr@ssfalse		% true if "inpress" sub-mode.
168\newif\ifrepr@nt \repr@ntfalse		% true if "reprint" sub-mode.
169
170\newif\iftitlep@ge \titlep@gefalse     	% true if has own titlepage
171\newif\if@non \@nonfalse		% true if anonymous
172\newif\ifixpt \ixptfalse		% true if trying to do 9 pt
173\newif\if@nvited \@nvitedfalse		% true if an invited paper
174
175% Main options
176% ------------
177\DeclareOption{draft}{\ev@lfalse\subm@tfalse\dr@fttrue%
178	\typeout{ieee: `Draft' mode selected.}}
179\DeclareOption{submission}{\ev@lfalse\dr@ftfalse\subm@ttrue%
180	\typeout{ieee: `Submission' mode selected.}}
181\DeclareOption{compressed}{\ev@lfalse\dr@ftfalse\subm@tfalse\c@mpresstrue%
182	\typeout{ieee: `Compressed' mode selected.}}
183\DeclareOption{final}{\ev@ltrue\dr@ftfalse\subm@tfalse%
184	\typeout{ieee: `Final' mode selected.}}
185\DeclareOption{evaluation}{\ev@ltrue\dr@ftfalse\subm@tfalse%
186	\typeout{ieee: `Final' mode selected.}} % synonym for final
187
188% Sub options
189% -----------
190\DeclareOption{technote}{\@technotetrue%
191	\typeout{ieee: `Technote' sub-mode selected.}}
192\DeclareOption{internal}{\intern@ltrue\prepr@ntfalse\inpr@ssfalse\repr@ntfalse%
193	\typeout{ieee: `Internal-Review' sub-mode selected.}}
194\DeclareOption{submitted}{\intern@lfalse\prepr@nttrue\inpr@ssfalse\repr@ntfalse%
195	\typeout{ieee: `Submitted' sub-mode selected.}}
196\DeclareOption{preprint}{\intern@lfalse\prepr@nttrue\inpr@ssfalse\repr@ntfalse%
197	\typeout{ieee: `Submitted' sub-mode selected.}} % synonym for submitted
198\DeclareOption{inpress}{\intern@lfalse\prepr@ntfalse\inpr@sstrue\repr@ntfalse%
199	\typeout{ieee: `Inpress' sub-mode selected.}}
200\DeclareOption{reprint}{\intern@lfalse\prepr@ntfalse\inpr@ssfalse\repr@nttrue%
201	\typeout{ieee: `Reprint' sub-mode selected.}}
202
203% Misc options
204% ------------
205                                     	% regular or compressed "=" spacing in
206\def\eqnarr@ysep{\arraycolsep}       	% eqnarray (this is the default)
207                                     	% NOTE: we must use "def" and not "="
208                                     	% as arraycolsep not yet defined.
209\DeclareOption{narroweqnarray}{\gdef\eqnarr@ysep{0.28em\relax}%
210	\typeout{ieee: Narrow equation arrays selected.}}
211\DeclareOption{inline}{\everymath{\thinmuskip=2mu plus 1mu
212        \medmuskip=3mu plus 1mu minus 2mu
213        \thickmuskip=4mu plus 2mu\relax}%
214	\typeout{ieee: Narrower inline equations selected.}}
215\DeclareOption{notitlepage}{\titlep@gefalse%
216	\typeout{ieee: No separate title page.}}
217\DeclareOption{titlepage}{\titlep@getrue%
218	\typeout{ieee: Use separate title page.}}
219\DeclareOption{anonymous}{\@nontrue\AtBeginDocument{\glpexclude{biography}}
220	\typeout{ieee: Omit author information from paper.}}
221\DeclareOption{invited}{\@nvitedtrue%
222	\typeout{ieee: (Invited Paper).}}
223
224\DeclareOption{9pt}{\ixpttrue%
225	\typeout{ieee: Trying to emulate old `9pt' document class.}}
226
227\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
228
229% Execution of Options/Package Loading
230% ------------------------------------
231\newlength\narrowcol
232\newlength\parindentsave 		% recover parindent in blsone text
233
234\ProcessOptions
235\ifev@l			     	% if "final" mode...
236  \if@technote\ixpttrue\typeout{ieee: Trying to emulate old `9pt'
237	document class.}\fi%
238  \LoadClass[twoside,final,twocolumn,10pt]{article}
239\else			     	% if "draft"/"submission"/(compressed) mode...
240  \ifixpt
241    \LoadClass[oneside,final,onecolumn,10pt]{article}
242  \else
243    \LoadClass[oneside,final,onecolumn,12pt]{article}
244  \fi
245\fi
246\RequirePackage[final]{graphicx}
247\RequirePackage{ifthen}
248
249% Re-Definitions of English words which must be done before
250% the Babel package (optional) is loaded.
251% ---------------------------------------------------------
252\def\keywordsname{Index Terms}
253\def\indexterms#1{\def\keywordsname{#1}}
254\def\appendicesname{Appendices}
255\def\figurename{Fig.}
256
257% **************************************************************************
258% *****   Check Sub-Options for Compatibility w/ Main-Options   ************
259% **************************************************************************
260\if@technote\ifev@l\else\ClassError{ieee}{`technote' sub-mode may be
261	used only with the `final' ^^Jmain-mode. It may not be used
262	with either the `draft,' `submission,' or ^^J`compressed'
263	main-modes}{}\endinput\fi\fi
264\ifintern@l\ifdr@ft\ClassError{ieee}{`internal' sub-mode may be
265	used only with the ^^J`submission,' `compressed,' or `final' main-modes.
266	It may not be used ^^Jwith the `draft' main-mode}{}\endinput\fi\fi
267\ifprepr@nt\ifc@mpress\else\ifev@l\else\ClassError{ieee}{`submitted'
268	sub-mode may be used only with the ^^J`compressed' or `final'
269	main-modes. It may not be used with either the ^^J`draft' or
270	`submission' main-modes}{}\endinput\fi\fi\fi
271\ifinpr@ss\ifc@mpress\else\ifev@l\else\ClassError{ieee}{`inpress'
272	sub-mode may be used only with the `compressed' ^^Jor `final'
273	main-modes. It may not be used with either the `draft' or
274	^^J`submission' main-modes}{}\endinput\fi\fi\fi
275\ifrepr@nt\ifev@l\else\ClassError{ieee}{`reprint'
276	sub-mode may be used only with the `final' ^^Jmain-mode. It may not be
277	used with either the `draft,' `submission,' or ^^J`compressed'
278	main-modes}{}\endinput\fi\fi
279
280% **************************************************************************
281% *****   Page Layout Definition   *****************************************
282% **************************************************************************
283%% Layout definitions (mostly) common to all options.
284
285\hoffset 0in 			\voffset 0in
286\headheight        12pt 	\headsep            7mm
287\marginparsep      10pt 	\marginparwidth    20pt
288\marginparpush     25pt
289\columnsep        4mm
290\parindent        1.0em
291\lineskip           1pt
292\normallineskip     1pt
293\def\baselinestretch{1}
294
295\partopsep          \z@
296\topsep           1.3ex
297\parsep             \z@
298\itemsep            \z@
299
300\setlength{\parindentsave}{\parindent}
301
302\ifev@l					% if "evaluation" mode
303    % if camera-ready or A4paper ...
304    \ifdim\paperwidth<211mm
305      \oddsidemargin -11.4mm	\evensidemargin -11.4mm
306    % for regular US Letter, not camera-ready
307    \else
308      \oddsidemargin -8.45mm	\evensidemargin -8.45mm
309    \fi
310    \ifrepr@nt
311      \textheight 237.5mm		% leave 6mm for cpyright on first page
312    \else
313      \textheight 243.5mm
314    \fi
315    \voffset -0.5in
316    \textwidth 182.0mm
317    \topmargin -12pt
318    \setlength{\narrowcol}{89mm}
319\else				     	% if "draft"/"submission" mode...
320  \ifc@mpress				% and "compressed"
321    \oddsidemargin -0.25in	\evensidemargin -0.25in
322    \textheight 9in 		\textwidth 7in
323    \topmargin -0.25in
324    \setlength{\narrowcol}{7in}
325  \else 				% and NOT "compressed"
326    \renewcommand\baselinestretch{1.8}\renewcommand{\arraystretch}{0.8}
327    \parindent=1.8\parindent
328    \oddsidemargin 0pt 		\evensidemargin 0pt
329    \headheight 12pt 		\headsep 0.375in
330    \topmargin 0pt
331    \textheight 8.5in 		\textwidth 6.5in
332    \marginparsep 0in 		\marginparwidth 0pt
333    \marginparpush 5pt
334    \setlength{\narrowcol}{6.5in}
335  \fi
336\fi
337
338\def\normalstyle{\rmfamily}
339
340% **************************************************************************
341% *****   Font Definition   ************************************************
342% **************************************************************************
343%% The 9-point option is being faked since it is not supported by the
344%% article base class.
345
346%% Check if we have selected 9 points
347\ifixpt
348\typeout{-- This is a 9 point document}
349\gdef\@ptsize{9}
350\def\@normalsize{\@setsize\normalsize{10.7pt}\ixpt\@ixpt
351\abovedisplayskip 1em plus2pt minus5pt\belowdisplayskip \abovedisplayskip
352\abovedisplayshortskip \z@ plus3pt\belowdisplayshortskip .6em plus3pt minus3pt
353\topsep \belowdisplayshortskip%!PN
354}
355\def\small{\@setsize\small{9.12pt}\viiipt\@viipt}
356\def\footnotesize{\@setsize\footnotesize{8.15pt}\viipt\@vipt}
357\def\scriptsize{\@setsize\scriptsize{8pt}\vipt\@vpt}
358\def\tiny{\@setsize\tiny{5pt}\vpt\@vpt}
359\def\large{\@setsize\large{12pt}\xpt\@xpt}
360\def\Large{\@setsize\Large{14pt}\xiipt\@xiipt}
361\def\LARGE{\@setsize\LARGE{18pt}\xivpt\@xivpt}
362\def\huge{\@setsize\huge{22pt}\xviipt\@xviipt}
363\def\Huge{\@setsize\Huge{25pt}\xxpt\@xxpt}
364\fi
365%%
366%% Check if we have selected 10 points
367\def\@tempa{0}\if\@ptsize\@tempa
368\typeout{-- This is a 10 point document}
369\def\@normalsize{\@setsize\normalsize{11.9pt}\xpt\@xpt
370\abovedisplayskip 1em plus2pt minus5pt\belowdisplayskip \abovedisplayskip
371\abovedisplayshortskip \z@ plus3pt\belowdisplayshortskip .6em plus3pt minus3pt
372\topsep \belowdisplayshortskip%!PN
373}
374\def\small{\@setsize\small{9.2pt}\viiipt\@viiipt}
375\def\footnotesize{\@setsize\footnotesize{8.8pt}\viiipt\@viiipt}
376\def\scriptsize{\@setsize\scriptsize{8pt}\viipt\@viipt}
377\def\tiny{\@setsize\tiny{6pt}\vpt\@vpt}
378\def\normalsize{\@setsize\normalsize{11.9pt}\xpt\@xpt}
379\def\large{\@setsize\large{14pt}\xiipt\@xiipt}
380\def\Large{\@setsize\Large{18pt}\xivpt\@xivpt}
381\def\LARGE{\@setsize\LARGE{22pt}\xviipt\@xviipt}
382\def\huge{\@setsize\huge{22pt}\xxpt\@xxpt}
383\def\Huge{\@setsize\Huge{28pt}\xxvpt\@xxvpt}
384\fi
385%%
386%% Check if we have selected 11 points
387\def\@tempa{1}\if\@ptsize\@tempa
388\typeout{-- This is an 11 point document}
389\def\@normalsize{\@setsize\normalsize{13.6pt}\xipt\@xipt
390\abovedisplayskip 1em plus2pt minus5pt\belowdisplayskip \abovedisplayskip
391\abovedisplayshortskip \z@ plus3pt\belowdisplayshortskip .6em plus3pt minus3pt
392\topsep \belowdisplayshortskip%!PN
393}
394\def\small{\@setsize\small{12pt}\xpt\@xpt}
395\def\footnotesize{\@setsize\footnotesize{11pt}\ixpt\@ixpt}
396\def\scriptsize{\@setsize\scriptsize{9.5pt}\viiipt\@viiipt}
397\def\tiny{\@setsize\tiny{7pt}\vipt\@vipt}
398\def\normalsize{\@setsize\normalsize{13.6pt}\xipt\@xipt}
399\def\large{\@setsize\large{14pt}\xiipt\@xiipt}
400\def\Large{\@setsize\Large{18pt}\xivpt\@xivpt}
401\def\LARGE{\@setsize\LARGE{22pt}\xviipt\@xviipt}
402\def\huge{\@setsize\huge{25pt}\xxpt\@xxpt}
403\def\Huge{\@setsize\Huge{30pt}\xxvpt\@xxvpt}
404\fi
405%%
406%% Check if we have selected 12 points
407\def\@tempa{2}\if\@ptsize\@tempa
408\typeout{-- This is a 12 point document}
409\def\@normalsize{\@setsize\normalsize{14pt}\xiipt\@xiipt
410\abovedisplayskip 1em plus3pt minus6pt\belowdisplayskip \abovedisplayskip
411\abovedisplayshortskip \z@ plus3pt\belowdisplayshortskip .6em plus4pt minus4pt
412\topsep \belowdisplayshortskip%!PN
413}
414\def\small{\@setsize\small{11.4pt}\xpt\@xpt}
415\def\footnotesize{\@setsize\footnotesize{10pt}\ixpt\@ixpt}
416\def\scriptsize{\@setsize\scriptsize{9pt}\viiipt\@viiipt}
417\def\tiny{\@setsize\tiny{8pt}\vipt\@vipt}
418\def\normalsize{\@setsize\normalsize{14pt}\xiipt\@xiipt}
419\def\large{\@setsize\large{18pt}\xivpt\@xivpt}
420\def\Large{\@setsize\Large{22pt}\xviipt\@xviipt}
421\def\LARGE{\@setsize\LARGE{25pt}\xxpt\@xxpt}
422\def\huge{\@setsize\huge{30pt}\xxvpt\@xxvpt}
423\let\Huge=\huge
424\fi
425
426\AtBeginDocument{\normalsize\normalstyle\ps@headings\pagenumbering{arabic}}
427
428% **************************************************************************
429% *****   List Definition   ************************************************
430% **************************************************************************
431%% Change aspect of lists with
432%% 1) \itemindent,  label indentation  wrt to left list margin
433%% 2) \leftmargini, the indentation of the whole list (on left, first level)
434\ifev@l
435  \itemindent        -1em
436  \leftmargini        2em
437  \leftmarginii       1em
438  \leftmarginiii    1.5em
439  \leftmarginiv     1.5em
440  \leftmarginv      1.0em
441  \leftmarginvi     1.0em
442\else
443  \itemindent         -1em
444  \leftmargini        3em
445  \leftmarginii       3em
446  \leftmarginiii      3em
447  \leftmarginiv       3em
448  \leftmarginv        3em
449  \leftmarginvi       3em
450\fi
451%\itemindent        2em  % Alternative values: sometimes used..
452%\leftmargini       0em
453\labelsep           5pt
454\leftmargin\leftmargini
455\labelwidth         \z@
456
457\def\@listI{\leftmargin\leftmargini} \@listI
458\def\@listi{\leftmargin\leftmargini  \topsep \z@ plus 1pt minus 1pt}
459\def\@listii{\leftmargin\leftmarginii\labelwidth\leftmarginii
460    \advance\labelwidth-\labelsep    \topsep \z@}
461\def\@listiii{\leftmargin\leftmarginiii\labelwidth\leftmarginiii
462    \advance\labelwidth-\labelsep    \topsep \z@}
463\def\@listiv{\leftmargin\leftmarginiv\labelwidth\leftmarginiv
464    \advance\labelwidth-\labelsep    \topsep \z@}
465\def\@listv{\leftmargin\leftmarginv\labelwidth\leftmarginv
466    \advance\labelwidth-\labelsep    \topsep \z@}
467\def\@listvi{\leftmargin\leftmarginvi\labelwidth\leftmarginvi
468    \advance\labelwidth-\labelsep    \topsep \z@}
469
470\def\labelenumi{\theenumi.}     \def\theenumi{\arabic{enumi}}
471\def\labelenumii{(\theenumii)}  \def\theenumii{\alph{enumii}}
472\def\labelenumiii{\theenumiii.} \def\theenumiii{\roman{enumiii}}
473\def\labelenumiv{\theenumiv.}   \def\theenumiv{\Alph{enumiv}}
474\def\p@enumii{\theenumi}
475\def\p@enumiii{\theenumi(\theenumii)}
476\def\p@enumiv{\p@enumiii\theenumiii}
477
478\def\labelitemi{$\scriptstyle\bullet$}
479\def\labelitemii{\bf --}
480\def\labelitemiii{$\ast$}
481\def\labelitemiv{$\cdot$}
482
483%% \itemindent is set to \z@ by list, so define new temporary variable
484\newdimen\tmpitemindent
485\def\verse{\let\\=\@centercr
486    \list{}{\itemsep\z@ \itemindent -1.5em \listparindent \itemindent
487    \rightmargin\leftmargin\advance\leftmargin 1.5em}\item[]}
488\let\endverse\endlist
489\def\quotation{\list{}{\listparindent 1.5em \itemindent\listparindent
490    \rightmargin\leftmargin \parsep 0pt plus 1pt}\item[]}
491\let\endquotation=\endlist
492\def\quote{\list{}{\rightmargin\leftmargin}\item[]}
493\let\endquote=\endlist
494\def\@mklab#1{#1}
495\def\description{\tmpitemindent\itemindent\list{}{\itemindent\tmpitemindent
496    \labelwidth\z@\def\makelabel##1{\hspace\labelsep\emph{##1}}}}
497\def\enddescription{\endlist\par}
498\def\enumerate{\tmpitemindent\itemindent\ifnum \@enumdepth >3 \@toodeep\else
499    \advance\@enumdepth \@ne \edef\@enumctr{enum\romannumeral\the\@enumdepth}%
500    \list{\csname label\@enumctr\endcsname}{\itemindent\tmpitemindent
501    \usecounter{\@enumctr}\def\makelabel##1{\hspace\labelsep\hfil{##1}}}\fi}
502\def\endenumerate{\endlist\par}
503\def\itemize{\tmpitemindent\itemindent\ifnum \@itemdepth >3 \@toodeep\else
504    \advance\@itemdepth\@ne
505    \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
506    \list{\csname\@itemitem\endcsname}{\itemindent\tmpitemindent
507    \def\makelabel##1{\hspace\labelsep\hfil\emph{##1}}}\fi}
508\def\enditemize{\endlist\par}
509
510\newif\if@restonecol
511\def\titlepage{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn
512    \else \newpage \fi \thispagestyle{coverpagestyle}\c@page\z@}
513\def\endtitlepage{\if@restonecol\twocolumn \else \newpage \fi%
514\if@twoside\mbox{}\thispagestyle{coverpagestyle}\c@page\z@\cleardoublepage\fi}
515
516\arraycolsep     5pt
517\tabcolsep       6pt
518\arrayrulewidth .4pt
519\doublerulesep   2pt
520\tabbingsep\labelsep
521
522% **************************************************************************
523% *****   Footnote Definition   ********************************************
524% **************************************************************************
525\skip\footins 10pt plus 5pt minus 2pt
526\footnotesep 7pt
527\footskip 6mm
528\skip\@mpfootins = \skip\footins
529\fboxsep = 3pt \fboxrule = .4pt
530\long\def\@makefntext#1{\parindent .8em\indent$^{\@thefnmark}$#1}
531\def\footnoterule{}
532
533% Reset baselinestretch within footnotes.
534% Originally stolen from Stanford University thesis style.
535% --------------------------------------------------------
536\long\def\@footnotetext#1{\insert\footins{\blsone%
537    \footnotesize\interlinepenalty\interfootnotelinepenalty
538    \splittopskip\footnotesep
539    \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
540    \hsize\columnwidth \@parboxrestore
541    \edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}\@makefntext
542    \let\par\\
543    {\rule{\z@}{\footnotesep}\ignorespaces
544      #1\strut}}}
545
546% **************************************************************************
547% *****   Keep track of Sections   *****************************************
548% **************************************************************************
549\if@technote
550   \setcounter{secnumdepth}{3}
551\else
552   \setcounter{secnumdepth}{4}
553\fi
554
555\def\thesection{\@Roman\c@section}
556\def\thesubsection{\Alph{subsection}}
557\def\thesubsubsection{\thesubsection.\arabic{subsubsection}}
558\def\thesubsubsectiondis{\Alph{subsection}.\arabic{subsubsection}}
559\def\theparagraph{\thesubsubsection.\alph{paragraph}}
560\def\theparagraphdis{\thesubsubsectiondis.\alph{paragraph}}
561
562\def\theequation{\arabic{equation}}
563
564% **************************************************************************
565% *****   Table of Contents, List of Figures/Tables Definitions   **********
566% **************************************************************************
567\def\@pnumwidth{1.55em}
568\def\@tocrmarg {2.55em}
569\def\@dotsep{4.5}
570\setcounter{tocdepth}{3}
571
572\def\tableofcontents{\section*{\contentsname}\@starttoc{toc}}
573\def\l@section#1#2{\addpenalty{\@secpenalty} \addvspace{1.0em plus 1pt}
574    \@tempdima 1.8em \begingroup \parindent \z@ \rightskip \@pnumwidth
575    \parfillskip-\@pnumwidth \bf\leavevmode #1\hfil\hbox to\@pnumwidth{\hss #2}
576    \par \endgroup}
577\def\l@subsection{\@dottedtocline{2}{1.5em}{2.3em}}
578\def\l@subsubsection{\@dottedtocline{3}{3.8em}{3.2em}}
579\def\listoffigures{\section*{\listfigurename}\@starttoc{lof}}
580\def\l@figure{\@dottedtocline{1}{1em}{1.8em}}
581\def\listoftables{\section*{\listtablename}\@starttoc{lot}}
582\let\l@table\l@figure
583
584% **************************************************************************
585% *****   Float Definitions   **********************************************
586% **************************************************************************
587%% Normal Floats                      %% Double Column Floats
588\floatsep 12pt plus 2pt minus 2pt     \dblfloatsep 12pt plus 2pt minus 2pt
589\textfloatsep 20pt plus 2pt minus 4pt \dbltextfloatsep 20pt plus 2pt minus 4pt
590%\@maxsep 20pt                         \@dblmaxsep 20pt %!PN
591\@fptop 0pt plus 1fil                 \@dblfptop 0pt plus 1fil
592\@fpsep 8pt plus 2fil                 \@dblfpsep 8pt plus 2fil
593\@fpbot 0pt plus 1fil                 \@dblfpbot 0pt plus 1fil
594\def\topfraction{1.0}                 \def\dbltopfraction{1.0}
595\def\floatpagefraction{0.8}           \def\dblfloatpagefraction{0.8}
596\setcounter{topnumber}{2}             \setcounter{dbltopnumber}{4}
597%
598\intextsep 12pt plus 2pt minus 2pt
599\setcounter{bottomnumber}{2}
600\def\bottomfraction{.4}
601\setcounter{totalnumber}{4}
602\def\textfraction{.2}
603
604% Reset baselinestretch within floats.
605% Originally stolen from Stanford University thesis style.
606% --------------------------------------------------------
607\def\@xfloat#1[#2]{\ifhmode \@bsphack\@floatpenalty -\@Mii\else
608    \@floatpenalty-\@Miii\fi\def\@captype{#1}\ifinner
609      \@parmoderr\@floatpenalty\z@
610     \else\@next\@currbox\@freelist{\@tempcnta\csname ftype@#1\endcsname
611       \multiply\@tempcnta\@xxxii\advance\@tempcnta\sixt@@n
612       \@tfor \@tempa :=#2\do
613                        {\if\@tempa h\advance\@tempcnta \@ne\fi
614                         \if\@tempa t\advance\@tempcnta \tw@\fi
615                         \if\@tempa b\advance\@tempcnta 4\relax\fi
616                         \if\@tempa p\advance\@tempcnta 8\relax\fi
617         }\global\count\@currbox\@tempcnta}\@fltovf\fi
618    \global\setbox\@currbox\vbox\bgroup
619    \def\baselinestretch{1}\small\normalsize
620    \hsize\columnwidth \@parboxrestore}
621
622% **************************************************************************
623% *****   Caption Definition   *********************************************
624% **************************************************************************
625% some journals do not have centered captions for figures.
626\newif\ifc@ptionleft \c@ptionlefttrue
627\def\leftfigcaptions{\c@ptionlefttrue}
628\def\centerfigcaptions{\c@ptionleftfalse}
629
630\long\def\caption{\refstepcounter\@captype \@dblarg{\@caption\@captype}}
631
632\long\def\@caption#1[#2]#3{\par\addcontentsline{\csname ext@#1\endcsname}{#1}{%
633   \protect\numberline{\csname the#1\endcsname}{\ignorespaces #2}}
634   \begingroup \@parboxrestore \normalsize
635     \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}{#1}\par
636   \endgroup}
637
638\def\tablestring{table}
639\def\figurestring{figure}
640
641% changed by GLP to allow table captions to be set to a specific maximum
642% width "\captionwidth", if defined.
643\newlength{\captionindent}
644\long\def\@makecaption#1#2#3{
645\ifx\figurestring#3
646    \vskip 5pt
647    \setbox\@tempboxa\hbox{\small #1.~ #2}
648    \ifdim \wd\@tempboxa >\hsize
649       \setbox\@tempboxa\hbox{\small #1.~ }
650       %\setlength\captionindent{\wd\@tempboxa} \divide\captionindent by 2
651       %\parbox[t]{\hsize}{\small \hangindent \captionindent \hangafter=1%
652       \parbox[t]{\hsize}{\small
653       \unhbox\@tempboxa#2}
654    \else \hbox
655	to\hsize{\small\ifc@ptionleft\else\hfil\fi\box\@tempboxa\hfil}
656    \fi
657\else
658  \begin{center}
659  \ifx\captionwidth\undefined {\small #1}\\{\small\scshape #2}
660  \else
661    \begin{minipage}{\captionwidth}
662    \begin{center}{\small #1}\\{\small\scshape #2}\end{center}
663    \end{minipage}
664  \fi
665  \end{center}\vskip 4pt
666\fi}
667
668\def\thefigure{\@arabic\c@figure}
669\def\fps@figure{tbp}
670\def\ftype@figure{1}
671\def\ext@figure{lof}
672\def\fnum@figure{\figurename\ \thefigure}
673%\def\figure{\@float{figure}}		% GLP
674%\let\endfigure\end@float
675\@namedef{figure*}{\@dblfloat{figure}}
676\@namedef{endfigure*}{\end@dblfloat}
677
678\def\thetable{\@Roman\c@table}
679\def\fps@table{tbp}
680\def\ftype@table{2}
681\def\ext@table{lot}
682\def\fnum@table{TABLE~\thetable}
683\def\table{\@float{table}}
684\let\endtable\end@float
685\@namedef{table*}{\@dblfloat{table}}
686\@namedef{endtable*}{\end@dblfloat}
687
688% **************************************************************************
689% *****   Header/Footer Definition   ***************************************
690% **************************************************************************
691% compute the time in hours and minutes; make new vars \timehh and \timemm
692\newcount\timehh\newcount\timemm\timehh=\time\divide\timehh by 60
693\timemm=\time\count255=\timehh\multiply\count255 by-60
694\advance\timemm by \count255
695\ifnum\timehh=12\def\apm{pm}\else
696\ifnum\timehh>12\def\apm{pm}\advance\timehh by-12\else
697\def\apm{am}\fi\fi
698\def\t@me{\number\timehh\,:\,\ifnum\timemm<10 0\fi\number\timemm\,\apm}
699
700% default definitions
701% -------------------
702\def\theevenhe@d{\footnotesize\thepage \hfil \leftmark\hbox{}}
703\def\theoddhe@d{\hbox{}\footnotesize\rightmark \hfil \thepage}
704\def\theevenf@@t{}
705\def\theoddf@@t{}
706
707\def\theeventphe@d{\footnotesize\thepage \hfil \hbox{}}
708\def\theoddtphe@d{\hbox{}\footnotesize \hfil \thepage}
709\def\theeventpf@@t{}
710\def\theoddtpf@@t{}
711
712\def\theevencphe@d{}
713\def\theoddcphe@d{}
714\def\theevencpf@@t{}
715\def\theoddcpf@@t{}
716
717\def\internalmsg{Preliminary version for evaluation: Please do not
718	circulate without the permission of the author(s)}
719\def\submittedmsg{SUBMITTED FOR PUBLICATION TO:}
720\def\acceptedmsg{ACCEPTED FOR PUBLICATION:}
721\def\inpressmsg{(IN PRESS)}
722\def\reprintmsg{REPRINTED FROM:}
723
724% default cover page style (optional cover page)
725% ----------------------------------------------
726\def\ps@coverpagestyle{
727  \def\@oddhead{\theoddcphe@d} \def\@evenhead{\theevencphe@d}
728  \def\@oddfoot{\theoddcpf@@t} \def\@evenfoot{\theevencpf@@t}
729}
730
731% default title page style (first page of paper)
732% ----------------------------------------------
733\def\ps@titlepagestyle{
734  \def\@oddhead{\theoddtphe@d} \def\@evenhead{\theeventphe@d}
735  \def\@oddfoot{\theoddtpf@@t} \def\@evenfoot{\theeventpf@@t}
736}
737
738% default regular page style
739% --------------------------
740\if@twoside
741  \def\ps@headings{
742    \def\@oddhead{\theoddhe@d}
743    \def\@evenhead{\theevenhe@d}
744    \def\@oddfoot{\theoddf@@t} \def\@evenfoot{\theevenf@@t}
745  }
746\else
747  \def\ps@headings{
748    \def\@oddhead{\theoddhe@d}
749    \def\@oddfoot{\theoddf@@t}
750    \def\@evenhead{} \def\@evenfoot{}
751  }
752\fi
753
754% For draft mode (no sub-modes allowed)
755% -------------------------------------
756\ifdr@ft
757  \def\leftmark{\sh@rttitle}\let\rightmark\leftmark
758  \def\theoddf@@t{\footnotesize\today---\t@me\hfil DRAFT}
759  \def\theevenf@@t{\footnotesize DRAFT\hfil\today---\t@me}
760  \def\theoddtpf@@t{\footnotesize\today---\t@me\hfil DRAFT}
761  \def\theeventpf@@t{\footnotesize DRAFT\hfil\today---\t@me}
762\fi
763
764% For submission mode (default plus internal sub-modes allowed)
765% -------------------------------------------------------------
766\ifsubm@t
767  \def\leftmark{\sh@rttitle}\def\rightmark{\titl@line}
768  \ifintern@l
769    \def\theeventphe@d{\footnotesize\thepage \hfil \rightmark\hbox{}}
770    \def\theoddtphe@d{\hbox{}\footnotesize\rightmark \hfil \thepage}
771    \def\rightmark{\vbox to 0pt{\vss\hbox{\internalmsg} \hbox{\sh@rttitle}}}
772    \def\leftmark{\vbox to 0pt{\vss\hbox{\internalmsg}
773	\hbox{\phantom{\internalmsg}\llap{\sh@rttitle}}}}
774  \else % put date on first page.
775    \edef\TODAY{\uppercase{\today}}
776    \def\theeventphe@d{\footnotesize\thepage \hfil \submittedmsg\
777	\@journal\@titletext, \TODAY}
778    \def\theoddtphe@d{\footnotesize\submittedmsg\
779	\@journal\@titletext, \TODAY\hfil \thepage}
780    \def\theevencphe@d{\footnotesize\hbox{} \hfil \submittedmsg\
781	\@journal\@titletext, \TODAY}
782    \def\theoddcphe@d{\footnotesize\submittedmsg\
783	\@journal\@titletext, \TODAY\hfil \hbox{}}
784  \fi
785\fi
786
787% For compressed mode (default, internal, submitted and
788% inpress sub-modes allowed)
789% -----------------------------------------------------
790\ifc@mpress
791  \def\leftmark{\sh@rttitle}\def\rightmark{\titl@line}
792  \ifintern@l
793    \def\theeventphe@d{\footnotesize\thepage \hfil \rightmark\hbox{}}
794    \def\theoddtphe@d{\hbox{}\footnotesize\rightmark \hfil \thepage}
795    \def\rightmark{\vbox to 0pt{\vss\hbox{\internalmsg} \hbox{\sh@rttitle}}}
796    \def\leftmark{\vbox to 0pt{\vss\hbox{\internalmsg}
797	\hbox{\phantom{\internalmsg}\llap{\sh@rttitle}}}}
798  \fi
799  \ifprepr@nt
800    \edef\TODAY{\uppercase{\today}}
801    \def\theeventphe@d{\footnotesize\thepage \hfil \submittedmsg\
802	\@journal\@titletext, \TODAY}
803    \def\theoddtphe@d{\footnotesize\submittedmsg\
804	\@journal\@titletext, \TODAY\hfil \thepage}
805    \def\theevencphe@d{\footnotesize\hbox{} \hfil \submittedmsg\
806	\@journal\@titletext, \TODAY}
807    \def\theoddcphe@d{\footnotesize\submittedmsg\
808	\@journal\@titletext, \TODAY\hfil \hbox{}}
809  \fi
810  \ifinpr@ss
811    \def\leftmark{\acceptedmsg\ \@journal\@titletext, \inpressmsg}
812    \def\theeventphe@d{\footnotesize\thepage \hfil \leftmark\hbox{}}
813    \def\theoddtphe@d{\hbox{}\footnotesize\leftmark \hfil \thepage}
814  \fi
815\fi
816
817% For final (evaluate) mode (default, techreport, internal,
818% submitted, inpress and reprint sub-modes allowed)
819% ---------------------------------------------------------
820\ifev@l
821  \edef\TODAY{\uppercase{\today}}
822  \def\leftmark{\@journal\@titletext}\def\rightmark{\titl@line}
823  \def\theeventphe@d{\footnotesize\thepage \hfil \leftmark\hbox{}}
824  \def\theoddtphe@d{\hbox{}\footnotesize\leftmark \hfil \thepage}
825  \if@technote % make header a little bigger
826    \def\theevenhe@d{\small\thepage \hfil \leftmark\hbox{}}
827    \def\theoddhe@d{\hbox{}\small\rightmark \hfil \thepage}
828    \def\theeventphe@d{\small\thepage \hfil \leftmark\hbox{}}
829    \def\theoddtphe@d{\hbox{}\small\leftmark \hfil \thepage}
830  \fi
831  \ifintern@l
832    \def\theeventphe@d{\footnotesize\thepage \hfil \rightmark\hbox{}}
833    \def\theoddtphe@d{\hbox{}\footnotesize\rightmark \hfil \thepage}
834    \def\rightmark{\vbox to 0pt{\vss\hbox{\internalmsg} \hbox{\sh@rttitle}}}
835    \def\leftmark{\vbox to 0pt{\vss\hbox{\internalmsg}
836	\hbox{\phantom{\internalmsg}\llap{\sh@rttitle}}}}
837  \fi
838  \ifprepr@nt
839    \def\leftmark{\submittedmsg\ \@journal\@titletext, \TODAY}
840  \fi
841  \ifinpr@ss
842    \def\leftmark{\acceptedmsg\ \@journal\@titletext, \inpressmsg}
843  \fi
844  \ifrepr@nt
845    % reset page size on second and following pages b/c no copyright info
846    \let\oldshipout\shipout
847    \gdef\shipout{\global\textheight 243.5mm\oldshipout}
848    \def\theeventpf@@t{\footnotesize\hfil\@ieeecopyright\hfil}
849    \def\theoddtpf@@t{\footnotesize\hfil\@ieeecopyright\hfil}
850    \def\leftmark{\reprintmsg\ \@journal\@titletext}
851  \fi
852\fi
853
854%% Defines the command for putting the header. footernote{TEXT} is the same
855%% as markboth{TEXT}{TEXT}. Here for compatibility with other style files.
856\def\markboth#1#2{\def\leftmark{#1}\def\rightmark{#2}}
857\def\footernote#1{\markboth{#1}{#1}}
858
859% **************************************************************************
860% *****   Citation/Bibliography Definitions   ******************************
861% **************************************************************************
862%% separate citations with "], ["
863\def\@citex[#1]#2{\if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi
864\def\@citea{}\@cite{\@for\@citeb:=#2\do {\@citea\def\@citea{],
865[}\@ifundefined {b@\@citeb}{{\bf ?}\@warning {Citation `\@citeb' on
866page \thepage \space undefined}}%
867{\csname b@\@citeb\endcsname}}}{#1}}
868
869\def\@cite#1#2{[{#1\if@tempswa, #2\fi}]}
870
871%% Allow short (name-less) citations, when used in conjunction with a
872%% bibliography style that creates labels like \citename{<names>, }<year>
873\let\@internalcite\cite
874\def\cite{\def\citename##1{##1}\@internalcite}
875\def\shortcite{\def\citename##1{}\@internalcite}
876\def\@biblabel#1{\def\citename##1{##1}[#1]\hfill}
877
878\def\thebibliography#1{\section*{\refname}\footnotesize\list
879    {\hss[\arabic{enumi}]}{\settowidth\labelwidth{[#1]}\leftmargin\labelwidth
880    \advance\leftmargin\labelsep \itemsep 0pt plus .5pt
881    \usecounter{enumi}}
882    \def\newblock{\hskip .11em plus .33em minus .07em}
883    \sloppy\clubpenalty4000\widowpenalty4000
884    \sfcode`\.=1000\relax
885    \ifev@l\else\normalsize\fi %added by GLP
886}
887\let\endthebibliography=\endlist
888
889% **************************************************************************
890% *****   Appendix/Appendices Definitions   ********************************
891% **************************************************************************
892\newcounter{numappendices}\setcounter{numappendices}{0}
893\newif\ifappendix \appendixfalse
894%% appendix command for one single appendix
895\def\appendix{\par
896    \appendixtrue
897    \typeout{appendices: \arabic{numappendices}}
898    \setcounter{section}{0}\setcounter{subsection}{0}
899    \gdef\thesection{\Alph{section}}
900    \ifnum \value{numappendices}>1
901       \section*{\appendicesname}
902    \else
903       \section*{\appendixname}
904    \fi
905    \setcounter{numappendices}{0}
906}
907%% appendices command for multiple appendicies
908\def\appendices{\par
909    \appendixtrue
910    \typeout{appendices: \arabic{numappendices}}
911    \setcounter{section}{0}\setcounter{subsection}{0}
912    \gdef\thesection{\Alph{section}} \section*{\appendicesname}
913    \setcounter{numappendices}{0}
914}
915\AtEndDocument{\if@filesw\immediate\write\@auxout{\string\setcounter{numappendices}{\arabic{numappendices}}}\fi}
916
917% **************************************************************************
918% *****   Title Definitions   **********************************************
919% **************************************************************************
920\def\titl@line{\sh@rttitle}	%for the header at the top of the page.
921
922\def\@title{\typeout{ieee: Warning! No \noexpand\title given!}}
923\def\title{\@ifnextchar [{\titlea}{\titleb}}%]
924
925\def\set@title#1{\gdef\@title{#1}\global\def\set@title##1{}}
926\def\setsh@rttitle#1{\gdef\sh@rttitle{#1}\global\def\setsh@rttitle##1{}}
927\def\titlea[#1]#2{\set@title{#2}\setsh@rttitle{\uppercase{#1}}}
928\def\titleb#1{\set@title{#1}\setsh@rttitle{\uppercase{#1}}}
929
930\def\authorinfo#1{\let\\\relax\thanks{#1}}
931
932\ifev@l
933  \if@technote
934    \def\member#1{}
935  \else
936    \def\member#1{, \emph{#1, IEEE}}
937  \fi
938\else
939  \def\member#1{}
940\fi
941
942\def\and{\unskip%                  % \begin{tabular}
943\end{tabular}%
944\hskip 0pt plus 0.1pt%
945\begin{tabular}[t]{@{}c@{}}\ }%
946
947\def\@author{\typeout{ieee: Warning! No \noexpand\author given!}}
948\def\author{\@ifnextchar [{\authora}{\authorb}}%]
949\def\set@author#1{\gdef\@author{#1}\global\def\set@author##1{}}
950\def\settitl@line#1{\gdef\titl@line{#1}\global\def\settitl@line##1{}}
951\def\authora[#1]#2{\set@author{#2}\if@non\else\settitl@line{#1: \sh@rttitle}\fi}
952\def\authorb#1{\set@author{#1}}
953
954\def\date#1{\def\today{#1}\edef\TODAY{\uppercase{\today}}}
955
956\long\def\maketitle{%
957  \begingroup
958    \let\@thanks\@empty
959    \renewcommand\thefootnote{} % the \thanks{} mark type is empty
960    \iftitlep@ge\begin{titlepage}\@maketitlepage\@thanks\end{titlepage}%
961	\let\@thanks\@empty\fi
962    \thispagestyle{titlepagestyle}
963    \if@twocolumn
964      \if@technote
965         %\if@twoside\newpage\cleardoublepage\else\newpage\fi%
966         \newpage\global\@topnum\z@
967         \ifrepr@nt
968           \ifx\@loginfo\undefined\typeout{ieee: Warning! No \noexpand\loginfo
969           given!}\else\let\\\relax\thanks{\@loginfo}\fi%
970         \fi
971         \@maketitle
972      \else
973        \ifnum \col@number=\@ne
974          \ifrepr@nt
975            \ifx\@loginfo\undefined\typeout{ieee: Warning! No \noexpand\loginfo
976	    given!}\else\let\\\relax\thanks{\@loginfo}\fi%
977         \fi
978         \@maketitle
979        \else \twocolumn[%
980          \ifrepr@nt%
981            \ifx\@loginfo\undefined\typeout{ieee: Warning! No \noexpand\loginfo%
982	    given!}\else\let\\\relax\thanks{\@loginfo}\fi%
983         \fi%
984         \@maketitle]%
985        \fi
986      \fi
987    \else
988      \newpage
989      \global\@topnum\z@   % Prevents figures from going at top of page.
990      \ifrepr@nt
991        \ifx\@loginfo\undefined\typeout{ieee: Warning! No \noexpand\loginfo
992        given!}\else\let\\\relax\thanks{\@loginfo}\fi
993      \fi
994      \@maketitle
995    \fi
996    \thispagestyle{titlepagestyle}%
997    \@thanks
998  \endgroup
999  \setcounter{footnote}{0}%
1000  \global\let\thanks\relax \global\let\maketitle\relax
1001  \global\let\@maketitle\relax \global\let\@thanks\@empty
1002  \global\let\@author\@empty \global\let\@date\@empty
1003  \global\let\@title\@empty \global\let\title\relax
1004  \global\let\author\relax \global\let\date\relax
1005  \global\let\and\relax
1006}
1007
1008\long\def\@maketitle{\unskip\newpage%
1009    \begin{center}\blsone
1010    \let \footnote \thanks
1011    \if@technote
1012      {\bfseries\@title\par}\if@non\else\vskip 1.3em{\lineskip .5em
1013	\noindent\begin{tabular}[t]{@{}c@{}}\@author\end{tabular}}\fi\par
1014    \else\unskip
1015      \noindent{\Huge\@title\par}%
1016      \if@non\else\vskip1.0em%
1017        \noindent{\large\lineskip .5em%
1018        \begin{tabular}[t]{@{}c@{}}\@author\end{tabular}}%
1019      \fi\par%
1020      \if@nvited\vskip1.0em\noindent\emph{\large(Invited Paper)}\par\fi
1021    \fi
1022    \ifrepr@nt
1023      \ifx\@lognumber\undefined\typeout{ieee: Warning! No
1024      \noexpand\pubitemident or \noexpand\lognumber
1025      given!}\else\thanks{\@lognumber}\fi%
1026    \fi
1027    \end{center}\par\vskip 0.5em}%
1028
1029\long\def\@maketitlepage{\newpage%
1030    \mbox{}\vfil
1031    \begin{center}\blsone
1032    \let \footnote \thanks
1033    \if@technote
1034      {\bfseries\@title\par}\vskip 1.3em{\lineskip .5em
1035        \noindent\begin{tabular}[t]{@{}c@{}}\@author\end{tabular}\par}
1036    \else
1037      \vskip0.2em{\Huge\@title\par}\vskip1.0em%
1038      \iftitlep@ge\vfil\fi
1039      \noindent{\large\lineskip .5em%
1040      \begin{tabular}[t]{@{}c@{}}\@author\end{tabular}\par}%
1041    \fi
1042    \end{center}\par\vfil\mbox{}}
1043
1044\def\@journal{\typeout{ieee: Warning! No \noexpand\journal given!}}
1045\def\journal#1{\def\@journal{\uppercase{#1}}}
1046
1047\def\@ieeecopyright{\typeout{ieee: Warning! No \noexpand\ieeecopyright given!}}
1048\def\ieeecopyright#1{\def\@ieeecopyright{#1}}
1049
1050\def\lognumber#1{\def\@lognumber{IEEE Log Number #1.}}
1051\def\pubitemident#1{\def\@lognumber{Publisher Item Identifier #1.}}
1052\long\def\loginfo#1{\long\def\@loginfo{\hbox{\vrule height 3ex width \z@}#1}}
1053
1054\def\sh@rttitle{}
1055\def\@titletext{}
1056\def\titletext#1{\def\@titletext{#1}}
1057
1058\def\firstpage#1{\setcounter{page}{#1}}
1059
1060% **************************************************************************
1061% *****   Abstract Definition   ********************************************
1062% **************************************************************************
1063\def\abstract{%
1064  \if@twocolumn
1065    \small\bfseries{\itshape\abstractname\/---}%
1066  \else
1067    \begin{center}\vspace{-0.8em}\small\bf\abstractname\end{center}
1068    \quotation\small
1069  \fi\ignorespaces}
1070\def\endabstract{\vspace{0.6em}\par\if@twocolumn\else\endquotation\fi
1071  \normalsize\normalstyle}
1072
1073% **************************************************************************
1074% *****   Keywords Definition   ********************************************
1075% **************************************************************************
1076\def\keywords{\vspace{-.3em}
1077  \if@twocolumn
1078    \small\bfseries{\itshape\keywordsname\/---}%
1079  \else
1080    \begin{center}\small\bf\keywordsname\end{center}\quotation\small
1081  \fi\ignorespaces}
1082\def\endkeywords{\vspace{0.6em}\par\if@twocolumn\else\endquotation\fi
1083    \normalsize\normalstyle}
1084
1085% **************************************************************************
1086% *****   Fix Section Numbering   ******************************************
1087% **************************************************************************
1088\gdef\@punct{.\ \ }  % Punctuation after run-in section heading
1089\def\@sect#1#2#3#4#5#6[#7]#8{%
1090  \ifnum #2>\c@secnumdepth
1091     \def\@svsec\@empty
1092  \else
1093     \refstepcounter{#1}%
1094     \protected@edef\@svsec{%
1095     %\ifnum #2=1\Roman{#1}.\fi\ifnum #2=2\Alph{#1}.\fi
1096     \ifnum #2=1\thesection.\fi
1097     \ifnum #2=2\thesubsection.\fi
1098     \ifnum #2>2{\csname the#1dis\endcsname}\if@technote.\fi\fi \hskip .5em}
1099     \ifnum #2=1\ifappendix\stepcounter{numappendices}\fi\fi
1100  \fi
1101  \@tempskipa #5\relax
1102  \ifdim \@tempskipa>\z@
1103     \begingroup #6\relax
1104       \@hangfrom{\hskip #3\relax\@svsec}{\interlinepenalty \@M #8\par}
1105     \endgroup
1106     \csname #1mark\endcsname{#7}
1107     \addcontentsline{toc}{#1}{\ifnum #2>\c@secnumdepth\else
1108               \protect\numberline{\csname the#1\endcsname}\fi#7}
1109  \else
1110     \def\@svsechd{#6\hskip #3\@svsec #8\@punct\csname #1mark\endcsname{#7}
1111     \addcontentsline{toc}{#1}{\ifnum #2>\c@secnumdepth \else
1112               \protect\numberline{\csname the#1\endcsname}\fi#7}}
1113  \fi
1114  \@xsect{#5}}
1115
1116\def\@ssect#1#2#3#4#5{\@tempskipa #3\relax
1117  \ifdim \@tempskipa>\z@
1118     \begingroup #4\@hangfrom{\hskip #1}{\interlinepenalty \@M #5\par}\endgroup
1119  \else \def\@svsechd{#4\hskip #1\relax #5\@punct}\fi
1120  \@xsect{#3}}
1121
1122% **************************************************************************
1123% *****   Section Definitions   ********************************************
1124% **************************************************************************
1125\def\section{\@startsection{section}{1}{\z@}{2.0ex plus .5ex
1126     minus .2ex}{1.0ex plus .2ex}{\centering\scshape}}
1127\def\subsection{\@startsection{subsection}{2}{\z@}{2.0ex plus .5ex
1128     minus .2ex}{1.0ex plus .2ex}{\itshape}}
1129\if@technote
1130  \def\subsubsection{\@startsection{subsubsection}{3}{\z@}{2.0ex plus .5ex
1131     minus .1ex}{0pt}{\itshape}}
1132\else
1133  \def\subsubsection{\@startsection{subsubsection}{3}{\z@}{2.0ex plus .5ex
1134     minus .2ex}{1.0ex plus .2ex}{\normalstyle}}
1135  \def\paragraph{\@startsection{paragraph}{4}{\z@}{1.0ex plus .5ex
1136     minus .2ex}{0ex}{\normalstyle}}
1137\fi
1138
1139% **************************************************************************
1140% *****   Special Environment Definitions   ********************************
1141% **************************************************************************
1142\def\QED{\mbox{\rule[0pt]{1.5ex}{1.5ex}}}
1143\def\proof{\noindent\hspace{1em}{\it Proof: }}
1144\def\endproof{\hspace*{\fill}~\QED\par\endtrivlist\unskip}
1145\def\@begintheorem#1#2{\tmpitemindent\itemindent\topsep 0pt\normalstyle\trivlist
1146    \item[\hskip \labelsep{\indent\it #1\ #2:}]\itemindent\tmpitemindent}
1147\def\@opargbegintheorem#1#2#3{\tmpitemindent\itemindent\topsep 0pt\normalstyle \trivlist
1148    \item[\hskip\labelsep{\indent\it #1\ #2\ \normalstyle(#3)}]\itemindent\tmpitemindent}
1149\def\@endtheorem{\endtrivlist\unskip}
1150
1151% **************************************************************************
1152% *****   Special Environment Definitions   ********************************
1153% **************************************************************************
1154\if@twoside\else\raggedbottom\fi
1155
1156%% Definition for Big letter at the beginning of a paragraph
1157%%
1158\def\PARstart#1#2 {\begingroup\def\par{\endgraf\endgroup\lineskiplimit=0pt}
1159    \setbox2=\hbox{\uppercase{#2} }\newdimen\tmpht \tmpht \ht2
1160    \advance\tmpht by \baselineskip\font\hhuge=cmr10 at \tmpht
1161    \setbox1=\hbox{{\hhuge #1}}
1162    \count7=\tmpht \count8=\ht1\divide\count8 by 1000 \divide\count7 by\count8
1163    \tmpht=.001\tmpht\multiply\tmpht by \count7\font\hhuge=cmr10 at \tmpht
1164    \setbox1=\hbox{{\hhuge #1}} \noindent \hangindent1.05\wd1
1165    \hangafter=-2 {\hskip-\hangindent \lower1\ht1\hbox{\raise1.0\ht2\copy1}%
1166    \kern-0\wd1}\copy2\lineskiplimit=-1000pt}
1167
1168\def\PARstartCal#1#2 {\begingroup\def\par{\endgraf\endgroup\lineskiplimit=0pt}
1169    \setbox2=\hbox{\uppercase{#2} }\newdimen\tmpht \tmpht \ht2
1170    \advance\tmpht by \baselineskip\font\hhuge=cmsy10 at \tmpht
1171    \setbox1=\hbox{{\hhuge #1\/}}
1172    \count7=\tmpht \count8=\ht1\divide\count8 by 1000 \divide\count7 by\count8
1173    \tmpht=.001\tmpht\multiply\tmpht by \count7\font\hhuge=cmsy10 at \tmpht
1174    \setbox1=\hbox{{\hhuge #1\/}} \noindent \hangindent1.05\wd1
1175    \hangafter=-2 {\hskip-\hangindent \lower1\ht1\hbox{\raise1.0\ht2\copy1}%
1176    \kern-0\wd1}\copy2\lineskiplimit=-1000pt}
1177
1178\def\PARstartLyX#1{\PARstart #1}
1179\def\PARstartCalLyX#1{\PARstartCal #1}
1180
1181\if@technote\def\PARstart#1#2{#1#2}\fi     % if technical note, disable it
1182\if@technote\def\PARstartCal#1#2{#1#2}\fi  % if technical note, disable it
1183\if@technote\def\PARstartLyX#1{#1}\fi      % if technical note, disable it
1184\if@technote\def\PARstartCalLyx#1{#1}\fi   % if technical note, disable it
1185
1186% **************************************************************************
1187% *****   Misc. Definitions   **********************************************
1188% **************************************************************************
1189%Restore single spacing
1190\newcommand{\blsone}{\renewcommand\baselinestretch{1}%
1191  \renewcommand\arraystretch{1.2}\setlength{\parindent}{\parindentsave}%
1192  \normalsize}
1193\newcommand{\capitem}[1]{{\hspace{0.2ex}(#1)}~}
1194\newcommand{\insdate}{}
1195
1196% **************************************************************************
1197% *****   MATH Definitions   ***********************************************
1198% **************************************************************************
1199\def\eqnarray{%
1200   \stepcounter{equation}%
1201   \def\@currentlabel{\p@equation\theequation}%
1202   \global\@eqnswtrue
1203   \m@th
1204   \global\@eqcnt\z@
1205   \tabskip\@centering
1206   \let\\\@eqncr
1207   $$\everycr{}\halign to\displaywidth\bgroup
1208       \hskip\@centering$\displaystyle\tabskip\z@skip{##}$\@eqnsel
1209      &\global\@eqcnt\@ne\hskip \eqnarr@ysep\hfil${##}$\hfil
1210      &\global\@eqcnt\tw@ \hskip \eqnarr@ysep
1211         $\displaystyle{##}$\hfil\tabskip\@centering
1212      &\global\@eqcnt\thr@@ \hb@xt@\z@\bgroup\hss##\egroup
1213         \tabskip\z@skip
1214      \cr
1215}
1216\def\endeqnarray{%
1217      \@@eqncr
1218      \egroup
1219      \global\advance\c@equation\m@ne
1220   $$\@ignoretrue
1221}
1222
1223% **************************************************************************
1224% *****   Biography Definitions   ******************************************
1225% **************************************************************************
1226% This is the main code for the biography environment of the IEEE
1227% transactions class. The previous biography code had some known
1228% problems which were difficult to fix. The crux of the issue was that
1229% the photo frame was overlaid by text when \baselinestretch>1 or when
1230% the biography consisted of multiple short paragraphs.
1231%
1232% The fix was done by extracting code from the excellent package:
1233% 'picinpar.sty' version 1.2a as of july 13, 1993
1234% by Friedhelm Sowa
1235%
1236% (At least most of) The bugs you find in this code were introduced
1237% unwittingly by myself.
1238%
1239%----------------
1240% Known problems:
1241%
1242%    - Don't use multiple blank lines to separate paragraphs. A single
1243%      blank line works well, but multiple blank lines will confuse
1244%      the code. This has something to do with the \def\par{\\\indent}
1245%      line, but I can't think of an appropriate fix. Similarly, make
1246%      sure the environment doesn't end with an extra blank line.
1247%    - Don't use \samepage
1248%    - Use \footnotemark within and \footnotetext outside the
1249%      window-environment instead of \footnote
1250%    - When using the epic-package load picinpar before epic
1251%      like \documentstyle[...,picinpar,epic]{...}
1252%
1253% Counts
1254\newcount\br \newcount\nb \newcount\tcdsav \newcount\tcl \newcount\tcd
1255\newcount\tcn \newcount\cumtcl
1256% Dimens
1257\newdimen\rtside \newdimen\hpic \newdimen\vpic \newdimen\strutilg
1258\newdimen\picwd \newdimen\topheight \newdimen\ilg \newdimen\lpic
1259\newdimen\lwindowsep \newdimen\rwindowsep	% VK 10 Feb 93
1260\lwindowsep0.5\baselineskip			% "
1261\rwindowsep0.5\baselineskip			% "
1262\newdimen\cumpar
1263% Tokens
1264\newtoks\twa \newtoks\la \newtoks\ra \newtoks\ha \newtoks\pictoc
1265% Boxes
1266\newbox\rawtext \newbox\holder \newbox\windowbox \newbox\wartext
1267\newbox\finaltext \newbox\aslice \newbox\bslice \newbox\wbox
1268\newbox\wstrutbox \newbox\picbox \newbox\waslice \newbox\wbslice
1269\newbox\fslice
1270 % Another strut
1271\def\wstrut{\relax\ifmmode\copy\wstrutbox\else\unhcopy\wstrutbox\fi}
1272%
1273
1274\def\getpic#1{\sbox{\@tempboxa}{\includegraphics{#1}}%
1275\newcount\tmpcta \tmpcta=\ht\@tempboxa%
1276\newcount\tmpctb \tmpctb=\wd\@tempboxa%
1277\divide\tmpctb by 100%
1278\divide\tmpcta by\tmpctb%
1279\ifnum\tmpcta>133%
1280\typeout{ieee: Biography picture `#1' too tall.}%
1281\frame{\hbox to 25mm{\hfil\resizebox{!}{32mm}{\usebox{\@tempboxa}}\hfil}}%
1282\else \ifnum\tmpcta<123%
1283\typeout{ieee: Biography picture `#1' too wide.}%
1284\frame{\vbox to 32mm{\vss\hbox{\resizebox{25mm}{!}{\usebox{\@tempboxa}}}\vss}}%
1285\else%
1286\resizebox{25mm}{32mm}{\usebox{\@tempboxa}}
1287\fi\fi}
1288
1289\long\def\biographyLyX#1{\if@non\else\begin{biography} #1\end{biography}\fi}
1290
1291\if@non
1292  \long\def\biography{}
1293\else
1294  \long\def\biography{\@ifnextchar [{\@biographyb}{\@biographya[{\unitlength
1295  1mm\hbox{\framebox(25,32){}}}]}}
1296\fi
1297
1298\long\def\@biographyb[#1]{\@biographya[\getpic{#1}]}
1299
1300\long\def\@biographya[#1]#2{\bgroup
1301\footnotesize\bigskip\bigskip\bigskip\parskip=0pt\par%
1302\rule{0pt}{35mm}\vspace*{-35mm}\par%   garantees correct page breaking
1303\begin{main@bio}[{#1}]%
1304\noindent{\bf #2}%
1305}
1306\def\endbiography{\if@non\else\end{main@bio}\egroup\fi}
1307
1308\long\def\main@bio[#1]{% #1 is the material for setting a graphic box
1309\vskip\parskip\everypar{}
1310\global\cumpar=0pt
1311\global\cumtcl=0
1312    \tcd=0
1313    \rtside=0pt
1314%    \hpic=\linewidth
1315    \twa={} \la={} \ra={} \ha={}
1316\setbox\wbox=\hbox{(}
1317\computeilg
1318\pictoc={#1}
1319\setbox\windowbox=\vbox{\hbox{#1}}
1320\picwd=\wd\windowbox
1321\hpic=\picwd
1322\vpic=\ht\windowbox\advance\vpic\dp\windowbox
1323\rtside=\linewidth\advance\rtside-\picwd
1324\setbox\picbox=\vbox{\hsize=\hpic\vbox to\vpic{\box\windowbox}}% \vfill}}%
1325
1326\vpic=\ht\picbox\advance\vpic\dp\picbox
1327\ifdim\rtside>0pt\advance\rtside-\rwindowsep\fi    % "
1328\global\br=\rtside
1329\ifnum\picwd=0
1330\ifdim\vpic>0pt\picwd=\hpic
1331\else\vpic=\ht\picbox\advance\vpic\dp\picbox
1332\fi
1333\fi
1334    \global\tcl=0 \lpic=0pt
1335    \loop\global\advance\tcl by 1 \lpic=\tcl\baselineskip
1336    \ifdim\lpic<\vpic\repeat
1337    \vpic=\lpic
1338    \global\cumtcl=\tcl
1339%
1340% Here we know exactly the number of indented lines and
1341% are able to generate the tokens for the \parshape list
1342%
1343    \ifnum\br>0\ra={ 0pt \rtside}\fi
1344    \ifnum\tcd>0\ha={ 0pt \linewidth}\fi
1345    \ifnum\tcl<1\global\tcl=1\fi
1346    \createparshapespec
1347    \tcd=0                        % restore the lintel
1348    \global\tcdsav=0
1349%
1350% This is a very tricky part of the package. Some day there
1351% will exist a detailed documentation.
1352%
1353\def\par{\\\indent}
1354%
1355% This is where we start to pick up the paragraph(s)
1356%
1357    \setbox\rawtext=\vbox\bgroup\unvbox\rawtext\unskip
1358    \clubpenalty=0\widowpenalty=0
1359    \ifnum\brokenpenalty<\maxdimen\else\brokenpenalty=9999\fi
1360    \tolerance=1000
1361    \parshape=\tcn \the\twa }
1362%
1363\def\endmain@bio{%
1364    %\par
1365    \global\tcd=\tcdsav
1366    \egroup\vskip\parskip\parshape=0 % reset parshape; end \box\rawtext
1367    \vbadness=10000
1368    \splittopskip=0pt
1369%
1370% Now we build the boxes beside the window
1371%
1372\global\topheight=\tcl\baselineskip
1373\ifnum\br>0\setbox\holder=\vsplit\rawtext to\topheight\fi
1374\tcn=\tcl \nb=0
1375\ifnum\br>0\nb=\tcn\fi
1376%
1377% text on the right side
1378%
1379\ifnum\nb>0
1380    \loop\advance\nb -1
1381    \setbox\bslice=\vsplit\holder to\baselineskip
1382    \prune\bslice\rtside
1383    \setbox\wbslice=\vbox{\unvbox\wbslice\hbox
1384    to\rtside{\box\bslice\hfil}}
1385    \ifdim\ht\holder>0pt\repeat
1386\fi
1387%GLP add fix to make sure bio starts at top of picture
1388\setbox\wbslice=\vbox to\topheight{\unvbox\wbslice\vfill\vss}
1389%
1390% fixing the dimensions of the window part
1391%
1392\topheight=\ht\wbslice
1393%
1394% ship out the window material to the main vertical list
1395%
1396\setbox\windowbox=\vbox{\hbox to\linewidth{%
1397\vbox to\topheight{\hrule width\picwd height0pt depth0pt\vskip0pt%
1398\vfill\unvbox\picbox%
1399\ifnum\picwd>0\vfill\fi%
1400\vss}\ifnum\br>0\hfill\vbox{\box\wbslice}\fi}}%
1401%
1402\unvbox\windowbox%
1403\loop% lines below picture....
1404 \setbox\bslice=\vsplit\rawtext to\baselineskip
1405 \prune\bslice\linewidth
1406 \setbox\wbslice=\vbox{\hbox to\linewidth{\box\bslice\hfil}}
1407 \unvbox\wbslice
1408 \ifdim\ht\rawtext>0pt
1409\repeat
1410%GLP
1411%\ifnum\nb>0\topheight=\nb\baselineskip %\advance\topheight by\ilg
1412%\vspace*{\topheight}
1413%\fi
1414}% FINITO
1415%
1416% What else do we need?
1417%
1418\def\prune#1#2{
1419% take a \vbox containing a single \hbox,
1420% \unvbox it, and cancel the \lastskip
1421% put in a \hbox of width #2
1422 \unvbox#1 \setbox#1=\lastbox % \box#1 now is an \hbox
1423 \ifdim\ht#1=\parskip
1424 \setbox#1=\hbox to#2{\vrule height\parskip depth0pt width0pt\hfill}
1425 \else\ifdim\ht#1=0pt\relax
1426 \else\setbox#1=\hbox to#2{\wstrut\unhbox#1\unskip}\fi\fi}
1427%
1428% Here the token \twa is generated.
1429% It's not so difficult as it looks like.
1430%
1431\def\createparshapespec{%
1432\global\tcn=0
1433\ifnum\br>0\global\tcn=\tcl\fi
1434\nb=0
1435\ifnum\br>0\nb=\tcn\fi
1436\global\advance\tcn by\tcd \global\advance\tcn by1
1437\ifnum\tcd>0
1438\loop\twa=\expandafter{\the\twa\the\ha}\advance\tcd -1
1439\ifnum\tcd>0\repeat
1440\fi
1441\ifnum\nb>0
1442\loop\twa=\expandafter{\the\twa\the\ra}\advance\nb -1
1443\ifnum\nb>0\repeat
1444\fi
1445\global\twa=\expandafter{\the\twa 0pt \the\linewidth}}
1446%
1447\def\computeilg{% compute the interline glue
1448 \tcl=0\ilg=0pt\strutilg=0pt
1449 \loop\setbox\wbox=\hbox{\char\tcl}
1450 \ifdim\ht\wbox>\ilg\ilg=\ht\wbox\fi
1451 \ifdim\dp\wbox>\strutilg\strutilg=\dp\wbox\fi
1452 \advance\tcl by 1
1453 \ifnum\tcl<128\repeat
1454 \ht\wbox=\ilg
1455 \dp\wbox=\strutilg
1456 \strutilg=\ht\wbox %\advance\strutilg by\ilg
1457 \ifdim\strutilg>\baselineskip
1458  \typeout{character with height greater baselineskip found in font}
1459  \typeout{baselineskip changed to 1.5 of that height!}
1460  \baselineskip=1.5\strutilg
1461 \fi
1462 \global\ilg=\baselineskip
1463 \global\advance\ilg-\ht\wbox \global\advance\ilg-\dp\wbox
1464 \strutilg=\ht\wbox \advance\strutilg by\ilg
1465 \setbox\wstrutbox=\hbox{\vrule height\strutilg depth\dp\wbox width0pt}}
1466
1467
1468% the following code from version.sty by Stephen Bellantoni 1990, loosely
1469% based on "annotation.sty" by Tom Hofmann. Used to exclude "biography" from
1470% anonymous mode.
1471\begingroup
1472\catcode`@=11\relax%
1473\catcode`{=12\relax\catcode`}=12\relax%
1474\catcode`(=1\relax \catcode`)=2\relax%
1475\gdef\glpinclude#1(%
1476  \expandafter\gdef\csname #1\endcsname%
1477    ()%
1478  \expandafter\gdef\csname end#1\endcsname%
1479    ()%
1480)%
1481\gdef\glpexclude#1(%
1482  \expandafter\gdef\csname #1\endcsname%
1483    (\@bsphack\catcode`{=12\relax\catcode`}=12\relax\csname #1@NOTE\endcsname)%
1484  \long\expandafter\gdef\csname #1@NOTE\endcsname ##1\end{#1}%
1485    (\csname #1END@NOTE\endcsname)%
1486  \expandafter\gdef\csname #1END@NOTE\endcsname%
1487    (\@esphack\end(#1))%
1488)%
1489\endgroup
1490
1491%-------
1492\def\@confplacedate{\typeout{ieee: Warning! No \noexpand\confplacedate set!}
1493\bfseries `confplacedate' needs to be set. For example, to: Stanford, CA, USA,
1494September 29--30, 1991}
1495\def\confplacedate#1{\def\@confplacedate{#1}}
1496
1497%%%%%%%%%%%%%%%%%%%%%%%%% End of ieee.cls  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1498