Main Page | Class List | File List | Class Members | File Members

vector.c File Reference

#include <stdio.h>
#include <stdlib.h>
#include <polylib/polylib.h>

Go to the source code of this file.

Defines

#define MAX_CACHE_SIZE   20

Functions

void Factorial (int n, Value *fact)
void Binomial (int n, int p, Value *result)
void CNP (int a, int b, Value *result)
void Gcd (Value a, Value b, Value *result)
int First_Non_Zero (Value *p, unsigned length)
VectorVector_Alloc (unsigned length)
void Vector_Free (Vector *vector)
void Vector_Print (FILE *Dst, const char *Format, Vector *vector)
VectorVector_Read ()
void Vector_Set (Value *p, int n, unsigned length)
void Vector_Exchange (Value *p1, Value *p2, unsigned length)
void Vector_Copy (Value *p1, Value *p2, unsigned length)
void Vector_Add (Value *p1, Value *p2, Value *p3, unsigned length)
void Vector_Sub (Value *p1, Value *p2, Value *p3, unsigned length)
void Vector_Or (Value *p1, Value *p2, Value *p3, unsigned length)
void Vector_Scale (Value *p1, Value *p2, Value lambda, unsigned length)
void Vector_AntiScale (Value *p1, Value *p2, Value lambda, unsigned length)
void Vector_Oppose (Value *p1, Value *p2, unsigned len)
void Inner_Product (Value *p1, Value *p2, unsigned length, Value *ip)
void Vector_Max (Value *p, unsigned length, Value *max)
void Vector_Min (Value *p, unsigned length, Value *min)
void Vector_Combine (Value *p1, Value *p2, Value *p3, Value lambda, Value mu, unsigned length)
int Vector_Equal (Value *Vec1, Value *Vec2, unsigned n)
void Vector_Min_Not_Zero (Value *p, unsigned length, int *index, Value *min)
void Vector_Gcd (Value *p, unsigned length, Value *min)
void Vector_Map (Value *p1, Value *p2, Value *p3, unsigned length, Value *(*f)(Value, Value))
void Vector_Normalize (Value *p, unsigned length)
void Vector_Normalize_Positive (Value *p, int length, int pos)
void Vector_Reduce (Value *p, unsigned length, void(*f)(Value, Value *), Value *r)
void Vector_Sort (Value *vector, unsigned n)
int ConstraintSimplify (Value *old, Value *newp, int len, Value *v)
int Vector_IsZero (Value *v, unsigned length)
Value * value_alloc (int want, int *got)
void value_free (Value *p, int size)

Variables

struct {
   Value *   p
   int   size
cache [MAX_CACHE_SIZE]
int cache_size = 0


Define Documentation

#define MAX_CACHE_SIZE   20
 

Definition at line 741 of file vector.c.

Referenced by value_free().


Function Documentation

void Binomial int  n,
int  p,
Value *  result
 

Definition at line 44 of file vector.c.

References Factorial(), p, value_clear, value_division, value_init, value_multiply, and value_set_si.

void CNP int  a,
int  b,
Value *  result
 

Definition at line 72 of file vector.c.

References value_clear, value_division, value_init, value_multiply, and value_set_si.

int ConstraintSimplify Value *  old,
Value *  newp,
int  len,
Value *  v
 

Definition at line 713 of file vector.c.

References value_notone_p, value_one_p, value_pdivision, Vector_AntiScale(), and Vector_Gcd().

Referenced by Constraints2Polyhedron(), and p_simplify_constraints().

void Factorial int  n,
Value *  fact
 

Definition at line 26 of file vector.c.

References value_clear, value_init, value_multiply, and value_set_si.

Referenced by Binomial().

int First_Non_Zero Value *  p,
unsigned  length
 

Definition at line 120 of file vector.c.

References p, and value_notzero_p.

Referenced by Constraints2Polyhedron(), Constraints_Remove_parm_eqs(), ImplicitEqualities(), Remove_Redundants(), and Vector_Min_Not_Zero().

void Gcd Value  a,
Value  b,
Value *  result
 

Definition at line 99 of file vector.c.

References value_absolute, value_assign, value_clear, value_init, value_modulus, and value_notzero_p.

Referenced by Lcm3().

void Inner_Product Value *  p1,
Value *  p2,
unsigned  length,
Value *  ip
 

Definition at line 367 of file vector.c.

References value_addmul, and value_multiply.

Referenced by lower_upper_bounds(), and test_Constraints_fullDimensionize().

Value* value_alloc int  want,
int *  got
 

Definition at line 748 of file vector.c.

References cache, cache_size, p, value_init, and Vector_Set().

Referenced by Matrix_Alloc(), and Polyhedron_Alloc().

void value_free Value *  p,
int  size
 

Definition at line 790 of file vector.c.

References cache, cache_size, MAX_CACHE_SIZE, p, size, and value_clear.

Referenced by Matrix_Free(), and Polyhedron_Free().

void Vector_Add Value *  p1,
Value *  p2,
Value *  p3,
unsigned  length
 

Definition at line 269 of file vector.c.

References value_addto.

Vector* Vector_Alloc unsigned  length  ) 
 

