PIPS
|
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "linear_assert.h"
#include <time.h>
#include <sys/time.h>
#include "boolean.h"
#include "arithmetique.h"
#include "vecteur.h"
#include "contrainte.h"
#include "sc.h"
#include "sommet.h"
#include "polyedre.h"
#include "union.h"
Go to the source code of this file.
Functions | |
Psysteme | sc_full () |
Psysteme sc_full() similar to sc_new. More... | |
bool | sc_full_p (Psysteme in_ps) |
Psysteme sc_full_p( in_ps ) similar to sc_new. More... | |
Psysteme | sc_dup1 (Psysteme in_ps) |
Psysteme sc_dup1( in_ps ) AL 30/05/94 1 depth copy of in_ps: no duplication of vectors (except for the base). More... | |
Psysteme | sc_free (Psysteme in_ps) |
Psysteme sc_free( in_ps ) AL 30/05/94 Free of in_ps. More... | |
Psysteme | sc_free1 (Psysteme in_ps) |
Psysteme sc_free1( in_ps ) AL 30/05/94 Only pcontrainte of in_ps are freed. More... | |
Psysteme | sc_concatenate (Psysteme in_s1, Psysteme in_s2) |
Psysteme sc_concatenate( in_s1, in_s2 ) AL 30/05/94 Append in_s2 to the end of in_s1 and returns in_s1. More... | |
bool | sl_length (Psyslist in_sl) |
int sl_length( (Psyslist) in_sl ) AL 26/04/95 Returns length of in_sl. More... | |
int | sl_max_constraints_nb (Psyslist in_sl) |
int sl_max_constraints_nb( (Psyslist) in_sl ) Give the maximum constraints nb among systems of in_sl. More... | |
bool | sl_is_system_p (Psyslist in_sl) |
bool sl_is_system_p( (Psyslist) in_sl ) AL 16/11/93 Returns True if syslist in_sl has only one Psysteme in it. More... | |
Psyslist | sl_append_system (Psyslist in_sl, Psysteme in_ps) |
Psyslist sl_append_system( (Psyslist) in_sl, (Psysteme) in_ps ) Input : A disjunct in_sl to wich in_ps will be added. More... | |
Psyslist | sl_append_system_first (Psyslist in_sl, Psysteme in_ps) |
Psyslist sl_append_system_first( in_sl, in_ps ) AL 23/03/95 A new Psyslist with in_ps at the end of in_sl (sharing). More... | |
Psyslist | sl_new () |
Psyslist sl_new() AL 26/10/93 Input : Nothing. More... | |
Psyslist | sl_dup (Psyslist in_sl) |
Psyslist sl_dup( (Psyslist) in_sl ) AL 15/11/93 w - 1 duplication : everything is duplicated, except entities. More... | |
Psyslist | sl_dup1 (Psyslist in_sl) |
Psyslist sl_dup1( (Psyslist) in_sl ) AL 15/11/93 Duplicates input syslist. More... | |
Psyslist | sl_free (Psyslist psl) |
Psyslist sl_free(Psyslist psl) BA, AL 30/05/94 w - 1 depth free. More... | |
Psyslist | sl_free1 (Psyslist psl) |
Psyslist sl_free1(Psyslist psl) AL 30/05/94 1 depth free. More... | |
void | sl_set_variable_name (char *(*in_fu)()) |
char* sl_set_variable_name( in_fu ) give the function to read variables More... | |
char * | sl_get_tab_string (int in_tab) |
char* sl_get_tab_string( in_tab ) returns a string of in_tab \t More... | |
void | sl_fprint_tab (FILE *in_fi, Psyslist in_sl, char *(*in_fu)(), int in_tab) |
void | sl_fprint (in_fi, in_sl, char *(*in_fu)()) |
int | slx_parse (void) |
fichier lu par sl_lex.l More... | |
void | sl_init_lex (void) |
Psyslist | sl_read (char *nomfic) |
void sl_read(FILE*) reads a Psyslist More... | |
void | un_fprint_tab (FILE *in_fi, char *in_un, char *(*in_fu)(), int in_ty, int in_tab) |
void un_fprint_tab(FILE*, Pdisjunct, function, type, tab) prints a union More... | |
Variables | |
char *(* | union_variable_name )(Variable) = variable_default_name |
Package : C3/union Author : Arnauld LESERVOT (leservot(a)limeil.cea.fr) Date : Modified : 04 04 95 Documents: UNION.tex : `‘Extension de C3 aux unions de polyedres’' Comments : More... | |
Psyslist | sl_yacc |
FILE * | slx_in |
Psysteme construit par sl_gram.y. More... | |
Psysteme sc_concatenate( in_s1, in_s2 ) AL 30/05/94 Append in_s2 to the end of in_s1 and returns in_s1.
Freeable with sc_free1(). Sharing.
Memory management and returns
in_s1 | n_s1 |
in_s2 | n_s2 |
Definition at line 157 of file sc_list.c.
References Ssysteme::base, Ssysteme::egalites, eq, free(), Ssysteme::inegalites, Ssysteme::nb_eq, Ssysteme::nb_ineq, s1, sc_creer_base(), sc_dup1(), sc_free1(), Scontrainte::succ, and vect_rm().
Psysteme sc_dup1( in_ps ) AL 30/05/94 1 depth copy of in_ps: no duplication of vectors (except for the base).
Sharing !
in_ps | n_ps |
Definition at line 72 of file sc_list.c.
References assert, contrainte_new(), contrainte_vecteur, cp, eq, sc_add_egalite(), sc_add_inegalite(), sc_new(), Scontrainte::succ, vect_dup(), vect_size(), VECTEUR_UNDEFINED, and VECTEUR_UNDEFINED_P.
Referenced by sc_concatenate().
Psysteme sc_free( in_ps ) AL 30/05/94 Free of in_ps.
Returns NULL to be used as in_ps = sc_free( in_ps );
in_ps | n_ps |
Definition at line 112 of file sc_list.c.
References sc_rm().
Referenced by c_convex_effects_on_actual_parameter_forward_translation(), dj_intersection_ofl_ctrl(), effects_to_dma(), new_system_with_only_live_variable(), pa_free(), pa_intersect_system(), pa_path_to_disjunct_rule4_ofl_ctrl(), pa_path_to_few_disjunct_ofl_ctrl(), region_to_minimal_dimensions(), sc_elim_redund_with_first_ofl_ctrl(), sc_supress_parallel_redund_constraints(), sl_free(), transformer_list_generic_transitive_closure(), xml_Application(), xml_Boxes(), xml_Call(), xml_Loop(), and xml_Pattern_Paving().
Psysteme sc_free1( in_ps ) AL 30/05/94 Only pcontrainte of in_ps are freed.
in_ps | n_ps |
Definition at line 121 of file sc_list.c.
References free(), Scontrainte::succ, and vect_rm().
Referenced by sc_concatenate().
Psysteme sc_full | ( | void | ) |
Psysteme sc_full() similar to sc_new.
Definition at line 58 of file sc_list.c.
References sc_new().
Referenced by pa_intersect_complement(), and sc_elim_redund_with_first_ofl_ctrl().
Psysteme sc_full_p( in_ps ) similar to sc_new.
in_ps | n_ps |
Definition at line 61 of file sc_list.c.
Referenced by dj_simple_inegs_to_eg(), pa_path_to_disjunct_rule4_ofl_ctrl(), sc_elim_redund_with_first_ofl_ctrl(), and sl_fprint_tab().
Psyslist sl_append_system( (Psyslist) in_sl, (Psysteme) in_ps ) Input : A disjunct in_sl to wich in_ps will be added.
Output : Disjunct in_sl with in_ps. => ! Sharing. Comment: Nothing is checked on result in_sl. AL 10/11/93
in_sl | n_sl |
in_ps | n_ps |
Definition at line 240 of file sc_list.c.
References Ssyslist::psys, sl_new(), and Ssyslist::succ.
Referenced by dj_append_system(), dj_empty(), dj_intersect_system_ofl_ctrl(), dj_intersection_ofl_ctrl(), dj_simple_inegs_to_eg(), dj_system_complement(), pa_convex_hull_equals_union_p_ofl_ctrl(), pa_inclusion_p_ofl_ctrl(), pa_intersect_complement(), pa_path_to_disjunct_ofl_ctrl(), pa_path_to_disjunct_rule4_ofl_ctrl(), pa_path_to_few_disjunct_ofl_ctrl(), pa_reduce_simple_complement(), pa_supress_same_constraints(), pa_system_difference_ofl_ctrl(), sl_append_system_first(), sl_dup(), and sl_dup1().
Psyslist sl_append_system_first( in_sl, in_ps ) AL 23/03/95 A new Psyslist with in_ps at the end of in_sl (sharing).
in_sl | n_sl |
in_ps | n_ps |
Definition at line 256 of file sc_list.c.
References sl_append_system(), SL_NULL, and Ssyslist::succ.
Psyslist sl_dup( (Psyslist) in_sl ) AL 15/11/93 w - 1 duplication : everything is duplicated, except entities.
Duplicates input syslist.
in_sl | n_sl |
Definition at line 296 of file sc_list.c.
References Ssyslist::psys, sc_dup(), sl_append_system(), SL_NULL, and Ssyslist::succ.
Referenced by dj_dup(), pa_dup(), pa_intersect_complement(), pa_intersect_system(), and pa_path_to_few_disjunct_ofl_ctrl().
Psyslist sl_dup1( (Psyslist) in_sl ) AL 15/11/93 Duplicates input syslist.
Sharing.
in_sl | n_sl |
Definition at line 311 of file sc_list.c.
References Ssyslist::psys, sl_append_system(), and Ssyslist::succ.
Referenced by dj_dup1(), and pa_dup1().
void sl_fprint | ( | in_fi | , |
in_sl | , | ||
char *(*)() | in_fu | ||
) |
Definition at line 447 of file sc_list.c.
References sl_fprint_tab().
Referenced by build_list_of_min(), prepare_reindexing(), separate_variables(), and separate_variables_2().
Prints the VAR part
Prints Psysteme list
Special cases
General Cases
Definition at line 383 of file sc_list.c.
References b1, base_union(), egalite_fprint(), Ssysteme::egalites, fprintf(), free(), inegalite_fprint(), Ssysteme::inegalites, Ssyslist::psys, sc_empty_p(), sc_full_p(), sl_get_tab_string(), SL_NULL, Scontrainte::succ, Ssyslist::succ, Svecteur::succ, vect_rm(), vect_size(), VECTEUR_NUL_P, and vecteur_var.
Referenced by dj_fprint_tab(), pa_fprint_tab(), sl_fprint(), and un_fprint_tab().
Psyslist sl_free(Psyslist psl) BA, AL 30/05/94 w - 1 depth free.
psl | sl |
Definition at line 327 of file sc_list.c.
References free(), Ssyslist::psys, sc_free(), and SL_NULL.
Referenced by dj_free(), pa_free(), pa_path_to_disjunct_rule4_ofl_ctrl(), pa_reduce_simple_complement(), and pa_supress_same_constraints().
Psyslist sl_free1(Psyslist psl) AL 30/05/94 1 depth free.
psl | sl |
Definition at line 343 of file sc_list.c.
References free(), Ssyslist::psys, and SL_NULL.
Referenced by dj_free1(), pa_free1(), and pa_reduce_simple_complement().
char* sl_get_tab_string | ( | int | in_tab | ) |
char* sl_get_tab_string( in_tab ) returns a string of in_tab \t
in_tab | n_tab |
Definition at line 366 of file sc_list.c.
References assert, and strdup().
Referenced by dj_fprint_tab(), pa_fprint_tab(), sl_fprint_tab(), and un_fprint_tab().
void sl_init_lex | ( | void | ) |
bool sl_is_system_p( (Psyslist) in_sl ) AL 16/11/93 Returns True if syslist in_sl has only one Psysteme in it.
in_sl | n_sl |
Definition at line 230 of file sc_list.c.
References sl_length().
Referenced by dj_is_system_p().
int sl_length( (Psyslist) in_sl ) AL 26/04/95 Returns length of in_sl.
in_sl | n_sl |
Definition at line 193 of file sc_list.c.
References Ssyslist::succ.
Referenced by pa_feasibility_ofl_ctrl(), pa_path_to_disjunct_ofl_ctrl(), pa_path_to_disjunct_rule4_ofl_ctrl(), and sl_is_system_p().
int sl_max_constraints_nb( (Psyslist) in_sl ) Give the maximum constraints nb among systems of in_sl.
in_sl | n_sl |
Definition at line 207 of file sc_list.c.
References if(), Ssysteme::nb_eq, Ssysteme::nb_ineq, and sc_empty_p().
Referenced by pa_feasibility_ofl_ctrl(), and pa_max_constraints_nb().
Psyslist sl_new | ( | void | ) |
Psyslist sl_new() AL 26/10/93 Input : Nothing.
Output : An empty syslist.
Definition at line 277 of file sc_list.c.
References exit, fprintf(), malloc(), Ssyslist::psys, and Ssyslist::succ.
Referenced by build_third_comb(), dj_new(), pa_fprint_tab(), prepare_array_bounds(), and sl_append_system().
Psyslist sl_read | ( | char* | nomfic | ) |
void sl_read(FILE*) reads a Psyslist
nomfic | omfic |
Definition at line 461 of file sc_list.c.
References exit, fprintf(), sl_init_lex(), sl_yacc, slx_in, and slx_parse().
Referenced by dj_read(), and pa_read().
void sl_set_variable_name | ( | char* (*)() | in_fu | ) |
char* sl_set_variable_name( in_fu ) give the function to read variables
Definition at line 357 of file sc_list.c.
References union_variable_name.
int slx_parse | ( | void | ) |
void un_fprint_tab(FILE*, Pdisjunct, function, type, tab) prints a union
Definition at line 475 of file sc_list.c.
References dj_fprint, fprintf(), IS_DJ, IS_PA, IS_SC, IS_SL, pa_fprint, sc_fprint(), sl_fprint_tab(), and sl_get_tab_string().
char *(* union_variable_name)(Variable) | ( | Variable | ) | = variable_default_name |
Package : C3/union Author : Arnauld LESERVOT (leservot(a)limeil.cea.fr) Date :
Modified : 04 04 95 Documents: UNION.tex : `‘Extension de C3 aux unions de polyedres’' Comments :
WARNING
THOSE FUNCTIONS ARE AUTOMATICALLY DERIVED
FROM THE WEB SOURCES !
Ansi includes
Linear includes
Definition at line 51 of file sc_list.c.
Referenced by dj_disjunct_complement(), dj_intersect_djcomp_ofl_ctrl(), dj_system_complement(), dj_variable_substitution_with_eqs_ofl_ctrl(), pa_feasibility_ofl_ctrl(), pa_path_to_disjunct_rule4_ofl_ctrl(), pa_path_to_few_disjunct_ofl_ctrl(), pa_reduce_simple_complement(), pa_supress_same_constraints(), sc_elim_redund_with_first_ofl_ctrl(), sc_supress_parallel_redund_constraints(), sc_supress_same_constraints(), and sl_set_variable_name().