59 (void)
fprintf(stderr,
"pa_new: Out of memory space\n");
62 ret_pa->
psys = in_ps; ret_pa->
pcomp = in_pcomp;
127 ( in_pa->
pcomp == NULL ) &&
128 ( in_pa->
psys == NULL ) );
145 ( in_pa->
pcomp == NULL ) &&
146 ( in_pa->
psys != NULL ) &&
168 if (loc > ret_int) ret_int = loc;
226 Pcomplist pco, pco2 = NULL, tofree = NULL;
228 bool at_least_one =
false ;
233 C3_DEBUG(
"pa_reduce_simple_complement", {
234 fprintf(stderr,
"Input path:\n");
239 for( pco = in_pa->
pcomp, pco2 = NULL; pco != NULL; pco = pco->
succ ) {
242 if (ps == SC_UNDEFINED) {
262 else if(!sc_faisabilite_ofl(pss)) {
271 ret_pa =
pa_make ( pss, pco2 );
293 for( pco = in_pa->
pcomp; pco != NULL; pco = pco->
succ )
305 #ifdef TRACE_LINEAR_PATH
316 #ifdef TRACE_LINEAR_PATH
324 #ifdef TRACE_LINEAR_PATH
326 if (getenv(
"KEEP_PATH") != (
char*) NULL) {
327 struct timeval *tp = (
struct timeval*)
malloc(
sizeof(
struct timeval));
328 struct timezone *tz = (
struct timezone*)
malloc(
sizeof(
struct timezone));
330 gettimeofday( tp, tz ); seconds = tp->tv_sec;
331 report_file = fopen(
"mail_those_paths_to_arnauld",
"a");
333 fprintf( report_file,
"# %s", ctime( &(seconds) ));
337 "# Input number of complement: \t%d\n",
sl_length(in_pa->
pcomp) );
340 fflush ( report_file );
free( tp );
free( tz );
346 if(
dj_empty_p(dj) || (dj == NULL) ) ret_bo =
false;
350 #ifdef TRACE_LINEAR_PATH
352 if (getenv(
"KEEP_PATH") != (
char*) NULL) {
354 "# Output number of disjunctions: \t%d\n",
sl_length(dj) );
358 "# Feasible: \t%s\n", (ret_bo) ?
"YES":
"NO" );
359 fclose ( report_file );
380 int meth1 = 0, meth2 = 1;
385 if ((in_pa->
psys != NULL) &&
389 for( comp = in_pa->
pcomp; comp != NULL; comp = comp->
succ) {
395 meth1 = meth1 + lg2*lg1 ; meth2 = meth2 * lg1;
401 C3_DEBUG(
"pa_path_to_disjunct_ofl_ctrl", {
402 fprintf(stderr,
"Feasibility calls with method 1 and 2 : %d\t%d\n",
422 fprintf(in_fi,
"%sPA_FULL\n", tabs);
426 fprintf(in_fi,
"%sPA_UNDEFINED\n", tabs);
431 fprintf ( in_fi,
"\n%s# --------PA BEGIN------\n", tabs);
433 fprintf ( in_fi,
"\n%s# --------PA END--------\n", tabs);
string db_get_current_module_name(void)
Also used to check whether set...
Pdisjunct dj_system_complement(Psysteme in_ps)
Pdisjunct dj_system_complement( (Psystem) in_ps ) AL 26/10/93 Input : A Psysteme.
Pdisjunct dj_free(Pdisjunct in_dj)
Pdisjunct dj_free( (Pdisjunct) in_dj ) AL 31/05/94 w - 1 depth free of input disjunction.
Pdisjunct dj_intersection_ofl_ctrl(Pdisjunct in_dj1, Pdisjunct in_dj2, int ofl_ctrl)
Pdisjunct dj_intersection_ofl_ctrl( in_dj1, in_dj2, ofl_ctrl ) Computes intersection of two disjuncti...
bool dj_empty_p(Pdisjunct in_dj)
dj_empty_p( (Ppath) in_pa ) AL 30/05/94 Returns True if in_dj = (1*TCST = 0) ^ (NIL)
Pdisjunct dj_full()
Pdisjunct dj_full() AL 18/11/93 Return full space disjunction = dj_new()
Pdisjunct dj_empty()
Pdisjunct dj_empty() AL 18/11/93 Returns a disjunction with sc_empty() element.
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.
Ppath pa_full()
Ppath pa_full() AL 18/11/93 Returns full space path : pa_full = pa_new()
Ppath pa_empty()
Ppath pa_empty() AL 18/11/93 Returns empty path : pa_empty = sc_empty(NULL) ^ (NIL)
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
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 in...
Ppath pa_free(Ppath in_pa)
Ppath pa_free(Ppath pa) BA, AL 30/05/94.
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 corres...
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 ...
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 possib...
Ppath pa_read(char *nomfic)
void pa_read(FILE*) reads a Ppath
bool pa_full_p(Ppath in_pa)
pa_full_p( (Ppath) in_pa ) AL 18/11/93 Returns True if in_pa = (NIL) ^ (NIL)
Ppath pa_free1(Ppath in_pa)
Ppath pa_free1(Ppath pa) BA, AL 30/05/94 1 depth free.
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)
Ppath pa_reduce_simple_complement(Ppath in_pa)
Ppath pa_reduce_simple_complement( (Ppath) in_pa ) AL 16/11/93 Scan all the complement.
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 ...
Ppath pa_intersect_complement(Ppath in_pa, Pcomplement in_pc)
Ppath pa_intersect_complement( (Ppath) in_pa, (Pcomplement) in_pc ) Computes the intersection between...
Ppath pa_dup1(Ppath in_pa)
void pa_dup1(Ppath pa) AL 30/05/94 1 depth duplication: system and complements are shared.
Ppath pa_dup(Ppath in_pa)
void pa_dup(Ppath pa) AL 30/05/94
Ppath pa_supress_same_constraints(Ppath in_pa)
Ppath pa_supress_same_constraints( (Ppath) in_pa ) Supress from complements of in_pa same constrain...
Pdisjunct pa_path_to_few_disjunct_ofl_ctrl(Ppath in_pa, int ofl_ctrl)
line 1197 "reduc.w"
const char * entity_local_name(entity e)
entity_local_name modified so that it does not core when used in vect_fprint, since someone thought t...
Psysteme sc_empty(Pbase b)
Psysteme sc_empty(Pbase b): build a Psysteme with one unfeasible constraint to define the empty subsp...
bool sc_empty_p(Psysteme sc)
bool sc_empty_p(Psysteme sc): check if the set associated to sc is the constant sc_empty or not.
Psysteme sc_dup(Psysteme ps)
Psysteme sc_dup(Psysteme ps): should becomes a link.
Psysteme sc_append(Psysteme s1, Psysteme s2)
Psysteme sc_append(Psysteme s1, Psysteme s2): calcul de l'intersection des polyedres definis par s1 e...
Psysteme sc_safe_append(Psysteme s1, Psysteme s2)
Psysteme sc_safe_append(Psysteme s1, Psysteme s2) input : output : calcul de l'intersection des polye...
Psysteme sc_free(Psysteme in_ps)
Psysteme sc_free( in_ps ) AL 30/05/94 Free of in_ps.
Psyslist sl_free1(Psyslist psl)
Psyslist sl_free1(Psyslist psl) AL 30/05/94 1 depth free.
Psysteme sc_full()
Psysteme sc_full() similar to sc_new.
Psyslist sl_free(Psyslist psl)
Psyslist sl_free(Psyslist psl) BA, AL 30/05/94 w - 1 depth free.
char *(* union_variable_name)(Variable)
Package : C3/union Author : Arnauld LESERVOT (leservot(a)limeil.cea.fr) Date : Modified : 04 04 95 ...
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_p...
Psyslist sl_dup1(Psyslist in_sl)
Psyslist sl_dup1( (Psyslist) in_sl ) AL 15/11/93 Duplicates input syslist.
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.
char * sl_get_tab_string(int in_tab)
char* sl_get_tab_string( in_tab ) returns a string of in_tab \t
Psyslist sl_read(char *nomfic)
void sl_read(FILE*) reads a Psyslist
Psyslist sl_dup(Psyslist in_sl)
Psyslist sl_dup( (Psyslist) in_sl ) AL 15/11/93 w - 1 duplication : everything is duplicated,...
Psyslist sl_new()
Psyslist sl_new() AL 26/10/93 Input : Nothing.
bool sl_length(Psyslist in_sl)
int sl_length( (Psyslist) in_sl ) AL 26/04/95 Returns length of in_sl.
void sl_fprint_tab(FILE *in_fi, Psyslist in_sl, char *(*in_fu)(), int in_tab)
int fprintf()
test sc_min : ce test s'appelle par : programme fichier1.data fichier2.data ...
Psysteme sc_normalize(Psysteme ps)
Psysteme sc_normalize(Psysteme ps): normalisation d'un systeme d'equation et d'inequations lineaires ...
Warning! Do not modify this file that is automatically generated!
#define pa_fprint(fi, pa, fu)
#define PA_UNDEFINED_P(pa)
#define C3_DEBUG(fun, code)
#define C3_RETURN(type, val)