PIPS
|
#include <stdlib.h>
#include <stdio.h>
#include "linear_assert.h"
#include "boolean.h"
#include "arithmetique.h"
#include "matrice.h"
Go to the source code of this file.
Functions | |
void | matrice_unimodulaire_triangulaire_inversion (matrice u, matrice inv_u, int n, bool infer) |
package matrice More... | |
void | matrice_diagonale_inversion (matrice s, matrice inv_s, int n) |
void matrice_diagonale_inversion(matrice s,matrice inv_s,int n) calcul de l'inversion du matrice en forme reduite smith. More... | |
void | matrice_triangulaire_inversion (matrice h, matrice inv_h, int n, bool infer) |
void matrice_triangulaire_inversion(matrice h, matrice inv_h, int n,bool infer) calcul de l'inversion du matrice en forme triangulaire. More... | |
void | matrice_general_inversion (matrice a, matrice inv_a, int n) |
void matrice_general_inversion(matrice a; matrice inv_a; int n) calcul de l'inversion du matrice general. More... | |
void | matrice_unimodulaire_inversion (matrice u, matrice inv_u, int n) |
void matrice_unimodulaire_inversion(matrice u, matrice inv_u, int n) calcul de l'inversion de la matrice unimodulaire. More... | |
void matrice_diagonale_inversion(matrice s,matrice inv_s,int n) calcul de l'inversion du matrice en forme reduite smith.
s est un matrice de la forme reduite smith, inv_s est l'inversion de s ; telles que s * inv_s = I.
les parametres de la fonction : matrice s : matrice en forme reduite smith – input int n : dimension de la matrice caree – input matrice inv_s : l'inversion de s – output
tests des preconditions
calcul de la ppcm(s[1,1],s[2,2],...s[n,n])
inv_s | nv_s |
Definition at line 95 of file inversion.c.
References ACCESS, assert, DENOMINATOR, matrice_diagonale_p(), matrice_hermite_rank(), matrice_nulle(), pgcd_slow(), ppcm(), value_div, value_mult, and value_pos_p.
void matrice_general_inversion(matrice a; matrice inv_a; int n) calcul de l'inversion du matrice general.
Algorithme : calcul P, Q, H telque : PAQ = H ; -1 -1 si rank(H) = n ; A = Q H P .
les parametres de la fonction : matrice a : matrice general -— input matrice inv_a : l'inversion de a -— output int n : dimensions de la matrice caree -— input
ne utilise pas
test
inv_a | nv_a |
Definition at line 222 of file inversion.c.
References assert, DENOMINATOR, exit, matrice_hermite(), matrice_hermite_rank(), matrice_multiply(), matrice_new, matrice_triangulaire_inversion(), printf(), VALUE_ONE, and value_pos_p.
Referenced by base_G_h1_unnull(), broadcast_conditions(), local_tile_constraints(), make_tile_constraints(), parallel_tiling(), system_inversion_restrict(), tile_membership(), tiling_transformation(), and unimodular().
void matrice_triangulaire_inversion(matrice h, matrice inv_h, int n,bool infer) calcul de l'inversion du matrice en forme triangulaire.
soit h matrice de la reduite triangulaire; inv_h est l'inversion de h ; telle que : h * inv_h = I. selon les proprietes de la matrice triangulaire: Aii = a11* ...aii-1*aii+1...*ann; Aij = 0 i>j pour la matrice triangulaire inferieure (infer==true) i<j pour la matrice triangulaire superieure (infer==false)
les parametres de la fonction : matrice h : matrice en forme triangulaire – input matrice inv_h : l'inversion de h – output int n : dimension de la matrice caree – input bool infer : le type de triangulaire – input
denominateur
determinant
tests des preconditions
calcul du determinant de h
calcul du denominateur de inv_h
calcul des sous_determinants des Aii
calcul des sous_determinants des Aij (i<j)
inv_h | nv_h |
infer | nfer |
Definition at line 140 of file inversion.c.
References ACCESS, assert, DENOMINATOR, matrice_hermite_rank(), matrice_nulle(), matrice_sous_determinant(), matrice_triangulaire_p(), pgcd_slow(), value_division, value_mult, value_neg_p, value_notone_p, VALUE_ONE, value_oppose, value_pos_p, and value_product.
Referenced by matrice_general_inversion().
void matrice_unimodulaire_inversion(matrice u, matrice inv_u, int n) calcul de l'inversion de la matrice unimodulaire.
algorithme :
les parametres de la fonction : matrice u : matrice unimodulaire -— input matrice inv_u : l'inversion de u -— output int n : dimension de la matrice -— input
ne utilise pas
test
inv_u | nv_u |
Definition at line 267 of file inversion.c.
References assert, DENOMINATOR, matrice_hermite(), matrice_multiply(), matrice_new, matrice_triangulaire_unimodulaire_p(), matrice_unimodulaire_triangulaire_inversion(), and value_one_p.
package matrice
inversion.c
void matrice_unimodulaire_triangulaire_inversion(matrice u ,matrice inv_u, int n, * bool infer) u soit le matrice unimodulaire triangulaire. si infer = true (triangulaire inferieure), infer = false (triangulaire superieure). calcul de l'inversion de matrice u telle que I = U x INV_U . Les parametres de la fonction :
matrice u : matrice unimodulaire triangulaire – inpout int n : dimension de la matrice caree – inpout bool infer : type de triangulaire – input matrice inv_u : l'inversion de matrice u – output
test de l'unimodularite et de la trangularite de u
inv_u | nv_u |
infer | nfer |
Definition at line 54 of file inversion.c.
References ACCESS, assert, matrice_identite(), matrice_soustraction_colonne(), matrice_triangulaire_unimodulaire_p(), value_notzero_p, and x.
Referenced by matrice_unimodulaire_inversion().