<HTML> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!-- Created on December, 22 2009 by texi2html 1.64 --> <!-- Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author) Karl Berry <karl@freefriends.org> Olaf Bachmann <obachman@mathematik.uni-kl.de> and many others. Maintained by: Olaf Bachmann <obachman@mathematik.uni-kl.de> Send bugs and suggestions to <texi2html@mathematik.uni-kl.de> --> <HEAD> <TITLE>APRON 0.9.10: Abstract values and operations of level 1</TITLE> <META NAME="description" CONTENT="APRON 0.9.10: Abstract values and operations of level 1"> <META NAME="keywords" CONTENT="APRON 0.9.10: Abstract values and operations of level 1"> <META NAME="resource-type" CONTENT="document"> <META NAME="distribution" CONTENT="global"> <META NAME="Generator" CONTENT="texi2html 1.64"> </HEAD> <BODY LANG="" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#800080" ALINK="#FF0000"> <A NAME="SEC123"></A> <TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0> <TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="apron_86.html#SEC122"> < </A>]</TD> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="apron_88.html#SEC124"> > </A>]</TD> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="apron_82.html#SEC118"> << </A>]</TD> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="apron_54.html#SEC90"> Up </A>]</TD> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="apron_104.html#SEC140"> >> </A>]</TD> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="apron.html#SEC_Top">Top</A>]</TD> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="apron_toc.html#SEC_Contents">Contents</A>]</TD> <TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="apron_abt.html#SEC_About"> ? </A>]</TD> </TR></TABLE> <HR SIZE=1> <H2> Abstract values and operations of level 1 (<TT>`ap_abstract1.h'</TT>) </H2> <!--docid::SEC123::--> <P> <A NAME="IDX291"></A> <DL> <DT><U>datatype:</U> <B>ap_abstract1_t</B> <DD>Datatype for abstract values at level 1. </P><P> For information: <TABLE><tr><td> </td><td class=example><pre>typedef struct ap_abstract1_t { ap_abstract0_t* abstract0; ap_environment_t* env; } ap_abstract1_t; /* data structure invariant: ap_abstract0_integer_dimension(man,abstract0)== env->intdim && ap_abstract0_real_dimension(man,abstract0)== env->realdim */ </pre></td></tr></table></DL> </P><P> <A NAME="IDX292"></A> <DL> <DT><U>datatype:</U> <B>ap_box1_t</B> <DD><TABLE><tr><td> </td><td class=example><pre>typedef struct ap_box1_t { ap_interval_t** p; ap_environment_t* env; } ap_box1_t; void ap_box1_fprint(FILE* stream, ap_box1_t* box); void ap_box1_clear(ap_box1_t* box); </pre></td></tr></table></DL> </P><P> Most operations are offered in 2 versions: <EM>functional</EM> or <EM>destructive</EM> See section <A HREF="apron_129.html#SEC165">Abstract values and operations of level 0 (<TT>`ap_abstract0.h'</TT>)</A>. </P><P> We remind the policy for redimensioning (see section <A HREF="apron_54.html#SEC90">Level 1 of the interface</A>): </P><P> <UL> <LI> For functions taking one abstract value and one expression (or constraint or generator, or array of ...), the environment of the expression should be a sub-environment of the environment of the abstract value. The environment of the result is the environment of the argument abstract value. <LI> For functions taking several abstract values, their environments should be the same. Otherwise, it is up to the user to move them to a common super-environment (see section <A HREF="apron_56.html#SEC92">Environments (<TT>`ap_environment.h'</TT>)</A>). </UL> <P> <BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> <TR><TD ALIGN="left" VALIGN="TOP"><A HREF="apron_88.html#SEC124">Allocating abstract values of level 1</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP"></TD></TR> <TR><TD ALIGN="left" VALIGN="TOP"><A HREF="apron_89.html#SEC125">Control of internal representation of abstract values of level 1</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP"></TD></TR> <TR><TD ALIGN="left" VALIGN="TOP"><A HREF="apron_90.html#SEC126">Printing abstract values of level 1</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP"></TD></TR> <TR><TD ALIGN="left" VALIGN="TOP"><A HREF="apron_91.html#SEC127">Serialization of abstract values of level 1</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP"></TD></TR> </TABLE> <br> Constructors, Accessors, Tests and Extraction of properties <br> <TABLE BORDER=0 CELLSPACING=0> <TR><TD ALIGN="left" VALIGN="TOP"><A HREF="apron_92.html#SEC128">Constructors for abstract values of level 1</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP"></TD></TR> <TR><TD ALIGN="left" VALIGN="TOP"><A HREF="apron_93.html#SEC129">Accessors for abstract values of level 1</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP"></TD></TR> <TR><TD ALIGN="left" VALIGN="TOP"><A HREF="apron_94.html#SEC130">Tests on abstract values of level 1</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP"></TD></TR> <TR><TD ALIGN="left" VALIGN="TOP"><A HREF="apron_95.html#SEC131">Extraction of properties of abstract values of level 1</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP"></TD></TR> </TABLE> <br> Operations <br> <TABLE BORDER=0 CELLSPACING=0> <TR><TD ALIGN="left" VALIGN="TOP"><A HREF="apron_96.html#SEC132">Meet and Join of abstract values of level 1</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP"></TD></TR> <TR><TD ALIGN="left" VALIGN="TOP"><A HREF="apron_97.html#SEC133">Assignements and Substitutions of abstract values of level 1</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP"></TD></TR> <TR><TD ALIGN="left" VALIGN="TOP"><A HREF="apron_98.html#SEC134">Existential quantification of abstract values of level 1</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP"></TD></TR> <TR><TD ALIGN="left" VALIGN="TOP"><A HREF="apron_99.html#SEC135">Change of environments of abstract values of level 1</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP"></TD></TR> <TR><TD ALIGN="left" VALIGN="TOP"><A HREF="apron_100.html#SEC136">Expansion and Folding of dimensions in abstract values of level 1</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP"></TD></TR> <TR><TD ALIGN="left" VALIGN="TOP"><A HREF="apron_101.html#SEC137">Widening of abstract values of level 1</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP"></TD></TR> <TR><TD ALIGN="left" VALIGN="TOP"><A HREF="apron_102.html#SEC138">Topological closure of abstract values of level 1</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP"></TD></TR> </TABLE> <br> Additional functions <br> <TABLE BORDER=0 CELLSPACING=0> <TR><TD ALIGN="left" VALIGN="TOP"><A HREF="apron_103.html#SEC139">Additional functions on abstract values of level 1</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP"></TD></TR> </TABLE></BLOCKQUOTE> <P> <A NAME="Allocating abstract values of level 1"></A> <HR SIZE=1> <TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0> <TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="apron_86.html#SEC122"> < </A>]</TD> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="apron_88.html#SEC124"> > </A>]</TD> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="apron_82.html#SEC118"> << </A>]</TD> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="apron_54.html#SEC90"> Up </A>]</TD> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="apron_104.html#SEC140"> >> </A>]</TD> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="apron.html#SEC_Top">Top</A>]</TD> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="apron_toc.html#SEC_Contents">Contents</A>]</TD> <TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="apron_abt.html#SEC_About"> ? </A>]</TD> </TR></TABLE> <BR> <FONT SIZE="-1"> This document was generated by <I>Bertrand Jeannet</I> on <I>December, 22 2009</I> using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html "><I>texi2html</I></A> </BODY> </HTML>