1 #ifndef CLOOG_UNION_DOMAIN_H
2 #define CLOOG_UNION_DOMAIN_H
4 #if defined(__cplusplus)
9 * CloogNamedDomainList structure:
10 * this structure reprensents a node of a linked list of CloogDomain structures.
12 struct cloognameddomainlist
{
13 CloogDomain
*domain
; /**< An element of the list. */
14 CloogScattering
*scattering
; /**< Scattering function for domain. */
15 char *name
; /**< Name of the domain. */
16 void *usr
; /**< A pointer for library user's convenience. */
17 struct cloognameddomainlist
*next
;/**< Pointer to the next element of the list.*/
19 typedef struct cloognameddomainlist CloogNamedDomainList
;
22 * A structure representing the input domains and scattering functions.
24 struct clooguniondomain
{
27 CloogNamedDomainList
*domain
;
28 CloogNamedDomainList
**next_domain
;
30 typedef struct clooguniondomain CloogUnionDomain
;
32 enum cloog_dim_type
{ CLOOG_PARAM
, CLOOG_ITER
, CLOOG_SCAT
};
34 CloogUnionDomain
*cloog_union_domain_read(FILE *file
, int nb_par
,
35 CloogOptions
*options
);
36 CloogUnionDomain
*cloog_union_domain_alloc(int nb_par
);
37 CloogUnionDomain
*cloog_union_domain_add_domain(CloogUnionDomain
*ud
,
38 const char *name
, CloogDomain
*domain
, CloogScattering
*scattering
,
40 CloogUnionDomain
*cloog_union_domain_set_name(CloogUnionDomain
*ud
,
41 enum cloog_dim_type type
, int index
, const char *name
);
42 void cloog_union_domain_free(CloogUnionDomain
*ud
);
44 #if defined(__cplusplus)