PIPS
|
#include "defines-local.h"
#include "workspace-util.h"
#include "prettyprint.h"
#include "matrix.h"
#include "matrice.h"
#include "sparse_sc.h"
Go to the source code of this file.
Functions | |
static Pbase | append_to (Pbase b1, Pbase b2) |
HPFC module by Fabien COELHO. More... | |
static Pbase | scanners_then_others (Pbase initial, list ls) |
returns a newly allocated base with the scanners ahead More... | |
void | extract_lattice (Psysteme s, list scanners, list *newscs, list *ddc) |
void extract_lattice More... | |
HPFC module by Fabien COELHO.
blindly appends b2 after b1
Definition at line 60 of file lattice_extraction.c.
References b1, b2, BASE_NULLE_P, and Svecteur::succ.
Referenced by extract_lattice(), and scanners_then_others().
void extract_lattice
what: extracts a lattice from a set of equalities how: Hermite form computation on equalities implying scanners
input: Psysteme and scanners output: modified system, new scanners and deducibles side effects:
of entity
void implementation: nothing done!
else do the job
FM (so) + V == 0
Fs + Mo + V == 0
H = P * F * Q
H = (Hl 0)
and memory leak, by the way
Hli = Hl^-1
Q = (Ql Qr)
QlHli = Ql * Hl^-1
QlHliM = QlHli * M
QlHliV = QlHli * V
I
mQr = - Qr
create nscanners-neq new scanning variables... they are the yr's.
We have: mQr yr + I s + QlHliM o + QlHliV == 0 yr are the new scanners, s the old ones, deducable from the new ones. the equation must also be used to remove s from the inequalities.
Fnew = ( mQr I QlHliM )
Now we have: (a) Fnew (yr s o)^t + QlHliV == 0 (b) lns – the new scanners
we must (1) generate deducables from (a), (2) regenerate inequalities on yr's.
clean the new system
old scanners are deduced now:
scanners | the system is modified of entity |
newscs | variables to be scanned of entity |
ddc | returned new scanners of expression |
Definition at line 113 of file lattice_extraction.c.
References append_to(), base_dimension, BASE_NULLE, base_rm, CONS, constraints_to_matrices(), contraintes_free(), DEBUG_BASE, DEBUG_ELST, DEBUG_MTRX, DEBUG_SYST, ENDP, ENTITY, eq, F, gen_append(), gen_copy_seq(), gen_length(), get_bool_property(), hpfc_new_variable(), insert_sub_matrix(), is_basic_int, list_to_base(), MakeBasic(), matrices_to_constraints(), matrix_diagonal_p(), matrix_free, matrix_hermite(), matrix_identity(), matrix_multiply(), matrix_new(), matrix_triangular_unimodular_p(), matrix_uminus(), matrix_unimodular_triangular_inversion(), message_assert, NIL, node_module, ordinary_sub_matrix(), pips_assert, pips_debug, pips_user_warning, Q, sc_creer_base(), scanners_then_others(), and simplify_deducable_variables().
Referenced by hpf_remapping().
returns a newly allocated base with the scanners ahead
scanners
ls | full base of entity |
Definition at line 73 of file lattice_extraction.c.
References append_to(), base_add_dimension, BASE_NULLE, BASE_NULLE_P, gen_in_list_p(), Svecteur::succ, and var_of.
Referenced by extract_lattice().