File indexing completed on 2026-05-10 08:48:19
0001
0002
0003
0004
0005
0006
0007
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