Definition at line 137 of file vector.c.

References errormsg1(), Vector::p, Vector::Size, and value_init.

Referenced by DomainConstraintSimplify(), Orthogonal_Base(), Param_Polyhedron_Scale_Integer(), Polyhedron_Image_Enumerate(), Remove_Redundants(), SolveDiophantine(), and Vector_Read().

void Vector_AntiScale Value *  p1,
Value *  p2,
Value  lambda,
unsigned  length
 

Definition at line 345 of file vector.c.

References value_divexact.

Referenced by ConstraintSimplify(), Gauss4(), mpolyhedron_simplify(), Orthogonal_Base(), Rays_Mult(), Rays_Mult_Transpose(), Vector_Normalize(), and Vector_Normalize_Positive().

void Vector_Combine Value *  p1,
Value *  p2,
Value *  p3,
Value  lambda,
Value  mu,
unsigned  length
 

Definition at line 417 of file vector.c.

References value_addmul, value_assign, value_clear, value_init, and value_multiply.

Referenced by Combine(), GaussSimplify(), and old_Polyhedron_Preprocess().

void Vector_Copy Value *  p1,
Value *  p2,
unsigned  length
 

Definition at line 252 of file vector.c.

References value_assign.

Referenced by AddConstraints(), AddRays(), align_context(), Chernikova(), ComputeNPLinesRays(), Constraints2Polyhedron(), Constraints_Remove_parm_eqs(), Constraints_removeElimCols(), dehomogenize_polyhedron(), DomainSimplify(), Find_m_faces(), FindSimple(), LexSmaller(), Matrix_copySubMatrix(), Matrix_subMatrix(), p_simplify_constraints(), Polyhedron2Constraints(), Polyhedron2Rays(), Polyhedron_Copy(), Polyhedron_Preprocess(), Recession_Cone(), Remove_Redundants(), RemoveColumn(), RemoveNColumns(), RemoveRow(), right_hermite(), SimplifyConstraints(), SimplifyEqualities(), Stras_DomainSimplify(), SubConstraint(), and traite_m_face().

int Vector_Equal Value *  Vec1,
Value *  Vec2,
unsigned  n
 

Definition at line 436 of file vector.c.

References value_ne.

Referenced by Remove_Redundants().

void Vector_Exchange Value *  p1,
Value *  p2,
unsigned  length
 

Definition at line 239 of file vector.c.

References value_swap.

Referenced by Chernikova(), Gauss4(), GaussSimplify(), hermite(), RaySort(), Remove_Redundants(), and SortConstraints().

void Vector_Free Vector vector  ) 
 

Definition at line 162 of file vector.c.

References Vector::p, Vector::Size, and value_clear.

Referenced by DomainConstraintSimplify(), findHermiteBasis(), LatticeIntersection(), LatticePreimage(), main(), Param_Polyhedron_Scale_Integer(), Polyhedron_Image_Enumerate(), and Remove_Redundants().

void Vector_Gcd Value *  p,
unsigned  length,
Value *  min
 

Definition at line 481 of file vector.c.

References min, p, value_absolute, value_clear, value_init, value_modulus, value_notone_p, value_notzero_p, and Vector_Min_Not_Zero().

Referenced by ConstraintSimplify(), Gauss4(), GaussSimplify(), MatInverse(), Matrix_Inverse(), mpolyhedron_simplify(), Orthogonal_Base(), Rays_Mult(), Rays_Mult_Transpose(), Vector_Normalize(), and Vector_Normalize_Positive().

int Vector_IsZero Value *  v,
unsigned  length
 

Definition at line 730 of file vector.c.

References value_notzero_p, value_set_si, and value_zero_p.

Referenced by eliminable_vars(), and int_ker().

void Vector_Map Value *  p1,
Value *  p2,
Value *  p3,
unsigned  length,
Value *(*  f)(Value, Value)
 

Definition at line 530 of file vector.c.

References value_assign.

void Vector_Max Value *  p,
unsigned  length,
Value *  max
 

Definition at line 382 of file vector.c.

References max, p, value_assign, and value_maximum.

void Vector_Min Value *  p,
unsigned  length,
Value *  min
 

Definition at line 399 of file vector.c.

References min, p, value_assign, and value_minimum.

void Vector_Min_Not_Zero Value *  p,
unsigned  length,
int *  index,
Value *  min
 

Definition at line 452 of file vector.c.

References First_Non_Zero(), min, p, value_absolute, value_assign, value_clear, value_init, value_lt, value_set_si, and value_zero_p.

Referenced by Vector_Gcd().

void Vector_Normalize Value *  p,
unsigned  length
 

Definition at line 551 of file vector.c.

