buildtools/ppl/doc/ppl.sty
Jerome Duval 5873a060ca imported PPL 0.11.1 and CLooG 0.18.0.
* these are dependencies for gcc 4 Graphite engine build.
* CLooG 0.18.0 includes ISL 0.11.1 which is the backend that the build script enables.
* PPL is needed by GCC build even if it isn't the chosen backend.
2013-04-06 15:10:34 +02:00

201 lines
7.7 KiB
TeX

%% LaTeX package providing macros for typesetting the PPL manuals.
%% Copyright (C) 2001-2010 Roberto Bagnara <bagnara@cs.unipr.it>
%% Copyright (C) 2010-2011 BUGSENG srl (http://bugseng.com)
%%
%% This file is part of the Parma Polyhedra Library (PPL).
%%
%% The PPL is free software; you can redistribute it and/or modify it
%% under the terms of the GNU General Public License as published by the
%% Free Software Foundation; either version 3 of the License, or (at your
%% option) any later version.
%%
%% The PPL is distributed in the hope that it will be useful, but WITHOUT
%% ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
%% FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
%% for more details.
%%
%% You should have received a copy of the GNU General Public License
%% along with this program; if not, write to the Free Software Foundation,
%% Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1307, USA.
%%
%% For the most up-to-date information see the Parma Polyhedra Library
%% site: http://www.cs.unipr.it/ppl/ .
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{ppl}
\RequirePackage{amsmath}
\RequirePackage{amssymb}
\RequirePackage{stmaryrd}
%% Calligraphic alphabet
\newcommand*{\cA}{\ensuremath{\mathcal{A}}}
\newcommand*{\cB}{\ensuremath{\mathcal{B}}}
\newcommand*{\cC}{\ensuremath{\mathcal{C}}}
\newcommand*{\cD}{\ensuremath{\mathcal{D}}}
\newcommand*{\cE}{\ensuremath{\mathcal{E}}}
\newcommand*{\cF}{\ensuremath{\mathcal{F}}}
\newcommand*{\cG}{\ensuremath{\mathcal{G}}}
\newcommand*{\cH}{\ensuremath{\mathcal{H}}}
\newcommand*{\cI}{\ensuremath{\mathcal{I}}}
\newcommand*{\cJ}{\ensuremath{\mathcal{J}}}
\newcommand*{\cK}{\ensuremath{\mathcal{K}}}
\newcommand*{\cL}{\ensuremath{\mathcal{L}}}
\newcommand*{\cM}{\ensuremath{\mathcal{M}}}
\newcommand*{\cN}{\ensuremath{\mathcal{N}}}
\newcommand*{\cO}{\ensuremath{\mathcal{O}}}
\newcommand*{\cP}{\ensuremath{\mathcal{P}}}
\newcommand*{\cQ}{\ensuremath{\mathcal{Q}}}
\newcommand*{\cR}{\ensuremath{\mathcal{R}}}
\newcommand*{\cS}{\ensuremath{\mathcal{S}}}
\newcommand*{\cT}{\ensuremath{\mathcal{T}}}
\newcommand*{\cU}{\ensuremath{\mathcal{U}}}
\newcommand*{\cV}{\ensuremath{\mathcal{V}}}
\newcommand*{\cW}{\ensuremath{\mathcal{W}}}
\newcommand*{\cX}{\ensuremath{\mathcal{X}}}
\newcommand*{\cY}{\ensuremath{\mathcal{Y}}}
\newcommand*{\cZ}{\ensuremath{\mathcal{Z}}}
%% Special letters denoting sets and algebras.
\providecommand*{\Nset}{\mathbb{N}} % Naturals
\newcommand*{\extNset}{\mathbb{N}_\infty} % Extended naturals
\providecommand*{\Oset}{\mathbb{O}} % Ordinals
\providecommand*{\Qset}{\mathbb{Q}} % Rationals
\providecommand*{\Rset}{\mathbb{R}} % Reals
\providecommand*{\nonnegRset}{\mathbb{R}_{\scriptscriptstyle{+}}}
% Non-negative reals
\newcommand*{\extRset}{\Rset_\infty} % Extended reals
\providecommand*{\Zset}{\mathbb{Z}} % Integers
\providecommand*{\CPset}{\mathbb{CP}} % Closed polyhedra
\providecommand*{\Pset}{\mathbb{P}} % (NNC) polyhedra
\providecommand*{\Sset}{\mathbb{S}} % Reals or rationals
%% Grid notation
\providecommand*{\Gset}{\mathbb{G}} % Grid
\providecommand*{\cg}{\mathord{\mathrm{cg}}} % Congruence
\newcommand*{\gcon}{\mathop{\mathrm{gcon}}\nolimits}
% Grid from congruence system
\newcommand*{\ggen}{\mathop{\mathrm{ggen}}\nolimits}
% Grid from generator system
%% Function notation
\newcommand*{\fund}[3]{\mathord{#1}\colon#2\rightarrow#3}
\newcommand*{\pard}[3]{\mathord{#1}\colon#2\rightarrowtail#3}
%% Relation notation
\newcommand*{\reld}[3]{\mathord{#1}\subseteq#2\times#3}
%% Set theory.
\renewcommand*{\emptyset}{\mathord{\varnothing}}
\newcommand*{\sseq}{\subseteq}
\newcommand*{\sseqf}{\mathrel{\subseteq_\mathrm{f}}}
\newcommand*{\sslt}{\subset}
\newcommand*{\Sseq}{\supseteq}
\newcommand*{\Ssgt}{\supset}
\newcommand*{\inters}{\cap}
\newcommand*{\setdiff}{\setminus}
\newcommand*{\union}{\cup}
\newcommand*{\card}{\mathop{\#}\nolimits}
\newcommand*{\sset}[2]{{\renewcommand*{\arraystretch}{1.2}
\left\{\,#1 \,\left|\,
\begin{array}{@{}l@{}}#2\end{array}
\right. \,\right\}}}
\newcommand*{\meet}{\mathbin{\otimes}}
\newcommand*{\join}{\mathbin{\oplus}}
%% Logic notation.
\newcommand*{\entails}{\mathrel{\vdash}}
\newcommand*{\sentails}{\mathrel{\Vdash}}
\newcommand*{\Nentails}{\mathrel{\nvdash}}
\newcommand*{\Nsentails}{\mathrel{\nVdash}}
\newcommand*{\entailss}[1]{\mathrel{\vdash_{#1}}}
\newcommand*{\Entailss}[1]{\mathrel{\dashv_{#1}}}
\newcommand*{\sentailss}[1]{\mathrel{\Vdash_{#1}}}
\newcommand*{\Nentailss}[1]{\mathrel{\nvdash_{#1}}}
\newcommand*{\bigland}{\mathop{\bigwedge}\limits}
\newcommand*{\biglor}{\mathop{\bigvee}\limits}
\newcommand*{\piff}{\mathrel{\leftrightarrow}}
\newcommand*{\pimplies}{\mathrel{\rightarrow}}
\newcommand*{\pimplied}{\mathrel{\leftarrow}}
\newcommand*{\st}{\mathrel{.}}
\newcommand*{\itc}{\mathrel{:}}
%% Integer division and reminder binary operators.
\newcommand*{\bdiv}{\mathbin{\mathrm{div}}}
\newcommand*{\brem}{\mathbin{\mathrm{rem}}}
%% True and false
\newcommand*{\false}{\mathord{\textbf{\textup{0}}}}
\newcommand*{\true}{\mathord{\textbf{\textup{1}}}}
%% Things that hold by definition.
\newcommand*{\defrel}[1]{\mathrel{\buildrel \mathrm{def} \over {#1}}}
\newcommand*{\defeq}{\defrel{=}}
\newcommand*{\defiff}{\defrel{\Longleftrightarrow}}
% Arbitrary relation symbol.
\newcommand*{\relsym}{\mathrel{\bowtie}}
\newcommand*{\relsyms}[1]{\mathrel{\bowtie_{#1}}}
% Absolute value.
\newcommand*{\abs}[1]{\lvert #1 \rvert}
% Vectors.
\renewcommand*{\vec}[1]{\mathchoice{\mbox{\boldmath$\displaystyle#1$}}
{\mbox{\boldmath$\textstyle#1$}}
{\mbox{\boldmath$\scriptstyle#1$}}
{\mbox{\boldmath$\scriptscriptstyle#1$}}}
\newcommand*{\vect}[1]{\vec{#1}}
% Matrix functions.
\newcommand*{\transpose}{\mathrm{T}}
% Hulls.
\newcommand*{\linearhull}{\mathop{\mathrm{linear.hull}}}
\newcommand*{\conichull}{\mathop{\mathrm{conic.hull}}}
\newcommand*{\affinehull}{\mathop{\mathrm{affine.hull}}}
\newcommand*{\convexhull}{\mathop{\mathrm{convex.hull}}}
\newcommand*{\NNChull}{\mathop{\mathrm{nnc.hull}}}
\newcommand*{\inthull}{\mathop{\mathrm{int.hull}}}
\newcommand*{\intaffinehull}{\mathop{\mathrm{int.affine.hull}}}
% Polyhedron functions.
\newcommand*{\prank}{\mathop{\mathrm{rank}}}
\newcommand*{\pdim}{\mathop{\mathrm{dim}}}
\newcommand*{\linspace}{\mathop{\mathrm{lin.space}}}
\newcommand*{\cone}{\mathop{\mathrm{cone}}}
% Widening
\newcommand*{\widen}{\mathrel{\nabla}}
% Powerset notation
\newcommand*{\pnonredmap}{\mathop{\Omega^{\scriptscriptstyle\sseq}_{\scriptscriptstyle {\CPset_n}}}\nolimits}
\newcommand*{\pnonredmapi}[1]{\mathop{\Omega^{\scriptscriptstyle\sseq}_{\scriptscriptstyle {\CPset_{#1}}}}\nolimits}
\newcommand*{\nonredmap}{\mathop{\Omega^{\scriptscriptstyle\entails}_{\scriptscriptstyle D}}\nolimits}
\newcommand*{\wpf}{\mathop{\wp_\mathrm{f}}\nolimits}
\newcommand*{\wpfn}[2]{\mathord{\wp_\mathrm{fn}^{\scriptscriptstyle #2}}(#1)}
\newcommand*{\smallP}{{\scriptscriptstyle\mathrm{P}}}
\newcommand*{\entailsP}{\entailss{\smallP}}
\newcommand*{\NentailsP}{\Nentailss{\smallP}}
\newcommand*{\sentailsP}{\sentailss{\smallP}}
% Interval floating point arithmetics
\newcommand*{\asifp}{\oplus^{\#}}
\newcommand*{\adifp}{\ominus^{\#}}
\newcommand*{\adivifp}{\oslash^{\#}}
\newcommand*{\amifp}{\otimes^{\#}}
% Linear form arithmetics
\newcommand*{\aslf}{\boxplus^{\#}}
\newcommand*{\adlf}{\boxminus^{\#}}
\newcommand*{\adivlf}{\boxslash^{\#}}
\newcommand*{\amlf}{\boxtimes^{\#}}
\newcommand*{\linexpr}[1]{\llparenthesis #1 \rrparenthesis}
\newcommand*{\linexprenv}[3]{\llparenthesis #1 \rrparenthesis \left \llbracket #2, #3 \right \rrbracket}