PIPS
|
#include <stdio.h>
#include "linear_assert.h"
#include "boolean.h"
#include "arithmetique.h"
#include "vecteur.h"
Go to the source code of this file.
Functions | |
Pvecteur | vect_chain (Pvecteur v_in, Variable var, Value coeff) |
package vecteur routines internes au package More... | |
Pvecteur | vect_elem (Pvecteur vect, Variable var) |
PRIVATE: introduit du sharing; never used... More... | |
Pvecteur | vect_extract (Pvecteur pvec, Variable var) |
UNUSED - NOT TESTED. More... | |
Variable | vect_first_var (Pvecteur pvec) |
PRIVATE: marquage du couple var_val comme visite par remplacement de var par -var dans le couple (OBSOLETE) More... | |
Pvecteur | vect_reversal (Pvecteur vect_in) |
Pvecteur vect_reversal(Pvecteur vect_in); produces the reversal vector of the vect_in. More... | |
package vecteur routines internes au package
INTLIBRARY PRIVATE: introduit du sharing, ne garantit pas l'unicite de chaque composante
Pvecteur vect_chain(Pvecteur v_in, Variable var, Value coeff): ajout d'un vecteur colineaire au vecteur de base var et de coefficient coeff au vecteur v_in; si la composante var de v_in etait nulle:
si <v_in . evar> == 0 alors -—> allocate v_out; -—> —> --> v_out = v_in + coeff var; —> destroy v_in; sinon chaos!
v_in ne doit plus etre utilise ulterieurement; l'utilisation standard est donc: v = vect_chain(v,var,coeff);
Pour preserver la coherence des vecteurs, l'utilisateur doit appeler vect_add_elem(v,var,coeff) qui teste l'existence d'un coefficient var nul dans v avant de creer un nouveau couple (var,coeff)
On pourrait preferer le passage d'un Pvecteur * comme premier argument et un return void.
very expensive for EDF... FC/CA 06/07/2000. useless?
assert(vect_coeff(var, v_in)==0);
v_in | _in |
var | ar |
coeff | oeff |
Definition at line 69 of file private.c.
References Svecteur::succ, and vect_new().
Referenced by base_append(), base_union(), sc_to_minimal_basis(), vect_add_elem(), vect_chg_coeff(), and vect_dup().
PRIVATE: introduit du sharing; never used...
Pvecteur vect_elem(Pvecteur vect, Variable var): retourne la valeur du pointeur vers le couple correspondant a la variable var dans le vecteur vect, s'il existe ou NULL sinon.
vect | ect |
var | ar |
Definition at line 91 of file private.c.
References var_of.
UNUSED - NOT TESTED.
Pvecteur vect_extract(Pvecteur pvec, Variable var): fonction qui extrait le couple (variable,coefficient) du vecteur et renvoie l'adresse d'un nouveau vecteur vers ce couple. On a donc un effet de bord sur pvec (qui est impossible a assurer dans tous les cas) et un retour de valeur
—> —> —> --> --> pvec := pvec - <pvec . var> var; -—> allocate pvec1; -—> —> --> --> return(pvec1 := <pvec . var> var);
Notes:
le couple interessant se trouve en tete
Sinon, c'est le vecteur 0
pvec | vec |
var | ar |
Definition at line 126 of file private.c.
References Svecteur::succ, var_of, and vect_dup().
PRIVATE: marquage du couple var_val comme visite par remplacement de var par -var dans le couple (OBSOLETE)
Value vect_coeff_m(Variable var, Pvecteur vect)
static Value vect_coeff_m(var,vect) Variable var; Pvecteur vect; { for (; vect != NULL ; vect = vect->succ) if (var_of(vect) == var) { marquer(vect); return(val_of(vect)); } return(0); } PRIVATE Pvecteur vect_tri_old(Pvecteur pvec): allocation d'un vecteur prenant une valeur egale a celle de pvec mais dont les couples (variable,valeur) sont tries dans "l'ordre croissant" des vecteurs de base (i.e. des variables) Variable vect_first_var(Pvecteur pvec) retourne la premiere variable (au sens CAR) du vecteur pvec routine sale mais qui permet d'iterer sur les variables formant un vecteur ou une base. 20/06/90 PB
pvec | vec |
Definition at line 227 of file private.c.
Referenced by is_inferior_monome(), and pvecteur_to_polynome().
Pvecteur vect_reversal(Pvecteur vect_in); produces the reversal vector of the vect_in.
vect_in is not killed.
12/09/91, YY
vect_in | ect_in |
Definition at line 237 of file private.c.
References Svecteur::succ, vect_add_elem(), VECTEUR_NUL, VECTEUR_NUL_P, vecteur_val, and vecteur_var.
Referenced by adg_list_to_vect(), contrainte_reversal(), vect_add_first(), vect_gen_read(), and xml_LoopOffset().