polylib 5.22.8
|
Go to the source code of this file.
Functions | |
int | ConstraintSimplify (Value *old, Value *n, int len, Value *v) |
Value * | value_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) |
Vector * | Vector_Alloc (unsigned length) |
void | Vector_Free (Vector *vector) |
void | Vector_Print (FILE *Dst, const char *Format, Vector *Vec) |
Vector * | Vector_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) |
void Binomial | ( | int | n, |
int | p, | ||
Value * | result | ||
) |
Definition at line 43 of file vector.c.
References Factorial(), n, 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 * | n, | ||
int | len, | ||
Value * | v | ||
) |
Definition at line 708 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 * | result | ||
) |
Definition at line 25 of file vector.c.
References n, 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 value_notzero_p.
Referenced by Constraints2Polyhedron(), Constraints_Remove_parm_eqs(), ImplicitEqualities(), Remove_Redundants(), and Vector_Min_Not_Zero().
void free_value_cache | ( | void | ) |
Definition at line 853 of file vector.c.
References assert, cache, cache_size, MAX_CACHE_SIZE, cache_holder::size, and value_clear.
Referenced by polylib_close().
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 * | result | ||
) |
Definition at line 376 of file vector.c.
References value_addmul, value_multiply, and value_set_si.
Referenced by lower_upper_bounds(), and test_Constraints_fullDimensionize().
Value * value_alloc | ( | int | want, |
int * | got | ||
) |
Definition at line 781 of file vector.c.
References assert, cache, cache_size, MAX_CACHE_SIZE, cache_holder::p, cache_holder::size, value_init, and Vector_Set().
Referenced by Matrix_Alloc(), and Polyhedron_Alloc().
void value_free | ( | Value * | p, |
int | size | ||
) |
Definition at line 827 of file vector.c.
References assert, cache, cache_size, MAX_CACHE_SIZE, cache_holder::p, cache_holder::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 273 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 356 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 425 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 256 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 443 of file vector.c.
Referenced by Remove_Redundants().
void Vector_Exchange | ( | Value * | p1, |
Value * | p2, | ||
unsigned | length | ||
) |
Definition at line 243 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 * | result | ||
) |
Definition at line 485 of file vector.c.
References min, 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 724 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 *(*)(Value, Value) | f | ||
) |
Definition at line 533 of file vector.c.
References value_assign.
void Vector_Max | ( | Value * | p, |
unsigned | length, | ||
Value * | result | ||
) |
Definition at line 390 of file vector.c.
References max, value_assign, and value_maximum.
void Vector_Min | ( | Value * | p, |
unsigned | length, | ||
Value * | result | ||
) |
Definition at line 407 of file vector.c.
References min, value_assign, and value_minimum.
void Vector_Min_Not_Zero | ( | Value * | p, |
unsigned | length, | ||
int * | index, | ||
Value * | result | ||
) |
Definition at line 458 of file vector.c.
References First_Non_Zero(), min, 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 555 of file vector.c.
References 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 574 of file vector.c.
References 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 | length | ||
) |
void Vector_Or | ( | Value * | p1, |
Value * | p2, | ||
Value * | p3, | ||
unsigned | length | ||
) |
Definition at line 315 of file vector.c.
References value_orto.
void Vector_Print | ( | FILE * | Dst, |
const char * | Format, | ||
Vector * | Vec | ||
) |
Definition at line 177 of file vector.c.
References Vector::p, P_VALUE_FMT, Vector::Size, and value_print.
Referenced by main().
Vector * Vector_Read | ( | void | ) |
Definition at line 197 of file vector.c.
References errormsg1(), Vector::p, s, value_read, and Vector_Alloc().
void Vector_Reduce | ( | Value * | p, |
unsigned | length, | ||
void(*)(Value, Value *) | f, | ||
Value * | result | ||
) |
Definition at line 591 of file vector.c.
References value_assign.
void Vector_Scale | ( | Value * | p1, |
Value * | p2, | ||
Value | lambda, | ||
unsigned | length | ||
) |
Definition at line 336 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 227 of file vector.c.
References n, 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 608 of file vector.c.
References n, value_assign, value_clear, value_init, and value_lt.
void Vector_Sub | ( | Value * | p1, |
Value * | p2, | ||
Value * | p3, | ||
unsigned | length | ||
) |
Definition at line 294 of file vector.c.
References value_subtract.