%%
%% $Id$
%%
%% Copyright 1989-2016 MINES ParisTech
%%
%% This file is part of PIPS.
%%
%% PIPS 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
%% any later version.
%%
%% PIPS 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 PIPS.  If not, see <http://www.gnu.org/licenses/>.
%%
\documentclass[a4paper]{article}

\usepackage[latin1]{inputenc}
\usepackage{newgen_domain}
\usepackage[backref,pagebackref]{hyperref}

%%\input{/usr/share/local/lib/tex/macroslocales/Dimensions.tex}

\title{HPFC \\ (High Performance Fortran Compiler) \\ datastructure}
\author{Fabien Coelho\\
                \\
        CRI, École des mines de Paris}

\begin{document}
\maketitle
\sloppy

\section*{Introduction}

\domain{import align from "hpf.newgen"}
{}
\domain{import distribute from "hpf.newgen"}
{}
\domain{import entity from "ri.newgen"}
{}
\domain{import entity\_int from "ri.newgen"}
{}
\domain{import statement from "ri.newgen"}
{}
\domain{import reduction\_operator from "reductions\_private.newgen"}
{}

\domain{entities = list:entity*}
{}
\domain{entity\_entities = entity->entities}
{}

\domain{renaming = old:entity x new:entity}
{}
\domain{statement\_renamings = persistant statement->renaming*}
{}
\domain{statement\_entities = persistant statement->entities}
{}

\domain{entitymap = entity->entity}
{}

\domain{overlap = lower:int x upper:int}
{}
\domain{overlapsmap = entity->overlap*}
{}

\domain{hpf\_newdecl = \{ none , alpha , beta , gamma , delta \}}
{}
\domain{hpf\_newdecls = dimensions:hpf\_newdecl*}
{}

\domain{alignmap = entity->align}
{}
\domain{distributemap = entity->distribute}
{}
\domain{newdeclmap = entity->hpf\_newdecls}
{}

\domain{entity\_status = new\_host:entitymap x new\_node:entitymap x old\_host:entitymap x old\_node:entitymap x referenced:entity\_int}
{}

\domain{data\_status = newdeclmap x alignmap x distributemap x arrays:entity* x templates:entity* x processors:entity*}
{}

\domain{numbers\_status = numbermap:entity\_int x arrays:int x templates:int x processors:int}
{}

\domain{dynamic\_status = dynamics:entity\_entities x primary:entitymap x renamings:statement\_renamings x tokeep:statement\_entities}
{}

\domain{remapping = renaming x referenced:entity*}
{}

\domain{hpfc\_status = overlapsmap x data\_status x numbers\_status x entity\_status x commons:entity* x dynamic\_status x pures:entity* x ios:entity* x computed:remapping* x reductions:statement\_entities}
{}

\domain{hpfc\_reductions = initial:entity x replacement:entity x operator:reduction\_operator}
{}

\end{document}
