PIPS
|
#include <stdlib.h>
#include <stdio.h>
#include "genC.h"
#include "linear.h"
#include "ri.h"
#include "misc.h"
#include "boolean.h"
#include "arithmetique.h"
#include "vecteur.h"
#include "contrainte.h"
#include "sc.h"
#include "matrice.h"
#include "hyperplane.h"
Go to the source code of this file.
Functions | |
void | scanning_base_hyperplane (h, int n, matrice G) |
package hyperplane. More... | |
void | base_G_h1_unnull (h, int n, matrice G) |
oid base_G_h1_unnull(int h[],int n,matrice G) More... | |
oid base_G_h1_unnull(int h[],int n,matrice G)
determinant of Ui and Ui-1
computation of matrix U
initialisation
computation of Xi,Yi / Xi.det(Ui-1) - Yi.hi = GCD(det(Ui-1),hi)
make Ui - the i-th line: U[i,1]=h[i-1],U[i,2..n-1] =0,U[i,n] = Xi
->i-1
the i-th column:U[1..n-1] = Yi/det(Ui-1) . h
-> ->
divide U1 par GCD(h)
computation of matrix G
Definition at line 94 of file scanning_base.c.
References ACCESS, assert, bezout_grl(), G, matrice_general_inversion(), matrice_new, matrice_nulle(), matrice_transpose(), value_div, value_division, value_mult, VALUE_ONE, value_oppose, and VALUE_ZERO.
Referenced by scanning_base_hyperplane().
package hyperplane.
Build a change of basis matrix G compatible with a hyperplane direction h include <sys/stdtypes.h> for debug with dbmalloc include "stdlib.h" void scanning_base_hyperplane(int h[],int n,matrice U) compute the matrix U : -> -> -> U1 = h (U1 the first column of U) determinant(U) = +(/-)1.
Let G the scanning basis, the relation between U and T is -1 T
G = (U ) the parameters of the function are:
int h[] : hyperplan direction -— input int n : iteration dimension -— input matrice G : matrix -— output
search the first k / h[k]!=0
permution de h[0] et h[k]
Definition at line 69 of file scanning_base.c.
References base_G_h1_unnull(), G, matrice_swap_rows(), user_error, VALUE_ZERO, and value_zero_p.