1#ifndef ISL_LOCAL_SPACE_PRIVATE_H 2#define ISL_LOCAL_SPACE_PRIVATE_H 3 4#include <isl/mat.h> 5#include <isl/set.h> 6#include <isl/local_space.h> 7 8struct isl_local_space { 9 int ref; 10 11 isl_space *dim; 12 isl_mat *div; 13}; 14 15__isl_give isl_local_space *isl_local_space_alloc(__isl_take isl_space *dim, 16 unsigned n_div); 17__isl_give isl_local_space *isl_local_space_alloc_div(__isl_take isl_space *dim, 18 __isl_take isl_mat *div); 19 20__isl_give isl_local_space *isl_local_space_swap_div( 21 __isl_take isl_local_space *ls, int a, int b); 22__isl_give isl_local_space *isl_local_space_add_div( 23 __isl_take isl_local_space *ls, __isl_take isl_vec *div); 24 25int isl_mat_cmp_div(__isl_keep isl_mat *div, int i, int j); 26__isl_give isl_mat *isl_merge_divs(__isl_keep isl_mat *div1, 27 __isl_keep isl_mat *div2, int *exp1, int *exp2); 28 29unsigned isl_local_space_offset(__isl_keep isl_local_space *ls, 30 enum isl_dim_type type); 31 32__isl_give isl_local_space *isl_local_space_replace_divs( 33 __isl_take isl_local_space *ls, __isl_take isl_mat *div); 34int isl_local_space_divs_known(__isl_keep isl_local_space *ls); 35 36__isl_give isl_local_space *isl_local_space_substitute_equalities( 37 __isl_take isl_local_space *ls, __isl_take isl_basic_set *eq); 38 39int isl_local_space_is_named_or_nested(__isl_keep isl_local_space *ls, 40 enum isl_dim_type type); 41 42__isl_give isl_local_space *isl_local_space_reset_space( 43 __isl_take isl_local_space *ls, __isl_take isl_space *dim); 44__isl_give isl_local_space *isl_local_space_realign( 45 __isl_take isl_local_space *ls, __isl_take isl_reordering *r); 46 47int isl_local_space_is_div_constraint(__isl_keep isl_local_space *ls, 48 isl_int *constraint, unsigned div); 49 50int *isl_local_space_get_active(__isl_keep isl_local_space *ls, isl_int *l); 51 52__isl_give isl_local_space *isl_local_space_substitute_seq( 53 __isl_take isl_local_space *ls, 54 enum isl_dim_type type, unsigned pos, isl_int *subs, int subs_len, 55 int first, int n); 56__isl_give isl_local_space *isl_local_space_substitute( 57 __isl_take isl_local_space *ls, 58 enum isl_dim_type type, unsigned pos, __isl_keep isl_aff *subs); 59 60__isl_give isl_local_space *isl_local_space_lift( 61 __isl_take isl_local_space *ls); 62 63__isl_give isl_local_space *isl_local_space_preimage_multi_aff( 64 __isl_take isl_local_space *ls, __isl_take isl_multi_aff *ma); 65 66#endif 67