62 typedef char * (*get_variable_name_t)(
Variable);
64 #define VARIABLE_UNDEFINED ((Variable) 0)
65 #define VARIABLE_UNDEFINED_P(v) ((v)==VARIABLE_UNDEFINED)
66 #define VARIABLE_DEFINED_P(v) ((v)!=VARIABLE_UNDEFINED)
110 #define VECTEUR_NUL ((Pvecteur) 0)
111 #define VECTEUR_NUL_P(v) ((v)==VECTEUR_NUL)
112 #define VECTEUR_UNDEFINED ((Pvecteur) 0)
113 #define VECTEUR_UNDEFINED_P(v) ((v)==VECTEUR_UNDEFINED)
119 #define PlinX Pvecteur
120 #define NONEXPLIN ((PlinX)-1)
123 #define print_vect(s) vect_fprint(stdout,(s))
124 #define var_of(varval) ((varval)->var)
125 #define val_of(varval) ((varval)->val)
126 #define vecteur_var(v) ((v)->var)
127 #define vecteur_val(v) ((v)->val)
128 #define vecteur_succ(v) ((v)->succ)
131 #define TCST ((Variable) 0)
132 #define term_cst(varval) ((varval)->var == TCST)
135 #define BASE_NULLE VECTEUR_NUL
136 #define BASE_NULLE_P(b) ((b)==VECTEUR_NUL)
137 #define BASE_UNDEFINED ((Pbase) 0)
138 #define BASE_UNDEFINED_P(b) ((b)==BASE_UNDEFINED)
139 #define base_dimension(b) vect_size((Pvecteur)(b))
140 #define base_add_dimension(b,v) vect_chg_coeff((Pvecteur *)(b),(v),VALUE_ONE)
141 #define base_rm(b) (vect_rm((Pvecteur)(b)), (b)=BASE_NULLE)
142 #define BASE_FOREACH(v, b) \
143 Pbase v ## _base = b; \
144 Variable v = v ## _base? v ## _base->var: NULL; \
145 for(; v ## _base != BASE_NULLE; v ## _base = v ## _base->succ, v = v ## _base? v ## _base->var: NULL)
178 #if (defined(LINEAR_NO_OVERFLOW_CONTROL))
180 #define FWD_OFL_CTRL 0
181 #define NO_OFL_CTRL 0
184 #define FWD_OFL_CTRL 1
185 #define NO_OFL_CTRL 0
le type des coefficients dans les vecteurs: Value est defini dans le package arithmetique
hidden structure to store the hashtable.
struct linear_hashtable_st * linear_hashtable_pt
struct Svecteur * Pvecteur
void * Variable
arithmetique is a requirement for vecteur, but I do not want to inforce it in all pips files....
struct Svecteur Svecteur
le type des coefficients dans les vecteurs: Value est defini dans le package arithmetique