PIPS
|
#include <stdio.h>
#include <stdlib.h>
#include "linear_assert.h"
#include "boolean.h"
#include "arithmetique.h"
#include "vecteur.h"
#include "contrainte.h"
Go to the source code of this file.
Functions | |
bool | contrainte_in_liste (Pcontrainte c, Pcontrainte lc) |
package contrainte - operations sur les listes de contraintes More... | |
int | constraint_rank (Pcontrainte c, Pcontrainte lc) |
Return the rank of constraint c in constraint list lc. More... | |
bool | egalite_in_liste (Pcontrainte v, Pcontrainte listev) |
bool egalite_in_liste(Pcontrainte eg, Pcontrainte leg): test si une egalite appartient a une liste d'egalites More... | |
int | nb_elems_list (Pcontrainte list) |
int nb_elems_list(Pcontrainte list): nombre de contraintes se trouvant dans une liste de contraintes More... | |
bool | cyclic_constraint_list_p (Pcontrainte l) |
Check if list l contains a cycle. More... | |
int | safe_nb_elems_list (Pcontrainte list, int n) |
Compute the number of elements in the list if it is less than n. More... | |
Pcontrainte | contrainte_remove_large_coef (Pcontrainte lc, Value val) |
int constraint_rank | ( | Pcontrainte | c, |
Pcontrainte | lc | ||
) |
Return the rank of constraint c in constraint list lc.
1 for the first element, and so on, Fortran style. 0 when c is not in lc.
The comparisons are based on the pointers, not on the values of the constraints. It is mainly useful to detect cycles in constraint list.
lc | c |
Definition at line 75 of file listes.c.
References assert, CONTRAINTE_NULLE_P, CONTRAINTE_UNDEFINED_P, rank, and Scontrainte::succ.
Referenced by cyclic_constraint_list_p().
bool contrainte_in_liste | ( | Pcontrainte | c, |
Pcontrainte | lc | ||
) |
package contrainte - operations sur les listes de contraintes
bool contrainte_in_liste(Pcontrainte c, Pcontrainte lc): test de l'appartenance d'une contrainte c a une liste de contrainte lc
Les contrainte sont supposees normalisees (coefficients reduits par leur PGCD, y compris les termes constants).
On considere que la contrainte nulle, qui ne represente aucune contrainte (elle est toujours verifiee) appartient a toutes les listes de contraintes.
lc | c |
Definition at line 52 of file listes.c.
References assert, CONTRAINTE_NULLE_P, CONTRAINTE_UNDEFINED_P, Scontrainte::succ, vect_equal(), and Scontrainte::vecteur.
Referenced by dj_simple_inegs_to_eg(), pa_path_to_few_disjunct_ofl_ctrl(), and sc_supress_same_constraints().
Pcontrainte contrainte_remove_large_coef | ( | Pcontrainte | lc, |
Value | val | ||
) |
lc | list of constraint, which is modified |
val | maximum value allowed for coefficients |
lc | c |
val | al |
Definition at line 179 of file listes.c.
References contrainte_free(), linear_assert, Scontrainte::succ, value_posz_p, value_zero_p, vect_larger_coef_p(), and Scontrainte::vecteur.
Referenced by sc_remove_large_coef().
bool cyclic_constraint_list_p | ( | Pcontrainte | l | ) |
Check if list l contains a cycle.
Definition at line 141 of file listes.c.
References constraint_rank(), and Scontrainte::succ.
Referenced by sc_bounded_normalization().
bool egalite_in_liste | ( | Pcontrainte | v, |
Pcontrainte | listev | ||
) |
bool egalite_in_liste(Pcontrainte eg, Pcontrainte leg): test si une egalite appartient a une liste d'egalites
Une egalite peut avoir ete multipliee par moins 1 mais ses coefficients, comme les coefficients des egalites de la liste, doivent avoir ete reduits par leur PGCD auparavant
Ancien nom: vect_in_liste1()
listev | istev |
Definition at line 108 of file listes.c.
References Scontrainte::succ, vect_equal(), vect_oppos(), and Scontrainte::vecteur.
int nb_elems_list | ( | Pcontrainte | list | ) |
int nb_elems_list(Pcontrainte list): nombre de contraintes se trouvant dans une liste de contraintes
Ancien nom: nb_elems_eq()
Cycles are not detected
list | ist |
Definition at line 129 of file listes.c.
References Scontrainte::succ.
Referenced by bounds_equal_p(), build_third_comb(), combiner_ofl_with_test(), constraints_lexicographic_sort_generic(), constraints_sort_info(), loop_iteration_domaine_to_sc(), prepare_reindexing(), region_sc_minimal(), sc_add_egalites(), sc_add_inegalites(), sc_elim_var(), sc_fix(), sc_make(), sc_projection_optim_along_vecteur_ofl(), sc_remove_large_coef(), and sc_weak_consistent_p().
int safe_nb_elems_list | ( | Pcontrainte | list, |
int | n | ||
) |
Compute the number of elements in the list if it is less than n.
n is assumed positive. A negative value is returned if the number of elements is strictly greater than n, for instance because the list is cyclic.
list | ist |
Definition at line 162 of file listes.c.
References assert, and Scontrainte::succ.
Referenced by sc_consistent_p().