25 #include "pips_config.h"
121 int nscanners, nothers, ntotal, neq;
122 Pbase b, bsorted, byr;
123 Pmatrix FM,
F, M, V, P, H,
Q, Hl, Hli, Ql, Qr, QlHli,
124 QlHliM, QlHliV, mQr, I, Fnew;
130 neq = sc_nbre_egalites(s);
147 nothers = ntotal - nscanners;
154 pips_debug(3,
"%d scanners, %d others, %d eqs\n", nscanners, nothers, neq);
258 for (i=0; i<nscanners-neq; i++)
271 Fnew =
matrix_new(nscanners, 2*nscanners-neq+nothers);
276 2*nscanners-neq+1, 2*nscanners-neq+nothers);
Pcontrainte contraintes_free(Pcontrainte pc)
Pcontrainte contraintes_free(Pcontrainte pc): desallocation de toutes les contraintes de la liste pc.
bool get_bool_property(const string)
FC 2015-07-20: yuk, moved out to prevent an include cycle dependency include "properties....
#define ENDP(l)
Test if a list is empty.
#define NIL
The empty list (nil in Lisp)
list gen_copy_seq(list l)
Copy a list structure.
size_t gen_length(const list l)
#define CONS(_t_, _i_, _l_)
List element cell constructor (insert an element at the beginning of a list)
bool gen_in_list_p(const void *vo, const list lx)
tell whether vo belongs to lx
list gen_append(list l1, const list l2)
entity hpfc_new_variable(entity module, basic b)
#define DEBUG_SYST(D, W, S)
#define DEBUG_BASE(D, W, B)
#define DEBUG_ELST(D, W, L)
#define DEBUG_MTRX(D, W, M)
list simplify_deducable_variables(Psysteme, list, list *)
list simplify_deducable_variables(syst, vars, pleftvars) Psysteme syst; list vars,...
#define matrix_free(m)
Allocation et desallocation d'une matrice.
Pmatrix matrix_new(int m, int n)
package matrix
void matrix_hermite(Pmatrix MAT, Pmatrix P, Pmatrix H, Pmatrix Q, Value *det_p, Value *det_q)
package matrix
void matrix_unimodular_triangular_inversion(Pmatrix u, Pmatrix inv_u, bool infer)
package matrix
void matrix_uminus(Pmatrix A, Pmatrix mA)
void matrix_uminus(A, mA)
bool matrix_diagonal_p(Pmatrix Z)
bool matrix_diagonal_p(Pmatrix Z): test de nullite de la matrice Z
void matrix_multiply(const Pmatrix a, const Pmatrix b, Pmatrix c)
void matrix_multiply(Pmatrix a, Pmatrix b, Pmatrix c): multiply rational matrix a by rational matrix ...
bool matrix_triangular_unimodular_p(Pmatrix Z, bool inferieure)
bool matrix_triangular_unimodular_p(Pmatrix Z, bool inferieure) test de la triangulaire et unimodulai...
void ordinary_sub_matrix(Pmatrix, Pmatrix, int, int, int, int)
void ordinary_sub_matrix(Pmatrix A, A_sub, int i1, i2, j1, j2) input : a initialized matrix A,...
void matrix_identity(Pmatrix, int)
void matrix_identity(Pmatrix ID, int level) Construction d'une sous-matrice identity dans ID(level+1....
void insert_sub_matrix(Pmatrix, Pmatrix, int, int, int, int)
void insert_sub_matrix(A, A_sub, i1, i2, j1, j2) input: matrix A and smaller A_sub output: nothing mo...
#define pips_debug
these macros use the GNU extensions that allow variadic macros, including with an empty list.
#define pips_user_warning
#define pips_assert(what, predicate)
common macros, two flavors depending on NDEBUG
Pbase list_to_base(list l)
Pbase list_to_base(list l): returns the Pbase that contains the variables of list "l",...
#define message_assert(msg, ex)
basic MakeBasic(int)
END_EOLE.
void sc_creer_base(Psysteme ps)
void sc_creer_base(Psysteme ps): initialisation des parametres dimension et base d'un systeme lineair...
Value b1
booleen indiquant quel membre est en cours d'analyse
Pcontrainte eq
element du vecteur colonne du systeme donne par l'analyse
void matrices_to_constraints(Pcontrainte *, Pbase, Pmatrix, Pmatrix)
=======================================================================
void constraints_to_matrices(Pcontrainte, Pbase, Pmatrix, Pmatrix)
=======================================================================
le type des coefficients dans les vecteurs: Value est defini dans le package arithmetique
The structure used to build lists in NewGen.
void * Variable
arithmetique is a requirement for vecteur, but I do not want to inforce it in all pips files....
#define base_dimension(b)
#define BASE_NULLE
MACROS SUR LES BASES.
#define base_add_dimension(b, v)