#include <stdio.h>
#include <limits.h>
#include "arithmetic_errors.h"
Go to the source code of this file.
Defines | |
#define | __LONG_LONG_MAX__ 9223372036854775807LL |
package arithmetique | |
#define | LONG_LONG_MAX __LONG_LONG_MAX__ |
#define | LONG_LONG_MIN (-LONG_LONG_MAX-1) |
#define | ULONG_LONG_MAX (LONG_LONG_MAX * 2ULL + 1) |
#define | value_init(val) ((val) = 0) |
#define | value_assign(v1, v2) ((v1) = (v2)) |
#define | value_set_si(val, i) ((val) = (Value)(i)) |
#define | value_set_double(val, d) ((val) = (Value)(d)) |
#define | value_clear(val) ((val) = 0) |
#define | value_read(val, str) (sscanf((str),VALUE_FMT,&(val))) |
#define | value_print(Dst, fmt, val) (fprintf((Dst),(fmt),(val))) |
#define | value_swap(v1, v2) |
#define | int_to_value(i) ((Value)(i)) |
#define | long_to_value(l) ((Value)(l)) |
#define | float_to_value(f) ((Value)(f)) |
#define | double_to_value(d) ((Value)(d)) |
#define | value_eq(v1, v2) ((v1)==(v2)) |
#define | value_ne(v1, v2) ((v1)!=(v2)) |
#define | value_gt(v1, v2) ((v1)>(v2)) |
#define | value_ge(v1, v2) ((v1)>=(v2)) |
#define | value_lt(v1, v2) ((v1)<(v2)) |
#define | value_le(v1, v2) ((v1)<=(v2)) |
#define | value_abs_eq(v1, v2) (value_abs(v1)==value_abs(v2)) |
#define | value_abs_ne(v1, v2) (value_abs(v1)!=value_abs(v2)) |
#define | value_abs_gt(v1, v2) (value_abs(v1)>value_abs(v2)) |
#define | value_abs_ge(v1, v2) (value_abs(v1)>=value_abs(v2)) |
#define | value_abs_lt(v1, v2) (value_abs(v1)<value_abs(v2)) |
#define | value_abs_le(v1, v2) (value_abs(v1)<=value_abs(v2)) |
#define | value_sign(v) (value_eq(v,VALUE_ZERO)?0:value_lt(v,VALUE_ZERO)?-1:1) |
#define | value_compare(v1, v2) (value_eq(v1,v2)?0:value_lt(v1,v2)?-1:1) |
#define | value_plus(v1, v2) ((v1)+(v2)) |
#define | value_div(v1, v2) ((v1)/(v2)) |
#define | value_mod(v1, v2) ((v1)%(v2)) |
#define | value_direct_multiply(v1, v2) ((v1)*(v2)) |
#define | value_minus(v1, v2) ((v1)-(v2)) |
#define | value_pdiv(v1, v2) (DIVIDE((v1),(v2))) |
#define | value_pmod(v1, v2) (MODULO((v1),(v2))) |
#define | value_min(v1, v2) (value_le((v1),(v2))? (v1): (v2)) |
#define | value_max(v1, v2) (value_ge((v1),(v2))? (v1): (v2)) |
#define | value_or(v1, v2) ((v1)|(v2)) |
#define | value_and(v1, v2) ((v1)&(v2)) |
#define | value_lshift(v1, v2) ((v1)<<(v2)) |
#define | value_rshift(v1, v2) ((v1)>>(v2)) |
#define | value_addto(ref, val1, val2) ((ref) = (val1)+(val2)) |
#define | value_add_int(ref, val, vint) ((ref) = (val)+(Value)(vint)) |
#define | value_addmul(ref, val1, val2) ((ref) += (val1)*(val2)) |
#define | value_increment(ref, val) ((ref) = (val)+VALUE_ONE) |
#define | value_direct_product(ref, val1, val2) ((ref) = (val1)*(val2)) |
#define | value_multiply(ref, val1, val2) ((ref) = value_mult((val1),(val2))) |
#define | value_subtract(ref, val1, val2) ((ref) = (val1)-(val2)) |
#define | value_sub_int(ref, val, vint) ((ref) = (val)-(Value)(vint)) |
#define | value_decrement(ref, val) ((ref) = (val)-VALUE_ONE) |
#define | value_division(ref, val1, val2) ((ref) = (val1)/(val2)) |
#define | value_divexact(ref, val1, val2) ((ref) = (val1)/(val2)) |
#define | value_modulus(ref, val1, val2) ((ref) = (val1)%(val2)) |
#define | value_pdivision(ref, val1, val2) ((ref) = value_pdiv((val1),(val2))) |
#define | value_pmodulus(ref, val1, val2) ((ref) = value_pmod((val1),(val2))) |
#define | value_oppose(ref, val) ((ref) = value_uminus((val))) |
#define | value_absolute(ref, val) ((ref) = value_abs((val))) |
#define | value_minimum(ref, val1, val2) ((ref) = value_min((val1),(val2))) |
#define | value_maximum(ref, val1, val2) ((ref) = value_max((val1),(val2))) |
#define | value_gcd(ref, val1, val2) Gcd((val1),(val2),&(ref)) |
#define | value_lcm(ref, val1, val2) Lcm3((val1),(val2),&(ref)) |
#define | value_orto(ref, val1, val2) ((ref) = (val1)|(val2)) |
#define | value_andto(ref, val1, val2) ((ref) = (val1)&(val2)) |
#define | value_uminus(val) (-(val)) |
#define | value_not(val) (~(val)) |
#define | value_abs(val) |
#define | value_pos_p(val) value_gt(val,VALUE_ZERO) |
#define | value_neg_p(val) value_lt(val,VALUE_ZERO) |
#define | value_posz_p(val) value_ge(val,VALUE_ZERO) |
#define | value_negz_p(val) value_le(val,VALUE_ZERO) |
#define | value_zero_p(val) value_eq(val,VALUE_ZERO) |
#define | value_notzero_p(val) value_ne(val,VALUE_ZERO) |
#define | value_one_p(val) value_eq(val,VALUE_ONE) |
#define | value_notone_p(val) value_ne(val,VALUE_ONE) |
#define | value_mone_p(val) value_eq(val,VALUE_MONE) |
#define | value_notmone_p(val) value_ne(val,VALUE_MONE) |
#define | value_cmp_si(val, n) (val - (n)) |
#define | value_min_p(val) value_eq(val,VALUE_MIN) |
#define | value_max_p(val) value_eq(val,VALUE_MAX) |
#define | value_notmin_p(val) value_ne(val,VALUE_MIN) |
#define | value_notmax_p(val) value_ne(val,VALUE_MAX) |
#define | value_protected_hard_idiv_multiply(v, w, throw) |
#define | value_protected_multiply(v, w, throw) value_protected_hard_idiv_multiply(v,w,throw) |
#define | value_protected_mult(v, w) value_protected_multiply(v,w,THROW(overflow_error)) |
#define | value_protected_product(v, w) v=value_protected_mult(v,w) |
#define | value_mult(v, w) |
#define | value_product(v, w) v=value_mult(v,w) |
#define | value_substract(ref, val1, val2) (value_subtract((ref),(val1),(val2))) |
#define | ABS(x) (((x)>=0) ? (x) : -(x)) |
#define | MIN(x, y) (((x)>=(y))?(y):(x)) |
#define | MAX(x, y) (((x)>=(y))?(x):(y)) |
#define | SIGN(x) (((x)>0)? 1 : ((x)==0? 0 : -1)) |
#define | DIVIDE(x, y) |
#define | POSITIVE_DIVIDE(x, y) ((x)>0 ? (x)/(y) : - (-(x)+(y)-1)/(y)) |
#define | MODULO(x, y) ((y)>0 ? POSITIVE_MODULO(x,y) : POSITIVE_MODULO(-x,-y)) |
#define | POSITIVE_MODULO(x, y) |
Functions | |
void | dump_exception_stack_to_file (FILE *) |
void | dump_exception_stack (void) |
jmp_buf * | push_exception_on_stack (int, const char *, const char *, int) |
void | pop_exception_from_stack (int, const char *, const char *, int) |
void | throw_exception (int, const char *, const char *, int) |
Variables | |
unsigned int | overflow_error |
unsigned int | simplex_arithmetic_error |
unsigned int | user_exception_error |
unsigned int | parser_exception_error |
unsigned int | any_exception_error |
unsigned int | the_last_just_thrown_exception |
#define __LONG_LONG_MAX__ 9223372036854775807LL |
package arithmetique
Francois Irigoin, mai 1989
Modifications
Definition at line 98 of file source/arith/arithmetique.h.
#define ABS | ( | x | ) | (((x)>=0) ? (x) : -(x)) |
Definition at line 700 of file source/arith/arithmetique.h.
#define DIVIDE | ( | x, | |||
y | ) |
((y)>0? POSITIVE_DIVIDE(x,y) : \ -POSITIVE_DIVIDE((x),(-(y))))
Definition at line 723 of file source/arith/arithmetique.h.
#define double_to_value | ( | d | ) | ((Value)(d)) |
Definition at line 473 of file source/arith/arithmetique.h.
#define float_to_value | ( | f | ) | ((Value)(f)) |
Definition at line 472 of file source/arith/arithmetique.h.
#define int_to_value | ( | i | ) | ((Value)(i)) |
Definition at line 470 of file source/arith/arithmetique.h.
#define LONG_LONG_MAX __LONG_LONG_MAX__ |
Definition at line 101 of file source/arith/arithmetique.h.
#define LONG_LONG_MIN (-LONG_LONG_MAX-1) |
Definition at line 103 of file source/arith/arithmetique.h.
#define long_to_value | ( | l | ) | ((Value)(l)) |
Definition at line 471 of file source/arith/arithmetique.h.
#define MAX | ( | x, | |||
y | ) | (((x)>=(y))?(x):(y)) |
Definition at line 711 of file source/arith/arithmetique.h.
#define MIN | ( | x, | |||
y | ) | (((x)>=(y))?(y):(x)) |
Definition at line 708 of file source/arith/arithmetique.h.
#define MODULO | ( | x, | |||
y | ) | ((y)>0 ? POSITIVE_MODULO(x,y) : POSITIVE_MODULO(-x,-y)) |
Definition at line 730 of file source/arith/arithmetique.h.
#define POSITIVE_DIVIDE | ( | x, | |||
y | ) | ((x)>0 ? (x)/(y) : - (-(x)+(y)-1)/(y)) |
Definition at line 727 of file source/arith/arithmetique.h.
#define POSITIVE_MODULO | ( | x, | |||
y | ) |
((x) > 0 ? (x)%(y) : \ ((x)%(y) == 0 ? 0 : ((y)-(-(x))%(y))))
Definition at line 738 of file source/arith/arithmetique.h.
#define SIGN | ( | x | ) | (((x)>0)? 1 : ((x)==0? 0 : -1)) |
Definition at line 715 of file source/arith/arithmetique.h.
#define ULONG_LONG_MAX (LONG_LONG_MAX * 2ULL + 1) |
Definition at line 105 of file source/arith/arithmetique.h.
#define value_abs | ( | val | ) |
(value_posz_p(val)? \ (val) : \ (value_ne((val), VALUE_NAN) ? \ value_uminus(val) : \ (THROW (overflow_error), VALUE_NAN )))
Definition at line 541 of file source/arith/arithmetique.h.
#define value_abs_eq | ( | v1, | |||
v2 | ) | (value_abs(v1)==value_abs(v2)) |
Definition at line 484 of file source/arith/arithmetique.h.
Referenced by SortConstraints().
#define value_abs_ge | ( | v1, | |||
v2 | ) | (value_abs(v1)>=value_abs(v2)) |
Definition at line 487 of file source/arith/arithmetique.h.
#define value_abs_gt | ( | v1, | |||
v2 | ) | (value_abs(v1)>value_abs(v2)) |
Definition at line 486 of file source/arith/arithmetique.h.
#define value_abs_le | ( | v1, | |||
v2 | ) | (value_abs(v1)<=value_abs(v2)) |
Definition at line 489 of file source/arith/arithmetique.h.
#define value_abs_lt | ( | v1, | |||
v2 | ) | (value_abs(v1)<value_abs(v2)) |
Definition at line 488 of file source/arith/arithmetique.h.
Referenced by SortConstraints().
#define value_abs_ne | ( | v1, | |||
v2 | ) | (value_abs(v1)!=value_abs(v2)) |
Definition at line 485 of file source/arith/arithmetique.h.
Referenced by ImplicitEqualities().
#define value_absolute | ( | ref, | |||
val | ) | ((ref) = value_abs((val))) |
Definition at line 529 of file source/arith/arithmetique.h.
Referenced by Combine(), encore(), GaussSimplify(), Gcd(), hermite(), Lcm3(), old_Polyhedron_Preprocess(), petit_c(), petit_l(), Vector_Gcd(), and Vector_Min_Not_Zero().
#define value_add_int | ( | ref, | |||
val, | |||||
vint | ) | ((ref) = (val)+(Value)(vint)) |
Definition at line 515 of file source/arith/arithmetique.h.
Referenced by count_points(), FindSimple(), lower_upper_bounds(), P_Enum(), and Polyhedron_Preprocess2().
#define value_addmul | ( | ref, | |||
val1, | |||||
val2 | ) | ((ref) += (val1)*(val2)) |
Definition at line 516 of file source/arith/arithmetique.h.
Referenced by AddLattice(), AffineSmith(), BuildSat(), CalcBase(), Chernikova(), colonne(), FindSimple(), hermite(), in_domain(), Inner_Product(), ligne(), Matrix_Product(), Matrix_Vector_Product(), mpolyhedron_compress_last_vars(), old_Polyhedron_Preprocess(), Polyhedron_Preprocess(), PolyhedronIncludes(), rat_prodmat(), Rays_Mult(), Rays_Mult_Transpose(), Scalar_product(), SolveDiophantine(), Vector_Combine(), and Vector_Matrix_Product().
#define value_addto | ( | ref, | |||
val1, | |||||
val2 | ) | ((ref) = (val1)+(val2)) |
Definition at line 514 of file source/arith/arithmetique.h.
Referenced by AffineSmith(), count_points(), dehomogenize_polynomial(), DomainCost(), eadd(), eliminate_var_with_constr(), ImplicitEqualities(), mpolyhedron_deflate(), mpolyhedron_inflate(), new_eadd(), P_Enum(), Poly2Sat(), Polyhedron_Enumerate(), Polyhedron_Preprocess(), Polyhedron_Preprocess2(), Simplify(), test_Constraints_fullDimensionize(), and Vector_Add().
#define value_and | ( | v1, | |||
v2 | ) | ((v1)&(v2)) |
Definition at line 508 of file source/arith/arithmetique.h.
#define value_andto | ( | ref, | |||
val1, | |||||
val2 | ) | ((ref) = (val1)&(val2)) |
Definition at line 535 of file source/arith/arithmetique.h.
#define value_assign | ( | v1, | |||
v2 | ) | ((v1) = (v2)) |
Definition at line 459 of file source/arith/arithmetique.h.
Referenced by AddANullColumn(), AddANullRow(), affine_periods(), AffinePartSimplify(), AffineSmith(), align_context(), CanonicalForm(), ChangeLatticeDimension(), check_poly(), cherche_min(), Combine(), compute_enode(), Constraints_fullDimensionize(), Constraints_permute(), Constraints_removeElimCols(), ConvertDarMattoPolMat(), ConvertPolMattoDarMat(), count_points(), dehomogenize_periodic(), dehomogenize_polynomial(), Domain_Enumerate(), DomainCost(), echange_c(), echange_l(), ecopy(), Elim_Columns(), eliminable_vars(), Equalities_intModBasis(), Equalities_validityLattice(), ExchangeRows(), exist_points(), ExtractLinearPart(), Find_m_faces(), findHermiteBasis(), FindHermiteBasisofDomain(), FindSimple(), full_dimensionize(), GaussSimplify(), Gcd(), GenParamPolyhedron(), hermite(), in_domain(), isinHnf(), isIntegral(), Lattice2LatticeUnion(), LatticeIntersection(), LatticePreimage(), Lcm3(), left_hermite(), LexSmaller(), lower_upper_bounds(), main(), MatInverse(), Matrix_Copy(), Matrix_Inverse(), Matrix_Product(), mpolyhedron_compress_last_vars(), mpolyhedron_permute(), mtransformation_expand_left_to_dim(), mtransformation_permute(), new_eadd(), old_Polyhedron_Preprocess(), Orthogonal_Base(), P_Enum(), Param_Polyhedron_Scale_Integer(), petit_c(), petit_l(), Polyhedron_Image_Enumerate(), Polyhedron_Preprocess2(), PolyhedronLTQ(), PutColumnFirst(), PutColumnLast(), PutRowFirst(), PutRowLast(), rat_prodmat(), Rays_Mult(), Rays_Mult_Transpose(), RearrangeMatforSolveDio(), recurse(), right_hermite(), scan_m_face(), Scan_Vertices(), Simplify(), smith(), SolveDiophantine(), split_constraints(), SubConstraint(), swap_line(), TestRank(), traite_m_face(), transpose(), Transpose(), valuesWithoutElim(), Vector_Combine(), Vector_Copy(), Vector_Map(), Vector_Max(), Vector_Min(), Vector_Min_Not_Zero(), Vector_Reduce(), Vector_Sort(), and VertexCT().
#define value_clear | ( | val | ) | ((val) = 0) |
Definition at line 462 of file source/arith/arithmetique.h.
Referenced by AddLattice(), affine_periods(), AffinePartSimplify(), AffineSmith(), Binomial(), CanonicalForm(), check_poly(), cherche_min(), CNP(), Combine(), compute_enode(), Constraints2Polyhedron(), count_points(), dehomogenize_polynomial(), DomainConstraintSimplify(), DomainCost(), eadd(), echange_c(), echange_l(), Ehrhart_Quick_Apx_Full_Dim(), Elim_Columns(), eliminate_var_with_constr(), emul(), encore(), Enumerate_NoParameters(), Equalities_integerSolution(), evalue_div(), ExchangeRows(), exist_points(), Factorial(), FindHermiteBasisofDomain(), FindSimple(), free_evalue_refs(), Gauss4(), GaussSimplify(), Gcd(), Hermite(), hermite(), ImplicitEqualities(), in_domain(), isinHnf(), isIntegral(), Lattice2LatticeUnion(), LatticePreimage(), Lcm3(), left_hermite(), lower_upper_bounds(), main(), MatInverse(), Matrix_Inverse(), Matrix_Product(), mpolyhedron_deflate(), mpolyhedron_inflate(), mpolyhedron_simplify(), mtransformation_inverse(), new_eadd(), old_Polyhedron_Preprocess(), Orthogonal_Base(), P_Enum(), Param_Polyhedron_Scale_Integer(), petit_c(), petit_l(), Poly2Sat(), Polyhedron_Enumerate(), Polyhedron_Image_Enumerate(), Polyhedron_Not_Empty(), Polyhedron_Preprocess(), Polyhedron_Preprocess2(), PolyhedronIncludes(), Print_Vertex(), PutColumnFirst(), PutColumnLast(), PutRowFirst(), PutRowLast(), rat_prodmat(), Rays_Mult(), Rays_Mult_Transpose(), recurse(), reduce_evalue(), Reduce_Matrix(), Remove_Redundants(), right_hermite(), Scan_Vertices(), Simplify(), smith(), SolveDiophantine(), Soustraire_ligne(), test_Constraints_fullDimensionize(), TestRank(), transpose(), value_free(), Vector_Combine(), Vector_Free(), Vector_Gcd(), Vector_Min_Not_Zero(), Vector_Normalize(), Vector_Normalize_Positive(), and Vector_Sort().
Definition at line 559 of file source/arith/arithmetique.h.
Referenced by Constraints_Remove_parm_eqs(), Gauss4(), mpolyhedron_eliminate_first_variables(), and Remove_Redundants().
#define value_compare | ( | v1, | |||
v2 | ) | (value_eq(v1,v2)?0:value_lt(v1,v2)?-1:1) |
Definition at line 494 of file source/arith/arithmetique.h.
#define value_decrement | ( | ref, | |||
val | ) | ((ref) = (val)-VALUE_ONE) |
Definition at line 522 of file source/arith/arithmetique.h.
Referenced by addToFilter(), AffineSmith(), cherche_min(), FindSimple(), hermite(), Polyhedron_Image_Enumerate(), smith(), and SubConstraint().
#define value_direct_multiply | ( | v1, | |||
v2 | ) | ((v1)*(v2)) |
Definition at line 501 of file source/arith/arithmetique.h.
#define value_direct_product | ( | ref, | |||
val1, | |||||
val2 | ) | ((ref) = (val1)*(val2)) |
Definition at line 518 of file source/arith/arithmetique.h.
#define value_div | ( | v1, | |||
v2 | ) | ((v1)/(v2)) |
Definition at line 499 of file source/arith/arithmetique.h.
#define value_divexact | ( | ref, | |||
val1, | |||||
val2 | ) | ((ref) = (val1)/(val2)) |
Definition at line 524 of file source/arith/arithmetique.h.
Referenced by affine_periods(), CalcBase(), Combine(), dehomogenize_polynomial(), eadd(), emul(), evalue_div(), GaussSimplify(), MatInverse(), Matrix_Inverse(), new_eadd(), old_Polyhedron_Preprocess(), Orthogonal_Base(), P_Enum(), Print_Vertex(), rat_prodmat(), Scan_Vertices(), Soustraire_ligne(), and Vector_AntiScale().
#define value_division | ( | ref, | |||
val1, | |||||
val2 | ) | ((ref) = (val1)/(val2)) |
Definition at line 523 of file source/arith/arithmetique.h.
Referenced by AffineSmith(), Binomial(), CNP(), eliminate_var_with_constr(), FindHermiteBasisofDomain(), GaussSimplify(), hermite(), Lattice2LatticeUnion(), Lcm3(), lower_upper_bounds(), Matrix_Inverse(), mtransformation_inverse(), P_Enum(), Param_Polyhedron_Scale_Integer(), Polyhedron_Preprocess2(), rat_prodmat(), Simplify(), smith(), SolveDiophantine(), and TestRank().
#define value_eq | ( | v1, | |||
v2 | ) | ((v1)==(v2)) |
Definition at line 477 of file source/arith/arithmetique.h.
Referenced by DomainCost(), FindSimple(), ImplicitEqualities(), Simplify(), SortConstraints(), and test_Constraints_fullDimensionize().
#define value_gcd | ( | ref, | |||
val1, | |||||
val2 | ) | Gcd((val1),(val2),&(ref)) |
Definition at line 532 of file source/arith/arithmetique.h.
Referenced by affine_periods(), CalcBase(), Combine(), dehomogenize_polynomial(), eadd(), emul(), evalue_div(), GaussSimplify(), MatInverse(), Matrix_Inverse(), new_eadd(), old_Polyhedron_Preprocess(), Orthogonal_Base(), P_Enum(), Print_Vertex(), rat_prodmat(), Scan_Vertices(), Soustraire_ligne(), and TestRank().
#define value_ge | ( | v1, | |||
v2 | ) | ((v1)>=(v2)) |
Definition at line 480 of file source/arith/arithmetique.h.
Referenced by cherche_min(), GaussSimplify(), isinHnf(), petit_c(), petit_l(), and Simplify().
#define value_gt | ( | v1, | |||
v2 | ) | ((v1)>(v2)) |
Definition at line 479 of file source/arith/arithmetique.h.
Referenced by AffinePartCompare(), DomainCost(), FindSimple(), LinearPartCompare(), lower_upper_bounds(), P_Enum(), Polyhedron_Preprocess2(), and Simplify().
#define value_increment | ( | ref, | |||
val | ) | ((ref) = (val)+VALUE_ONE) |
Definition at line 517 of file source/arith/arithmetique.h.
Referenced by check_poly(), cherche_min(), count_points(), exist_points(), FindSimple(), P_Enum(), recurse(), Remove_Redundants(), and Simplify().
#define value_init | ( | val | ) | ((val) = 0) |
Definition at line 458 of file source/arith/arithmetique.h.
Referenced by AddLattice(), affine_periods(), AffinePartSimplify(), AffineSmith(), Binomial(), CanonicalForm(), check_poly(), cherche_min(), CNP(), Combine(), compute_enode(), compute_poly(), Constraints2Polyhedron(), ConvertPolMattoDarMat(), count_points(), dehomogenize_periodic(), dehomogenize_polynomial(), Domain_Enumerate(), DomainConstraintSimplify(), DomainCost(), eadd(), echange_c(), echange_l(), ecopy(), edot(), Ehrhart_Quick_Apx_Full_Dim(), Elim_Columns(), eliminate_var_with_constr(), emul(), encore(), Enumerate_NoParameters(), Equalities_integerSolution(), evalue_div(), ExchangeRows(), exist_points(), Factorial(), FindHermiteBasisofDomain(), FindSimple(), Gauss4(), GaussSimplify(), Gcd(), Hermite(), hermite(), ImplicitEqualities(), in_domain(), isinHnf(), isIntegral(), Lattice2LatticeUnion(), LatticePreimage(), Lcm(), Lcm3(), left_hermite(), lower_upper_bounds(), main(), MatInverse(), Matrix_Extend(), Matrix_Inverse(), Matrix_Product(), mpolyhedron_deflate(), mpolyhedron_inflate(), mpolyhedron_simplify(), mtransformation_inverse(), new_eadd(), new_enode(), old_Polyhedron_Preprocess(), Orthogonal_Base(), P_Enum(), Param_Polyhedron_Scale_Integer(), petit_c(), petit_l(), Poly2Sat(), Polyhedron_Enumerate(), Polyhedron_Image_Enumerate(), Polyhedron_Not_Empty(), Polyhedron_Preprocess(), Polyhedron_Preprocess2(), PolyhedronIncludes(), Print_Vertex(), PutColumnFirst(), PutColumnLast(), PutRowFirst(), PutRowLast(), rat_prodmat(), Rays_Mult(), Rays_Mult_Transpose(), recurse(), Remove_Redundants(), right_hermite(), Scan_Vertices(), Simplify(), smith(), SolveDiophantine(), Soustraire_ligne(), test_Constraints_fullDimensionize(), TestRank(), transpose(), value_alloc(), Vector_Alloc(), Vector_Combine(), Vector_Gcd(), Vector_Min_Not_Zero(), Vector_Normalize(), Vector_Normalize_Positive(), and Vector_Sort().
#define value_lcm | ( | ref, | |||
val1, | |||||
val2 | ) | Lcm3((val1),(val2),&(ref)) |
Definition at line 533 of file source/arith/arithmetique.h.
Referenced by affine_periods(), eliminate_var_with_constr(), FindHermiteBasisofDomain(), mtransformation_inverse(), Orthogonal_Base(), and Param_Polyhedron_Scale_Integer().
#define value_le | ( | v1, | |||
v2 | ) | ((v1)<=(v2)) |
Definition at line 482 of file source/arith/arithmetique.h.
Referenced by check_poly(), cherche_min(), count_points(), exist_points(), Polyhedron_Preprocess2(), and recurse().
#define value_lshift | ( | v1, | |||
v2 | ) | ((v1)<<(v2)) |
Definition at line 509 of file source/arith/arithmetique.h.
#define value_lt | ( | v1, | |||
v2 | ) | ((v1)<(v2)) |
Definition at line 481 of file source/arith/arithmetique.h.
Referenced by AffinePartCompare(), count_points(), DomainCost(), exist_points(), hermite(), LinearPartCompare(), lower_upper_bounds(), P_Enum(), Polyhedron_Preprocess2(), Simplify(), SortConstraints(), Vector_Min_Not_Zero(), and Vector_Sort().
#define value_max | ( | v1, | |||
v2 | ) | (value_ge((v1),(v2))? (v1): (v2)) |
Definition at line 506 of file source/arith/arithmetique.h.
#define value_max_p | ( | val | ) | value_eq(val,VALUE_MAX) |
Definition at line 561 of file source/arith/arithmetique.h.
#define value_maximum | ( | ref, | |||
val1, | |||||
val2 | ) | ((ref) = value_max((val1),(val2))) |
Definition at line 531 of file source/arith/arithmetique.h.
Referenced by Vector_Max().
#define value_min | ( | v1, | |||
v2 | ) | (value_le((v1),(v2))? (v1): (v2)) |
Definition at line 505 of file source/arith/arithmetique.h.
#define value_min_p | ( | val | ) | value_eq(val,VALUE_MIN) |
Definition at line 560 of file source/arith/arithmetique.h.
#define value_minimum | ( | ref, | |||
val1, | |||||
val2 | ) | ((ref) = value_min((val1),(val2))) |
Definition at line 530 of file source/arith/arithmetique.h.
Referenced by Vector_Min().
#define value_minus | ( | v1, | |||
v2 | ) | ((v1)-(v2)) |
Definition at line 502 of file source/arith/arithmetique.h.
#define value_mod | ( | v1, | |||
v2 | ) | ((v1)%(v2)) |
Definition at line 500 of file source/arith/arithmetique.h.
#define value_modulus | ( | ref, | |||
val1, | |||||
val2 | ) | ((ref) = (val1)%(val2)) |
Definition at line 525 of file source/arith/arithmetique.h.
Referenced by AffineSmith(), encore(), Gcd(), hermite(), isIntegral(), lower_upper_bounds(), P_Enum(), smith(), SolveDiophantine(), and Vector_Gcd().
#define value_mone_p | ( | val | ) | value_eq(val,VALUE_MONE) |
Definition at line 557 of file source/arith/arithmetique.h.
Referenced by Degenerate(), Print_Domain(), and Print_Vertex().
#define value_mult | ( | v, | |||
w | ) |
value_protected_multiply(v,w, \ (fprintf(stderr,"[value_mult] value overflow!\n"),THROW(overflow_error)))
Definition at line 611 of file source/arith/arithmetique.h.
#define value_multiply | ( | ref, | |||
val1, | |||||
val2 | ) | ((ref) = value_mult((val1),(val2))) |
Definition at line 519 of file source/arith/arithmetique.h.
Referenced by Binomial(), CalcBase(), Chernikova(), CNP(), dehomogenize_polynomial(), DomainCost(), eadd(), Ehrhart_Quick_Apx_Full_Dim(), Elim_Columns(), eliminate_var_with_constr(), emul(), evalue_div(), Factorial(), FindHermiteBasisofDomain(), hermite(), Inner_Product(), LatticePreimage(), Lcm3(), MatInverse(), Matrix_Inverse(), Matrix_Vector_Product(), mtransformation_inverse(), new_eadd(), old_Polyhedron_Preprocess(), Orthogonal_Base(), P_Enum(), Param_Polyhedron_Scale_Integer(), Poly2Sat(), Polyhedron_Enumerate(), Polyhedron_Preprocess2(), rat_prodmat(), Scan_Vertices(), Soustraire_ligne(), TestRank(), Vector_Combine(), Vector_Matrix_Product(), and Vector_Scale().
#define value_ne | ( | v1, | |||
v2 | ) | ((v1)!=(v2)) |
Definition at line 478 of file source/arith/arithmetique.h.
Referenced by AlmostSameAffinePart(), check_poly(), DomainCost(), eequal(), Polyhedron_Preprocess(), sameAffinepart(), sameLattice(), SameLinearPart(), SolveDiophantine(), and Vector_Equal().
#define value_neg_p | ( | val | ) | value_lt(val,VALUE_ZERO) |
Definition at line 550 of file source/arith/arithmetique.h.
Referenced by AffineSmith(), CalcBase(), cherche_min(), Chernikova(), Gauss4(), GaussSimplify(), hermite(), ImplicitEqualities(), in_domain(), lower_upper_bounds(), Matrix_Inverse(), mpolyhedron_inflate(), P_Enum(), Polyhedron_Preprocess(), PolyhedronIncludes(), PolyhedronLTQ(), RaySort(), Remove_Redundants(), smith(), and Vector_Normalize_Positive().
#define value_negz_p | ( | val | ) | value_le(val,VALUE_ZERO) |
Definition at line 552 of file source/arith/arithmetique.h.
Referenced by old_Polyhedron_Preprocess().
#define value_not | ( | val | ) | (~(val)) |
Definition at line 540 of file source/arith/arithmetique.h.
#define value_notmax_p | ( | val | ) | value_ne(val,VALUE_MAX) |
Definition at line 563 of file source/arith/arithmetique.h.
#define value_notmin_p | ( | val | ) | value_ne(val,VALUE_MIN) |
Definition at line 562 of file source/arith/arithmetique.h.
#define value_notmone_p | ( | val | ) | value_ne(val,VALUE_MONE) |
Definition at line 558 of file source/arith/arithmetique.h.
Referenced by count_points().
#define value_notone_p | ( | val | ) | value_ne(val,VALUE_ONE) |
Definition at line 556 of file source/arith/arithmetique.h.
Referenced by compute_evalue(), ConstraintSimplify(), eadd(), emul(), Enumerate_NoParameters(), evalue_div(), GaussSimplify(), GenParamPolyhedron(), IsLattice(), MatInverse(), Matrix_Inverse(), new_eadd(), Orthogonal_Base(), print_evalue(), Print_Vertex(), Rays_Mult(), Rays_Mult_Transpose(), Scan_Vertices(), Vector_Gcd(), Vector_Normalize(), and Vector_Normalize_Positive().
#define value_notzero_p | ( | val | ) | value_ne(val,VALUE_ZERO) |
Definition at line 554 of file source/arith/arithmetique.h.
Referenced by addeliminatedparams_evalue(), aep_evalue(), BuildSat(), CalcBase(), Chernikova(), compute_evalue(), Constraints2Polyhedron(), Constraints_Remove_parm_eqs(), Degenerate(), dehomogenize_periodic(), DomainDifference(), eadd(), eequal(), Ehrhart_Quick_Apx_Full_Dim(), Elim_Columns(), eliminable_vars(), eliminate_var_with_constr(), emul(), encore(), Equalities_integerSolution(), existepivot(), Find_m_faces(), findHermiteBasis(), FindHermiteBasisofDomain(), FindSimple(), First_Non_Zero(), free_evalue_refs(), Gauss4(), GaussSimplify(), Gcd(), hermite(), in_domain(), isEmptyLattice(), isinHnf(), isIntegral(), IsLattice(), isLinear(), lower_upper_bounds(), MatInverse(), Matrix_Inverse(), new_eadd(), old_Polyhedron_Preprocess(), P_Enum(), petit_c(), petit_l(), Polyhedron_Enumerate(), Polyhedron_Print(), PolyhedronIncludes(), PreElim_Columns(), Print_Domain(), print_evalue(), Print_Vertex(), RearrangeMatforSolveDio(), reduce_evalue(), Remove_Redundants(), Scan_Vertices(), SimplifyEqualities(), smith(), SolveDiophantine(), SubConstraint(), TestRank(), Vector_Gcd(), Vector_IsZero(), and VertexCT().
#define value_one_p | ( | val | ) | value_eq(val,VALUE_ONE) |
Definition at line 555 of file source/arith/arithmetique.h.
Referenced by ConstraintSimplify(), GaussSimplify(), isEmptyLattice(), LatticeImage(), PolyhedronLTQ(), Print_Domain(), rat_prodmat(), reduce_evalue(), and Remove_Redundants().
#define value_oppose | ( | ref, | |||
val | ) | ((ref) = value_uminus((val))) |
Definition at line 528 of file source/arith/arithmetique.h.
Referenced by CalcBase(), Chernikova(), Combine(), DomainCost(), eliminate_var_with_constr(), GaussSimplify(), hermite(), LatticePreimage(), lower_upper_bounds(), MakeDioEqforInter(), Matrix_Inverse(), Matrix_oppose(), moins_c(), moins_l(), old_Polyhedron_Preprocess(), Polyhedron_Image_Enumerate(), Polyhedron_Preprocess(), Polyhedron_Preprocess2(), PolyhedronLTQ(), smith(), SolveDiophantine(), SubConstraint(), Vector_Normalize_Positive(), and Vector_Oppose().
#define value_or | ( | v1, | |||
v2 | ) | ((v1)|(v2)) |
Definition at line 507 of file source/arith/arithmetique.h.
#define value_orto | ( | ref, | |||
val1, | |||||
val2 | ) | ((ref) = (val1)|(val2)) |
Definition at line 534 of file source/arith/arithmetique.h.
Referenced by Vector_Or().
#define value_pdiv | ( | v1, | |||
v2 | ) | (DIVIDE((v1),(v2))) |
Definition at line 503 of file source/arith/arithmetique.h.
#define value_pdivision | ( | ref, | |||
val1, | |||||
val2 | ) | ((ref) = value_pdiv((val1),(val2))) |
Definition at line 526 of file source/arith/arithmetique.h.
Referenced by ConstraintSimplify(), Equalities_integerSolution(), and test_Constraints_fullDimensionize().
#define value_plus | ( | v1, | |||
v2 | ) | ((v1)+(v2)) |
Definition at line 498 of file source/arith/arithmetique.h.
#define value_pmod | ( | v1, | |||
v2 | ) | (MODULO((v1),(v2))) |
Definition at line 504 of file source/arith/arithmetique.h.
#define value_pmodulus | ( | ref, | |||
val1, | |||||
val2 | ) | ((ref) = value_pmod((val1),(val2))) |
Definition at line 527 of file source/arith/arithmetique.h.
Referenced by compute_enode(), and Equalities_integerSolution().
#define value_pos_p | ( | val | ) | value_gt(val,VALUE_ZERO) |
Definition at line 549 of file source/arith/arithmetique.h.
Referenced by cherche_min(), eliminate_var_with_constr(), exist_points(), FindSimple(), ImplicitEqualities(), lower_upper_bounds(), mpolyhedron_deflate(), P_Enum(), Polyhedron_Image_Enumerate(), PolyhedronLTQ(), Print_Domain(), and SortConstraints().
#define value_posz_p | ( | val | ) | value_ge(val,VALUE_ZERO) |
Definition at line 551 of file source/arith/arithmetique.h.
Referenced by addToFilter(), FindSimple(), old_Polyhedron_Preprocess(), and Print_Vertex().
#define value_print | ( | Dst, | |||
fmt, | |||||
val | ) | (fprintf((Dst),(fmt),(val))) |
Definition at line 464 of file source/arith/arithmetique.h.
Referenced by AffineSmith(), check_poly(), cherche_min(), Chernikova(), count_points(), Ehrhart_Quick_Apx_Full_Dim(), Enumerate_NoParameters(), main(), Matrix_Print(), mpolyhedron_simplify(), P_Enum(), Polyhedron_Enumerate(), Polyhedron_Preprocess(), Polyhedron_Preprocess2(), Polyhedron_Print(), Polyhedron_PrintConstraints(), Print_Domain(), print_evalue(), Print_Vertex(), recurse(), test_Constraints_fullDimensionize(), and Vector_Print().
#define value_product | ( | v, | |||
w | ) | v=value_mult(v,w) |
Definition at line 614 of file source/arith/arithmetique.h.
#define value_protected_hard_idiv_multiply | ( | v, | |||
w, | |||||
throw | ) |
((value_zero_p(w) || value_zero_p(v))? VALUE_ZERO: \ value_lt(value_abs(v),value_div(VALUE_MAX,value_abs(w)))? \ value_direct_multiply(v,w): (throw, VALUE_NAN))
Definition at line 575 of file source/arith/arithmetique.h.
#define value_protected_mult | ( | v, | |||
w | ) | value_protected_multiply(v,w,THROW(overflow_error)) |
Definition at line 594 of file source/arith/arithmetique.h.
#define value_protected_multiply | ( | v, | |||
w, | |||||
throw | ) | value_protected_hard_idiv_multiply(v,w,throw) |
Definition at line 588 of file source/arith/arithmetique.h.
#define value_protected_product | ( | v, | |||
w | ) | v=value_protected_mult(v,w) |
Definition at line 596 of file source/arith/arithmetique.h.
#define value_read | ( | val, | |||
str | ) | (sscanf((str),VALUE_FMT,&(val))) |
Definition at line 463 of file source/arith/arithmetique.h.
Referenced by main(), Matrix_Read_Input(), and Vector_Read().
#define value_rshift | ( | v1, | |||
v2 | ) | ((v1)>>(v2)) |
Definition at line 510 of file source/arith/arithmetique.h.
#define value_set_double | ( | val, | |||
d | ) | ((val) = (Value)(d)) |
Definition at line 461 of file source/arith/arithmetique.h.
Referenced by compute_poly().
#define value_set_si | ( | val, | |||
i | ) | ((val) = (Value)(i)) |
Definition at line 460 of file source/arith/arithmetique.h.
Referenced by AddANullColumn(), AddANullRow(), AddLattice(), addToFilter(), affine_periods(), AffineSmith(), align_context(), Binomial(), BuildSat(), CalcBase(), ChangeLatticeDimension(), cherche_min(), CNP(), compute_enode(), compute_poly(), Constraints2Polyhedron(), Constraints_fullDimensionize(), Constraints_Remove_parm_eqs(), count_points(), dehomogenize_polynomial(), DomainConstraintSimplify(), DomainCost(), edot(), Ehrhart_Quick_Apx_Full_Dim(), Empty_Polyhedron(), EmptyLattice(), emul(), Enumerate_NoParameters(), Enumeration_zero(), Equalities_integerSolution(), Equalities_validityLattice(), exist_points(), Factorial(), Find_m_faces(), FindHermiteBasisofDomain(), FindSimple(), full_dimensionize(), GaussSimplify(), GenParamPolyhedron(), identite(), Identity(), Identity_Matrix(), ImplicitEqualities(), Inner_Product(), Lattice_extractSubLattice(), LatticeIntersection(), LatticePreimage(), left_hermite(), LexSmaller(), linearInter(), lower_upper_bounds(), main(), MakeDioEqforInter(), MatInverse(), Matrix_identity(), Matrix_Inverse(), Matrix_Product(), mpolyhedron_compress_last_vars(), mpolyhedron_deflate(), mpolyhedron_eliminate_first_variables(), mpolyhedron_inflate(), mtransformation_inverse(), new_eadd(), new_enode(), old_Polyhedron_Preprocess(), Orthogonal_Base(), P_Enum(), Param_Polyhedron_Scale_Integer(), Poly2Sat(), Polyhedron_Enumerate(), Polyhedron_Image_Enumerate(), Polyhedron_Not_Empty(), Polyhedron_Preprocess(), Polyhedron_Preprocess2(), Polyhedron_Scan(), PolyhedronIncludes(), PolyhedronLTQ(), PreElim_Columns(), rat_prodmat(), Rays2Polyhedron(), Rays_Mult(), Rays_Mult_Transpose(), Remove_Redundants(), right_hermite(), Scalar_product(), Scan_Vertices(), Simplify(), smith(), SolveDiophantine(), Soustraire_ligne(), SubConstraint(), test_Constraints_fullDimensionize(), Universe_Polyhedron(), Vector_IsZero(), Vector_Min_Not_Zero(), Vector_Set(), and VertexCT().
#define value_sign | ( | v | ) | (value_eq(v,VALUE_ZERO)?0:value_lt(v,VALUE_ZERO)?-1:1) |
Definition at line 493 of file source/arith/arithmetique.h.
Referenced by ImplicitEqualities().
#define value_sub_int | ( | ref, | |||
val, | |||||
vint | ) | ((ref) = (val)-(Value)(vint)) |
Definition at line 521 of file source/arith/arithmetique.h.
Referenced by lower_upper_bounds(), P_Enum(), Polyhedron_Preprocess(), and Polyhedron_Preprocess2().
#define value_substract | ( | ref, | |||
val1, | |||||
val2 | ) | (value_subtract((ref),(val1),(val2))) |
Definition at line 695 of file source/arith/arithmetique.h.
#define value_subtract | ( | ref, | |||
val1, | |||||
val2 | ) | ((ref) = (val1)-(val2)) |
Definition at line 520 of file source/arith/arithmetique.h.
Referenced by count_points(), Elim_Columns(), exist_points(), FindHermiteBasisofDomain(), hermite(), LatticePreimage(), main(), MatInverse(), Matrix_Inverse(), mpolyhedron_deflate(), mpolyhedron_inflate(), Orthogonal_Base(), P_Enum(), Polyhedron_Image_Enumerate(), Polyhedron_Preprocess2(), SolveDiophantine(), Soustraire_ligne(), test_Constraints_fullDimensionize(), TestRank(), and Vector_Sub().
#define value_swap | ( | v1, | |||
v2 | ) |
{Value tmp; tmp = v2; \ v2 = v1; v1 = tmp; \ }
Definition at line 465 of file source/arith/arithmetique.h.
Referenced by ExchangeColumns(), and Vector_Exchange().
#define value_uminus | ( | val | ) | (-(val)) |
Definition at line 539 of file source/arith/arithmetique.h.
#define value_zero_p | ( | val | ) | value_eq(val,VALUE_ZERO) |
Definition at line 553 of file source/arith/arithmetique.h.
Referenced by CalcBase(), Chernikova(), ComputeNPLinesRays(), Constraints2Polyhedron(), Constraints_Remove_parm_eqs(), dehomogenize_evalue(), dehomogenize_polynomial(), Disjoint_Domain(), Domain_Enumerate(), DomainCost(), eadd(), ecopy(), Ehrhart_Quick_Apx_Full_Dim(), emul(), encore(), Enumerate_NoParameters(), evalue_div(), existepivot(), findHermiteBasis(), FindHermiteBasisofDomain(), FindSimple(), GaussSimplify(), GenParamPolyhedron(), hermite(), ImplicitEqualities(), isfulldim(), Lcm3(), linearInter(), lower_upper_bounds(), main(), MatInverse(), Matrix_Inverse(), new_eadd(), P_Enum(), p_simplify_constraints(), Poly2Sat(), Polyhedron_Enumerate(), Polyhedron_Image_Enumerate(), Polyhedron_Preprocess(), Polyhedron_Preprocess2(), PolyhedronIncludes(), PolyhedronLTQ(), PreElim_Columns(), RaySort(), RearrangeMatforSolveDio(), reduce_evalue(), Remove_Redundants(), Soustraire_ligne(), split_constraints(), test_Constraints_fullDimensionize(), TestRank(), Vector_IsZero(), and Vector_Min_Not_Zero().
void dump_exception_stack | ( | void | ) |
Definition at line 233 of file errors.c.
Referenced by pop_exception_from_stack(), push_exception_on_stack(), and throw_exception().
void dump_exception_stack_to_file | ( | FILE * | ) |
Definition at line 216 of file errors.c.
Referenced by dump_exception_stack().
void pop_exception_from_stack | ( | int | , | |
const char * | , | |||
const char * | , | |||
int | ||||
) |
jmp_buf* push_exception_on_stack | ( | int | , | |
const char * | , | |||
const char * | , | |||
int | ||||
) |
void throw_exception | ( | int | , | |
const char * | , | |||
const char * | , | |||
int | ||||
) |
unsigned int any_exception_error |
Definition at line 116 of file errors.c.
Referenced by AddConstraints(), AddRays(), align_context(), BuildSat(), Chernikova(), Constraints2Polyhedron(), DomainConvex(), DomainCost(), DomainImage(), DomainPreimage(), FindSimple(), Gauss4(), get_exception_name(), Polyhedron_Image(), Polyhedron_Preimage(), Rays2Polyhedron(), Rays_Mult(), Rays_Mult_Transpose(), Remove_Redundants(), SimplifyConstraints(), Stras_DomainSimplify(), and SubConstraint().
unsigned int overflow_error |
Definition at line 109 of file errors.c.
Referenced by Ehrhart_Quick_Apx_Full_Dim(), Enumerate_NoParameters(), get_exception_name(), and Polyhedron_Enumerate().
unsigned int parser_exception_error |
Definition at line 112 of file errors.c.
Referenced by get_exception_name().
unsigned int simplex_arithmetic_error |
Definition at line 110 of file errors.c.
Referenced by get_exception_name().
unsigned int the_last_just_thrown_exception |
unsigned int user_exception_error |
Definition at line 111 of file errors.c.
Referenced by get_exception_name().