<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: Assigning values with a list of arguments</TITLE> <META NAME="description" CONTENT="APRON 0.9.10: Assigning values with a list of arguments"> <META NAME="keywords" CONTENT="APRON 0.9.10: Assigning values with a list of arguments"> <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="SEC99"></A> <TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0> <TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="apron_62.html#SEC98"> < </A>]</TD> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="apron_64.html#SEC100"> > </A>]</TD> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="apron_64.html#SEC100"> << </A>]</TD> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="apron_57.html#SEC93"> Up </A>]</TD> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="apron_66.html#SEC102"> >> </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> <H4> Assigning values with a list of arguments </H4> <!--docid::SEC150::--> <P> <A NAME="IDX397"></A> <DL> <DT><U>datatype:</U> <B>ap_coefftag_t</B> <DD><TABLE><tr><td> </td><td class=example><pre>typedef enum ap_coefftag_t { AP_COEFF, /* waiting for a coeff_t* object and a dimension */ AP_COEFF_S, /* waiting for a scalar_t* object and a dimension */ AP_COEFF_S_MPQ, /* waiting for a mpq_t object and a dimension */ AP_COEFF_S_INT, /* waiting for a int object and a dimension */ AP_COEFF_S_FRAC, /* waiting for 2 int objects and a dimension */ AP_COEFF_S_DOUBLE, /* waiting for a double object and a dimension */ AP_COEFF_I, /* waiting for a interval_t* object and a dimension */ AP_COEFF_I_SCALAR, /* waiting for 2 scalar_t* objects and a dimension */ AP_COEFF_I_MPQ, /* waiting for 2 mpq_t objects and a dimension */ AP_COEFF_I_INT, /* waiting for 2 int objects and a dimension */ AP_COEFF_I_FRAC, /* waiting for 4 int objects and a dimension */ AP_COEFF_I_DOUBLE, /* waiting for 2 double objects and a dimension */ AP_CST, /* waiting for a coeff_t* object */ AP_CST_S, /* waiting for a scalar_t* object */ AP_CST_S_MPQ, /* waiting for a mpq_t object */ AP_CST_S_INT, /* waiting for a int object */ AP_CST_S_FRAC, /* waiting for 2 int objects */ AP_CST_S_DOUBLE, /* waiting for a double object */ AP_CST_I, /* waiting for a interval_t* object */ AP_CST_I_SCALAR, /* waiting for 2 scalar_t* objects */ AP_CST_I_MPQ, /* waiting for 2 mpq_t objects */ AP_CST_I_INT, /* waiting for 2 int objects */ AP_CST_I_FRAC, /* waiting for 4 int objects */ AP_CST_I_DOUBLE, /* waiting for 2 double objects */ AP_END /* indicating end of the list */ } ap_coefftag_t; </pre></td></tr></table>Tags for <CODE>ap_linexpr0_set_list</CODE> function. </DL> </P><P> <A NAME="IDX398"></A> <DL> <DT><U>Function:</U> bool <B>ap_linexpr0_set_list</B> <I>(ap_linexpr0_t* <VAR>e</VAR>, ...)</I> <DD>This function assign the linear expression <VAR>E</VAR> from a list of tags of type <CODE>ap_coefftag_t</CODE>, each followed by a number of arguments as specified in the definition of the tye <CODE>ap_coefftag_t</CODE>. The list should end with the tag <CODE>AP_COEFF_END</CODE>. </P><P> Return <CODE>true</CODE> in case <CODE>ap_linexpr0_coeffref(e,dim)</CODE> returns NULL for one of the dimensions involved. </P><P> Here is a typical example: <TABLE><tr><td> </td><td class=example><pre>ap_linexpr0_set_list(e, AP_COEFF_S_INT, 3, 0, AP_COEFF_S_FRAC, 3,2, 1, AP_COEFF_S_DOUBLE, 4.1, 2, AP_CST_I_DOUBLE, -2.4, 3.6, AP_END); /* Do not forget the last tatg ! */ </pre></td></tr></table>which transforms an null expression into <CODE>3 x0 + 3/2 x1 + 4.1 x2 + [-2.4,3.6]</CODE> and is equivalent to: <TABLE><tr><td> </td><td class=example><pre>ap_linexpr0_set_coeff_scalar_int(e,0, 3); ap_linexpr0_set_coeff_scalar_frac(e,1, 3,2); ap_linexpr0_set_coeff_scalar_double(e,2, 4.1); ap_linexpr0_set_cst_interval_double(e, -2.4, 3.6); </pre></td></tr></table></DL> </P><P> <HR SIZE=1> <TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0> <TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="apron_62.html#SEC98"> < </A>]</TD> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="apron_64.html#SEC100"> > </A>]</TD> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="apron_64.html#SEC100"> << </A>]</TD> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="apron_57.html#SEC93"> Up </A>]</TD> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="apron_66.html#SEC102"> >> </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>