1#ifndef ISL_VAL_H
2#define ISL_VAL_H
3
4#include <isl/stdint.h>
5#include <isl/ctx.h>
6#include <isl/list.h>
7#include <isl/multi.h>
8#include <isl/printer.h>
9#include <isl/val_type.h>
10
11#if defined(__cplusplus)
12extern "C" {
13#endif
14
15ISL_DECLARE_MULTI(val)
16ISL_DECLARE_MULTI_ARITH(val)
17ISL_DECLARE_MULTI_MIN_MAX(val)
18ISL_DECLARE_MULTI_ZERO(val)
19ISL_DECLARE_MULTI_NAN(val)
20ISL_DECLARE_MULTI_DIMS(val)
21ISL_DECLARE_MULTI_DIM_ID(val)
22ISL_DECLARE_MULTI_TUPLE_ID(val)
23ISL_DECLARE_MULTI_WITH_DOMAIN(val)
24
25__isl_export
26__isl_give isl_val *isl_val_zero(isl_ctx *ctx);
27__isl_export
28__isl_give isl_val *isl_val_one(isl_ctx *ctx);
29__isl_export
30__isl_give isl_val *isl_val_negone(isl_ctx *ctx);
31__isl_export
32__isl_give isl_val *isl_val_nan(isl_ctx *ctx);
33__isl_export
34__isl_give isl_val *isl_val_infty(isl_ctx *ctx);
35__isl_export
36__isl_give isl_val *isl_val_neginfty(isl_ctx *ctx);
37__isl_constructor
38__isl_give isl_val *isl_val_int_from_si(isl_ctx *ctx, long i);
39__isl_give isl_val *isl_val_int_from_ui(isl_ctx *ctx, unsigned long u);
40__isl_give isl_val *isl_val_int_from_chunks(isl_ctx *ctx, size_t n,
41 size_t size, const void *chunks);
42
43__isl_give isl_val *isl_val_copy(__isl_keep isl_val *v);
44__isl_null isl_val *isl_val_free(__isl_take isl_val *v);
45
46isl_ctx *isl_val_get_ctx(__isl_keep isl_val *val);
47uint32_t isl_val_get_hash(__isl_keep isl_val *val);
48__isl_export
49long isl_val_get_num_si(__isl_keep isl_val *v);
50__isl_export
51long isl_val_get_den_si(__isl_keep isl_val *v);
52__isl_give isl_val *isl_val_get_den_val(__isl_keep isl_val *v);
53double isl_val_get_d(__isl_keep isl_val *v);
54isl_size isl_val_n_abs_num_chunks(__isl_keep isl_val *v, size_t size);
55isl_stat isl_val_get_abs_num_chunks(__isl_keep isl_val *v, size_t size,
56 void *chunks);
57
58__isl_give isl_val *isl_val_set_si(__isl_take isl_val *v, long i);
59
60__isl_export
61__isl_give isl_val *isl_val_abs(__isl_take isl_val *v);
62__isl_export
63__isl_give isl_val *isl_val_neg(__isl_take isl_val *v);
64__isl_export
65__isl_give isl_val *isl_val_inv(__isl_take isl_val *v);
66__isl_export
67__isl_give isl_val *isl_val_floor(__isl_take isl_val *v);
68__isl_export
69__isl_give isl_val *isl_val_ceil(__isl_take isl_val *v);
70__isl_export
71__isl_give isl_val *isl_val_trunc(__isl_take isl_val *v);
72__isl_give isl_val *isl_val_2exp(__isl_take isl_val *v);
73__isl_export
74__isl_give isl_val *isl_val_pow2(__isl_take isl_val *v);
75__isl_export
76__isl_give isl_val *isl_val_min(__isl_take isl_val *v1, __isl_take isl_val *v2);
77__isl_export
78__isl_give isl_val *isl_val_max(__isl_take isl_val *v1, __isl_take isl_val *v2);
79__isl_export
80__isl_give isl_val *isl_val_add(__isl_take isl_val *v1, __isl_take isl_val *v2);
81__isl_give isl_val *isl_val_add_ui(__isl_take isl_val *v1, unsigned long v2);
82__isl_export
83__isl_give isl_val *isl_val_sub(__isl_take isl_val *v1, __isl_take isl_val *v2);
84__isl_give isl_val *isl_val_sub_ui(__isl_take isl_val *v1, unsigned long v2);
85__isl_export
86__isl_give isl_val *isl_val_mul(__isl_take isl_val *v1, __isl_take isl_val *v2);
87__isl_give isl_val *isl_val_mul_ui(__isl_take isl_val *v1, unsigned long v2);
88__isl_export
89__isl_give isl_val *isl_val_div(__isl_take isl_val *v1, __isl_take isl_val *v2);
90__isl_give isl_val *isl_val_div_ui(__isl_take isl_val *v1, unsigned long v2);
91__isl_export
92__isl_give isl_val *isl_val_mod(__isl_take isl_val *v1, __isl_take isl_val *v2);
93__isl_export
94__isl_give isl_val *isl_val_gcd(__isl_take isl_val *v1, __isl_take isl_val *v2);
95__isl_give isl_val *isl_val_gcdext(__isl_take isl_val *v1,
96 __isl_take isl_val *v2, __isl_give isl_val **x, __isl_give isl_val **y);
97
98__isl_export
99int isl_val_sgn(__isl_keep isl_val *v);
100__isl_export
101isl_bool isl_val_is_zero(__isl_keep isl_val *v);
102__isl_export
103isl_bool isl_val_is_one(__isl_keep isl_val *v);
104__isl_export
105isl_bool isl_val_is_negone(__isl_keep isl_val *v);
106__isl_export
107isl_bool isl_val_is_nonneg(__isl_keep isl_val *v);
108__isl_export
109isl_bool isl_val_is_nonpos(__isl_keep isl_val *v);
110__isl_export
111isl_bool isl_val_is_pos(__isl_keep isl_val *v);
112__isl_export
113isl_bool isl_val_is_neg(__isl_keep isl_val *v);
114__isl_export
115isl_bool isl_val_is_int(__isl_keep isl_val *v);
116__isl_export
117isl_bool isl_val_is_rat(__isl_keep isl_val *v);
118__isl_export
119isl_bool isl_val_is_nan(__isl_keep isl_val *v);
120__isl_export
121isl_bool isl_val_is_infty(__isl_keep isl_val *v);
122__isl_export
123isl_bool isl_val_is_neginfty(__isl_keep isl_val *v);
124
125__isl_export
126int isl_val_cmp_si(__isl_keep isl_val *v, long i);
127
128__isl_export
129isl_bool isl_val_lt(__isl_keep isl_val *v1, __isl_keep isl_val *v2);
130__isl_export
131isl_bool isl_val_le(__isl_keep isl_val *v1, __isl_keep isl_val *v2);
132__isl_export
133isl_bool isl_val_gt(__isl_keep isl_val *v1, __isl_keep isl_val *v2);
134isl_bool isl_val_gt_si(__isl_keep isl_val *v, long i);
135__isl_export
136isl_bool isl_val_ge(__isl_keep isl_val *v1, __isl_keep isl_val *v2);
137__isl_export
138isl_bool isl_val_eq(__isl_keep isl_val *v1, __isl_keep isl_val *v2);
139isl_bool isl_val_eq_si(__isl_keep isl_val *v, long i);
140__isl_export
141isl_bool isl_val_ne(__isl_keep isl_val *v1, __isl_keep isl_val *v2);
142__isl_export
143isl_bool isl_val_abs_eq(__isl_keep isl_val *v1, __isl_keep isl_val *v2);
144
145__isl_export
146isl_bool isl_val_is_divisible_by(__isl_keep isl_val *v1,
147 __isl_keep isl_val *v2);
148
149__isl_constructor
150__isl_give isl_val *isl_val_read_from_str(isl_ctx *ctx, const char *str);
151__isl_give isl_printer *isl_printer_print_val(__isl_take isl_printer *p,
152 __isl_keep isl_val *v);
153void isl_val_dump(__isl_keep isl_val *v);
154__isl_give char *isl_val_to_str(__isl_keep isl_val *v);
155
156isl_bool isl_multi_val_is_zero(__isl_keep isl_multi_val *mv);
157
158__isl_overload
159__isl_give isl_multi_val *isl_multi_val_add_val(__isl_take isl_multi_val *mv,
160 __isl_take isl_val *v);
161__isl_give isl_multi_val *isl_multi_val_mod_val(__isl_take isl_multi_val *mv,
162 __isl_take isl_val *v);
163
164__isl_constructor
165__isl_give isl_multi_val *isl_multi_val_read_from_str(isl_ctx *ctx,
166 const char *str);
167__isl_give isl_printer *isl_printer_print_multi_val(__isl_take isl_printer *p,
168 __isl_keep isl_multi_val *mv);
169void isl_multi_val_dump(__isl_keep isl_multi_val *mv);
170__isl_give char *isl_multi_val_to_str(__isl_keep isl_multi_val *mv);
171
172ISL_DECLARE_EXPORTED_LIST_FN(val)
173ISL_DECLARE_EXPORTED_LIST_FN_READ(val)
174
175#if defined(__cplusplus)
176}
177#endif
178
179#endif
180

source code of polly/lib/External/isl/include/isl/val.h