Home | History | Annotate | Download | only in isl
      1 #ifndef ISL_UNION_MAP_H
      2 #define ISL_UNION_MAP_H
      3 
      4 #include <isl/space.h>
      5 #include <isl/map_type.h>
      6 #include <isl/union_map_type.h>
      7 #include <isl/printer.h>
      8 
      9 #if defined(__cplusplus)
     10 extern "C" {
     11 #endif
     12 
     13 __isl_constructor
     14 __isl_give isl_union_map *isl_union_map_from_basic_map(
     15 	__isl_take isl_basic_map *bmap);
     16 __isl_constructor
     17 __isl_give isl_union_map *isl_union_map_from_map(__isl_take isl_map *map);
     18 __isl_give isl_union_map *isl_union_map_empty(__isl_take isl_space *dim);
     19 __isl_give isl_union_map *isl_union_map_copy(__isl_keep isl_union_map *umap);
     20 void *isl_union_map_free(__isl_take isl_union_map *umap);
     21 
     22 isl_ctx *isl_union_map_get_ctx(__isl_keep isl_union_map *umap);
     23 __isl_give isl_space *isl_union_map_get_space(__isl_keep isl_union_map *umap);
     24 
     25 __isl_give isl_union_map *isl_union_map_universe(
     26 	__isl_take isl_union_map *umap);
     27 __isl_give isl_set *isl_union_map_params(__isl_take isl_union_map *umap);
     28 __isl_give isl_union_set *isl_union_map_domain(__isl_take isl_union_map *umap);
     29 __isl_give isl_union_set *isl_union_map_range(__isl_take isl_union_map *umap);
     30 __isl_give isl_union_map *isl_union_map_domain_map(
     31 	__isl_take isl_union_map *umap);
     32 __isl_give isl_union_map *isl_union_map_range_map(
     33 	__isl_take isl_union_map *umap);
     34 __isl_give isl_union_map *isl_union_map_from_domain(
     35 	__isl_take isl_union_set *uset);
     36 __isl_give isl_union_map *isl_union_map_from_range(
     37 	__isl_take isl_union_set *uset);
     38 
     39 __isl_export
     40 __isl_give isl_union_map *isl_union_map_affine_hull(
     41 	__isl_take isl_union_map *umap);
     42 __isl_export
     43 __isl_give isl_union_map *isl_union_map_polyhedral_hull(
     44 	__isl_take isl_union_map *umap);
     45 __isl_give isl_union_map *isl_union_map_simple_hull(
     46 	__isl_take isl_union_map *umap);
     47 __isl_export
     48 __isl_give isl_union_map *isl_union_map_coalesce(
     49 	__isl_take isl_union_map *umap);
     50 __isl_give isl_union_map *isl_union_map_compute_divs(
     51 	__isl_take isl_union_map *umap);
     52 __isl_export
     53 __isl_give isl_union_map *isl_union_map_lexmin(__isl_take isl_union_map *umap);
     54 __isl_export
     55 __isl_give isl_union_map *isl_union_map_lexmax(__isl_take isl_union_map *umap);
     56 
     57 __isl_give isl_union_map *isl_union_map_add_map(__isl_take isl_union_map *umap,
     58 	__isl_take isl_map *map);
     59 __isl_export
     60 __isl_give isl_union_map *isl_union_map_union(__isl_take isl_union_map *umap1,
     61 	__isl_take isl_union_map *umap2);
     62 __isl_export
     63 __isl_give isl_union_map *isl_union_map_subtract(
     64 	__isl_take isl_union_map *umap1, __isl_take isl_union_map *umap2);
     65 __isl_export
     66 __isl_give isl_union_map *isl_union_map_intersect(
     67 	__isl_take isl_union_map *umap1, __isl_take isl_union_map *umap2);
     68 __isl_export
     69 __isl_give isl_union_map *isl_union_map_intersect_params(
     70 	__isl_take isl_union_map *umap, __isl_take isl_set *set);
     71 __isl_give isl_union_map *isl_union_map_product(__isl_take isl_union_map *umap1,
     72 	__isl_take isl_union_map *umap2);
     73 __isl_give isl_union_map *isl_union_map_domain_product(
     74 	__isl_take isl_union_map *umap1, __isl_take isl_union_map *umap2);
     75 __isl_give isl_union_map *isl_union_map_range_product(
     76 	__isl_take isl_union_map *umap1, __isl_take isl_union_map *umap2);
     77 __isl_give isl_union_map *isl_union_map_flat_range_product(
     78 	__isl_take isl_union_map *umap1, __isl_take isl_union_map *umap2);
     79 __isl_export
     80 __isl_give isl_union_map *isl_union_map_gist(__isl_take isl_union_map *umap,
     81 	__isl_take isl_union_map *context);
     82 __isl_export
     83 __isl_give isl_union_map *isl_union_map_gist_params(
     84 	__isl_take isl_union_map *umap, __isl_take isl_set *set);
     85 __isl_export
     86 __isl_give isl_union_map *isl_union_map_gist_domain(
     87 	__isl_take isl_union_map *umap, __isl_take isl_union_set *uset);
     88 __isl_export
     89 __isl_give isl_union_map *isl_union_map_gist_range(
     90 	__isl_take isl_union_map *umap, __isl_take isl_union_set *uset);
     91 
     92 __isl_export
     93 __isl_give isl_union_map *isl_union_map_intersect_domain(
     94 	__isl_take isl_union_map *umap, __isl_take isl_union_set *uset);
     95 __isl_export
     96 __isl_give isl_union_map *isl_union_map_intersect_range(
     97 	__isl_take isl_union_map *umap, __isl_take isl_union_set *uset);
     98 
     99 __isl_export
    100 __isl_give isl_union_map *isl_union_map_subtract_domain(
    101 	__isl_take isl_union_map *umap, __isl_take isl_union_set *dom);
    102 __isl_export
    103 __isl_give isl_union_map *isl_union_map_subtract_range(
    104 	__isl_take isl_union_map *umap, __isl_take isl_union_set *dom);
    105 
    106 __isl_export
    107 __isl_give isl_union_map *isl_union_map_apply_domain(
    108 	__isl_take isl_union_map *umap1, __isl_take isl_union_map *umap2);
    109 __isl_export
    110 __isl_give isl_union_map *isl_union_map_apply_range(
    111 	__isl_take isl_union_map *umap1, __isl_take isl_union_map *umap2);
    112 __isl_export
    113 __isl_give isl_union_map *isl_union_map_reverse(__isl_take isl_union_map *umap);
    114 __isl_give isl_union_map *isl_union_map_from_domain_and_range(
    115 	__isl_take isl_union_set *domain, __isl_take isl_union_set *range);
    116 
    117 __isl_export
    118 __isl_give isl_union_map *isl_union_map_detect_equalities(
    119 	__isl_take isl_union_map *umap);
    120 __isl_export
    121 __isl_give isl_union_set *isl_union_map_deltas(__isl_take isl_union_map *umap);
    122 __isl_give isl_union_map *isl_union_map_deltas_map(
    123 	__isl_take isl_union_map *umap);
    124 __isl_export
    125 __isl_give isl_union_map *isl_union_set_identity(__isl_take isl_union_set *uset);
    126 
    127 __isl_export
    128 int isl_union_map_is_empty(__isl_keep isl_union_map *umap);
    129 __isl_export
    130 int isl_union_map_is_single_valued(__isl_keep isl_union_map *umap);
    131 int isl_union_map_plain_is_injective(__isl_keep isl_union_map *umap);
    132 __isl_export
    133 int isl_union_map_is_injective(__isl_keep isl_union_map *umap);
    134 __isl_export
    135 int isl_union_map_is_bijective(__isl_keep isl_union_map *umap);
    136 
    137 __isl_export
    138 int isl_union_map_is_subset(__isl_keep isl_union_map *umap1,
    139 	__isl_keep isl_union_map *umap2);
    140 __isl_export
    141 int isl_union_map_is_equal(__isl_keep isl_union_map *umap1,
    142 	__isl_keep isl_union_map *umap2);
    143 __isl_export
    144 int isl_union_map_is_strict_subset(__isl_keep isl_union_map *umap1,
    145 	__isl_keep isl_union_map *umap2);
    146 
    147 int isl_union_map_n_map(__isl_keep isl_union_map *umap);
    148 __isl_export
    149 int isl_union_map_foreach_map(__isl_keep isl_union_map *umap,
    150 	int (*fn)(__isl_take isl_map *map, void *user), void *user);
    151 __isl_give int isl_union_map_contains(__isl_keep isl_union_map *umap,
    152 	__isl_keep isl_space *dim);
    153 __isl_give isl_map *isl_union_map_extract_map(__isl_keep isl_union_map *umap,
    154 	__isl_take isl_space *dim);
    155 __isl_give isl_map *isl_map_from_union_map(__isl_take isl_union_map *umap);
    156 
    157 __isl_give isl_basic_map *isl_union_map_sample(__isl_take isl_union_map *umap);
    158 
    159 __isl_give isl_union_map *isl_union_map_fixed_power(
    160 	__isl_take isl_union_map *umap, isl_int exp);
    161 __isl_give isl_union_map *isl_union_map_power(__isl_take isl_union_map *umap,
    162 	int *exact);
    163 __isl_give isl_union_map *isl_union_map_transitive_closure(
    164 	__isl_take isl_union_map *umap, int *exact);
    165 
    166 __isl_give isl_union_map *isl_union_map_lex_lt_union_map(
    167 	__isl_take isl_union_map *umap1, __isl_take isl_union_map *umap2);
    168 __isl_give isl_union_map *isl_union_map_lex_le_union_map(
    169 	__isl_take isl_union_map *umap1, __isl_take isl_union_map *umap2);
    170 __isl_give isl_union_map *isl_union_map_lex_gt_union_map(
    171 	__isl_take isl_union_map *umap1, __isl_take isl_union_map *umap2);
    172 __isl_give isl_union_map *isl_union_map_lex_ge_union_map(
    173 	__isl_take isl_union_map *umap1, __isl_take isl_union_map *umap2);
    174 
    175 __isl_give isl_union_map *isl_union_map_read_from_file(isl_ctx *ctx,
    176 	FILE *input);
    177 __isl_constructor
    178 __isl_give isl_union_map *isl_union_map_read_from_str(isl_ctx *ctx,
    179 	const char *str);
    180 __isl_give isl_printer *isl_printer_print_union_map(__isl_take isl_printer *p,
    181 	__isl_keep isl_union_map *umap);
    182 void isl_union_map_dump(__isl_keep isl_union_map *umap);
    183 
    184 __isl_give isl_union_set *isl_union_map_wrap(__isl_take isl_union_map *umap);
    185 __isl_give isl_union_map *isl_union_set_unwrap(__isl_take isl_union_set *uset);
    186 
    187 __isl_give isl_union_map *isl_union_map_zip(__isl_take isl_union_map *umap);
    188 __isl_give isl_union_map *isl_union_map_curry(__isl_take isl_union_map *umap);
    189 __isl_give isl_union_map *isl_union_map_uncurry(__isl_take isl_union_map *umap);
    190 
    191 __isl_give isl_union_map *isl_union_map_align_params(
    192 	__isl_take isl_union_map *umap, __isl_take isl_space *model);
    193 __isl_give isl_union_set *isl_union_set_align_params(
    194 	__isl_take isl_union_set *uset, __isl_take isl_space *model);
    195 
    196 #if defined(__cplusplus)
    197 }
    198 #endif
    199 
    200 #include <isl/dim.h>
    201 
    202 #endif
    203