Main Page | Class List | File List | Class Members | File Members

compress_parms.h

Go to the documentation of this file.
00001 // (C) B. Meister 12/2003-2005
00002 // LSIIT -ICPS 
00003 // UMR 7005 CNRS
00004 // Louis Pasteur University (ULP), Strasbourg, France
00005 
00006 #ifndef __BM_COMPRESS_PARMS_H__
00007 #define __BM_COMPRESS_PARMS_H__
00008 
00009 #include "matrix_addon.h"
00010 #include "matrix_permutations.h"
00011 #include <assert.h>
00012 
00013 
00014 // given a full-row-rank nxm matrix M(made of row-vectors), 
00015 // computes the basis K (made of n-m column-vectors) of the integer kernel of M
00016 // so we have: M.K = 0
00017 Matrix * int_ker(Matrix * M);
00018 
00019 // Compute the overall period of the variables I for (MI) mod |d|,
00020 // where M is a matrix and |d| a vector
00021 // Produce a diagonal matrix S = (s_k) where s_k is the overall period of i_k
00022 Matrix * affine_periods(Matrix * M, Matrix * d);
00023 
00024 // given a matrix B' with m rows and m-vectors C' and d, computes the 
00025 // basis of the integer solutions to (B'N+C') mod d = 0.
00026 // returns NULL if there is no integer solution
00027 Matrix * int_mod_basis(Matrix * Bp, Matrix * Cp, Matrix * d);
00028 
00029 // given a parameterized constraints matrix with m equalities, computes the compression matrix 
00030 // C such that there is an integer solution in the variables space for each value of N', with 
00031 // N = Cmp N' (N are the original parameters)
00032 Matrix * compress_parms(Matrix * E, int nb_parms);
00033 
00034 // given a matrix of m parameterized equations, compress the parameters and transform the variable space into a n-m space.
00035 Matrix * full_dimensionize(Matrix const * M, int nb_parms, Matrix ** Validity_Lattice);
00036 
00037 #endif // __BM_COMPRESS_PARMS_H__

Generated on Mon Sep 12 15:15:10 2005 for polylib by doxygen 1.3.5