isl_dim_set_tuple_name: allow explicit removal of tuple name
[isl.git] / include / isl_div.h
blob8d21510a0de0b2211069a6154d1dd8ea39b40551
1 /*
2 * Copyright 2008-2009 Katholieke Universiteit Leuven
4 * Use of this software is governed by the GNU LGPLv2.1 license
6 * Written by Sven Verdoolaege, K.U.Leuven, Departement
7 * Computerwetenschappen, Celestijnenlaan 200A, B-3001 Leuven, Belgium
8 */
10 #ifndef ISL_DIV_H
11 #define ISL_DIV_H
13 #include "isl_dim.h"
14 #include "isl_set.h"
16 #if defined(__cplusplus)
17 extern "C" {
18 #endif
20 struct isl_div {
21 int ref;
22 struct isl_ctx *ctx;
24 struct isl_basic_map *bmap;
25 isl_int **line;
27 typedef struct isl_div isl_div;
29 struct isl_div *isl_div_alloc(struct isl_dim *dim);
30 struct isl_div *isl_basic_map_div(struct isl_basic_map *bmap, int pos);
31 struct isl_div *isl_basic_set_div(struct isl_basic_set *bset, int pos);
32 void isl_div_free(struct isl_div *c);
34 void isl_div_get_constant(__isl_keep isl_div *div, isl_int *v);
35 void isl_div_get_denominator(__isl_keep isl_div *div, isl_int *v);
36 void isl_div_get_coefficient(__isl_keep isl_div *div,
37 enum isl_dim_type type, int pos, isl_int *v);
38 void isl_div_set_constant(struct isl_div *div, isl_int v);
39 void isl_div_set_denominator(struct isl_div *div, isl_int v);
40 void isl_div_set_coefficient(struct isl_div *div,
41 enum isl_dim_type type, int pos, isl_int v);
43 unsigned isl_div_dim(__isl_keep isl_div *div, enum isl_dim_type type);
45 #if defined(__cplusplus)
47 #endif
49 #endif