<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: Manipulating permutations of dimensions</TITLE> <META NAME="description" CONTENT="APRON 0.9.10: Manipulating permutations of dimensions"> <META NAME="keywords" CONTENT="APRON 0.9.10: Manipulating permutations of dimensions"> <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="SEC143"></A> <TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0> <TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="apron_106.html#SEC142"> < </A>]</TD> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="apron_108.html#SEC144"> > </A>]</TD> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="apron_104.html#SEC140"> << </A>]</TD> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="apron_105.html#SEC141"> Up </A>]</TD> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="apron_108.html#SEC144"> >> </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> <H3> Manipulating permutations of dimensions </H3> <!--docid::SEC143::--> <P> <A NAME="IDX371"></A> <DL> <DT><U>Function:</U> void <B>ap_dimperm_init</B> <I>(ap_dimperm_t* <VAR>perm</VAR>, size_t <VAR>size</VAR>)</I> <DD><A NAME="IDX372"></A> <DT><U>Function:</U> void <B>ap_dimperm_clear</B> <I>(ap_dimperm_t* <VAR>perm</VAR>)</I> <DD>Initialize and clear a dimperm structure. </DL> </P><P> <A NAME="IDX373"></A> <DL> <DT><U>Function:</U> ap_dimperm_t* <B>ap_dimperm_alloc</B> <I>(size_t <VAR>size</VAR>)</I> <DD><A NAME="IDX374"></A> <DT><U>Function:</U> void <B>ap_dimperm_free</B> <I>(ap_dimperm_t* <VAR>perm</VAR>)</I> <DD>Allocate and free a dimperm structure. </DL> </P><P> <A NAME="IDX375"></A> <DL> <DT><U>Function:</U> void <B>ap_dimperm_fprint</B> <I>(FILE* <VAR>stream</VAR>, ap_dimperm_t* <VAR>perm</VAR>)</I> <DD>Print the permutation. </DL> </P><P> <A NAME="IDX376"></A> <DL> <DT><U>Function:</U> void <B>ap_dimperm_set_id</B> <I>(ap_dimperm_t* <VAR>perm</VAR>)</I> <DD>Fill the already allocated <VAR>perm</VAR> with the identity permutation. </DL> </P><P> <A NAME="IDX377"></A> <DL> <DT><U>Function:</U> void <B>ap_dimperm_compose</B> <I>(ap_dimperm_t* <VAR>perm</VAR>, ap_dimperm_t* <VAR>perm1</VAR>, ap_dimperm_t* <VAR>perm2</VAR>)</I> <DD>Compose the 2 permutations <VAR>perm1</VAR> and <VAR>perm2</VAR> (in this order) and store the result the already allocated perm. The sizes of permutations are supposed to be equal. At exit, we have <CODE>perm.dim[i] = perm2.dim[perm1.dim[i]]</CODE>. </DL> </P><P> <A NAME="IDX378"></A> <DL> <DT><U>Function:</U> void <B>ap_dimperm_invert</B> <I>(ap_dimperm_t* <VAR>nperm</VAR>, ap_dimperm_t* <VAR>perm</VAR>)</I> <DD>Invert the permutation <VAR>perm</VAR> and store it in the already allocated <VAR>nperm</VAR>. The sizes of permutations are supposed to be equal. </DL> </P><P> <A NAME="Linear expressions of level 0"></A> <HR SIZE=1> <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>