File indexing completed on 2026-05-10 08:48:18
0001 #ifndef ISL_LOCAL_SPACE_H
0002 #define ISL_LOCAL_SPACE_H
0003
0004 #include <isl/aff_type.h>
0005 #include <isl/space_type.h>
0006 #include <isl/printer.h>
0007 #include <isl/map_type.h>
0008
0009 #if defined(__cplusplus)
0010 extern "C" {
0011 #endif
0012
0013 struct isl_local_space;
0014 typedef struct isl_local_space isl_local_space;
0015
0016 isl_ctx *isl_local_space_get_ctx(__isl_keep isl_local_space *ls);
0017
0018 __isl_give isl_local_space *isl_local_space_from_space(
0019 __isl_take isl_space *space);
0020
0021 __isl_give isl_local_space *isl_local_space_copy(
0022 __isl_keep isl_local_space *ls);
0023 __isl_null isl_local_space *isl_local_space_free(
0024 __isl_take isl_local_space *ls);
0025
0026 isl_bool isl_local_space_is_params(__isl_keep isl_local_space *ls);
0027 isl_bool isl_local_space_is_set(__isl_keep isl_local_space *ls);
0028
0029 __isl_give isl_local_space *isl_local_space_set_tuple_id(
0030 __isl_take isl_local_space *ls,
0031 enum isl_dim_type type, __isl_take isl_id *id);
0032
0033 isl_size isl_local_space_dim(__isl_keep isl_local_space *ls,
0034 enum isl_dim_type type);
0035 isl_bool isl_local_space_has_dim_name(__isl_keep isl_local_space *ls,
0036 enum isl_dim_type type, unsigned pos);
0037 const char *isl_local_space_get_dim_name(__isl_keep isl_local_space *ls,
0038 enum isl_dim_type type, unsigned pos);
0039 __isl_give isl_local_space *isl_local_space_set_dim_name(
0040 __isl_take isl_local_space *ls,
0041 enum isl_dim_type type, unsigned pos, const char *s);
0042 isl_bool isl_local_space_has_dim_id(__isl_keep isl_local_space *ls,
0043 enum isl_dim_type type, unsigned pos);
0044 __isl_give isl_id *isl_local_space_get_dim_id(__isl_keep isl_local_space *ls,
0045 enum isl_dim_type type, unsigned pos);
0046 __isl_give isl_local_space *isl_local_space_set_dim_id(
0047 __isl_take isl_local_space *ls,
0048 enum isl_dim_type type, unsigned pos, __isl_take isl_id *id);
0049 __isl_give isl_space *isl_local_space_get_space(__isl_keep isl_local_space *ls);
0050 __isl_give isl_aff *isl_local_space_get_div(__isl_keep isl_local_space *ls,
0051 int pos);
0052
0053 int isl_local_space_find_dim_by_name(__isl_keep isl_local_space *ls,
0054 enum isl_dim_type type, const char *name);
0055
0056 __isl_give isl_local_space *isl_local_space_domain(
0057 __isl_take isl_local_space *ls);
0058 __isl_give isl_local_space *isl_local_space_range(
0059 __isl_take isl_local_space *ls);
0060 __isl_give isl_local_space *isl_local_space_from_domain(
0061 __isl_take isl_local_space *ls);
0062 __isl_give isl_local_space *isl_local_space_add_dims(
0063 __isl_take isl_local_space *ls, enum isl_dim_type type, unsigned n);
0064 __isl_give isl_local_space *isl_local_space_drop_dims(
0065 __isl_take isl_local_space *ls,
0066 enum isl_dim_type type, unsigned first, unsigned n);
0067 __isl_give isl_local_space *isl_local_space_insert_dims(
0068 __isl_take isl_local_space *ls,
0069 enum isl_dim_type type, unsigned first, unsigned n);
0070 __isl_give isl_local_space *isl_local_space_set_from_params(
0071 __isl_take isl_local_space *ls);
0072
0073 __isl_give isl_local_space *isl_local_space_intersect(
0074 __isl_take isl_local_space *ls1, __isl_take isl_local_space *ls2);
0075
0076 __isl_give isl_local_space *isl_local_space_wrap(
0077 __isl_take isl_local_space *ls);
0078
0079 isl_bool isl_local_space_is_equal(__isl_keep isl_local_space *ls1,
0080 __isl_keep isl_local_space *ls2);
0081
0082 __isl_give isl_basic_map *isl_local_space_lifting(
0083 __isl_take isl_local_space *ls);
0084
0085 __isl_give isl_local_space *isl_local_space_flatten_domain(
0086 __isl_take isl_local_space *ls);
0087 __isl_give isl_local_space *isl_local_space_flatten_range(
0088 __isl_take isl_local_space *ls);
0089
0090 __isl_give isl_printer *isl_printer_print_local_space(__isl_take isl_printer *p,
0091 __isl_keep isl_local_space *ls);
0092 void isl_local_space_dump(__isl_keep isl_local_space *ls);
0093
0094 #if defined(__cplusplus)
0095 }
0096 #endif
0097
0098 #endif