PIPS
|
Go to the source code of this file.
Data Structures | |
struct | Scontrainte |
Macros | |
#define | CONTRAINTE 1005 |
package sur les contraintes. More... | |
#define | egalite_print(eg) egalite_fprint(stdout,eg) |
MACROS ET CONSTANTES. More... | |
#define | inegalite_print(ineg) inegalite_fprint(stdout,ineg) |
FI: this macro requires an additional parameter or a default value as third parameter of inegalite_fprint() More... | |
#define | contrainte_vecteur(c) ((c)->vecteur) |
passage au champ vecteur d'une contrainte "a la Newgen" More... | |
#define | contrainte_succ(c) ((c)->succ) |
#define | CONTRAINTE_NULLE_P(c) (VECTEUR_NUL_P(contrainte_vecteur(c))) |
contrainte nulle (non contrainte 0 == 0 ou 0 <= 0) More... | |
#define | CONTRAINTE_UNDEFINED ((Pcontrainte) NULL) |
#define | CONTRAINTE_UNDEFINED_P(c) ((c)==CONTRAINTE_UNDEFINED) |
#define | COEFF_CST(c) vect_coeff(TCST,(c)->vecteur) |
int COEFF_CST(Pcontrainte c): terme constant d'une contrainte More... | |
#define | contrainte_rm(c) (void) contrainte_free(c) |
the standard xxx_rm does not return a value More... | |
#define | VERSION_FINALE |
#define | CONTRAINTE_RM(rd, f) contrainte_rm(rd) |
Typedefs | |
typedef struct Scontrainte | Scontrainte |
typedef struct Scontrainte * | Pcontrainte |
typedef Scontrainte | Segalite |
typedef Scontrainte * | Pegalite |
typedef Scontrainte | Sinegalite |
typedef Scontrainte * | Pinegalite |
#define COEFF_CST | ( | c | ) | vect_coeff(TCST,(c)->vecteur) |
int COEFF_CST(Pcontrainte c): terme constant d'une contrainte
Definition at line 117 of file contrainte-local.h.
#define CONTRAINTE 1005 |
package sur les contraintes.
Une contrainte est une egalite ou une inegalite. Elle est representee par un vecteur dont une coordonnee particuliere, TCST, represente le terme constant.
Les contraintes sont stockees sous forme de membres gauches, ce qui n'est utile a savoir que pour les inegalites:
sum a x + b <= 0 i i i
ou b est le terme constant.
Les tableaux de saturations sont calcules en fonction de polyedre (systeme generateur ou systeme de contraintes) et leurs dimensions sont inconnues au niveau des contraintes. Ils sont ignores la plupart du temps.
Les contraintes sont traitees sous forme de liste de contraintes (systeme d'egalites ou systeme d'inegalites) et possedent un champ de chainage. Certaines des fonctions portent sur des listes de contraintes et non sur des contraintes. Cette double semantique complique beaucoup les choses.
Le pointeur NULL represente implicitement l'une des contraintes toujours faisables, 0 == 0 ou 0 <= 0. Au moins, la plupart du temps... car il represente la valeur CONTRAINTE_UNDEFINED dans les routines de gestion memoire.
Il vaut mieux utiliser la macro CONTRAINTE_NULLE_P() qui verifie que le vecteur associe est le VECTEUR_NUL.
Les contraintes trivialement faisables et infaisables sont representees par un unique terme constant: 0 == k, 0 <= k, 0 <= -k (k positif). Il existe deux fonctions pour les tester.
Autres packages a inclure:
Malik Imadache, Corinne Ancourt, Neil Butler, Francois Irigoin
Bugs:
Modifications:
Definition at line 84 of file contrainte-local.h.
#define CONTRAINTE_NULLE_P | ( | c | ) | (VECTEUR_NUL_P(contrainte_vecteur(c))) |
contrainte nulle (non contrainte 0 == 0 ou 0 <= 0)
Definition at line 110 of file contrainte-local.h.
#define contrainte_rm | ( | c | ) | (void) contrainte_free(c) |
the standard xxx_rm does not return a value
Definition at line 120 of file contrainte-local.h.
#define CONTRAINTE_RM | ( | rd, | |
f | |||
) | contrainte_rm(rd) |
Definition at line 126 of file contrainte-local.h.
#define contrainte_succ | ( | c | ) | ((c)->succ) |
Definition at line 107 of file contrainte-local.h.
#define CONTRAINTE_UNDEFINED ((Pcontrainte) NULL) |
Definition at line 112 of file contrainte-local.h.
#define CONTRAINTE_UNDEFINED_P | ( | c | ) | ((c)==CONTRAINTE_UNDEFINED) |
Definition at line 114 of file contrainte-local.h.
#define contrainte_vecteur | ( | c | ) | ((c)->vecteur) |
passage au champ vecteur d'une contrainte "a la Newgen"
Definition at line 105 of file contrainte-local.h.
#define egalite_print | ( | eg | ) | egalite_fprint(stdout,eg) |
MACROS ET CONSTANTES.
Definition at line 99 of file contrainte-local.h.
#define inegalite_print | ( | ineg | ) | inegalite_fprint(stdout,ineg) |
FI: this macro requires an additional parameter or a default value as third parameter of inegalite_fprint()
Definition at line 102 of file contrainte-local.h.
#define VERSION_FINALE |
Definition at line 122 of file contrainte-local.h.
typedef struct Scontrainte* Pcontrainte |
typedef Scontrainte * Pegalite |
Definition at line 93 of file contrainte-local.h.
typedef Scontrainte * Pinegalite |
Definition at line 95 of file contrainte-local.h.
typedef struct Scontrainte Scontrainte |
typedef Scontrainte Segalite |
Definition at line 93 of file contrainte-local.h.
typedef Scontrainte Sinegalite |
Definition at line 95 of file contrainte-local.h.