%Paper: hep-lat/9207007
%From: HANSMANN@VAXMOM.SCRI.FSU.EDU
%Date: Tue, 7 Jul 1992 21:32:24 -0400 (EDT)

% FSU-SCRI-92C-87
%NEEDS VANILLA.STY WHICH IS INCLUDED IN THIS FILE
\let\mycases=\cases
\input vanilla.sty
\font\tenbf=cmbx10
\font\tenrm=cmr10
\font\tenit=cmti10
\font\ninebf=cmbx9
\font\ninerm=cmr9
\font\nineit=cmti9
\font\eightbf=cmbx8
\font\eightrm=cmr8
\font\eightit=cmti8
\font\sevenrm=cmr7
\TagsOnRight
\hsize=5.0truein
\vsize=7.7truein
\parindent=15pt
\nopagenumbers
\baselineskip=10pt
\centerline{\tenbf RECENT RESULTS OF MULTIMAGNETICAL SIMULATIONS}
\centerline{\tenbf OF THE ISING MODEL\footnote"$*$"
{\eightrm\baselineskip=10pt To appear in the proceedings of the Workshop
on ~~Dynamics of First Order Phase Transitions'',J{\"u}lich, June 1-3,
1992, to be published in Int. J. Mod. Phys. C}}
\vglue 24pt
\centerline{\eightrm U. HANSMANN, B.A. BERG}
\baselineskip=12pt
\centerline{\eightit
 Department of Physics and  Supercomputer Computations Research Institute}
\baselineskip=10pt
\centerline{\eightit
 The Florida State University, Tallahassee,  FL 32306, USA}
\vglue 10pt
\centerline{\eightrm and}
\vglue 10pt
\centerline{\eightrm T. NEUHAUS}
\baselineskip=12pt
\centerline{\eightit
 Fakult\"at f\"ur Physik, Universit\"at Bielefeld}
\baselineskip=10pt
\centerline{\eightit D-W-4800 Bielefeld, FRG}
\vglue 16pt
\centerline{\eightrm ABSTRACT}
{\rightskip=1.5pc
 \leftskip=1.5pc
 \eightrm\baselineskip=10pt\noindent
To investigate order-order interfaces, we perform multimagnetical Monte
Carlo simulations of the $2D$ and $3D$ Ising model.
Stringent
tests of the numerical methods are performed by reproducing with high
precision exact $2D$ results. In the physically more interesting
$3D$ case we estimate the amplitude $F^s_0$ of the critical interfacial
tension.
\vglue 5pt
\noindent
{\eightit Keywords}\/: Monte Carlo Simulations; Ising model;
                       Interfaces; Surface tension.
\vglue 12pt}
\baselineskip=13pt
\line{\tenbf 1. Introduction \hfill}
\vglue 5pt
Since long,  there has been
continuous interest in the properties of interfaces in
Ising models. Past numerical studies were, however, hampered by a problem
of principle. The surface tension per unit area $F^s$ between different
states has a finite value. Thus in the canonical ensemble, where  one
samples with the Boltzmann weights ${\cal{P}}^B \propto
e^{-\beta H}$, configurations containing interfaces with an area $A$ are
supressed by exponentiall factors $e^{-AF^s}$. Corresponding there is an
exponentially fast increase of the tunneling time between pure phases when
the system is simulated with {\it local} Monte Carlo (MC) algorithms.
Recently this difficulty was overcome by
the proposal to perform the MC simulation for a multimagnetical ensemble,$^1$
 a natural extension of the multicanonical ensemble
introduced in (Ref.~2). The original canonical ensemble
is then obtained by re-weighting,$^{3,4}$
while the slowing down becomes reduced to a power law close to $\sim V^2$.

For our models, spins $s_i = \pm 1$ are defined on  sites
of a square lattice of volume $V = L^D$ with periodic boundary conditions
and the symbol $<i,j>$ is used to denote nearest neighbors. The partition
function of the Ising model is given by
$$
Z\ =\ \sum_{\text{configurations}} \exp ( - \beta H) . \tag 1.1
$$
The Ising Hamiltonian $H$
$$
H\ =\ H_I\ -\ h M ~~~\text{ with}~~~ H_I = - \sum_{<i,j>} s_i s_j
{}~~\text{ and}~~ M = \sum_i s_i \tag 1.2
$$
contains the nearest neighbor interaction term $H_I$ and a term
which couples the external magnetic field $h$ to the magnetization.
In our case is $h = 0$.
In the broken region $\beta > \beta_c$ the magnetic probability
densities $P_L (M)$ are double peaked and  $P_L (M) = P_L (-M)$, as the model
is globally $Z(2)$ symmetric.  The positions of
the maxima are $\pm M^{\max}_L$ and the
distribution takes its minimum at $P_L^{\min} = P_L (0)$.

The surface tension $F^s$ is the free energy per unit
area of the interface between coexisting phases. Here we consider
order-order interfaces in the broken region $\beta > \beta_c$.
The interface tension $F^s$ can be defined from the finite size scaling
(FSS) of the ratio $P_L^{\min} / P_L^{\max}$, which for large $L$ takes
the form$^{5,6}$
$$
{P^{\min}_L \over P^{\max}_L}\ =\
\text{const}\ L^p\ \exp \left[ -2 L^{D-1} F^s (1+ O(L^{-1})) \right]
\tag 1.3
$$
on lattices with periodic boundary conditions. Physically this
definition assumes that at values of the mean magnetization $M = 0$ a
rectangular domain, enclosed by two interfaces and spanning the lattice
via the periodic boundary condition, is formed.
The finite lattice interfacial tension is then defined as
$$
F^s_L\ =\ {1\over 2 L^{D-1}}\ln {P^{\min}_L \over P^{\max}_L} , \tag 1.4
$$
and $F^s = \lim_{L\to\infty} F^s_L$.
So the final estimate of $F^s$ requires a FSS extrapolation towards
$L=\infty$. From equation ``(1.3)'' one gets the fit:
$$
F^s_L\ =\ F^s + {a \over L^{D-1}} + {b\ \ln (L) \over L^{D-1}} . \tag
1.5
$$
\vglue 12pt
\line{\tenbf 2. Multimagnetical Monte Carlo\hfill}
\vglue 5pt
To get a representative sample of interfaces
one has to generate many configurations with $M=0$ on large lattices.
But, in a canonical simulation this is almost impossible.
As an example see figure 1. The logarithmic
scale displays that more than twenty orders of magnitude are involved, i.\
e.\ $P^{\min}_L/ P^{\max}_L < 10^{-20}$ for the largest lattice with
$L =100$. The standard MC algorithm would only sample configurations
corresponding to $P^{\min}_{100}$ if one could generate of the order $O
(10^{20})$ or more statistical independent configurations.
\hfill \break
\midinsert\vskip 8cm
\centerline{\eightrm Fig. 1.\,\,\, Boltzmann probability distribution $P_L (M)$
 of the magnetization for different lattice sizes.}
\endinsert

 Here we overcome this
difficulty by sampling configurations with a multimagnetical weight factor
$$
{\cal P}^{mm}_L (M)\ = \exp ( \alpha_L (M) + h_L (M) \beta M - \beta H_I )
 ~~~\text{for}~~~ -V \le M \le V \tag 2.1
$$
instead of sampling with the Boltzmann factor ${\cal P}^B = \exp (-\beta H_I)$.
The function $h_L (M)$ defines an $M$-dependent effective external magnetic
field such that the resulting multimagnetical probability density is flat
for $-M_L^{\max}\le M\le M_L^{\max}$.
We chose the ansatz:
$$
h_L (M)\ =\ \mycases{0 ~~\text{for}~ M\le -M^{\max}_L ~\text{and}~ M\ge
M^{\max} ;
\cr
2^{-1}{\beta}^{-1} \left[ \log P_L (M) - \log P_L (M+2) \right]
                                     ~\text{elsewhere}. } \tag 2.2
$$
The function $\alpha_L (M)$ is then defined by
the recursion relation
$$
\alpha_L (M+2)\ =\  \alpha_L (M) + \beta \left[ h_L(M)-h_L(M+2) \right]\
(M+2),
\ \alpha_L (-M_L^{\max}) = 0 . \tag 2.3
$$
Once $h_L (M)$ is given, $\alpha_L (M)$ follows automatically.
With this choice the resulting multimagnetical
probability density will be approximately flat:
$$
P_L^{mm} (M)\ =\ n(M)\ {\cal P}_L^{mm} (M)\ \approx\ \text{const}. \tag
2.4
$$
Here $n(M)$ is the magnetical density of of states (for fixed temperature
$\beta^{-1}$). The standard Markov process is well-suited to generate
configurations which are in equilibrium with respect to this
multimagnetical distribution. The canonical probability density
$P_L (M)$ is obtained from $P_L^{mm} (M)$ by re-weighting$^{3,4}$:
$$
P_L (M)\ =\ c\ P_L^{mm} (M) \exp ( - \alpha_L (M) - h_L (M) \beta M ).
\tag 2.5
$$
The constant $c$ is obtained by imposing the appropriate
normalization on $P_L (M)$.
\midinsert\vskip 8cm
{\eightrm Fig. 2.\,\,\,
Tunneling times versus lattice size. The upper data are for the
standard MC and the broken line extrapolates by means of a fit into the
region where no data exist. The lower data points are obtained with our
multimagnetical MC.}
\endinsert
 For small systems
$P_L (M)$ can  be calculated by performing standard MC
simulations, and $h_L (M)$ follows directly from  ``Eq. 2.2''.
On larger systems we get $h_L (M)$ by making
every time a FSS prediction of $ P_L (M)$ from the already controlled
smaller systems.
\hfill \break

To compare the efficiency of our method with standard MC we measured for
the $2D$ Ising model with $\beta = 0.5$ the tunneling time $\tau^t_L$.
As before$^{1,2}$ we define the tunneling time $\tau^t_L$ as
the average number of updates needed to get from a configuration
with $M=M^{\min}=-M^{\max}$ to a configuration with $M = M_L^{\max}$
and back. In figure 2 we display on a log-log scale both the tunneling
times for the multimagnetical MC and the heatbath algorithm. While there is
an exponentiall fast increase of $\tau^t_L$ for the heatbath algorithm, the
increase of $\tau^t_L$ is for the multimagnetic MC of the type of a power
law divergence. The ratio
$$
R= \tau^t_L (\text{heatbath})/ \tau^t_L (\text{multicanonical}) \tag 2.6
$$
is a direct measure for the improvement due to our method. $R$ increases
from a factor 4 for the smallest lattice ($L=2$) up to $R \approx 450$ for
$L =16$, the largest lattice size  where it was with our statistics possible to
get data from standard
MC. The extrapolation to $L=100$ yields $R \approx 6.1 \times 10^{15}$,
i.e. an improvement by more than fifteen orders of magnitude.

\vglue 12pt
\line{\tenbf 3. Numerical Results \hfill}
\vglue 5pt
\midinsert\vskip 8cm
\centerline{\eightrm Fig. 3.\,\,\,
$2D$ effective tensions.  The lines are our fits}
\endinsert
For the two dimensional Ising model we performed multimagnetical
simulations at the critical temperature
$\beta = {\beta}_c = \ln (1+\sqrt{2})/2 = 0.44068...$, at $\beta = 0.47$
and 0.5 with at least $4 \times 10^6$ sweeps per lattice size.
 In each run additional $200,000$ initial sweeps without measurements
were performed for reaching equilibrium with respect to the multimagnetical
distribution. We compared our $L=\infty$ estimates of the tension with
the exact values which follow
from Onsager's equation$^7$
$$
F^s\ =\  2\beta - \ln \left[ {1+e^{-2\beta} \over 1-e^{-2\beta}} \right],
{}~~~(\beta \ge \beta_c) .
\tag 3.1
$$
Both are collected in table 1.
Good agreement is found in all cases.

\smallskip
\centerline{\eightrm Table 1. Surface tensions $F^s$ for the $2D$ Ising
 model}
$$\vbox{\eightrm\halign{\hfil#\quad\hfil &#\hfil\quad
 &\hfil#\hfil\cr
\multispan3\hrulefill\cr
\hfil$\beta$\hfil &\hfil$ F^s_{\text{mm}}$\hfil &\hfil $F^s_{\text{exact}}$
\hfil \cr
\multispan3\hrulefill\cr
$\beta_{c}$ & 0.00033(34) & 0 \hfil \cr
\hfil 0.47  \hfil& 0.11526(80) & 0.11492... \hfil \cr
\hfil 0.5 \hfil & 0.2281(5)\hfil & 0.22806... \hfil \cr
\multispan3\hrulefill\cr}}$$
\medskip\noindent

\midinsert\vskip 8cm
\centerline{\eightrm Fig. 4.\,\,\,
$3D$ effective tensions.  The lines are our fits.}
\endinsert
In the case of the $3D$ Ising model
we performed simulations at $\beta = 0.227$, 0.232 and 0.2439 with at least
$4 \times 10^6$ sweeps for every lattice size.
As in the $2D$ case 200,000
additional, initial sweeps were performed in each run for reaching
equilibrium.
In figure 4 we display the effective tensions as functions of the
lattice size together with asymptotic fits. We notice that finite size
effects play a more important role in three dimensions than two and are
more complicated, too. The non-monotone behaviour shows that it is
necessary to use large enough lattices to estimate the interface tension.

The value $\beta = 0.232$ was chosen, because it enables an comparison
with the recent literature. In (Ref.~8) cluster improved estimators
were used to calculate correlations for $L=8-14$ in a cylindrical geometry.
Fitting the obtained tunneling mass gaps yields $F^s = 0.03034 \pm 0.00015$
for the surface tension, when systematic errors are admitted,
this is consistent with our value.
 All our $F^s$ (see table 2) values are much higher that the old estimates
of (Ref.~6), which had to rely on far too small lattices. Our estimates are
also
consistent with the valueses presented by M{\"u}nster$^{9}$ and
Potvin$^{10}$ in other talks on this workshop.
\smallskip
\centerline{\eightrm Table 2. Surface tensions $F^s$ and the amplitude
$F^s_0$ for the $3D$ Ising model}
$$\vbox{\eightrm\halign{\hfil#\quad\hfil &#\hfil\quad
 &\hfil#\hfil\cr
\multispan3\hrulefill\cr
\hfil $\beta$ \hfil &\hfil $F^s$\hfil &\hfil $F^s_{0}$ \hfil \cr
\multispan3\hrulefill\cr
 0.227& 0.01293(17) & 1.455(9) \hfil \cr
\hfil 0.232  \hfil& 0.03140(14) & 1.581(7) \hfil \cr
\hfil 0.2439 \hfil & 0.07403(30)\hfil & 1.513(6) \hfil \cr
\multispan3\hrulefill\cr}}$$
\medskip\noindent

Of particular interest in the $3D$ Ising model are amplitude
ratios$^{11,12}$
which involve the amplitude $F^s_0$ of the critical $3D$ interfacial
tension, because they can be compared with a variety of experimental
results$^{9,13,14}$ for fluids which are supposed to populate the
Ising model universality class.
The other amplitudes are fairly accurately known,
and the uncertainty in the ratios stems mainly from $F^s_0$.
Old estimates of $F^s_0$ (Ref.~6)
 led to amplitude ratios which are in disagreement with the
experimental results$^{13,14}$,
whereas Mon obtained consistency by calculating the excess
energy between a system with an interface imposed by an antiperiodic
boundary condition and a system without such an interface and with periodic
boundary conditions.$^{15}$

The
asymptotic behaviour of the interface tension for $\beta\to\beta_c$ is
$$
F^s\ =\ F^s_0 t^\mu  ,  \tag 3.2
$$
where $t=(1-\beta_c/\beta)$ is the reduced temperature and
 $\mu = 1.26$ in $3D$. Our $t$-values are small enough to apply this
 formula.
The results for the amplitude are included in table 2.
By averaging over our three values we get
$$
F^s_0\ =\ 1.52 \pm 0.05 , \tag 3.3
$$
compared to Mon's value $F^s_0 = 1.58 \pm 0.05$ (Ref.~15).

\vglue 12pt
\line{\tenbf 4. Conclusion\hfill}
\vglue 5pt
Multimagnetical simulations allow to study the magnetic
probability density in the broken region with a hitherto unreached
precision. Our numerical calculations for the $2D$ Ising model  agree well
with the exact results. For the $3D$ Ising model we obtain new surface
tension estimates,which agree resonable with (Ref.~8,9,10), and for our
amplitude  good agreement is found with Mon (Ref.~15).
\vglue 12pt
\line{\tenbf Acknowledgements \hfil}
\vglue 5pt
Our simulations were performed on the SCRI
cluster of fast RISC workstations. This research project was partially
supported by
the U. S. Department of Energy under contract DE-FG05-87ER40319,
DE-FC05-85ER250000 and by FSU's COFRS program.  U. Hansmann is supported
by Deutsche Forschungsgemeinschaft under contract H180411-1.
\vglue 12pt
\line{\tenbf References \hfil}
\vglue 5pt
\medskip
\ninerm
\baselineskip=11pt
\frenchspacing
\item{1.} B. Berg, U. Hansmann and T. Neuhaus,
               SCRI-91-125, submitted to Phys. Rev. B
\item{2.} B. Berg and T. Neuhaus, Phys. Lett. {\bf B267}, 249 (1991);
               Phys. Rev. Lett. {\bf  68}, 9 (1999).
\item{3.} B. Baumann and B. Berg, Phys. Lett. {\bf  164B}, 131 (1985);
          B. Baumann, Nucl. Phys. {\bf  B285}, 391 (1987).
\item{4.} A.M. Ferrenberg and R.H. Swendsen, Phys. Rev. Lett.
              {\bf  61}, 2635 (1988); {\bf 63 }, 1658(E) (1989), and
              references given in the erratum.
\item{5.} K. Binder, Z. Phys. {\bf B43}, 119 (1981).
\item{6.} K. Binder, Phys. Rev. {\bf A25}, 1699 (1982).
\item{7.} L. Onsager, Phys. Rev. {\bf 65}, 117 (1944).
\item{8.} H. Meyer-Ortmanns and T. Trappenberg, J. Stat. Phys. {\bf 58}
	  (1990), 185
\item{9.} G. M{\"u}nster, this volume
\item{10.} J. Potvin, this volume
\item{11.} S. Fisk and B. Widom, J. Chem. Phys. {\bf 50}, 3219 (1969).
\item{12.} D. Stauffer, M. Ferer and M. Wortis, Phys. Rev. Lett.
                   {\bf 29}, 345 (1972).
\item{13.} M.R. Moldover, Physical Review A {\bf 31}, 1022 (1984);
              H. Chaar, M.R. Moldover and J.W. Schmidt, J. Chem. Phys.
              {\bf 85}, 418 (1986).
\item{14.} H.L. Gielen, O.B. Verbeke and J. Thoen, J. Chem. Phys.
              {\bf 84}, 6154 (1984).
\item{15.} K.K. Mon, Phys. Rev. Lett. {\bf 60}, 2749 (1988).
\vfil\supereject
\bye

% VANILLA.STY
% COPYRIGHT (C) 1985, 1986 BY MICHAEL SPIVAK
% version date 1/1/86
\catcode`\@=11
\font\tensmc=cmcsc10      %change to CM fonts 3-31-87
%\font\tensmc=amcsc10
\def\smc{\tensmc}
\def\pagewidth#1{\hsize= #1 }
\def\pageheight#1{\vsize= #1 }
\def\hcorrection#1{\advance\hoffset by #1 }
\def\vcorrection#1{\advance\voffset by #1 }
\def\wlog#1{}
\newif\iftitle@
\outer\def\title{\title@true\vglue 24\p@ plus 12\p@ minus 12\p@
   \bgroup\let\\=\cr\tabskip\centering
   \halign to \hsize\bgroup\tenbf\hfill\ignorespaces##\unskip\hfill\cr}
\def\endtitle{\cr\egroup\egroup\vglue 18\p@ plus 12\p@ minus 6\p@}
\outer\def\author{\iftitle@\vglue -18\p@ plus -12\p@ minus -6\p@\fi\vglue
    12\p@ plus 6\p@ minus 3\p@\bgroup\let\\=\cr\tabskip\centering
    \halign to \hsize\bgroup\smc\hfill\ignorespaces##\unskip\hfill\cr}
\def\endauthor{\cr\egroup\egroup\vglue 18\p@ plus 12\p@ minus 6\p@}
\outer\def\heading{\bigbreak\bgroup\let\\=\cr\tabskip\centering
    \halign to \hsize\bgroup\smc\hfill\ignorespaces##\unskip\hfill\cr}
\def\endheading{\cr\egroup\egroup\nobreak\medskip}
\outer\def\subheading#1{\medbreak\noindent{\tenbf\ignorespaces
      #1\unskip.\enspace}\ignorespaces}
\outer\def\proclaim#1{\medbreak\noindent\smc\ignorespaces
    #1\unskip.\enspace\sl\ignorespaces}
\outer\def\endproclaim{\par\ifdim\lastskip<\medskipamount\removelastskip
  \penalty 55 \fi\medskip\rm}
\outer\def\demo#1{\par\ifdim\lastskip<\smallskipamount\removelastskip
    \smallskip\fi\noindent{\smc\ignorespaces#1\unskip:\enspace}\rm
      \ignorespaces}
\outer\def\enddemo{\par\smallskip}
\newcount\footmarkcount@
\footmarkcount@=1
\def\makefootnote@#1#2{\insert\footins{\interlinepenalty=100
  \splittopskip=\ht\strutbox \splitmaxdepth=\dp\strutbox
  \floatingpenalty=\@MM
  \leftskip=\z@\rightskip=\z@\spaceskip=\z@\xspaceskip=\z@
  \noindent{#1}\footstrut\rm\ignorespaces #2\strut}}
\def\footnote{\let\@sf=\empty\ifhmode\edef\@sf{\spacefactor
   =\the\spacefactor}\/\fi\futurelet\next\footnote@}
\def\footnote@{\ifx"\next\let\next\footnote@@\else
    \let\next\footnote@@@\fi\next}
\def\footnote@@"#1"#2{#1\@sf\relax\makefootnote@{#1}{#2}}
\def\footnote@@@#1{${\number\footmarkcount@}$\makefootnote@
   {${\number\footmarkcount@}$}{#1}\global\advance\footmarkcount@ by 1 }
\def\PCTeX{PC\,\TeX}
\hyphenation{man-u-script man-u-scripts ap-pen-dix ap-pen-di-ces}
\hyphenation{data-base data-bases}
\ifx\amstexloaded@\relax\catcode`\@=13
  \endinput\else\let\amstexloaded@=\relax\fi
\newlinechar=`\
\def\eat@#1{}
\def\Space@.{\futurelet\Space@\relax}
\Space@. %
\newhelp\athelp@
{Only certain combinations beginning with @ make sense to me.
Perhaps you wanted \string\@\space for a printed @?
I've ignored the character or group after @.}
\def\futureletnextat@{\futurelet\next\at@}
{\catcode`\@=\active
\lccode`\Z=`\@ \lowercase
{\gdef@{\expandafter\csname futureletnextatZ\endcsname}
\expandafter\gdef\csname atZ\endcsname
   {\ifcat\noexpand\next a\def\next{\csname atZZ\endcsname}\else
   \ifcat\noexpand\next0\def\next{\csname atZZ\endcsname}\else
    \def\next{\csname atZZZ\endcsname}\fi\fi\next}
\expandafter\gdef\csname atZZ\endcsname#1{\expandafter
   \ifx\csname #1Zat\endcsname\relax\def\next
     {\errhelp\expandafter=\csname athelpZ\endcsname
      \errmessage{Invalid use of \string@}}\else
       \def\next{\csname #1Zat\endcsname}\fi\next}
\expandafter\gdef\csname atZZZ\endcsname#1{\errhelp
    \expandafter=\csname athelpZ\endcsname
      \errmessage{Invalid use of \string@}}}}
\def\atdef@#1{\expandafter\def\csname #1@at\endcsname}
\newhelp\defahelp@{If you typed \string\define\space cs instead of
\string\define\string\cs\space
I've substituted an inaccessible control sequence so that your
definition will be completed without mixing me up too badly.
If you typed \string\define{\string\cs} the inaccessible control sequence
was defined to be \string\cs, and the rest of your
definition appears as input.}
\newhelp\defbhelp@{I've ignored your definition, because it might
conflict with other uses that are important to me.}
\def\define{\futurelet\next\define@}
\def\define@{\ifcat\noexpand\next\relax
  \def\next{\define@@}%
  \else\errhelp=\defahelp@
  \errmessage{\string\define\space must be followed by a control
     sequence}\def\next{\def\garbage@}\fi\next}
\def\undefined@{}
\def\preloaded@{}
\def\define@@#1{\ifx#1\relax\errhelp=\defbhelp@
   \errmessage{\string#1\space is already defined}\def\next{\def\garbage@}%
   \else\expandafter\ifx\csname\expandafter\eat@\string
         #1@\endcsname\undefined@\errhelp=\defbhelp@
   \errmessage{\string#1\space can't be defined}\def\next{\def\garbage@}%
   \else\expandafter\ifx\csname\expandafter\eat@\string#1\endcsname\relax
     \def\next{\def#1}\else\errhelp=\defbhelp@
     \errmessage{\string#1\space is already defined}\def\next{\def\garbage@}%
      \fi\fi\fi\next}
\def\famzero{\fam\z@}
\def\arccos{\mathop{\famzero arccos}\nolimits}
\def\arcsin{\mathop{\famzero arcsin}\nolimits}
\def\arctan{\mathop{\famzero arctan}\nolimits}
\def\arg{\mathop{\famzero arg}\nolimits}
\def\cos{\mathop{\famzero cos}\nolimits}
\def\cosh{\mathop{\famzero cosh}\nolimits}
\def\cot{\mathop{\famzero cot}\nolimits}
\def\coth{\mathop{\famzero coth}\nolimits}
\def\csc{\mathop{\famzero csc}\nolimits}
\def\deg{\mathop{\famzero deg}\nolimits}
\def\det{\mathop{\famzero det}}
\def\dim{\mathop{\famzero dim}\nolimits}
\def\exp{\mathop{\famzero exp}\nolimits}
\def\gcd{\mathop{\famzero gcd}}
\def\hom{\mathop{\famzero hom}\nolimits}
\def\inf{\mathop{\famzero inf}}
\def\ker{\mathop{\famzero ker}\nolimits}
\def\lg{\mathop{\famzero lg}\nolimits}
\def\lim{\mathop{\famzero lim}}
\def\liminf{\mathop{\famzero lim\,inf}}
\def\limsup{\mathop{\famzero lim\,sup}}
\def\ln{\mathop{\famzero ln}\nolimits}
\def\log{\mathop{\famzero log}\nolimits}
\def\max{\mathop{\famzero max}}
\def\min{\mathop{\famzero min}}
\def\Pr{\mathop{\famzero Pr}}
\def\sec{\mathop{\famzero sec}\nolimits}
\def\sin{\mathop{\famzero sin}\nolimits}
\def\sinh{\mathop{\famzero sinh}\nolimits}
\def\sup{\mathop{\famzero sup}}
\def\tan{\mathop{\famzero tan}\nolimits}
\def\tanh{\mathop{\famzero tanh}\nolimits}
\def\textfont@#1#2{\def#1{\relax\ifmmode
    \errmessage{Use \string#1\space only in text}\else#2\fi}}
\textfont@\rm\tenrm
\textfont@\it\tenit
\textfont@\sl\tensl
\textfont@\bf\tenbf
\textfont@\smc\tensmc
\let\ic@=\/
\def\/{\unskip\ic@}
\def\textfonti{\the\textfont1 }
\def\t#1#2{{\edef\next{\the\font}\textfonti\accent"7F \next#1#2}}
\let\B=\=
\let\D=\.
\def~{\unskip\nobreak\ \ignorespaces}
{\catcode`\@=\active
\gdef\@{\char'100 }}
\atdef@-{\leavevmode\futurelet\next\athyph@}
\def\athyph@{\ifx\next-\let\next=\athyph@@
  \else\let\next=\athyph@@@\fi\next}
\def\athyph@@@{\hbox{-}}
\def\athyph@@#1{\futurelet\next\athyph@@@@}
\def\athyph@@@@{\if\next-\def\next##1{\hbox{---}}\else
    \def\next{\hbox{--}}\fi\next}
\def\.{.\spacefactor=\@m}
\atdef@.{\null.}
\atdef@,{\null,}
\atdef@;{\null;}
\atdef@:{\null:}
\atdef@?{\null?}
\atdef@!{\null!}
\def\srdr@{\thinspace}
\def\drsr@{\kern.02778em}
\def\sldl@{\kern.02778em}
\def\dlsl@{\thinspace}
\atdef@"{\unskip\futurelet\next\atqq@}
\def\atqq@{\ifx\next\Space@\def\next. {\atqq@@}\else
         \def\next.{\atqq@@}\fi\next.}
\def\atqq@@{\futurelet\next\atqq@@@}
\def\atqq@@@{\ifx\next`\def\next`{\atqql@}\else\def\next'{\atqqr@}\fi\next}
\def\atqql@{\futurelet\next\atqql@@}
\def\atqql@@{\ifx\next`\def\next`{\sldl@``}\else\def\next{\dlsl@`}\fi\next}
\def\atqqr@{\futurelet\next\atqqr@@}
\def\atqqr@@{\ifx\next'\def\next'{\srdr@''}\else\def\next{\drsr@'}\fi\next}
\def\flushpar{\par\noindent}
\def\textfontii{\the\textfont2 }
\def\{{\relax\ifmmode\lbrace\else
    {\textfontii f}\spacefactor=\@m\fi}
\def\}{\relax\ifmmode\rbrace\else
    \let\@sf=\empty\ifhmode\edef\@sf{\spacefactor=\the\spacefactor}\fi
      {\textfontii g}\@sf\relax\fi}
\def\nonhmodeerr@#1{\errmessage
     {\string#1\space allowed only within text}}
\def\linebreak{\relax\ifhmode\unskip\break\else
    \nonhmodeerr@\linebreak\fi}
\def\allowlinebreak{\relax
   \ifhmode\allowbreak\else\nonhmodeerr@\allowlinebreak\fi}
\newskip\saveskip@
\def\nolinebreak{\relax\ifhmode\saveskip@=\lastskip\unskip
  \nobreak\ifdim\saveskip@>\z@\hskip\saveskip@\fi
   \else\nonhmodeerr@\nolinebreak\fi}
\def\newline{\relax\ifhmode\null\hfil\break
    \else\nonhmodeerr@\newline\fi}
\def\nonmathaerr@#1{\errmessage
     {\string#1\space is not allowed in display math mode}}
\def\nonmathberr@#1{\errmessage{\string#1\space is allowed only in math mode}}
\def\mathbreak{\relax\ifmmode\ifinner\break\else
   \nonmathaerr@\mathbreak\fi\else\nonmathberr@\mathbreak\fi}
\def\nomathbreak{\relax\ifmmode\ifinner\nobreak\else
    \nonmathaerr@\nomathbreak\fi\else\nonmathberr@\nomathbreak\fi}
\def\allowmathbreak{\relax\ifmmode\ifinner\allowbreak\else
     \nonmathaerr@\allowmathbreak\fi\else\nonmathberr@\allowmathbreak\fi}
\def\pagebreak{\relax\ifmmode
   \ifinner\errmessage{\string\pagebreak\space
     not allowed in non-display math mode}\else\postdisplaypenalty-\@M\fi
   \else\ifvmode\penalty-\@M\else\edef\spacefactor@
       {\spacefactor=\the\spacefactor}\vadjust{\penalty-\@M}\spacefactor@
        \relax\fi\fi}
\def\nopagebreak{\relax\ifmmode
     \ifinner\errmessage{\string\nopagebreak\space
    not allowed in non-display math mode}\else\postdisplaypenalty\@M\fi
    \else\ifvmode\nobreak\else\edef\spacefactor@
        {\spacefactor=\the\spacefactor}\vadjust{\penalty\@M}\spacefactor@
         \relax\fi\fi}
\def\newpage{\relax\ifvmode\vfill\penalty-\@M\else\nonvmodeerr@\newpage\fi}
\def\nonvmodeerr@#1{\errmessage
    {\string#1\space is allowed only between paragraphs}}
\def\smallpagebreak{\relax\ifvmode\smallbreak
      \else\nonvmodeerr@\smallpagebreak\fi}
\def\medpagebreak{\relax\ifvmode\medbreak
       \else\nonvmodeerr@\medpagebreak\fi}
\def\bigpagebreak{\relax\ifvmode\bigbreak
      \else\nonvmodeerr@\bigpagebreak\fi}
\newdimen\captionwidth@
\captionwidth@=\hsize
\advance\captionwidth@ by -1.5in
\def\caption#1{}
\def\topspace#1{\gdef\thespace@{#1}\ifvmode\def\next
    {\futurelet\next\topspace@}\else\def\next{\nonvmodeerr@\topspace}\fi\next}
\def\topspace@{\ifx\next\Space@\def\next. {\futurelet\next\topspace@@}\else
     \def\next.{\futurelet\next\topspace@@}\fi\next.}
\def\topspace@@{\ifx\next\caption\let\next\topspace@@@\else
    \let\next\topspace@@@@\fi\next}
 \def\topspace@@@@{\topinsert\vbox to
       \thespace@{}\endinsert}
\def\topspace@@@\caption#1{\topinsert\vbox to
    \thespace@{}\nobreak
      \smallskip
    \setbox\z@=\hbox{\noindent\ignorespaces#1\unskip}%
   \ifdim\wd\z@>\captionwidth@
   \centerline{\vbox{\hsize=\captionwidth@\noindent\ignorespaces#1\unskip}}%
   \else\centerline{\box\z@}\fi\endinsert}
\def\midspace#1{\gdef\thespace@{#1}\ifvmode\def\next
    {\futurelet\next\midspace@}\else\def\next{\nonvmodeerr@\midspace}\fi\next}
\def\midspace@{\ifx\next\Space@\def\next. {\futurelet\next\midspace@@}\else
     \def\next.{\futurelet\next\midspace@@}\fi\next.}
\def\midspace@@{\ifx\next\caption\let\next\midspace@@@\else
    \let\next\midspace@@@@\fi\next}
 \def\midspace@@@@{\midinsert\vbox to
       \thespace@{}\endinsert}
\def\midspace@@@\caption#1{\midinsert\vbox to
    \thespace@{}\nobreak
      \smallskip
      \setbox\z@=\hbox{\noindent\ignorespaces#1\unskip}%
      \ifdim\wd\z@>\captionwidth@
    \centerline{\vbox{\hsize=\captionwidth@\noindent\ignorespaces#1\unskip}}%
    \else\centerline{\box\z@}\fi\endinsert}
\mathchardef\prime@="0230
\def\prime{{{}\prime@{}}}
\def\prim@s{\prime@\futurelet\next\pr@m@s}
\let\dsize=\displaystyle
\let\tsize=\textstyle
\def\,{\relax\ifmmode\mskip\thinmuskip\else\thinspace\fi}
\def\!{\relax\ifmmode\mskip-\thinmuskip\else\negthinspace\fi}
\def\frac#1#2{{#1\over#2}}
\def\dfrac#1#2{{\displaystyle{#1\over#2}}}
\def\tfrac#1#2{{\textstyle{#1\over#2}}}
\def\binom#1#2{{#1\choose #2}}
\def\dbinom#1#2{{\displaystyle{#1\choose #2}}}
\def\tbinom#1#2{{\textstyle{#1\choose #2}}}
\def\:{\nobreak\hskip.1111em{:}\hskip.3333em plus .0555em\relax}
\def\intic@{\mathchoice{\hskip5\p@}{\hskip4\p@}{\hskip4\p@}{\hskip4\p@}}
\def\negintic@
 {\mathchoice{\hskip-5\p@}{\hskip-4\p@}{\hskip-4\p@}{\hskip-4\p@}}
\def\intkern@{\mathchoice{\!\!\!}{\!\!}{\!\!}{\!\!}}
\def\intdots@{\mathchoice{\cdots}{{\cdotp}\mkern1.5mu
    {\cdotp}\mkern1.5mu{\cdotp}}{{\cdotp}\mkern1mu{\cdotp}\mkern1mu
      {\cdotp}}{{\cdotp}\mkern1mu{\cdotp}\mkern1mu{\cdotp}}}
\newcount\intno@
\def\iint{\intno@=\tw@\futurelet\next\ints@}
\def\iiint{\intno@=\thr@@\futurelet\next\ints@}
\def\iiiint{\intno@=4 \futurelet\next\ints@}
\def\idotsint{\intno@=\z@\futurelet\next\ints@}
\def\ints@{\findlimits@\ints@@}
\newif\iflimtoken@
\newif\iflimits@
\def\findlimits@{\limtoken@false\limits@false\ifx\next\limits
 \limtoken@true\limits@true\else\ifx\next\nolimits\limtoken@true\limits@false
    \fi\fi}
\def\multintlimits@{\intop\ifnum\intno@=\z@\intdots@
  \else\intkern@\fi
    \ifnum\intno@>\tw@\intop\intkern@\fi
     \ifnum\intno@>\thr@@\intop\intkern@\fi\intop}
\def\multint@{\int\ifnum\intno@=\z@\intdots@\else\intkern@\fi
   \ifnum\intno@>\tw@\int\intkern@\fi
    \ifnum\intno@>\thr@@\int\intkern@\fi\int}
\def\ints@@{\iflimtoken@\def\ints@@@{\iflimits@
   \negintic@\mathop{\intic@\multintlimits@}\limits\else
    \multint@\nolimits\fi\eat@}\else
     \def\ints@@@{\multint@\nolimits}\fi\ints@@@}
\def\Sb{_\bgroup\vspace@
        \baselineskip=\fontdimen10 \scriptfont\tw@
        \advance\baselineskip by \fontdimen12 \scriptfont\tw@
        \lineskip=\thr@@\fontdimen8 \scriptfont\thr@@
        \lineskiplimit=\thr@@\fontdimen8 \scriptfont\thr@@
        \Let@\vbox\bgroup\halign\bgroup \hfil$\scriptstyle
            {##}$\hfil\cr}
\def\endSb{\crcr\egroup\egroup\egroup}
\def\Sp{\bgroup\vspace@
        \baselineskip=\fontdimen10 \scriptfont\tw@
        \advance\baselineskip by \fontdimen12 \scriptfont\tw@
        \lineskip=\thr@@\fontdimen8 \scriptfont\thr@@
        \lineskiplimit=\thr@@\fontdimen8 \scriptfont\thr@@
        \Let@\vbox\bgroup\halign\bgroup \hfil$\scriptstyle
            {##}$\hfil\cr}
\def\endSp{\crcr\egroup\egroup\egroup}
\def\Let@{\relax\iffalse{\fi\let\\=\cr\iffalse}\fi}
\def\vspace@{\def\vspace##1{\noalign{\vskip##1 }}}
\def\aligned{\,\vcenter\bgroup\vspace@\Let@\openup\jot\m@th\ialign
  \bgroup \strut\hfil$\displaystyle{##}$&$\displaystyle{{}##}$\hfil\crcr}
\def\endaligned{\crcr\egroup\egroup}
\def\matrix{\,\vcenter\bgroup\Let@\vspace@
    \normalbaselines
  \m@th\ialign\bgroup\hfil$##$\hfil&&\quad\hfil$##$\hfil\crcr
    \mathstrut\crcr\noalign{\kern-\baselineskip}}
\def\endmatrix{\crcr\mathstrut\crcr\noalign{\kern-\baselineskip}\egroup
                \egroup\,}
\newtoks\hashtoks@
\hashtoks@={#}
\def\format{\crcr\egroup\iffalse{\fi\ifnum`}=0 \fi\format@}
\def\format@#1\\{\def\preamble@{#1}%
  \def\c{\hfil$\the\hashtoks@$\hfil}%
  \def\r{\hfil$\the\hashtoks@$}%
  \def\l{$\the\hashtoks@$\hfil}%
  \setbox\z@=\hbox{\xdef\Preamble@{\preamble@}}\ifnum`{=0 \fi\iffalse}\fi
   \ialign\bgroup\span\Preamble@\crcr}
\def\pmatrix{\left(\matrix} \def\endpmatrix{\endmatrix\right)}
\let\hdots=\ldots
\def\cases{\left\{\,\vcenter\bgroup\vspace@
     \normalbaselines\openup\jot\m@th
       \Let@\ialign\bgroup$##$\hfil&\quad$##$\hfil\crcr
      \mathstrut\crcr\noalign{\kern-\baselineskip}}
\def\endcases{\endmatrix\right.}
\newif\iftagsleft@
\tagsleft@true
\def\TagsOnRight{\global\tagsleft@false}
\def\tag#1$${\iftagsleft@\leqno\else\eqno\fi
 \hbox{\def\pagebreak{\global\postdisplaypenalty-\@M}%
 \def\nopagebreak{\global\postdisplaypenalty\@M}\rm(#1\unskip)}%
  $$\postdisplaypenalty\z@\ignorespaces}
\interdisplaylinepenalty=\@M
\def\allowdisplaybreak@{\def\allowdisplaybreak{\noalign{\allowbreak}}}
\def\displaybreak@{\def\displaybreak{\noalign{\break}}}
\def\align#1\endalign{\def\tag{&}\vspace@\allowdisplaybreak@\displaybreak@
  \iftagsleft@\lalign@#1\endalign\else
   \ralign@#1\endalign\fi}
\def\ralign@#1\endalign{\displ@y\Let@\tabskip\centering\halign to\displaywidth
     {\hfil$\displaystyle{##}$\tabskip=\z@&$\displaystyle{{}##}$\hfil
       \tabskip=\centering&\llap{\hbox{(\rm##\unskip)}}\tabskip\z@\crcr
             #1\crcr}}
\def\lalign@
 #1\endalign{\displ@y\Let@\tabskip\centering\halign to \displaywidth
   {\hfil$\displaystyle{##}$\tabskip=\z@&$\displaystyle{{}##}$\hfil
   \tabskip=\centering&\kern-\displaywidth
        \rlap{\hbox{(\rm##\unskip)}}\tabskip=\displaywidth\crcr
               #1\crcr}}
\def\overrightarrow{\mathpalette\overrightarrow@}
\def\overrightarrow@#1#2{\vbox{\ialign{$##$\cr
    #1{-}\mkern-6mu\cleaders\hbox{$#1\mkern-2mu{-}\mkern-2mu$}\hfill
     \mkern-6mu{\to}\cr
     \noalign{\kern -1\p@\nointerlineskip}
     \hfil#1#2\hfil\cr}}}
\def\overleftarrow{\mathpalette\overleftarrow@}
\def\overleftarrow@#1#2{\vbox{\ialign{$##$\cr
     #1{\leftarrow}\mkern-6mu\cleaders\hbox{$#1\mkern-2mu{-}\mkern-2mu$}\hfill
      \mkern-6mu{-}\cr
     \noalign{\kern -1\p@\nointerlineskip}
     \hfil#1#2\hfil\cr}}}
\def\overleftrightarrow{\mathpalette\overleftrightarrow@}
\def\overleftrightarrow@#1#2{\vbox{\ialign{$##$\cr
     #1{\leftarrow}\mkern-6mu\cleaders\hbox{$#1\mkern-2mu{-}\mkern-2mu$}\hfill
       \mkern-6mu{\to}\cr
    \noalign{\kern -1\p@\nointerlineskip}
      \hfil#1#2\hfil\cr}}}
\def\underrightarrow{\mathpalette\underrightarrow@}
\def\underrightarrow@#1#2{\vtop{\ialign{$##$\cr
    \hfil#1#2\hfil\cr
     \noalign{\kern -1\p@\nointerlineskip}
    #1{-}\mkern-6mu\cleaders\hbox{$#1\mkern-2mu{-}\mkern-2mu$}\hfill
     \mkern-6mu{\to}\cr}}}
\def\underleftarrow{\mathpalette\underleftarrow@}
\def\underleftarrow@#1#2{\vtop{\ialign{$##$\cr
     \hfil#1#2\hfil\cr
     \noalign{\kern -1\p@\nointerlineskip}
     #1{\leftarrow}\mkern-6mu\cleaders\hbox{$#1\mkern-2mu{-}\mkern-2mu$}\hfill
      \mkern-6mu{-}\cr}}}
\def\underleftrightarrow{\mathpalette\underleftrightarrow@}
\def\underleftrightarrow@#1#2{\vtop{\ialign{$##$\cr
      \hfil#1#2\hfil\cr
    \noalign{\kern -1\p@\nointerlineskip}
     #1{\leftarrow}\mkern-6mu\cleaders\hbox{$#1\mkern-2mu{-}\mkern-2mu$}\hfill
       \mkern-6mu{\to}\cr}}}
\def\sqrt#1{\radical"270370 {#1}}
\def\dots{\relax\ifmmode\let\next=\ldots\else\let\next=\tdots@\fi\next}
\def\tdots@{\unskip\ \tdots@@}
\def\tdots@@{\futurelet\next\tdots@@@}
\def\tdots@@@{$\mathinner{\ldotp\ldotp\ldotp}\,
   \ifx\next,$\else
   \ifx\next.\,$\else
   \ifx\next;\,$\else
   \ifx\next:\,$\else
   \ifx\next?\,$\else
   \ifx\next!\,$\else
   $ \fi\fi\fi\fi\fi\fi}
\def\text{\relax\ifmmode\let\next=\text@\else\let\next=\text@@\fi\next}
\def\text@@#1{\hbox{#1}}
\def\text@#1{\mathchoice
 {\hbox{\everymath{\displaystyle}\def\textfonti{\the\textfont1 }%
    \def\textfontii{\the\textfont2 }\textdef@@ T#1}}
 {\hbox{\everymath{\textstyle}\def\textfonti{\the\textfont1 }%
    \def\textfontii{\the\textfont2 }\textdef@@ T#1}}
 {\hbox{\everymath{\scriptstyle}\def\textfonti{\the\scriptfont1 }%
   \def\textfontii{\the\scriptfont2 }\textdef@@ S\rm#1}}
 {\hbox{\everymath{\scriptscriptstyle}\def\textfonti{\the\scriptscriptfont1 }%
   \def\textfontii{\the\scriptscriptfont2 }\textdef@@ s\rm#1}}}
\def\textdef@@#1{\textdef@#1\rm \textdef@#1\bf
   \textdef@#1\sl \textdef@#1\it}
\def\rmfam{0}
\def\textdef@#1#2{\def\next{\csname\expandafter\eat@\string#2fam\endcsname}%
\if S#1\edef#2{\the\scriptfont\next\relax}%
 \else\if s#1\edef#2{\the\scriptscriptfont\next\relax}%
 \else\edef#2{\the\textfont\next\relax}\fi\fi}
\scriptfont\itfam=\tenit \scriptscriptfont\itfam=\tenit
\scriptfont\slfam=\tensl \scriptscriptfont\slfam=\tensl
\mathcode`\0="0030
\mathcode`\1="0031
\mathcode`\2="0032
\mathcode`\3="0033
\mathcode`\4="0034
\mathcode`\5="0035
\mathcode`\6="0036
\mathcode`\7="0037
\mathcode`\8="0038
\mathcode`\9="0039
\def\Cal{\relax\ifmmode\let\next=\Cal@\else
     \def\next{\errmessage{Use \string\Cal\space only in math mode}}\fi\next}
\def\Cal@#1{{\fam2 #1}}
\def\bold{\relax\ifmmode\let\next=\bold@\else
   \def\next{\errmessage{Use \string\bold\space only in math
      mode}}\fi\next}\def\bold@#1{{\fam\bffam #1}}
\mathchardef\Gamma="0000
\mathchardef\Delta="0001
\mathchardef\Theta="0002
\mathchardef\Lambda="0003
\mathchardef\Xi="0004
\mathchardef\Pi="0005
\mathchardef\Sigma="0006
\mathchardef\Upsilon="0007
\mathchardef\Phi="0008
\mathchardef\Psi="0009
\mathchardef\Omega="000A
\mathchardef\varGamma="0100
\mathchardef\varDelta="0101
\mathchardef\varTheta="0102
\mathchardef\varLambda="0103
\mathchardef\varXi="0104
\mathchardef\varPi="0105
\mathchardef\varSigma="0106
\mathchardef\varUpsilon="0107
\mathchardef\varPhi="0108
\mathchardef\varPsi="0109
\mathchardef\varOmega="010A
\font\dummyft@=dummy
\fontdimen1 \dummyft@=\z@
\fontdimen2 \dummyft@=\z@
\fontdimen3 \dummyft@=\z@
\fontdimen4 \dummyft@=\z@
\fontdimen5 \dummyft@=\z@
\fontdimen6 \dummyft@=\z@
\fontdimen7 \dummyft@=\z@
\fontdimen8 \dummyft@=\z@
\fontdimen9 \dummyft@=\z@
\fontdimen10 \dummyft@=\z@
\fontdimen11 \dummyft@=\z@
\fontdimen12 \dummyft@=\z@
\fontdimen13 \dummyft@=\z@
\fontdimen14 \dummyft@=\z@
\fontdimen15 \dummyft@=\z@
\fontdimen16 \dummyft@=\z@
\fontdimen17 \dummyft@=\z@
\fontdimen18 \dummyft@=\z@
\fontdimen19 \dummyft@=\z@
\fontdimen20 \dummyft@=\z@
\fontdimen21 \dummyft@=\z@
\fontdimen22 \dummyft@=\z@
\def\fontlist@{\\{\tenrm}\\{\sevenrm}\\{\fiverm}\\{\teni}\\{\seveni}%
 \\{\fivei}\\{\tensy}\\{\sevensy}\\{\fivesy}\\{\tenex}\\{\tenbf}\\{\sevenbf}%
 \\{\fivebf}\\{\tensl}\\{\tenit}\\{\tensmc}}
\def\dodummy@{{\def\\##1{\global\let##1=\dummyft@}\fontlist@}}
\newif\ifsyntax@
\newcount\countxviii@
\def\newtoks@{\alloc@5\toks\toksdef\@cclvi}
\def\nopages@{\output={\setbox\z@=\box\@cclv \deadcycles=\z@}\newtoks@\output}
\def\syntax{\syntax@true\dodummy@\countxviii@=\count18
\loop \ifnum\countxviii@ > \z@ \textfont\countxviii@=\dummyft@
   \scriptfont\countxviii@=\dummyft@ \scriptscriptfont\countxviii@=\dummyft@
     \advance\countxviii@ by-\@ne\repeat
\dummyft@\tracinglostchars=\z@
  \nopages@\frenchspacing\hbadness=\@M}
\def\magstep#1{\ifcase#1 1000\or
 1200\or 1440\or 1728\or 2074\or 2488\or
 \errmessage{\string\magstep\space only works up to 5}\fi\relax}
{\lccode`\2=`\p \lccode`\3=`\t
 \lowercase{\gdef\tru@#123{#1truept}}}
\def\scaledocument#1{\mag=#1\relax}
\def\scaletype#1{\mag=#1\relax
 \hsize=\expandafter\tru@\the\hsize
 \vsize=\expandafter\tru@\the\vsize
 \dimen\footins=\expandafter\tru@\the\dimen\footins}
\def\maxfootnotes#1{\dimen\footins=#1\relax}
\def\scalefont#1#2\andcallit#3{\edef\font@{\the\font}#1\font#3=
  \fontname\font\space scaled #2\relax\font@}
\def\Mag@#1#2{\ifdim#1<1pt\multiply#1 #2\relax\divide#1 1000 \else
  \ifdim#1<10pt\divide#1 10 \multiply#1 #2\relax\divide#1 100\else
  \divide#1 100 \multiply#1 #2\relax\divide#1 10 \fi\fi}
\def\scalelinespacing#1{\Mag@\baselineskip{#1}\Mag@\lineskip{#1}%
  \Mag@\lineskiplimit{#1}}
\def\wlog#1{\immediate\write-1{#1}}
\catcode`\@=\active

{}.


