Back to home page

EIC code displayed by LXR

 
 

    


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

0001 /*
0002  * Copyright 2008-2009 Katholieke Universiteit Leuven
0003  *
0004  * Use of this software is governed by the MIT license
0005  *
0006  * Written by Sven Verdoolaege, K.U.Leuven, Departement
0007  * Computerwetenschappen, Celestijnenlaan 200A, B-3001 Leuven, Belgium
0008  */
0009 
0010 #ifndef ISL_SPACE_H
0011 #define ISL_SPACE_H
0012 
0013 #include <isl/ctx.h>
0014 #include <isl/space_type.h>
0015 #include <isl/id_type.h>
0016 #include <isl/printer.h>
0017 
0018 #if defined(__cplusplus)
0019 extern "C" {
0020 #endif
0021 
0022 isl_ctx *isl_space_get_ctx(__isl_keep isl_space *space);
0023 __isl_export
0024 __isl_give isl_space *isl_space_unit(isl_ctx *ctx);
0025 __isl_give isl_space *isl_space_alloc(isl_ctx *ctx,
0026             unsigned nparam, unsigned n_in, unsigned n_out);
0027 __isl_give isl_space *isl_space_set_alloc(isl_ctx *ctx,
0028             unsigned nparam, unsigned dim);
0029 __isl_give isl_space *isl_space_params_alloc(isl_ctx *ctx, unsigned nparam);
0030 __isl_give isl_space *isl_space_copy(__isl_keep isl_space *space);
0031 __isl_null isl_space *isl_space_free(__isl_take isl_space *space);
0032 
0033 isl_bool isl_space_is_params(__isl_keep isl_space *space);
0034 isl_bool isl_space_is_set(__isl_keep isl_space *space);
0035 isl_bool isl_space_is_map(__isl_keep isl_space *space);
0036 
0037 __isl_overload
0038 __isl_give isl_space *isl_space_add_param_id(__isl_take isl_space *space,
0039     __isl_take isl_id *id);
0040 
0041 __isl_give isl_space *isl_space_set_tuple_name(__isl_take isl_space *space,
0042     enum isl_dim_type type, const char *s);
0043 isl_bool isl_space_has_tuple_name(__isl_keep isl_space *space,
0044     enum isl_dim_type type);
0045 __isl_keep const char *isl_space_get_tuple_name(__isl_keep isl_space *space,
0046                  enum isl_dim_type type);
0047 __isl_overload
0048 __isl_give isl_space *isl_space_set_domain_tuple_id(
0049     __isl_take isl_space *space, __isl_take isl_id *id);
0050 __isl_overload
0051 __isl_give isl_space *isl_space_set_range_tuple_id(
0052     __isl_take isl_space *space, __isl_take isl_id *id);
0053 __isl_give isl_space *isl_space_set_tuple_id(__isl_take isl_space *space,
0054     enum isl_dim_type type, __isl_take isl_id *id);
0055 __isl_give isl_space *isl_space_reset_tuple_id(__isl_take isl_space *space,
0056     enum isl_dim_type type);
0057 __isl_export
0058 isl_bool isl_space_has_domain_tuple_id(__isl_keep isl_space *space);
0059 __isl_export
0060 isl_bool isl_space_has_range_tuple_id(__isl_keep isl_space *space);
0061 isl_bool isl_space_has_tuple_id(__isl_keep isl_space *space,
0062     enum isl_dim_type type);
0063 __isl_export
0064 __isl_give isl_id *isl_space_get_domain_tuple_id(
0065     __isl_keep isl_space *space);
0066 __isl_export
0067 __isl_give isl_id *isl_space_get_range_tuple_id(
0068     __isl_keep isl_space *space);
0069 __isl_give isl_id *isl_space_get_tuple_id(__isl_keep isl_space *space,
0070     enum isl_dim_type type);
0071 __isl_give isl_space *isl_space_reset_user(__isl_take isl_space *space);
0072 
0073 __isl_give isl_space *isl_space_set_dim_id(__isl_take isl_space *space,
0074     enum isl_dim_type type, unsigned pos, __isl_take isl_id *id);
0075 isl_bool isl_space_has_dim_id(__isl_keep isl_space *space,
0076     enum isl_dim_type type, unsigned pos);
0077 __isl_give isl_id *isl_space_get_dim_id(__isl_keep isl_space *space,
0078     enum isl_dim_type type, unsigned pos);
0079 
0080 int isl_space_find_dim_by_id(__isl_keep isl_space *space,
0081     enum isl_dim_type type, __isl_keep isl_id *id);
0082 int isl_space_find_dim_by_name(__isl_keep isl_space *space,
0083     enum isl_dim_type type, const char *name);
0084 
0085 isl_bool isl_space_has_dim_name(__isl_keep isl_space *space,
0086     enum isl_dim_type type, unsigned pos);
0087 __isl_give isl_space *isl_space_set_dim_name(__isl_take isl_space *space,
0088                  enum isl_dim_type type, unsigned pos,
0089                  __isl_keep const char *name);
0090 __isl_keep const char *isl_space_get_dim_name(__isl_keep isl_space *space,
0091                  enum isl_dim_type type, unsigned pos);
0092 
0093 ISL_DEPRECATED
0094 __isl_give isl_space *isl_space_extend(__isl_take isl_space *space,
0095             unsigned nparam, unsigned n_in, unsigned n_out);
0096 __isl_give isl_space *isl_space_add_dims(__isl_take isl_space *space,
0097     enum isl_dim_type type, unsigned n);
0098 __isl_give isl_space *isl_space_move_dims(__isl_take isl_space *space,
0099     enum isl_dim_type dst_type, unsigned dst_pos,
0100     enum isl_dim_type src_type, unsigned src_pos, unsigned n);
0101 __isl_give isl_space *isl_space_insert_dims(__isl_take isl_space *space,
0102     enum isl_dim_type type, unsigned pos, unsigned n);
0103 __isl_give isl_space *isl_space_join(__isl_take isl_space *left,
0104     __isl_take isl_space *right);
0105 __isl_export
0106 __isl_give isl_space *isl_space_product(__isl_take isl_space *left,
0107     __isl_take isl_space *right);
0108 __isl_give isl_space *isl_space_domain_product(__isl_take isl_space *left,
0109     __isl_take isl_space *right);
0110 __isl_give isl_space *isl_space_range_product(__isl_take isl_space *left,
0111     __isl_take isl_space *right);
0112 __isl_give isl_space *isl_space_factor_domain(__isl_take isl_space *space);
0113 __isl_give isl_space *isl_space_factor_range(__isl_take isl_space *space);
0114 __isl_give isl_space *isl_space_domain_factor_domain(
0115     __isl_take isl_space *space);
0116 __isl_give isl_space *isl_space_domain_factor_range(
0117     __isl_take isl_space *space);
0118 __isl_give isl_space *isl_space_range_factor_domain(
0119     __isl_take isl_space *space);
0120 __isl_give isl_space *isl_space_range_factor_range(
0121     __isl_take isl_space *space);
0122 __isl_give isl_space *isl_space_domain_wrapped_domain(
0123     __isl_take isl_space *space);
0124 __isl_give isl_space *isl_space_domain_wrapped_range(
0125     __isl_take isl_space *space);
0126 __isl_give isl_space *isl_space_range_wrapped_domain(
0127     __isl_take isl_space *space);
0128 __isl_give isl_space *isl_space_range_wrapped_range(
0129     __isl_take isl_space *space);
0130 __isl_export
0131 __isl_give isl_space *isl_space_map_from_set(__isl_take isl_space *space);
0132 __isl_give isl_space *isl_space_map_from_domain_and_range(
0133     __isl_take isl_space *domain, __isl_take isl_space *range);
0134 __isl_export
0135 __isl_give isl_space *isl_space_reverse(__isl_take isl_space *space);
0136 __isl_export
0137 __isl_give isl_space *isl_space_range_reverse(__isl_take isl_space *space);
0138 __isl_give isl_space *isl_space_drop_dims(__isl_take isl_space *space,
0139     enum isl_dim_type type, unsigned first, unsigned num);
0140 ISL_DEPRECATED
0141 __isl_give isl_space *isl_space_drop_inputs(__isl_take isl_space *space,
0142         unsigned first, unsigned n);
0143 ISL_DEPRECATED
0144 __isl_give isl_space *isl_space_drop_outputs(__isl_take isl_space *space,
0145         unsigned first, unsigned n);
0146 __isl_give isl_space *isl_space_drop_all_params(__isl_take isl_space *space);
0147 __isl_export
0148 __isl_give isl_space *isl_space_domain(__isl_take isl_space *space);
0149 __isl_give isl_space *isl_space_from_domain(__isl_take isl_space *space);
0150 __isl_export
0151 __isl_give isl_space *isl_space_range(__isl_take isl_space *space);
0152 __isl_give isl_space *isl_space_from_range(__isl_take isl_space *space);
0153 __isl_give isl_space *isl_space_domain_map(__isl_take isl_space *space);
0154 __isl_give isl_space *isl_space_range_map(__isl_take isl_space *space);
0155 __isl_export
0156 __isl_give isl_space *isl_space_params(__isl_take isl_space *space);
0157 __isl_overload
0158 __isl_give isl_space *isl_space_add_unnamed_tuple_ui(
0159     __isl_take isl_space *space, unsigned dim);
0160 __isl_overload
0161 __isl_give isl_space *isl_space_add_named_tuple_id_ui(
0162     __isl_take isl_space *space, __isl_take isl_id *tuple_id, unsigned dim);
0163 __isl_give isl_space *isl_space_set_from_params(__isl_take isl_space *space);
0164 
0165 __isl_give isl_space *isl_space_align_params(__isl_take isl_space *space1,
0166     __isl_take isl_space *space2);
0167 
0168 __isl_export
0169 isl_bool isl_space_is_wrapping(__isl_keep isl_space *space);
0170 isl_bool isl_space_domain_is_wrapping(__isl_keep isl_space *space);
0171 isl_bool isl_space_range_is_wrapping(__isl_keep isl_space *space);
0172 isl_bool isl_space_is_product(__isl_keep isl_space *space);
0173 __isl_export
0174 __isl_give isl_space *isl_space_wrap(__isl_take isl_space *space);
0175 __isl_export
0176 __isl_give isl_space *isl_space_unwrap(__isl_take isl_space *space);
0177 
0178 isl_bool isl_space_can_zip(__isl_keep isl_space *space);
0179 __isl_give isl_space *isl_space_zip(__isl_take isl_space *space);
0180 
0181 isl_bool isl_space_can_curry(__isl_keep isl_space *space);
0182 __isl_export
0183 __isl_give isl_space *isl_space_curry(__isl_take isl_space *space);
0184 
0185 isl_bool isl_space_can_range_curry(__isl_keep isl_space *space);
0186 __isl_give isl_space *isl_space_range_curry(__isl_take isl_space *space);
0187 
0188 isl_bool isl_space_can_uncurry(__isl_keep isl_space *space);
0189 __isl_export
0190 __isl_give isl_space *isl_space_uncurry(__isl_take isl_space *space);
0191 
0192 isl_bool isl_space_is_domain(__isl_keep isl_space *space1,
0193     __isl_keep isl_space *space2);
0194 isl_bool isl_space_is_range(__isl_keep isl_space *space1,
0195     __isl_keep isl_space *space2);
0196 __isl_export
0197 isl_bool isl_space_is_equal(__isl_keep isl_space *space1,
0198     __isl_keep isl_space *space2);
0199 isl_bool isl_space_has_equal_params(__isl_keep isl_space *space1,
0200     __isl_keep isl_space *space2);
0201 isl_bool isl_space_has_equal_tuples(__isl_keep isl_space *space1,
0202     __isl_keep isl_space *space2);
0203 isl_bool isl_space_tuple_is_equal(__isl_keep isl_space *space1,
0204     enum isl_dim_type type1, __isl_keep isl_space *space2,
0205     enum isl_dim_type type2);
0206 ISL_DEPRECATED
0207 isl_bool isl_space_match(__isl_keep isl_space *space1, enum isl_dim_type type1,
0208     __isl_keep isl_space *space2, enum isl_dim_type type2);
0209 isl_size isl_space_dim(__isl_keep isl_space *space, enum isl_dim_type type);
0210 
0211 __isl_export
0212 __isl_give isl_space *isl_space_flatten_domain(__isl_take isl_space *space);
0213 __isl_export
0214 __isl_give isl_space *isl_space_flatten_range(__isl_take isl_space *space);
0215 
0216 __isl_constructor
0217 __isl_give isl_space *isl_space_read_from_str(isl_ctx *ctx,
0218     const char *str);
0219 __isl_give char *isl_space_to_str(__isl_keep isl_space *space);
0220 __isl_give isl_printer *isl_printer_print_space(__isl_take isl_printer *p,
0221     __isl_keep isl_space *space);
0222 void isl_space_dump(__isl_keep isl_space *space);
0223 
0224 #if defined(__cplusplus)
0225 }
0226 #endif
0227 
0228 #endif