44 assert(1 <= r && r <= M->number_of_lines);
45 assert(1 <= c && c <= M->number_of_columns);
52 assert(1 <= r && r <= M->number_of_lines);
53 assert(1 <= c && c <= M->number_of_columns);
103 assert(p > 0 && q > 0 && r > 0);
113 for(i=1; i<=p; i++) {
114 for(j=1; j<=r; j++) {
116 for(k=1; k<=q; k++) {
199 for (i = 0; i<m*n; i++)
214 assert(0 < c1 && c1 <= n);
215 assert(0 < c2 && c2 <= n);
218 for(i=1; i<=m; i++) {
236 assert(0 < r1 && r1 <= m);
237 assert(0 < r2 && r2 <= m);
240 for(i=1; i<=n; i++) {
264 for (i=0 ; i<m*n; i++)
265 B->coefficients[i] =
A->coefficients[i];
278 for (i = 0 ; i < m*n; i++)
279 if (
B->coefficients[i] !=
A->coefficients[i])
374 for (j=i+1; j<=n; j++)
379 for (j=1; j<=i-1; j++)
495 for (i=1; i<=m; i++) {
496 for (j=1; j<=n; j++) {
#define value_minus(v1, v2)
#define pgcd(a, b)
Pour la recherche de performance, selection d'une implementation particuliere des fonctions.
#define value_uminus(val)
unary operators on values
#define value_notone_p(val)
#define value_addto(ref, val)
#define value_eq(v1, v2)
bool operators on values
#define value_division(ref, val)
#define value_plus(v1, v2)
binary operators on values
#define value_substract(ref, val)
#define value_mult(v, w)
whether the default is protected or not this define makes no sense any more...
#define value_div(v1, v2)
Value ppcm(Value, Value)
ppcm.c
#define MATRIX_NB_LINES(matrix)
#define MATRIX_NB_COLUMNS(matrix)
#define MATRIX_DENOMINATOR(matrix)
int MATRIX_DENONIMATOR(matrix): acces au denominateur global d'une matrice matrix
#define MATRIX_ELEM(matrix, i, j)
Macros d'acces aux elements d'une matrice.
bool matrix_nulle_p(Pmatrix Z)
bool matrix_nulle_p(Pmatrix Z): test de nullite de la matrice Z
void matrix_normalizec(Pmatrix MAT)
void matrix_normalizec(Pmatrix MAT): Normalisation des coefficients de la matrice MAT,...
void matrix_nulle(Pmatrix Z)
void matrix_nulle(Pmatrix Z): Initialisation de la matrice Z a la valeur matrice nulle
void matrix_swap_rows(Pmatrix A, int r1, int r2)
void matrix_swap_rows(Pmatrix a, int r1, int r2): exchange rows r1 and r2 of an (nxm) rational matrix...
void matrix_substract(Pmatrix a, Pmatrix b, Pmatrix c)
void matrix_substract(Pmatrix a, Pmatrix b, Pmatrix c): substract rational matrix c from rational mat...
bool matrix_equality(Pmatrix A, Pmatrix B)
bool matrix_equality(Pmatrix A, Pmatrix B) test de l'egalite de deux matrices A et B; elles doivent a...
Value * matrix_elem_ref(Pmatrix M, int r, int c)
package matrix
void matrix_swap_columns(Pmatrix A, int c1, int c2)
void matrix_swap_columns(Pmatrix a, int c1, int c2): exchange columns c1,c2 of an (nxm) rational matr...
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_add(Pmatrix a, Pmatrix b, Pmatrix c)
a = b + c
void matrix_subtraction_column(Pmatrix MAT, int c1, int c2, Value x)
void matrix_subtraction_column(Pmatrix MAT,int c1,int c2,int x): Soustrait x fois la colonne c2 de la...
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 ...
void matrix_normalize(Pmatrix a)
void matrix_normalize(Pmatrix a)
void matrix_assign(Pmatrix A, Pmatrix B)
void matrix_assign(Pmatrix A, Pmatrix B) Copie de la matrice A dans la matrice B
bool matrix_triangular_unimodular_p(Pmatrix Z, bool inferieure)
bool matrix_triangular_unimodular_p(Pmatrix Z, bool inferieure) test de la triangulaire et unimodulai...
bool matrix_triangular_p(Pmatrix Z, bool inferieure)
bool matrix_triangular_p(Pmatrix Z, bool inferieure): test de triangularite de la matrice Z
void matrix_transpose(const Pmatrix A, Pmatrix At)
void matrix_transpose(Pmatrix a, Pmatrix a_t): transpose an (nxm) rational matrix a into a (mxn) rati...
Value matrix_elem(Pmatrix M, int r, int c)
void matrix_subtraction_line(Pmatrix MAT, int r1, int r2, Value x)
void matrix_subtraction_line(Pmatrix MAT,int r1,int r2,int x): Soustrait x fois la ligne r2 de la lig...