Rename CloogConstraints to CloogConstraintSet
[cloog.git] / include / cloog / constraints.h
blobdd945decdc6050f68a77faa75fdd134e7f0d81e7
2 /**-------------------------------------------------------------------**
3 ** CLooG **
4 **-------------------------------------------------------------------**
5 ** constraints.h **
6 **-------------------------------------------------------------------**
7 ** First version: april 17th 2005 **
8 **-------------------------------------------------------------------**/
11 /******************************************************************************
12 * CLooG : the Chunky Loop Generator (experimental) *
13 ******************************************************************************
14 * *
15 * Copyright (C) 2005 Cedric Bastoul *
16 * *
17 * This is free software; you can redistribute it and/or modify it under the *
18 * terms of the GNU General Public License as published by the Free Software *
19 * Foundation; either version 2 of the License, or (at your option) any later *
20 * version. *
21 * *
22 * This software is distributed in the hope that it will be useful, but *
23 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY *
24 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License *
25 * for more details. *
26 * *
27 * You should have received a copy of the GNU General Public License along *
28 * with software; if not, write to the Free Software Foundation, Inc., *
29 * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
30 * *
31 * CLooG, the Chunky Loop Generator *
32 * Written by Cedric Bastoul, Cedric.Bastoul@inria.fr *
33 * *
34 ******************************************************************************/
37 #ifndef CLOOG_CONSTRAINTS_H
38 #define CLOOG_CONSTRAINTS_H
39 #if defined(__cplusplus)
40 extern "C"
42 #endif
44 #ifdef CLOOG_POLYLIB
45 #include <cloog/polylib/matrix.h>
46 #else
47 struct cloogconstraintset;
48 typedef struct cloogconstraintset CloogConstraintSet;
49 struct cloogequalities;
50 typedef struct cloogequalities CloogEqualities;
51 #endif
54 /******************************************************************************
55 * Equalities spreading functions *
56 ******************************************************************************/
57 CloogEqualities *cloog_equal_alloc(int n, int nb_levels,
58 int nb_parameters);
59 void cloog_equal_free(CloogEqualities *equal);
60 int cloog_equal_count(CloogEqualities *equal);
61 CloogConstraintSet *cloog_equal_constraints(CloogEqualities *equal);
62 int cloog_equal_type(CloogEqualities *equal, int level);
63 void cloog_equal_add(CloogEqualities *equal,
64 CloogConstraintSet *constraints,
65 int level, int line, int nb_par);
66 void cloog_equal_del(CloogEqualities *equal, int level);
68 /******************************************************************************
69 * Processing functions *
70 ******************************************************************************/
71 void cloog_constraint_set_normalize(CloogConstraintSet *, int);
72 void cloog_constraint_set_free(CloogConstraintSet *);
73 int cloog_constraint_set_contains_level(CloogConstraintSet *constraints,
74 int level, int nb_parameters);
75 int cloog_constraint_set_defining_equality(CloogConstraintSet *constraints,
76 int level);
77 int cloog_constraint_set_defining_inequalities(CloogConstraintSet *constraints,
78 int level, int *lower, int nb_parameters);
79 int cloog_constraint_set_total_dimension(CloogConstraintSet *constraints);
80 CloogConstraintSet *cloog_constraint_set_copy(CloogConstraintSet *);
81 CloogConstraintSet *cloog_constraint_set_simplify(CloogConstraintSet *, CloogEqualities *, int, int);
82 int cloog_constraint_set_count(CloogConstraintSet *constraints);
83 int cloog_constraint_involves(CloogConstraintSet *constraints, int c, int v);
84 int cloog_constraint_is_lower_bound(CloogConstraintSet *constraints, int c, int v);
85 int cloog_constraint_is_upper_bound(CloogConstraintSet *constraints, int c, int v);
86 int cloog_constraint_is_equality(CloogConstraintSet *constraints, int c);
87 void cloog_constraint_constant_get(CloogConstraintSet *constraints,
88 int c, cloog_int_t *val);
89 void cloog_constraint_coefficient_get(CloogConstraintSet *constraints,
90 int c, int var, cloog_int_t *val);
91 void cloog_constraint_coefficient_set(CloogConstraintSet *constraints,
92 int c, int var, cloog_int_t val);
93 void cloog_constraint_clear(CloogConstraintSet *constraints, int c);
94 void cloog_constraint_copy(CloogConstraintSet *constraints, int c,
95 cloog_int_t *dst);
97 #if defined(__cplusplus)
99 #endif
100 #endif /* define _H */