[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Expansion and Folding of dimensions of abstract values of level 0

Formally, expanding z into z and w in abstract value (predicate) P is defined by expand(P(x,y,z),z,w) = P(x,y,z) and P(x,y,w).

Conversely, folding z and w into z in abstract value (predicate) Q is defined by fold(Q(x,y,z,w),z,w) = (exists w: Q(x,y,z,w)) or (exists z:Q(x,y,z,w)[z<-w]).

Function: ap_abstract0_t* ap_abstract0_expand (ap_manager_t* man, bool destructive, ap_abstract0_t* a, ap_dim_t dim, size_t n)
Expand the dimension dim into itself + n additional dimensions.

It results in n+1 unrelated dimensions having same relations with other dimensions. The n+1 dimensions are put as follows:

Function: ap_abstract0_t* ap_abstract0_fold (ap_manager_t* man, bool destructive, ap_abstract0_t* a, const ap_dim_t* tdim, size_t size)
Fold the dimensions in the array tdim of size size>=1 and put the result in the first dimension in the array. The other dimensions of the array are then removed.



This document was generated on December, 22 2006 using texi2html