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 | |
Ppath | pa_make (Psysteme in_ps, Pcomplist in_pcomp) |
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... | |
Ppath | pa_dup (Ppath in_pa) |
void pa_dup(Ppath pa) AL 30/05/94 More... | |
Ppath | pa_free (Ppath in_pa) |
Ppath pa_free(Ppath pa) BA, AL 30/05/94. More... | |
Ppath | pa_dup1 (Ppath in_pa) |
void pa_dup1(Ppath pa) AL 30/05/94 1 depth duplication: system and complements are shared. More... | |
Ppath | pa_free1 (Ppath in_pa) |
Ppath pa_free1(Ppath pa) BA, AL 30/05/94 1 depth free. More... | |
Ppath | pa_full () |
Ppath pa_full() AL 18/11/93 Returns full space path : pa_full = pa_new() More... | |
bool | pa_full_p (Ppath in_pa) |
pa_full_p( (Ppath) in_pa ) AL 18/11/93 Returns True if in_pa = (NIL) ^ (NIL) More... | |
Ppath | pa_empty () |
Ppath pa_empty() AL 18/11/93 Returns empty path : pa_empty = sc_empty(NULL) ^ (NIL) More... | |
bool | pa_empty_p (Ppath in_pa) |
pa_empty_p( (Ppath) in_pa ) AL 18/11/93 Returns True if in_pa = (1*TCST = 0) ^ (NIL) More... | |
int | pa_max_constraints_nb (Ppath in_pa) |
int pa_max_constraints_nb( (Ppath) in_pa ) Give the maximum constraints nb among systems of in_pa. More... | |
Ppath | pa_intersect_system (Ppath in_pa, Psysteme in_ps) |
Ppath pa_intersect_system( (Ppath) in_pa, (Psysteme) in_ps ) Computes the intersection between in_pa and in_ps. More... | |
Ppath | pa_intersect_complement (Ppath in_pa, Pcomplement in_pc) |
Ppath pa_intersect_complement( (Ppath) in_pa, (Pcomplement) in_pc ) Computes the intersection between in_pa and in_ps. More... | |
Ppath | pa_reduce_simple_complement (Ppath in_pa) |
Ppath pa_reduce_simple_complement( (Ppath) in_pa ) AL 16/11/93 Scan all the complement. More... | |
Ppath | pa_transform_eg_in_ineg (Ppath in_pa) |
Ppath pa_transform_eg_in_ineg( in_pa ) Transforms all equalities of all systems composing in_pa in inequalities and returns in_pa. More... | |
bool | pa_feasibility_ofl_ctrl (Ppath in_pa, int ofl_ctrl) |
bool pa_feasibility_ofl_ctrl( (Ppath) in_pa, int ofl_ctrl) Returns true if the input path is possible and false if it is not possible or undefined. More... | |
Pdisjunct | pa_path_to_disjunct_ofl_ctrl (Ppath in_pa, int ofl_ctrl) |
Pdisjunct pa_path_to_disjunct_ofl_ctrl ( (Ppath) in_pa, (int) ofl_ctrl) Produces a Pdisjunct corresponding to the path Ppath. More... | |
void | pa_fprint_tab (FILE *in_fi, Ppath in_pa, char *(*in_fu)(), int in_tab) |
void pa_fprint_tab(FILE*, Pdisjunct, function, tab) prints a Ppath More... | |
Ppath | pa_read (char *nomfic) |
void pa_read(FILE*) reads a Ppath More... | |
void pa_dup(Ppath pa) AL 30/05/94
in_pa | n_pa |
Definition at line 68 of file path.c.
References pa_make(), PA_UNDEFINED, sc_dup(), and sl_dup().
void pa_dup1(Ppath pa) AL 30/05/94 1 depth duplication: system and complements are shared.
in_pa | n_pa |
Definition at line 91 of file path.c.
References pa_make(), PA_UNDEFINED, and sl_dup1().
Ppath pa_empty | ( | void | ) |
Ppath pa_empty() AL 18/11/93 Returns empty path : pa_empty = sc_empty(NULL) ^ (NIL)
Definition at line 135 of file path.c.
References pa_make(), and sc_empty().
Referenced by adg_path_possible_source(), pa_intersect_complement(), pa_intersect_system(), pa_path_to_few_disjunct_ofl_ctrl(), pa_reduce_simple_complement(), and pa_supress_same_constraints().
pa_empty_p( (Ppath) in_pa ) AL 18/11/93 Returns True if in_pa = (1*TCST = 0) ^ (NIL)
in_pa | n_pa |
Definition at line 141 of file path.c.
References PA_UNDEFINED, and sc_empty_p().
Referenced by adg_dataflowgraph(), adg_path_possible_source(), pa_feasibility_ofl_ctrl(), pa_intersect_complement(), pa_intersect_system(), pa_max_constraints_nb(), 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(), and pa_transform_eg_in_ineg().
bool pa_feasibility_ofl_ctrl( (Ppath) in_pa, int ofl_ctrl)
Returns true if the input path is possible and false if it is not possible or undefined.
in_pa | n_pa |
ofl_ctrl | fl_ctrl |
Definition at line 309 of file path.c.
References db_get_current_module_name(), dj_empty_p(), dj_free(), fprintf(), free(), malloc(), pa_empty_p(), pa_fprint, pa_free(), pa_full_p(), pa_max_constraints_nb(), pa_path_to_few_disjunct_ofl_ctrl(), pa_supress_same_constraints(), PA_UNDEFINED_P, sl_length(), sl_max_constraints_nb(), and union_variable_name.
Referenced by disjunction_to_region_sc(), pa_convex_hull_equals_union_p_ofl_ctrl(), and pa_inclusion_p_ofl_ctrl().
void pa_fprint_tab(FILE*, Pdisjunct, function, tab) prints a Ppath
Definition at line 412 of file path.c.
References fprintf(), free(), pa_full_p(), PA_UNDEFINED_P, Spath::pcomp, Ssyslist::psys, Spath::psys, sl_fprint_tab(), sl_get_tab_string(), sl_new(), and Ssyslist::succ.
Referenced by pa_path_to_few_disjunct_ofl_ctrl(), pa_reduce_simple_complement(), and pa_supress_same_constraints().
Ppath pa_free(Ppath pa) BA, AL 30/05/94.
in_pa | n_pa |
Definition at line 76 of file path.c.
References free(), PA_UNDEFINED, Spath::psys, sc_free(), and sl_free().
Referenced by pa_feasibility_ofl_ctrl(), pa_path_to_disjunct_rule4_ofl_ctrl(), pa_path_to_few_disjunct_ofl_ctrl(), and pa_reduce_simple_complement().
Ppath pa_free1(Ppath pa) BA, AL 30/05/94 1 depth free.
System and complement are not freed.
in_pa | n_pa |
Definition at line 102 of file path.c.
References free(), PA_UNDEFINED, and sl_free1().
Referenced by disjunction_to_region_sc(), pa_convex_hull_equals_union_p_ofl_ctrl(), pa_inclusion_p_ofl_ctrl(), pa_path_to_few_disjunct_ofl_ctrl(), pa_reduce_simple_complement(), and pa_system_difference_ofl_ctrl().
Ppath pa_full | ( | void | ) |
Ppath pa_full() AL 18/11/93 Returns full space path : pa_full = pa_new()
Definition at line 117 of file path.c.
References pa_new.
Referenced by adg_dataflowgraph(), adg_dataflowgraph_with_extremities(), and pa_supress_same_constraints().
pa_full_p( (Ppath) in_pa ) AL 18/11/93 Returns True if in_pa = (NIL) ^ (NIL)
in_pa | n_pa |
Definition at line 123 of file path.c.
References PA_UNDEFINED.
Referenced by pa_feasibility_ofl_ctrl(), pa_fprint_tab(), pa_intersect_complement(), pa_intersect_system(), pa_max_constraints_nb(), pa_path_to_disjunct_ofl_ctrl(), pa_path_to_few_disjunct_ofl_ctrl(), pa_reduce_simple_complement(), pa_supress_same_constraints(), and pa_transform_eg_in_ineg().
Ppath pa_intersect_complement | ( | Ppath | in_pa, |
Pcomplement | in_pc | ||
) |
Ppath pa_intersect_complement( (Ppath) in_pa, (Pcomplement) in_pc ) Computes the intersection between in_pa and in_ps.
AL 17/11/93 No sharing
in_pa | n_pa |
in_pc | n_pc |
Definition at line 200 of file path.c.
References pa_empty(), pa_empty_p(), pa_full_p(), pa_make(), PA_UNDEFINED, PA_UNDEFINED_P, sc_dup(), sc_full(), sl_append_system(), and sl_dup().
Referenced by adg_path_max_source(), adg_path_possible_source(), and adg_update_dfg().
Ppath pa_intersect_system( (Ppath) in_pa, (Psysteme) in_ps ) Computes the intersection between in_pa and in_ps.
AL 25/04/95 No sharing
in_pa | n_pa |
in_ps | n_ps |
Definition at line 178 of file path.c.
References pa_empty(), pa_empty_p(), pa_full_p(), pa_make(), PA_UNDEFINED, PA_UNDEFINED_P, sc_append(), sc_dup(), sc_free(), sc_normalize(), and sl_dup().
Referenced by adg_max_of_leaves(), adg_path_max_source(), adg_path_possible_source(), and adg_update_dfg().
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
Ppath pa_make(in_ps, in_pcomp) AL 16/11/93 Allocates a Ppath and initialize it with in_ps and in_pcomp SHARING.
in_ps | n_ps |
in_pcomp | n_pcomp |
Definition at line 53 of file path.c.
References exit, fprintf(), malloc(), Spath::pcomp, and Spath::psys.
Referenced by disjunction_to_region_sc(), dj_intersect_djcomp_ofl_ctrl(), pa_convex_hull_equals_union_p_ofl_ctrl(), pa_dup(), pa_dup1(), pa_empty(), pa_inclusion_p_ofl_ctrl(), pa_intersect_complement(), pa_intersect_system(), pa_path_to_disjunct_rule4_ofl_ctrl(), pa_path_to_few_disjunct_ofl_ctrl(), pa_read(), pa_reduce_simple_complement(), pa_supress_same_constraints(), and pa_system_difference_ofl_ctrl().
int pa_max_constraints_nb( (Ppath) in_pa ) Give the maximum constraints nb among systems of in_pa.
in_pa | n_pa |
Definition at line 155 of file path.c.
References Ssysteme::nb_eq, Ssysteme::nb_ineq, pa_empty_p(), pa_full_p(), PA_UNDEFINED_P, and sl_max_constraints_nb().
Referenced by pa_feasibility_ofl_ctrl(), and pa_path_to_disjunct_rule4_ofl_ctrl().
Pdisjunct pa_path_to_disjunct_ofl_ctrl ( (Ppath) in_pa, (int) ofl_ctrl)
Produces a Pdisjunct corresponding to the path Ppath.
No sharing.
comparison between 2 methods
in_pa | n_pa |
ofl_ctrl | fl_ctrl |
Definition at line 374 of file path.c.
References C3_DEBUG, dj_empty(), dj_free(), dj_full(), dj_intersection_ofl_ctrl(), dj_system_complement(), DJ_UNDEFINED, fprintf(), pa_empty_p(), pa_full_p(), PA_UNDEFINED, Ssyslist::psys, sc_dup(), sc_empty_p(), sl_append_system(), sl_length(), and Ssyslist::succ.
Referenced by pa_path_to_disjunct_rule4_ofl_ctrl().
Ppath pa_read | ( | char* | nomfic | ) |
void pa_read(FILE*) reads a Ppath
nomfic | omfic |
Definition at line 438 of file path.c.
References free(), pa_make(), PA_UNDEFINED, Ssyslist::psys, SL_NULL, sl_read(), and Ssyslist::succ.
Ppath pa_reduce_simple_complement( (Ppath) in_pa ) AL 16/11/93 Scan all the complement.
If one complement is a simple inequality, its complement is computed and intersected with psys part of in_pa. in_pa is modified. (Sharing with in_pa).
Do we have a simple complement ?
also frees pss
in_pa | n_pa |
Definition at line 222 of file path.c.
References C3_DEBUG, C3_RETURN, dj_free(), dj_system_complement(), false, fprintf(), IS_PA, Ssysteme::nb_eq, Ssysteme::nb_ineq, pa_empty(), pa_empty_p(), pa_fprint_tab(), pa_free(), pa_free1(), pa_full_p(), pa_make(), PA_UNDEFINED, Ssyslist::psys, sc_empty_p(), sc_safe_append(), sl_append_system(), sl_free(), sl_free1(), Ssyslist::succ, and union_variable_name.
Referenced by pa_path_to_disjunct_rule4_ofl_ctrl(), and pa_path_to_few_disjunct_ofl_ctrl().
Ppath pa_transform_eg_in_ineg( in_pa ) Transforms all equalities of all systems composing in_pa in inequalities and returns in_pa.
in_pa is modified. (Sharing with in_pa).
in_pa | n_pa |
Definition at line 284 of file path.c.
References pa_empty_p(), pa_full_p(), PA_UNDEFINED, Ssyslist::psys, sc_transform_eg_in_ineg(), and Ssyslist::succ.
Referenced by pa_path_to_few_disjunct_ofl_ctrl().