Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-05-10 08:48:19

0001 #ifndef ISL_UNION_MAP_H
0002 #define ISL_UNION_MAP_H
0003 
0004 #include <isl/stdint.h>
0005 #include <isl/space_type.h>
0006 #include <isl/aff_type.h>
0007 #include <isl/map_type.h>
0008 #include <isl/union_map_type.h>
0009 #include <isl/printer.h>
0010 #include <isl/val_type.h>
0011 
0012 #if defined(__cplusplus)
0013 extern "C" {
0014 #endif
0015 
0016 isl_size isl_union_map_dim(__isl_keep isl_union_map *umap,
0017     enum isl_dim_type type);
0018 isl_bool isl_union_map_involves_dims(__isl_keep isl_union_map *umap,
0019     enum isl_dim_type type, unsigned first, unsigned n);
0020 __isl_give isl_id *isl_union_map_get_dim_id(__isl_keep isl_union_map *umap,
0021     enum isl_dim_type type, unsigned pos);
0022 
0023 __isl_constructor
0024 __isl_give isl_union_map *isl_union_map_from_basic_map(
0025     __isl_take isl_basic_map *bmap);
0026 __isl_export
0027 __isl_give isl_union_map *isl_map_to_union_map(__isl_take isl_map *map);
0028 __isl_constructor
0029 __isl_give isl_union_map *isl_union_map_from_map(__isl_take isl_map *map);
0030 __isl_overload
0031 __isl_give isl_union_map *isl_union_map_empty_ctx(isl_ctx *ctx);
0032 __isl_give isl_union_map *isl_union_map_empty_space(
0033     __isl_take isl_space *space);
0034 __isl_give isl_union_map *isl_union_map_empty(__isl_take isl_space *space);
0035 __isl_give isl_union_map *isl_union_map_copy(__isl_keep isl_union_map *umap);
0036 __isl_null isl_union_map *isl_union_map_free(__isl_take isl_union_map *umap);
0037 
0038 isl_ctx *isl_union_map_get_ctx(__isl_keep isl_union_map *umap);
0039 __isl_export
0040 __isl_give isl_space *isl_union_map_get_space(__isl_keep isl_union_map *umap);
0041 
0042 __isl_give isl_union_map *isl_union_map_reset_user(
0043     __isl_take isl_union_map *umap);
0044 
0045 int isl_union_map_find_dim_by_name(__isl_keep isl_union_map *umap,
0046     enum isl_dim_type type, const char *name);
0047 
0048 __isl_export
0049 __isl_give isl_union_map *isl_union_map_universe(
0050     __isl_take isl_union_map *umap);
0051 __isl_give isl_set *isl_union_map_params(__isl_take isl_union_map *umap);
0052 __isl_export
0053 __isl_give isl_union_set *isl_union_map_domain(__isl_take isl_union_map *umap);
0054 __isl_export
0055 __isl_give isl_union_set *isl_union_map_range(__isl_take isl_union_map *umap);
0056 __isl_export
0057 __isl_give isl_union_map *isl_union_map_domain_map(
0058     __isl_take isl_union_map *umap);
0059 __isl_export
0060 __isl_give isl_union_pw_multi_aff *isl_union_map_domain_map_union_pw_multi_aff(
0061     __isl_take isl_union_map *umap);
0062 __isl_export
0063 __isl_give isl_union_map *isl_union_map_range_map(
0064     __isl_take isl_union_map *umap);
0065 __isl_give isl_union_map *isl_union_set_wrapped_domain_map(
0066     __isl_take isl_union_set *uset);
0067 __isl_export
0068 __isl_give isl_union_map *isl_union_map_from_domain(
0069     __isl_take isl_union_set *uset);
0070 __isl_export
0071 __isl_give isl_union_map *isl_union_map_from_range(
0072     __isl_take isl_union_set *uset);
0073 
0074 __isl_export
0075 __isl_give isl_union_map *isl_union_map_affine_hull(
0076     __isl_take isl_union_map *umap);
0077 __isl_export
0078 __isl_give isl_union_map *isl_union_map_polyhedral_hull(
0079     __isl_take isl_union_map *umap);
0080 __isl_give isl_union_map *isl_union_map_remove_redundancies(
0081     __isl_take isl_union_map *umap);
0082 __isl_give isl_union_map *isl_union_map_simple_hull(
0083     __isl_take isl_union_map *umap);
0084 __isl_export
0085 __isl_give isl_union_map *isl_union_map_coalesce(
0086     __isl_take isl_union_map *umap);
0087 __isl_export
0088 __isl_give isl_union_map *isl_union_map_compute_divs(
0089     __isl_take isl_union_map *umap);
0090 __isl_export
0091 __isl_give isl_union_map *isl_union_map_lexmin(__isl_take isl_union_map *umap);
0092 __isl_export
0093 __isl_give isl_union_map *isl_union_map_lexmax(__isl_take isl_union_map *umap);
0094 
0095 __isl_give isl_union_map *isl_union_map_add_map(__isl_take isl_union_map *umap,
0096     __isl_take isl_map *map);
0097 __isl_export
0098 __isl_give isl_union_map *isl_union_map_union(__isl_take isl_union_map *umap1,
0099     __isl_take isl_union_map *umap2);
0100 __isl_export
0101 __isl_give isl_union_map *isl_union_map_subtract(
0102     __isl_take isl_union_map *umap1, __isl_take isl_union_map *umap2);
0103 __isl_export
0104 __isl_give isl_union_map *isl_union_map_intersect(
0105     __isl_take isl_union_map *umap1, __isl_take isl_union_map *umap2);
0106 __isl_export
0107 __isl_give isl_union_map *isl_union_map_intersect_params(
0108     __isl_take isl_union_map *umap, __isl_take isl_set *set);
0109 __isl_export
0110 __isl_give isl_union_map *isl_union_map_product(__isl_take isl_union_map *umap1,
0111     __isl_take isl_union_map *umap2);
0112 __isl_export
0113 __isl_give isl_union_map *isl_union_map_domain_product(
0114     __isl_take isl_union_map *umap1, __isl_take isl_union_map *umap2);
0115 __isl_give isl_union_map *isl_union_map_flat_domain_product(
0116     __isl_take isl_union_map *umap1, __isl_take isl_union_map *umap2);
0117 __isl_export
0118 __isl_give isl_union_map *isl_union_map_range_product(
0119     __isl_take isl_union_map *umap1, __isl_take isl_union_map *umap2);
0120 __isl_give isl_union_map *isl_union_map_flat_range_product(
0121     __isl_take isl_union_map *umap1, __isl_take isl_union_map *umap2);
0122 __isl_export
0123 __isl_give isl_union_map *isl_union_map_domain_factor_domain(
0124     __isl_take isl_union_map *umap);
0125 __isl_export
0126 __isl_give isl_union_map *isl_union_map_domain_factor_range(
0127     __isl_take isl_union_map *umap);
0128 __isl_export
0129 __isl_give isl_union_map *isl_union_map_range_factor_domain(
0130     __isl_take isl_union_map *umap);
0131 __isl_export
0132 __isl_give isl_union_map *isl_union_map_range_factor_range(
0133     __isl_take isl_union_map *umap);
0134 __isl_export
0135 __isl_give isl_union_map *isl_union_map_factor_domain(
0136     __isl_take isl_union_map *umap);
0137 __isl_export
0138 __isl_give isl_union_map *isl_union_map_factor_range(
0139     __isl_take isl_union_map *umap);
0140 __isl_export
0141 __isl_give isl_union_map *isl_union_map_gist(__isl_take isl_union_map *umap,
0142     __isl_take isl_union_map *context);
0143 __isl_export
0144 __isl_give isl_union_map *isl_union_map_gist_params(
0145     __isl_take isl_union_map *umap, __isl_take isl_set *set);
0146 __isl_export
0147 __isl_give isl_union_map *isl_union_map_gist_domain(
0148     __isl_take isl_union_map *umap, __isl_take isl_union_set *uset);
0149 __isl_export
0150 __isl_give isl_union_map *isl_union_map_gist_range(
0151     __isl_take isl_union_map *umap, __isl_take isl_union_set *uset);
0152 
0153 __isl_overload
0154 __isl_give isl_union_map *isl_union_map_intersect_domain_union_set(
0155     __isl_take isl_union_map *umap, __isl_take isl_union_set *uset);
0156 __isl_overload
0157 __isl_give isl_union_map *isl_union_map_intersect_domain_space(
0158     __isl_take isl_union_map *umap, __isl_take isl_space *space);
0159 __isl_give isl_union_map *isl_union_map_intersect_domain(
0160     __isl_take isl_union_map *umap, __isl_take isl_union_set *uset);
0161 __isl_overload
0162 __isl_give isl_union_map *isl_union_map_intersect_range_union_set(
0163     __isl_take isl_union_map *umap, __isl_take isl_union_set *uset);
0164 __isl_overload
0165 __isl_give isl_union_map *isl_union_map_intersect_range_space(
0166     __isl_take isl_union_map *umap, __isl_take isl_space *space);
0167 __isl_give isl_union_map *isl_union_map_intersect_range(
0168     __isl_take isl_union_map *umap, __isl_take isl_union_set *uset);
0169 __isl_export
0170 __isl_give isl_union_map *isl_union_map_intersect_domain_factor_domain(
0171     __isl_take isl_union_map *umap, __isl_take isl_union_map *factor);
0172 __isl_export
0173 __isl_give isl_union_map *isl_union_map_intersect_domain_factor_range(
0174     __isl_take isl_union_map *umap, __isl_take isl_union_map *factor);
0175 __isl_export
0176 __isl_give isl_union_map *isl_union_map_intersect_range_factor_domain(
0177     __isl_take isl_union_map *umap, __isl_take isl_union_map *factor);
0178 __isl_export
0179 __isl_give isl_union_map *isl_union_map_intersect_range_factor_range(
0180     __isl_take isl_union_map *umap, __isl_take isl_union_map *factor);
0181 __isl_overload
0182 __isl_give isl_union_map *
0183 isl_union_map_intersect_domain_wrapped_domain_union_set(
0184     __isl_take isl_union_map *umap, __isl_take isl_union_set *domain);
0185 __isl_overload
0186 __isl_give isl_union_map *
0187 isl_union_map_intersect_range_wrapped_domain_union_set(
0188     __isl_take isl_union_map *umap, __isl_take isl_union_set *domain);
0189 
0190 __isl_export
0191 __isl_give isl_union_map *isl_union_map_subtract_domain(
0192     __isl_take isl_union_map *umap, __isl_take isl_union_set *dom);
0193 __isl_export
0194 __isl_give isl_union_map *isl_union_map_subtract_range(
0195     __isl_take isl_union_map *umap, __isl_take isl_union_set *dom);
0196 
0197 __isl_export
0198 __isl_give isl_union_map *isl_union_map_apply_domain(
0199     __isl_take isl_union_map *umap1, __isl_take isl_union_map *umap2);
0200 __isl_export
0201 __isl_give isl_union_map *isl_union_map_apply_range(
0202     __isl_take isl_union_map *umap1, __isl_take isl_union_map *umap2);
0203 __isl_overload
0204 __isl_give isl_union_map *isl_union_map_preimage_domain_multi_aff(
0205     __isl_take isl_union_map *umap, __isl_take isl_multi_aff *ma);
0206 __isl_overload
0207 __isl_give isl_union_map *isl_union_map_preimage_range_multi_aff(
0208     __isl_take isl_union_map *umap, __isl_take isl_multi_aff *ma);
0209 __isl_overload
0210 __isl_give isl_union_map *isl_union_map_preimage_domain_pw_multi_aff(
0211     __isl_take isl_union_map *umap, __isl_take isl_pw_multi_aff *pma);
0212 __isl_overload
0213 __isl_give isl_union_map *isl_union_map_preimage_range_pw_multi_aff(
0214     __isl_take isl_union_map *umap, __isl_take isl_pw_multi_aff *pma);
0215 __isl_overload
0216 __isl_give isl_union_map *isl_union_map_preimage_domain_multi_pw_aff(
0217     __isl_take isl_union_map *umap, __isl_take isl_multi_pw_aff *mpa);
0218 __isl_overload
0219 __isl_give isl_union_map *isl_union_map_preimage_domain_union_pw_multi_aff(
0220     __isl_take isl_union_map *umap,
0221     __isl_take isl_union_pw_multi_aff *upma);
0222 __isl_overload
0223 __isl_give isl_union_map *isl_union_map_preimage_range_union_pw_multi_aff(
0224     __isl_take isl_union_map *umap,
0225     __isl_take isl_union_pw_multi_aff *upma);
0226 __isl_export
0227 __isl_give isl_union_map *isl_union_map_reverse(__isl_take isl_union_map *umap);
0228 __isl_export
0229 __isl_give isl_union_map *isl_union_map_range_reverse(
0230     __isl_take isl_union_map *umap);
0231 __isl_export
0232 __isl_give isl_union_map *isl_union_map_from_domain_and_range(
0233     __isl_take isl_union_set *domain, __isl_take isl_union_set *range);
0234 
0235 __isl_export
0236 __isl_give isl_union_map *isl_union_map_detect_equalities(
0237     __isl_take isl_union_map *umap);
0238 __isl_export
0239 __isl_give isl_union_set *isl_union_map_deltas(__isl_take isl_union_map *umap);
0240 __isl_give isl_union_map *isl_union_map_deltas_map(
0241     __isl_take isl_union_map *umap);
0242 __isl_export
0243 __isl_give isl_union_map *isl_union_set_identity(__isl_take isl_union_set *uset);
0244 
0245 __isl_overload
0246 __isl_give isl_union_map *isl_union_map_project_out_param_id(
0247     __isl_take isl_union_map *umap, __isl_take isl_id *id);
0248 __isl_overload
0249 __isl_give isl_union_map *isl_union_map_project_out_param_id_list(
0250     __isl_take isl_union_map *umap, __isl_take isl_id_list *list);
0251 __isl_give isl_union_map *isl_union_map_project_out(
0252     __isl_take isl_union_map *umap,
0253     enum isl_dim_type type, unsigned first, unsigned n);
0254 __isl_export
0255 __isl_give isl_union_map *isl_union_map_project_out_all_params(
0256     __isl_take isl_union_map *umap);
0257 __isl_give isl_union_map *isl_union_map_remove_divs(
0258     __isl_take isl_union_map *bmap);
0259 
0260 __isl_export
0261 __isl_give isl_union_set *isl_union_map_bind_range(
0262     __isl_take isl_union_map *umap, __isl_take isl_multi_id *tuple);
0263 
0264 isl_bool isl_union_map_plain_is_empty(__isl_keep isl_union_map *umap);
0265 __isl_export
0266 isl_bool isl_union_map_is_empty(__isl_keep isl_union_map *umap);
0267 __isl_export
0268 isl_bool isl_union_map_is_single_valued(__isl_keep isl_union_map *umap);
0269 isl_bool isl_union_map_plain_is_injective(__isl_keep isl_union_map *umap);
0270 __isl_export
0271 isl_bool isl_union_map_is_injective(__isl_keep isl_union_map *umap);
0272 __isl_export
0273 isl_bool isl_union_map_is_bijective(__isl_keep isl_union_map *umap);
0274 isl_bool isl_union_map_is_identity(__isl_keep isl_union_map *umap);
0275 
0276 __isl_export
0277 isl_bool isl_union_map_is_subset(__isl_keep isl_union_map *umap1,
0278     __isl_keep isl_union_map *umap2);
0279 __isl_export
0280 isl_bool isl_union_map_is_equal(__isl_keep isl_union_map *umap1,
0281     __isl_keep isl_union_map *umap2);
0282 __isl_export
0283 isl_bool isl_union_map_is_disjoint(__isl_keep isl_union_map *umap1,
0284     __isl_keep isl_union_map *umap2);
0285 __isl_export
0286 isl_bool isl_union_map_is_strict_subset(__isl_keep isl_union_map *umap1,
0287     __isl_keep isl_union_map *umap2);
0288 
0289 uint32_t isl_union_map_get_hash(__isl_keep isl_union_map *umap);
0290 
0291 isl_size isl_union_map_n_map(__isl_keep isl_union_map *umap);
0292 __isl_export
0293 isl_stat isl_union_map_foreach_map(__isl_keep isl_union_map *umap,
0294     isl_stat (*fn)(__isl_take isl_map *map, void *user), void *user);
0295 __isl_export
0296 __isl_give isl_map_list *isl_union_map_get_map_list(
0297     __isl_keep isl_union_map *umap);
0298 __isl_export
0299 isl_bool isl_union_map_every_map(__isl_keep isl_union_map *umap,
0300     isl_bool (*test)(__isl_keep isl_map *map, void *user), void *user);
0301 __isl_give isl_union_map *isl_union_map_remove_map_if(
0302     __isl_take isl_union_map *umap,
0303     isl_bool (*fn)(__isl_keep isl_map *map, void *user), void *user);
0304 isl_bool isl_union_map_contains(__isl_keep isl_union_map *umap,
0305     __isl_keep isl_space *space);
0306 __isl_export
0307 __isl_give isl_map *isl_union_map_extract_map(__isl_keep isl_union_map *umap,
0308     __isl_take isl_space *space);
0309 __isl_export
0310 isl_bool isl_union_map_isa_map(__isl_keep isl_union_map *umap);
0311 __isl_export
0312 __isl_give isl_map *isl_union_map_as_map(__isl_take isl_union_map *umap);
0313 __isl_give isl_map *isl_map_from_union_map(__isl_take isl_union_map *umap);
0314 
0315 __isl_give isl_basic_map *isl_union_map_sample(__isl_take isl_union_map *umap);
0316 
0317 __isl_overload
0318 __isl_give isl_union_map *isl_union_map_fixed_power_val(
0319     __isl_take isl_union_map *umap, __isl_take isl_val *exp);
0320 __isl_give isl_union_map *isl_union_map_power(__isl_take isl_union_map *umap,
0321     isl_bool *exact);
0322 __isl_give isl_union_map *isl_union_map_transitive_closure(
0323     __isl_take isl_union_map *umap, isl_bool *exact);
0324 
0325 __isl_give isl_union_map *isl_union_map_lex_lt_union_map(
0326     __isl_take isl_union_map *umap1, __isl_take isl_union_map *umap2);
0327 __isl_give isl_union_map *isl_union_map_lex_le_union_map(
0328     __isl_take isl_union_map *umap1, __isl_take isl_union_map *umap2);
0329 __isl_give isl_union_map *isl_union_map_lex_gt_union_map(
0330     __isl_take isl_union_map *umap1, __isl_take isl_union_map *umap2);
0331 __isl_give isl_union_map *isl_union_map_lex_ge_union_map(
0332     __isl_take isl_union_map *umap1, __isl_take isl_union_map *umap2);
0333 
0334 __isl_overload
0335 __isl_give isl_union_map *isl_union_map_eq_at_multi_union_pw_aff(
0336     __isl_take isl_union_map *umap,
0337     __isl_take isl_multi_union_pw_aff *mupa);
0338 __isl_give isl_union_map *isl_union_map_lex_le_at_multi_union_pw_aff(
0339     __isl_take isl_union_map *umap,
0340     __isl_take isl_multi_union_pw_aff *mupa);
0341 __isl_give isl_union_map *isl_union_map_lex_lt_at_multi_union_pw_aff(
0342     __isl_take isl_union_map *umap,
0343     __isl_take isl_multi_union_pw_aff *mupa);
0344 __isl_give isl_union_map *isl_union_map_lex_ge_at_multi_union_pw_aff(
0345     __isl_take isl_union_map *umap,
0346     __isl_take isl_multi_union_pw_aff *mupa);
0347 __isl_give isl_union_map *isl_union_map_lex_gt_at_multi_union_pw_aff(
0348     __isl_take isl_union_map *umap,
0349     __isl_take isl_multi_union_pw_aff *mupa);
0350 
0351 __isl_give isl_union_map *isl_union_map_read_from_file(isl_ctx *ctx,
0352     FILE *input);
0353 __isl_constructor
0354 __isl_give isl_union_map *isl_union_map_read_from_str(isl_ctx *ctx,
0355     const char *str);
0356 __isl_give char *isl_union_map_to_str(__isl_keep isl_union_map *umap);
0357 __isl_give isl_printer *isl_printer_print_union_map(__isl_take isl_printer *p,
0358     __isl_keep isl_union_map *umap);
0359 void isl_union_map_dump(__isl_keep isl_union_map *umap);
0360 
0361 __isl_export
0362 __isl_give isl_union_set *isl_union_map_wrap(__isl_take isl_union_map *umap);
0363 __isl_export
0364 __isl_give isl_union_map *isl_union_set_unwrap(__isl_take isl_union_set *uset);
0365 
0366 __isl_export
0367 __isl_give isl_union_map *isl_union_map_zip(__isl_take isl_union_map *umap);
0368 __isl_export
0369 __isl_give isl_union_map *isl_union_map_curry(__isl_take isl_union_map *umap);
0370 __isl_give isl_union_map *isl_union_map_range_curry(
0371     __isl_take isl_union_map *umap);
0372 __isl_export
0373 __isl_give isl_union_map *isl_union_map_uncurry(__isl_take isl_union_map *umap);
0374 
0375 __isl_give isl_union_map *isl_union_map_align_params(
0376     __isl_take isl_union_map *umap, __isl_take isl_space *model);
0377 __isl_give isl_union_set *isl_union_set_align_params(
0378     __isl_take isl_union_set *uset, __isl_take isl_space *model);
0379 
0380 ISL_DECLARE_LIST_FN(union_map)
0381 
0382 #if defined(__cplusplus)
0383 }
0384 #endif
0385 
0386 #endif