75 if (SC_UNDEFINED_P(ps) ||
sc_rn_p(ps))
138 if (SC_UNDEFINED_P(ps) ||
sc_rn_p(ps))
142 for (
eq = ps->egalites;
eq != NULL && ineg->
vecteur != NULL;
154 for (
eq = ps->inegalites;
eq !=NULL && ineg->
vecteur != NULL;
180 for(c = sc_inegalites(ps);
234 bool process_equalities;
238 if (!SC_UNDEFINED_P(ps)) {
239 if (process_equalities) {
245 if (ppc == NULL) ps->egalites = pc = pc->
succ;
263 if (ppc == NULL) ps->inegalites = pc = pc->
succ;
324 if (SC_UNDEFINED_P(ps))
327 for (eq1 = ps->egalites; eq1 != NULL; eq1 = eq1->
succ)
337 for (eq2 = eq1->
succ; eq2 != NULL;eq2 = eq2->
succ)
342 for (eq1 = ps->inegalites; eq1 != NULL;eq1 = eq1->
succ) {
354 for (eq2 = eq1->
succ;eq2 != NULL;eq2 = eq2->
succ)
375 bool empty_p =
false;
377 if (SC_UNDEFINED_P(ps))
393 for (eq2 = eq1->
succ; eq2 != NULL;eq2 = eq2->
succ)
398 for (eq1 = ps->
inegalites; eq1 != NULL && !empty_p; eq1 = eq1->
succ) {
414 for (eq2 = eq1->
succ;eq2 != NULL;eq2 = eq2->
succ) {
466 Pbase b = sc_base(ps);
537 if (SC_UNDEFINED_P(ps))
538 return(SC_UNDEFINED);
542 for (eq1 = ps->egalites; eq1 != NULL; eq1 = eq1->
succ) {
546 for (ineq1 = ps->inegalites; ineq1 != NULL;ineq1 = ineq1->succ) {
552 for (eq1 = ps->egalites; eq1 != NULL; eq1 = eq1->
succ) {
560 for (eq2 = eq1->
succ; eq2 != NULL;eq2 = eq2->
succ) {
573 for (eq1 = ps->inegalites; eq1 != NULL;eq1 = eq1->
succ) {
592 for (eq2 = eq1->
succ;eq2 != NULL;eq2 = eq2->
succ) {
596 else if(
eq_smg(eq1,eq2)) {
634 for (ineq1 = ps->inegalites; ineq1 != NULL;ineq1 = ineq1->succ) {
635 for (eq2 = ps->egalites; eq2 != NULL; eq2 = eq2->succ) {
640 ineq1->vecteur = NULL;
645 ineq1->vecteur = NULL;
660 ineq1->vecteur = NULL;
#define value_negz_p(val)
#define value_product(v, w)
#define value_mult(v, w)
whether the default is protected or not this define makes no sense any more...
#define CONTRAINTE_UNDEFINED_P(c)
#define contrainte_succ(c)
#define contrainte_vecteur(c)
passage au champ vecteur d'une contrainte "a la Newgen"
#define CONTRAINTE_UNDEFINED
Pcontrainte contrainte_make(Pvecteur pv)
Pcontrainte contrainte_make(Pvecteur pv): allocation et initialisation d'une contrainte avec un vecte...
Pcontrainte contrainte_free(Pcontrainte c)
Pcontrainte contrainte_free(Pcontrainte c): liberation de l'espace memoire alloue a la contrainte c a...
Value eq_diff_const(Pcontrainte c1, Pcontrainte c2)
Value eq_diff_const(Pcontrainte c1, Pcontrainte c2): calcul de la difference des deux termes constant...
Value eq_sum_const(Pcontrainte c1, Pcontrainte c2)
Value eq_sum_const(Pcontrainte c1, Pcontrainte c2): calcul de la somme des deux termes constants des ...
void eq_set_vect_nul(Pcontrainte)
void_eq_set_vect_nul(Pcontrainte c): transformation d'une contrainte en une contrainte triviale 0 == ...
bool contrainte_equal(Pcontrainte, Pcontrainte)
bool contrainte_equal(Pcontrainte c1, Pcontrainte c2): test d'egalite des contraintes c1 et c2; elles...
bool contrainte_parallele(Pcontrainte, Pcontrainte, Value *, Value *)
Les deux contraintes c1 et c2 sont paralleles s'il existe deux coefficients a1 et a2 tels que a1 c1 +...
bool vect_constant_p(Pvecteur)
bool vect_constant_p(Pvecteur v): v contains only a constant term, may be zero
bool egalite_equal(Pcontrainte, Pcontrainte)
bool egalite_equal(Pcontrainte eg1, Pcontrainte eg2): teste l'equivalence de deux egalites; leurs coe...
bool contrainte_normalize(Pcontrainte, bool)
normalize.c
bool inequalities_opposite_p(Pcontrainte, Pcontrainte)
bool inequalities_opposite_p(Pcontrainte c1, Pcontrainte c2): True if the non-constant part of c1 is ...
bool eq_smg(Pcontrainte, Pcontrainte)
predicats.c
bool vect_equal_except(Pvecteur v1, Pvecteur v2, Variable var)
bool vect_equal_except(Pvecteur v1, Pvecteur v2, Variable var): test a egalite des projections selon ...
int vect_size(Pvecteur v)
package vecteur - reductions
struct _newgen_struct_code_ * code
bool sc_rn_p(Psysteme sc)
bool sc_rn_p(Psysteme sc): check if the set associated to sc is the whole space, rn
Psysteme sc_empty(Pbase b)
Psysteme sc_empty(Pbase b): build a Psysteme with one unfeasible constraint to define the empty subsp...
void sc_rm(Psysteme ps)
void sc_rm(Psysteme ps): liberation de l'espace memoire occupe par le systeme de contraintes ps;
void sc_add_egalite(Psysteme p, Pcontrainte e)
void sc_add_egalite(Psysteme p, Pcontrainte e): macro ajoutant une egalite e a un systeme p; la base ...
bool sc_elim_simple_redund_with_ineq(Psysteme ps, Pcontrainte ineg)
bool sc_elim_simple_redund_with_ineq(Psysteme ps, Pcontrainte ineg): elimination des contraintes redo...
Psysteme sc_elim_double_constraints(Psysteme ps)
Psysteme sc_elim_double_constraints(Psysteme ps): elimination des egalites et des inegalites identiqu...
void sc_elim_empty_constraints(Psysteme ps, bool process_equalities)
void sc_elim_empty_constraints(Psysteme ps, bool process_equalities): elimination des "fausses" contr...
Psysteme sc_safe_elim_db_constraints(Psysteme ps)
The returned value must be used because they argument is freed when the system is not feasible.
bool sc_elim_simple_redund_with_eq(Psysteme ps, Pcontrainte eg)
package sc
Psysteme sc_elim_db_constraints(Psysteme ps)
Psysteme sc_elim_db_constraints(Psysteme ps): elimination des egalites et des inegalites identiques o...
int sc_check_inequality_redundancy(Pcontrainte ineq, Psysteme ps)
int sc_check_inequality_redundancy(Pcontrainte ineq, Psysteme ps) Check if an inequality ineq,...
Pcontrainte eq
element du vecteur colonne du systeme donne par l'analyse
t_real sum(int n1, int n2, int n3, t_real u[n1][n2][n3])
struct Scontrainte * succ
le type des coefficients dans les vecteurs: Value est defini dans le package arithmetique
#define TCST
VARIABLE REPRESENTANT LE TERME CONSTANT.
#define BASE_NULLE
MACROS SUR LES BASES.
Pbase vect_copy(Pvecteur b)
direct duplication.
void vect_rm(Pvecteur v)
void vect_rm(Pvecteur v): desallocation des couples de v;
Pvecteur vect_add(Pvecteur v1, Pvecteur v2)
package vecteur - operations binaires
Pvecteur vect_substract(Pvecteur v1, Pvecteur v2)
Pvecteur vect_substract(Pvecteur v1, Pvecteur v2): allocation d'un vecteur v dont la valeur est la di...
Value vect_coeff(Variable var, Pvecteur vect)
Variable vect_coeff(Variable var, Pvecteur vect): coefficient de coordonnee var du vecteur vect —> So...
void vect_normalize(Pvecteur v)
void vect_normalize(Pvecteur v): division de tous les coefficients de v par leur pgcd; "normalisation...