PIPS
|
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
#include <string.h>
#include <limits.h>
#include <unistd.h>
#include "linear.h"
#include "polylib/polylib.h"
Go to the source code of this file.
Macros | |
#define | MAX_NB_RAYS (20000) |
IRISA/POLYLIB data structures. More... | |
#define | VALUE_TO_IRINT(val) (val) |
Irisa is based on int. More... | |
#define | IRINT_TO_VALUE(i) (i) |
Functions | |
static void | my_Matrix_Free (Matrix *volatile *m) |
static void | my_Polyhedron_Free (Polyhedron *volatile *p) |
static void | contrainte_to_matrix_ligne (Pcontrainte pc, Matrix *mat, int i, Pbase base) |
Fonctions de conversion traduisant une Pcontrainte en une ligne de la structure matrix de l'IRISA. More... | |
static void | sc_to_matrix (Psysteme sc, Matrix *mat) |
Passage du systeme lineaire sc a une matrice matrix (structure Irisa) Cette fonction de conversion est utilisee par la fonction sc_to_sg_chernikova. More... | |
static Variable | base_nth (Pbase b, size_t i) |
static Ppolynome | evalue_to_polynome (evalue *, Pbase) |
static Ppolynome | enode_to_polynome (enode *e, Pbase ordered_base) |
Ppolynome | sc_enumerate (Psysteme ordered_sc, Pbase ordered_base, const char *variable_names[]) |
enumerate the systeme sc using base pb pb contains the unknow variables and sc all the constraints ordered_sc must be order as follows: elements from ordered_base appear last variable_names can be provided for debugging purpose (name of bases) or set to NULL More... | |
#define IRINT_TO_VALUE | ( | i | ) | (i) |
Definition at line 60 of file sc_enumerate.c.
#define MAX_NB_RAYS (20000) |
IRISA/POLYLIB data structures.
maximum number of rays allowed in chernikova... (was 20000) it does not look a good idea to move the limit up, as it makes both time and memory consumption to grow a lot.
Definition at line 47 of file sc_enumerate.c.
#define VALUE_TO_IRINT | ( | val | ) | (val) |
Irisa is based on int.
We would like to change this to some other type, say "long long" if desired, as VALUE may also be changed. It is currently an int. Let us assume that the future type will be be called "IRINT" (Irisa Int)
Definition at line 59 of file sc_enumerate.c.
Definition at line 254 of file sc_enumerate.c.
References vecteur_succ, and vecteur_var.
Referenced by enode_to_polynome().
|
static |
Fonctions de conversion traduisant une Pcontrainte en une ligne de la structure matrix de l'IRISA.
Definition at line 91 of file sc_enumerate.c.
References base, Svecteur::succ, TCST, VALUE_TO_IRINT, value_uminus, vect_coeff(), Scontrainte::vecteur, VECTEUR_NUL_P, and vecteur_var.
Referenced by sc_to_matrix().
Definition at line 264 of file sc_enumerate.c.
References base_nth(), evalue_to_polynome(), fprintf(), make_polynome(), polynome_add(), polynome_mult(), POLYNOME_NUL, and POLYNOME_UNDEFINED.
Referenced by evalue_to_polynome().
Definition at line 290 of file sc_enumerate.c.
References enode_to_polynome(), make_polynome(), TCST, and value_notzero_p.
Referenced by enode_to_polynome(), and sc_enumerate().
|
static |
Definition at line 63 of file sc_enumerate.c.
References fprintf().
Referenced by sc_enumerate().
|
static |
Definition at line 75 of file sc_enumerate.c.
References fprintf().
Referenced by sc_enumerate().
enumerate the systeme sc using base pb pb contains the unknow variables and sc all the constraints ordered_sc must be order as follows: elements from ordered_base appear last variable_names can be provided for debugging purpose (name of bases) or set to NULL
ordered_sc | rdered_sc |
ordered_base | rdered_base |
variable_names | ariable_names |
Definition at line 307 of file sc_enumerate.c.
References any_exception_error, assert, base_dimension, CATCH, Ssysteme::dimension, evalue_to_polynome(), make_polynome(), MAX_NB_RAYS, my_Matrix_Free(), my_Polyhedron_Free(), Ssysteme::nb_eq, Ssysteme::nb_ineq, RETHROW, sc_to_matrix(), TCST, TRY, and UNCATCH.
|
static |
Passage du systeme lineaire sc a une matrice matrix (structure Irisa) Cette fonction de conversion est utilisee par la fonction sc_to_sg_chernikova.
Definition at line 115 of file sc_enumerate.c.
References Ssysteme::base, contrainte_to_matrix_ligne(), CONTRAINTE_UNDEFINED_P, Ssysteme::egalites, Ssysteme::inegalites, Ssysteme::nb_eq, Scontrainte::succ, Svecteur::succ, and VECTEUR_NUL_P.
Referenced by sc_enumerate().