References p, value_clear, value_init, value_notone_p, Vector_AntiScale(), and Vector_Gcd().

Referenced by Combine(), GaussSimplify(), old_Polyhedron_Preprocess(), and Param_Polyhedron_Scale_Integer().

void Vector_Normalize_Positive Value *  p,
int  length,
int  pos
 

Definition at line 570 of file vector.c.

References p, value_clear, value_init, value_neg_p, value_notone_p, value_oppose, Vector_AntiScale(), and Vector_Gcd().

Referenced by MatInverse(), and rat_prodmat().

void Vector_Oppose Value *  p1,
Value *  p2,
unsigned  len
 

Definition at line 356 of file vector.c.

References value_oppose.

Referenced by Gauss4().

void Vector_Or Value *  p1,
Value *  p2,
Value *  p3,
unsigned  length
 

Definition at line 307 of file vector.c.

References value_orto.

void Vector_Print FILE *  Dst,
const char *  Format,
Vector vector
 

Definition at line 176 of file vector.c.

References p, Vector::p, P_VALUE_FMT, Vector::Size, and value_print.

Referenced by main().

Vector* Vector_Read void   ) 
 

Definition at line 198 of file vector.c.

References errormsg1(), p, Vector::p, value_read, and Vector_Alloc().

void Vector_Reduce Value *  p,
unsigned  length,
void(*  f)(Value, Value *),
Value *  r
 

Definition at line 587 of file vector.c.

References p, and value_assign.

void Vector_Scale Value *  p1,
Value *  p2,
Value  lambda,
unsigned  length
 

Definition at line 326 of file vector.c.

References value_multiply.

Referenced by Param_Polyhedron_Scale_Integer(), and Remove_Redundants().

void Vector_Set Value *  p,
int  n,
unsigned  length
 

Definition at line 223 of file vector.c.

References p, and value_set_si.

Referenced by Constraints2Polyhedron(), Ehrhart_Quick_Apx_Full_Dim(), Empty_Polyhedron(), Enumerate_NoParameters(), Equalities_validityLattice(), FindSimple(), ImplicitEqualities(), left_hermite(), MatInverse(), Matrix_Extend(), Matrix_Inverse(), Polyhedron_Enumerate(), Polyhedron_Not_Empty(), Polyhedron_Scan(), PolyhedronLTQ(), Rays2Polyhedron(), Remove_Redundants(), right_hermite(), Universe_Polyhedron(), and value_alloc().

void Vector_Sort Value *  vector,
unsigned  n
 

Definition at line 603 of file vector.c.

References value_assign, value_clear, value_init, and value_lt.

void Vector_Sub Value *  p1,
Value *  p2,
Value *  p3,
unsigned  length
 

Definition at line 288 of file vector.c.

References value_subtract.


Variable Documentation

struct { ... } cache[MAX_CACHE_SIZE] [static]
 

Referenced by value_alloc(), and value_free().

int cache_size = 0 [static]
 

Definition at line 746 of file vector.c.

Referenced by value_alloc(), and value_free().

Value* p
 

Definition at line 743 of file vector.c.

Referenced by addeliminatedparams_evalue(), AddPolyToDomain(), aep_evalue(), AffConstraints(), AffContraintes(), AffinePartCompare(), AffineSmith(), align_context(), Binomial(), CalcBase(), colonne(), compute_enode(), dehomogenize_enode(), dehomogenize_polyhedron(), DomainConvex(), DomainImage(), DomainPreimage(), echange_c(), echange_l(), Elim_Columns(), emul(), encore(), Find_m_faces(), First_Non_Zero(), free_evalue_refs(), Gauss4(), hermite(), identite(), IncludeInRes(), ligne(), LinearPartCompare(), main(), Matrix_Alloc(), Matrix_Extend(), Matrix_Print(), Matrix_Read_Input(), moins_c(), moins_l(), new_eadd(), old_Polyhedron_Preprocess(), Orthogonal_Base(), petit_c(), petit_l(), Polyhedron_Alloc(), Polyhedron_Print(), PolyhedronTSort(), PreElim_Columns(), print_enode(), recurse(), reduce_evalue(), Reduce_Matrix(), SMAlloc(), smith(), SMPrint(), SolveDiophantine(), Soustraire_ligne(), value_alloc(), value_free(), Vector_Gcd(), Vector_Max(), Vector_Min(), Vector_Min_Not_Zero(), Vector_Normalize(), Vector_Normalize_Positive(), Vector_Print(), Vector_Read(), Vector_Reduce(), and Vector_Set().

int size
 

Definition at line 744 of file vector.c.

Referenced by GenParamPolyhedron(), Identity(), new_enode(), old_Polyhedron_Preprocess(), Polyhedron_Preprocess(), Polyhedron_Preprocess2(), and value_free().


Generated on Thu Sep 4 15:29:00 2008 for polylib by doxygen 1.3.5