182 equal = !strcmp(nv, nb);
207 equal = !strcmp(nv, nb);
289 for(; v!=NULL; v=v->
succ)
392 for (v=*pb1; v; v=v->
succ)
437 else if (bn1 && !bn2)
439 else if (!bn1 && !bn2)
445 for (v =
b1; v; v=v->
succ)
455 for (v =
b2; v; v=v->
succ)
590 for (
b1=b, j=1; j<i;
b1=
b1->succ,j++);
643 bool included_p =
true;
650 for (b=
b1; b && included_p; b=b->
succ)
664 bool strictly_equal_p =
true;
668 for(i=1; i<=
s1 && strictly_equal_p; i++) {
671 strictly_equal_p = (d1==d2);
675 strictly_equal_p =
false;
677 return strictly_equal_p;
static hash_table seen
static function to store whether a module has been seen during the recursive generation of the daVinc...
Pbase base_add_variable(Pbase b, Variable var)
Pbase base_add_variable(Pbase b, Variable v): add variable v as a new dimension to basis b at the end...
void base_append(Pbase *pb1, Pbase b2)
appends b2 to b1.
Pbase base_difference(Pbase b1, Pbase b2)
Pbase base_difference(Pbase b1, Pbase b2): allocate b; b = b1 - b2 – with the set meaning return b;.
Pbase make_base_from_vect(Pvecteur pv)
int rank_of_variable(Pbase base, Variable var)
this function returns the rank of the variable var in the base 0 encodes TCST, but I do not know why,...
Pbase base_remove_variable(Pbase b, Variable v)
Pbase base_remove_variable(b, v): remove basis vector relative to v from b; abort if v is not in b;.
Pvecteur vect_rename(Pvecteur v, Pbase b, char *(*variable_name)(Variable))
Pvecteur vect_rename(Pvecteur v, Pbase b, char * (*variable_name)()): modify vector v so that its coo...
bool bases_strictly_equal_p(Pbase b1, Pbase b2)
Make sure that each dimension of b1 is the same dimension in b2.
Variable base_find_variable_name(Pbase b, Variable v, char *(*variable_name)(Variable))
Variable base_find_variable_name(Pbase b, Variable v, char * (*variable_name)()): returns the variabl...
bool vect_in_basis_p(Pvecteur v, Pbase b)
Pvecteur vect_in_basis_p(Pvecteur v, Pbase b): check that all coordinates in v are in b,...
Variable base_find_variable(Pbase b, Variable v)
Variable base_find_variable(Pbase b, Variable v): returns variable v if variable v is one of b's elem...
Variable variable_of_rank(Pbase base, int rank)
Variable variable_of_rank(): this function returns the variable of rank "rank".
Pbase base_normalize(Pbase b)
bool base_contains_variable_p(Pbase b, Variable v)
bool base_contains_variable_p(Pbase b, Variable v): returns true if variable v is one of b's elements...
Pbase base_reversal(Pbase b_in)
Pbase base_reversal(Pbase b_in): produces a basis b_out, having the same basis vectors as b_in,...
int base_find_variable_rank(Pbase b, Variable v, char *(*variable_name)(Variable))
int base_find_variable_rank(Pbase b, Variable v, char * (*variable_name)()): returns variable v's ran...
Pvecteur vect_translate(Pvecteur v, Pbase b, char *(*variable_name)(Variable))
Pvecteur vect_translate(Pvecteur v, Pbase b, char * (*variable_name)()): modify vector v so that its ...
Pvecteur vect_rename_variables(Pvecteur v, bool(*renamed_p)(Variable), Variable(*new_variable)(Variable))
Pvecteur vect_rename_variables(v, renamed_p, new_variable) Pvecteur v; bool (*renamed_p)(Variable); V...
Pbase vect_add_variable(Pbase b, Variable v)
package vecteur - routines sur les bases
Pvecteur vect_variable_rename(Pvecteur v, Variable v_old, Variable v_new)
Pvecteur vect_variable_rename(Pvecteur v, Variable v_old, Variable v_new): rename the potential coord...
Pvecteur search_i_element(Pbase b, int i)
Pvecteur search_i_element(): recherche du i-ieme couple (var,val) dans la Pbase b.
bool base_included_p(Pbase b1, Pbase b2)
Pbase base_included_p(Pbase b1, Pbase b2): include_p = b1 is included in b2 – with the set meaning re...
Pbase base_intersection(Pbase b1, Pbase b2)
Return variables/dimensions present in bases b1 and b2.
int search_higher_rank(Pvecteur vect, Pbase base)
int search_higher_rank(): this fonction returns the rank of the variable of higher rank in the vecteu...
Pbase base_union(Pbase b1, Pbase b2)
Pbase base_union(Pbase b1, Pbase b2): compute a new basis containing all elements of b1 and all eleme...
bool base_normalized_p(Pbase b)
Variable search_var_of_higher_rank(Pvecteur pvect, Pbase base, Variable var)
this function returns the variable of higher rank, after the variable var, in the vecteur pvect
bdt base
Current expression.
static entity new_variable
entity to be replaced, the primary?
bool linear_hashtable_isin(linear_hashtable_pt h, void *k)
void linear_hashtable_put_once(linear_hashtable_pt h, void *k, void *v)
linear_hashtable_pt linear_hashtable_make(void)
constructor.
void linear_hashtable_free(linear_hashtable_pt h)
destructor
bool vect_check(Pvecteur cv)
bool vect_check(Pvecteur v): renvoie true si le vecteur v est coherent avec les specifications du pac...
bool variable_equal(Variable v1, Variable v2)
package vecteur - routines sur les variables
Pvecteur vect_chain(Pvecteur v_in, Variable var, Value coeff)
package vecteur routines internes au package
Value b1
booleen indiquant quel membre est en cours d'analyse
char * variable_name(Variable v)
polynome_ri.c
le type des coefficients dans les vecteurs: Value est defini dans le package arithmetique
hidden structure to store the hashtable.
#define VARIABLE_DEFINED_P(v)
#define TCST
VARIABLE REPRESENTANT LE TERME CONSTANT.
#define VECTEUR_NUL
DEFINITION DU VECTEUR NUL.
#define BASE_UNDEFINED_P(b)
void * Variable
arithmetique is a requirement for vecteur, but I do not want to inforce it in all pips files....
#define VARIABLE_UNDEFINED_P(v)
#define VARIABLE_UNDEFINED
#define base_dimension(b)
#define BASE_NULLE
MACROS SUR LES BASES.
#define base_add_dimension(b, v)
Pvecteur vect_new(Variable var, Value coeff)
Pvecteur vect_new(Variable var,Value coeff): allocation d'un vecteur colineaire au vecteur de base va...
Pbase base_copy(Pbase b)
Direct duplication.
void vect_erase_var(Pvecteur *ppv, Variable v)
void vect_erase_var(Pvecteur * ppv, Variable v): projection du vecteur *ppv selon la direction v (i....
void vect_add_elem(Pvecteur *pvect, Variable var, Value val)
void vect_add_elem(Pvecteur * pvect, Variable var, Value val): addition d'un vecteur colineaire au ve...