polylib 7.01
vector.h File Reference

Go to the source code of this file.

Functions

int ConstraintSimplify (Value *old, Value *n, int len, Value *v)
 
Valuevalue_alloc (int want, int *got)
 
void value_free (Value *p, int size)
 
void Factorial (int n, Value *result)
 
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)
 
VectorVector_Realloc (Vector *V, unsigned newlength)
 
void Vector_Free (Vector *vector)
 
void Vector_Print (FILE *Dst, const char *Format, Vector *Vec)
 
VectorVector_Read (void)
 
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 length)
 
void Inner_Product (Value *p1, Value *p2, unsigned length, Value *result)
 
void Vector_Max (Value *p, unsigned length, Value *result)
 
void Vector_Min (Value *p, unsigned length, Value *result)
 
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 *result)
 
void Vector_Gcd (Value *p, unsigned length, Value *result)
 
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 *result)
 
void Vector_Sort (Value *vector, unsigned n)
 
int Vector_IsZero (Value *v, unsigned length)
 
void free_value_cache (void)
 

Function Documentation

◆ Binomial()

void Binomial ( int  n,
int  p,
Value result 
)

Definition at line 40 of file vector.c.

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

◆ CNP()

void CNP ( int  a,
int  b,
Value result 
)

Definition at line 69 of file vector.c.

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

◆ ConstraintSimplify()

int ConstraintSimplify ( Value old,
Value n,
int  len,
Value v 
)

◆ Factorial()

void Factorial ( int  n,
Value result 
)

Definition at line 22 of file vector.c.

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

Referenced by Binomial().

◆ First_Non_Zero()

int First_Non_Zero ( Value p,
unsigned  length 
)

◆ free_value_cache()

void free_value_cache ( void  )

Definition at line 901 of file vector.c.

References assert, cache, cache_size, MAX_CACHE_SIZE, cache_holder::size, and value_clear.

Referenced by polylib_close().

◆ Gcd()

void Gcd ( Value  a,
Value  b,
Value result 
)

Definition at line 96 of file vector.c.

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

Referenced by Lcm3().

◆ Inner_Product()

void Inner_Product ( Value p1,
Value p2,
unsigned  length,
Value result 
)

◆ value_alloc()

Value * value_alloc ( int  want,
int *  got 
)

◆ value_free()

void value_free ( Value p,
int  size 
)

◆ Vector_Add()

void Vector_Add ( Value p1,
Value p2,
Value p3,
unsigned  length 
)

Definition at line 294 of file vector.c.

References value_addto.

◆ Vector_Alloc()

◆ Vector_AntiScale()

void Vector_AntiScale ( Value p1,
Value p2,
Value  lambda,
unsigned  length 
)

◆ Vector_Combine()

void Vector_Combine ( Value p1,
Value p2,
Value p3,
Value  lambda,
Value  mu,
unsigned  length 
)

◆ Vector_Copy()

◆ Vector_Equal()

int Vector_Equal ( Value Vec1,
Value Vec2,
unsigned  n 
)

Definition at line 474 of file vector.c.

References value_ne.

Referenced by Remove_Redundants().

◆ Vector_Exchange()

void Vector_Exchange ( Value p1,
Value p2,
unsigned  length 
)

Definition at line 263 of file vector.c.

References value_swap.

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

◆ Vector_Free()

◆ Vector_Gcd()

◆ Vector_IsZero()

int Vector_IsZero ( Value v,
unsigned  length 
)

Definition at line 763 of file vector.c.

References value_notzero_p, value_set_si, and value_zero_p.

Referenced by eliminable_vars(), and int_ker().

◆ Vector_Map()

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

Definition at line 567 of file vector.c.

References value_assign.

◆ Vector_Max()

void Vector_Max ( Value p,
unsigned  length,
Value result 
)

Definition at line 418 of file vector.c.

References max, value_assign, and value_maximum.

◆ Vector_Min()

void Vector_Min ( Value p,
unsigned  length,
Value result 
)

Definition at line 436 of file vector.c.

References min, value_assign, and value_minimum.

◆ Vector_Min_Not_Zero()

void Vector_Min_Not_Zero ( Value p,
unsigned  length,
int *  index,
Value result 
)

◆ Vector_Normalize()

void Vector_Normalize ( Value p,
unsigned  length 
)

◆ Vector_Normalize_Positive()

void Vector_Normalize_Positive ( Value p,
int  length,
int  pos 
)

◆ Vector_Oppose()

void Vector_Oppose ( Value p1,
Value p2,
unsigned  length 
)

Definition at line 392 of file vector.c.

References value_oppose.

Referenced by Gauss4(), and sLBLIntersection().

◆ Vector_Or()

void Vector_Or ( Value p1,
Value p2,
Value p3,
unsigned  length 
)

Definition at line 338 of file vector.c.

References value_orto.

◆ Vector_Print()

void Vector_Print ( FILE *  Dst,
const char *  Format,
Vector Vec 
)

Definition at line 198 of file vector.c.

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

◆ Vector_Read()

Vector * Vector_Read ( void  )

Definition at line 218 of file vector.c.

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

◆ Vector_Realloc()

Vector * Vector_Realloc ( Vector V,
unsigned  newlength 
)

Definition at line 160 of file vector.c.

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

Referenced by value_prime_factors().

◆ Vector_Reduce()

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

Definition at line 625 of file vector.c.

References value_assign.

◆ Vector_Scale()

void Vector_Scale ( Value p1,
Value p2,
Value  lambda,
unsigned  length 
)

Definition at line 360 of file vector.c.

References value_multiply.

Referenced by Param_Polyhedron_Scale_Integer(), and Remove_Redundants().

◆ Vector_Set()

◆ Vector_Sort()

void Vector_Sort ( Value vector,
unsigned  n 
)

Definition at line 643 of file vector.c.

References n, value_assign, value_clear, value_init, and value_lt.

◆ Vector_Sub()

void Vector_Sub ( Value p1,
Value p2,
Value p3,
unsigned  length 
)

Definition at line 316 of file vector.c.

References value_subtract.