\catcode`\@=11
\newif\ifgphelp
\long\def\@ifundef#1#2#3{\expandafter\ifx\csname
#1\endcsname\relax#2\else#3\fi}
\@ifundef{fromgphelp}{\gphelpfalse}{\gphelptrue}
\ifgphelp
\magnification=\magstep1
\baselineskip=13pt
\else
\magnification=\magstephalf
\fi
\newread\std
\openin\std=paricfg.tex
\ifeof\std
\openin\std=doc/paricfg.tex
\ifeof\std
\message{paricfg.tex not found. You should run Configure.}
% use default values
\def\vers{2.0.x}
\def\miscdir{/usr/local/lib/pari}
\def\includedir{/usr/local/include/pari}
\def\libdir{/usr/local/lib}
\def\wwwsite{\kbd{http://hasse.mathematik.tu-muenchen.de/ntsw/pari/}}
\else
\input doc/paricfg.tex
\fi
\else
\input paricfg.tex
\fi
\font\chaptertitlefont=cmr12 scaled \magstep1
\font\captertitlebf=cmbx10 scaled \magstep2
\font\sectiontitlebf=cmbx12
\font\seventt=cmtt8 scaled 875
\scriptfont\ttfam=\seventt % we should really set the \hyphenchar etc first
\parskip=6pt plus 3pt minus 1.5pt
\overfullrule=0pt
%
% CROSS REFERENCING & INDEX
%
\newif\ifsecondpass
\newwrite\out
\newwrite\aux
\ifgphelp % disable most of it
\def\sidx#1{}
\def\tocwrite#1{}
\def\label#1{}
\def\ref#1{[{\bf ??}]}
\else
\def\typeout#1{\immediate\write\out{#1}}
\def\@namedef#1{\expandafter\def\csname #1\endcsname}
\def\newlabel#1#2{\@ifundef{r@#1}{}{\message{Label `#1' multiply
defined}}\global\@namedef{r@#1}{#2}}
\openin\std=users.std
\ifeof\std
\secondpassfalse
\typeout{FIRST PASS}
\csname newwrite\endcsname\toc
\csname newwrite\endcsname\index
\openout\toc=\jobname.toc
\openout\index=\jobname.idx
\let\condwrite=\write
\else
\secondpasstrue
\typeout{SECOND PASS}
\let\immediate\relax
\def\condwrite#1#2{}
\fi
% index
\def\sidx#1{{\condwrite\index{!#1!\the\pageno!}}}
%cf TeXBook Exercice 21.10
\def\tocwrite#1{{\let\the=0\edef\next{\condwrite\toc{#1}}\next}}
% don't use \jobname here, macros may be used by tutorial.tex
\openin\std=users.aux
\ifeof\std
\message{No aux file.}
\else
\input users.aux
\fi
\openin\std=users.std
% \ref, \label
\openout\aux=\jobname.aux
\ifx\inputlineno\undefined
\let\on@line\empty
\else
\def\on@line{ on input line \the\inputlineno}
\fi
\def\@errundef#1{\typeout{Reference `#1' on page \the\pageno \space
undefined\on@line}}
\def\@car#1#2\@nil{#1}
\def\@cdr#1#2\@nil{#2}
\def\@ref{\expandafter\@cdr\@temp \@nil\null}
\def\@cref{\expandafter\@car\@temp \@nil\null}
\def\label#1{\immediate\write\aux{\string
\newlabel{#1}{{\the\chapno}{\currentlabel}}}}
\def\ref#1{\@ifundef{r@#1}
{{\bf ??}\@errundef{#1}}
{\edef\@temp{\csname r@#1\endcsname}%
\def\lbl{\@ref}\def\chp{\@cref}%
\ifx\chp{\the\chapno}\lbl\else\chp.\lbl\fi}}
\fi
\def\idx#1{\sidx{#1}#1}
\def\secref#1{Section~\ref{#1}}
%
% SECTIONS
%
\newcount\appno
\newcount\chapno
\newcount\secno
\newcount\subsecno
\newcount\subsubsecno
\def\newpage{\hbox{}\vfill\eject}
\def\myhook{}
\def\title#1#2{%
\ifodd\pageno\else\newpage\fi
\tocwrite{#1 #2\string\dotfill\the\pageno}
\ifgphelp\else
\centerline{\chaptertitlefont #1}\medskip
\fi
\centerline{\let\bf\chaptertitlebf \chaptertitlefont #2}\vskip1cm}
\def\sectitle#1{%
\tocwrite{{\sevenrm\hskip0.5cm#1\string\dotfill\the\pageno}}
\vskip 0pt plus 54pt\penalty-600 % good break
\vskip 24pt plus -45pt minus 9pt
\leftline{\myhook{\sectiontitlebf #1}.}\def\myhook{}
\penalty10000 % impossible break
\smallskip}% whatever follows will add a \parskip
\def\subsectitle#1{%
\vskip 0pt plus 45pt\penalty-300
\vskip 6pt plus -42pt minus 3pt
\noindent\myhook{\bf{#1}}\def\myhook{}}
\def\subsubsectitle#1{% a \parskip is being added anyway by \noindent
\par\vskip 0pt plus 39pt\penalty-200
\vskip 0pt plus -37pt minus 1.5pt
\noindent\myhook{\bf{#1}}\def\myhook{}}
\ifgphelp
\def\maketitle#1{#1}
\else
\def\maketitle#1{
\ifnum\chapno=0
\currentlabel. #1%
\else
\number\chapno.\currentlabel\ #1%
\fi}
\fi
\def\misctitle#1{\par\vskip 0pt plus 66pt\penalty-400
\vskip 3pt plus -64pt minus 1.5pt\noindent{\bf #1}}
% Chapter headings now occupy two lines in the manual (still only one in
% INSTALL.tex and gphelp-extracted bits). Syntax requirement: After calling
% \chapter{...} and possibly \label{...} etc, an empty line _must_ follow
% before the first paragraph of text or section heading begins. [GN]
\def\chapter#1#2\par{
\secno=0\global\advance\chapno by 1
\title{Chapter \number\chapno:}{#1}#2\noindent\ignorespaces}
\def\appendix#1\par{
\chapno=0
\secno=0\global\advance\appno by 1
\title{Appendix %
\ifcase\appno\or A\or B\or C\or D\or E\or F\or G\or H\or I\or J\or K\fi:}%
{#1}\noindent\ignorespaces}
\def\section#1{
\subsecno=0\advance\secno by 1
\gdef\currentlabel{\number\secno}
\sectitle{\maketitle{#1}}}
\def\subsec#1{
\subsubsecno=0\advance\subsecno by 1
\gdef\currentlabel{\number\secno.\number\subsecno}
\subsectitle{\maketitle{#1}}}
\def\subsubsec#1{
\advance\subsubsecno by 1
\gdef\currentlabel{\number\secno.\number\subsecno.\number\subsubsecno}
\subsubsectitle{\maketitle{#1}}}
\def\unix{\strut\hbox to 0pt{\hss {UNIX: }\indent}}
\def\unixx{\noindent\strut\hbox to 0pt{\hss {UNIX: }}}
\def\emacs{\strut\hbox to 0pt{\hss {EMACS: }\indent}}
\def\sectionunix#1{\def\myhook{\unixx{}}\section{#1}}
\def\unixsubsecunix#1{\def\myhook{\unix{}}\subsec{#1}}
\def\subsecidxunix#1{\def\myhook{\unix{}}\subsecidx{#1}}
\def\subsubsecunix#1{\def\myhook{\unix{}}\subsubsec{#1}}
\def\subsubsecidxunix#1{\def\myhook{\unix{}}\subsubsecidx{#1}}
\def\subseckbd#1{\subsec{\kbd{#1}}}
\def\subsecidx#1{\subsec{#1}\sidx{#1}}
\def\subsubsecidx#1{\subsubsec{#1}\sidx{#1}}
%
% General purpose
%
\def\begintitle{
\begingroup\nopagenumbers
\font\mine=cmb10 scaled 1893
\hbox{}
}
\def\authors{
\centerline{C. Batut, K. Belabas, D. Bernardi, H. Cohen, M. Olivier}
\vskip 1.truecm
\centerline{Laboratoire A2X, U.M.R. 9936 du C.N.R.S.}
\centerline{Universit\'e Bordeaux I, 351 Cours de la Lib\'eration}
\centerline{33405 TALENCE Cedex, FRANCE}
\centerline{\tt e-mail: pari@math.u-bordeaux.fr}
\vskip 2.truecm
\centerline{Home Page:}
\centerline{\wwwsite}
\vskip .5truecm
\centerline{Primary {\tt ftp} site:}
\centerline{\tt ftp://megrez.math.u-bordeaux.fr/pub/pari/}
\vskip 1.truecm
}
\def\endtitle{\newpage\endgroup}
\newfam\euffam
\font\teneuf=eufm10
\textfont\euffam=\teneuf
\def\goth#1{{\fam\euffam#1}}
\def\d{\goth d}
\def\f{\goth f}
\def\p{{\bf p}}
\def\kbd#1{{\tt #1}}
\def\key#1{{\bf #1}}
\def\var#1{\hbox{\it #1\/}}
\def\fl{\var{f\kern0pt lag}}
\def\synx#1#2#3{\sidx{#3}The library syntax is $\key{#1}({#2})$}
\def\syn#1#2{\synx{#1}{#2}{#1}}
\def\synt#1#2{\syn{#1}{\hbox{\tt #2}}}
\def\bs{{\char'134}}
\def\obr{{\char'173}}
\def\cbr{{\char'175}}
\def\pow{\^{}\hskip0pt}
\def\til{\raise-0.3em\hbox{\~{}}}
\def\b#1{{\tt \bs#1}}
\def\mod{\,{\rm mod}\,}
\def\text#1{{\rm#1}}
\def\teb#1{{\bf\idx{#1}}}
\def\tet#1{{\tt\idx{#1}}}
\def\dfrac#1#2{{{#1}\over{#2}}}
\def\binom#1#2{\pmatrix{{#1}\cr{#2}}}
\def\Bbb#1{{\bf #1}}
\def\typ#1{\kbd{t\_\kern1pt#1}}
\def\idxtyp#1{\sidx{t\string\_#1}}
\def\Z{\Bbb Z}
\def\Q{\Bbb Q}
\def\F{\Bbb F}
\def\R{\Bbb R}
\def\C{\Bbb C}
\def\dotfill{\leaders\hbox to 3truemm{\hfil.\hfil}\hfill}
\def\bprog{\par\begingroup%
\def\q{\quad}\def\h{\hbox{}}%
\tt\obeylines\leavevmode\parskip=0pt plus 1pt%
\interlinepenalty2000\clubpenalty9000\widowpenalty9000%
\h}
% variant of same, for use with tabbing. Tabbing doesn't build paragraphs,
% the lines go directly into the vlist -- so we must add our own \parskip. [GN]
\def\bprogtabs{\par\vskip\parskip\begingroup%
\def\q{\quad}\def\h{\hbox{}}%
\tt\settabs}
% both to be ended with:
\def\eprog{\endgroup\par}
\catcode`\@=12