diff --git a/GLS-0.12-1.1 b/GLS-0.12-1.1 deleted file mode 100644 index 17c0476..0000000 --- a/GLS-0.12-1.1 +++ /dev/null @@ -1,1220 +0,0 @@ -eefc370 Update version. -703378a Mark ChangeLog. -dacf219 Updated. -bbcad29 Updated. -637c3cf Worked around a Doxygen bug. -8391990 Updated. -f993d2f Updated. -346cfc0 Label updated. -81b01e9 BenerecettiFM13 has been published. -24bf4c8 Updated. -31307ff Test renamed. -1b2d7f5 Improved. -c0c660f Version number bumped. -c4307aa Fixed a bug. -36781bc A couple of corrections. -02983e9 Punctuation. -79acc26 Corrected. -a841400 Interfaced Polyhedron::positive_time_elapse_assign(). Various other improvements. -ed99c6f Missing comment added. -07039e7 Commented-out code removed. -696e60b Version number bumped. -05b0312 Merge branch 'polyops'. -7e6ceed Version number bumped. -6d1cac4 Path fixed. -8a1ca27 Give up on -Werror: it increasingly causes problems. (Thanks to Stephen Montgomery-Smith.) -52f8c24 Directory fixed. -6d75298 Version number bumped. -5319687 Mention recently fixed Java interface bug. -fa7a5ed Initialize custom_compare_ext field in structure custom_operations. -8c73089 Do not clean inexistent dat file. Be consistent in naming dat files in Grid's ascii_dump/load tests. -161ea78 Convert C++ Variable id's to jlong before passing them to Java methods. -eebc8c9 Adapted to recent versions of GNU Prolog so as to work on 64-bit machines. -5f8b496 Version number bumped. -ebcf2aa Use the serial test harness in these directories. -ddd1c4f Automake `subdir-objects' option is not for us. -fc81a9b Updated. -eabbef2 Put under Git control. -7ab8b27 Use the `subdir-objects' Automake option. -38ef7ac Fixed typo in the Java interface for method `frequency' and added testcase. Bug reported by Gianluca Amato. -37c8c97 The documentation details of the Polyhedron::conversion() static method are not meant for the user manual. -eb2c84b Version number bumped. -fc53336 Path fixed. -89386ce Give up on -Werror: it increasingly causes problems. (Thanks to Stephen Montgomery-Smith.) -8fe8ea8 Directory fixed. -69ba9e3 Version number bumped. -7251d8f Mention recently fixed Java interface bug. -df36ca0 Initialize custom_compare_ext field in structure custom_operations. -0cc1a72 Do not clean inexistent dat file. Be consistent in naming dat files in Grid's ascii_dump/load tests. -30478fb Convert C++ Variable id's to jlong before passing them to Java methods. -389c982 Adapted to recent versions of GNU Prolog so as to work on 64-bit machines. -f1487c8 Version number bumped. -b50626a Use the serial test harness in these directories. -bd44c92 Automake `subdir-objects' option is not for us. -0b2e3fd Updated. -772c80b Put under Git control. -b6c2866 Use the `subdir-objects' Automake option. -34b0df5 Fixed typo in the Java interface for method `frequency' and added testcase. Bug reported by Gianluca Amato. -5090488 The documentation details of the Polyhedron::conversion() static method are not meant for the user manual. -4bf7d3f Merge branch 'master' into polyops -b062855 Switch to the new GLPK API routines. Old API routines where completely removed in GLPK 4.49. -5b86ec7 Version number bumped. -8162935 Converted to free MPS format. -ecec8a8 Added test cases for the positive time elapse operator. Modified the user manual and the credits in order to acknowledge the new function and its authors, respectively. -46edbec Apparently, some versions of Doxygen require this line. (Thanks to Matthias Klose.) -90e0684 Trailing white space removed. -5c7a1d8 Updated. -f6bb7f2 Version number bumped. -b66224f Fixed capitalization. -9fd4b05 Added a testcase showing an issue in method MIP_Problem::OK(). The method checks for too strong (i.e., invlaid) invariants in the case of a MIP_Problem subject to space dimnesion additions. Modified method OK() to check those invariants on the "internal" space dimension, rather the external one. While at it, modified private method MIP_Problem::process_pending_constraints() to avoid returning a bool value (which is never checked). -eaac930e Fixed constructor from a different partially reduced product element. -87f0954 Fix indentation. -464f7b6 Activate a couple of tests that were ignored. -ad11ba0 Complete application of systematic file header renaming. -3822e9e Added missing line. -09a5a44 Obsolete link updated. -3e14a54 Merge branch 'master' into polyops -fba4b31 Comments fixed. (Thanks to Marco Faella.) -6790e32 Merge branch 'polyops' of ssh://git.cs.unipr.it/ppl/ppl into polyops -a357bc4 first draft of positive_time_elapse added -479fd86 Const-qualify immutable objects. Detected by ECLAIR service cnstpnte. -aee1d00 Links updated. -fd568b0 Const-qualify immutable objects. Detected by ECLAIR service cnstpnte. -3d42a8f Const-qualify immutable objects. Detected by ECLAIR service cnstpnte. -9ddca3f Const-qualify immutable objects. Detected by ECLAIR service cnstpnte. -45e0f69 Missing comments added. -22b223f Version number bumped. -1356383 Typo fixed. (Thanks to Chia-Hsun Cheng and Marco Bodrato.) -1084b95 Const-qualify immutable objects. Detected by ECLAIR service cnstpnte. -225f9cb Typo fixed. (Thanks to Chia-Hsun Cheng and Marco Bodrato.) -efd4b12 Const-qualify immutable objects. Detected by ECLAIR service cnstpnte. -377a173 Const-qualify immutable objects. Detected by ECLAIR service cnstpnte. -c84e435 Const-qualify immutable objects. Detected by ECLAIR service cnstpnte. -464eca0 Extended copyright years. -decf66d Version number bumped. -9f843ae GMP version 5.1.0 (and, presumably, later versions) defines std::numeric_limits. -e1bfeb7 Updated. -ec6f51a Detect bogus versions of std::floor(long double). -de75769 Do recognize also llvm-gcc and llvm-g++. Floating-point-based abstractions are disabled when clang++ or llvm-g++ are detected. -3a66052 Removed wrong observation on time-elapse for closed polyhedra. (Thanks to Marco Faella for pointing this out.) -0ec237e Updated. -70de9a0 EList is not Watchdog specific. Avoided needless naming incongruences. -5572ab3 Fixed several Doxygen warnings. -f243827 Version number bumped. -6d75839 Updated news. -ec402f2 Added a Java testcase for method drop_some_non_integer_points(). -cd98130 Fixed a precision problem in method Polyhedron::drop_some_non_integer_points(). -a9c8f53 Added a new test showing a precision problem in one of the methods Polyhedron::drop_some_non_integer_points(); -0f82172 Fixed Java interface issues for method drop_some_non_integer_points(), reported by Zell (Zhoulai). -a1141d9 Added test invocations that were left out by mistake. -70be8fa Indentation fixed. -685ee64 Avoided user defined and implementation define behaviors of left and right shift. -55575dc Avoided some "magic constants". Detected by ECLAIR service nomagicc. -004c134 Fixed float_ieee754_half::POS_INF and float_ieee754_half::NEG_INF. They were swapped. -490e191 Revert "Two comments turned into assertions." -364dfbe Avoided a couple of "magic constants". Detected by ECLAIR service nomagicc. -88fdc38 Comments should never be used for "commenting out" code. Detected by ECLAIR service cmntdout. -56f7bba Unusual and difficult-to-maintain comment removed. -e4ced22 Two comments turned into assertions. -82085ae Do not declare more than one variable per declaration. Detected by ECLAIR service declgrup_srceline. -d757935 Avoided non-constant pointers to function. Detected by ECLAIR service funpntr. -eb5a736 Avoided non-constant pointers to function. Detected by ECLAIR service funpntr. -b23873f Avoided non-constant pointers to function. Detected by ECLAIR service funpntr. -15a0946 Guarantee that header file names are unique as per C++11's 16.2#5. Detected by ECLAIR service hedrname. -fd2a314 Fixed the code layout for several if-then-elses. -765172c Fixed comments that were meant to be Doxygen comments. Detected by ECLAIR service cmntdecl_srceline. -15181d4 Comment fixed. -ccf34d6 Advertise the portability improvements. -416ab74 Avoid a non-portable GNU Make idiom (using `$<' in a non-suffix rule context). -f624713 Modified the Expression_Adapter infrastructure. Prefer the creation of transient, lightweight adapters to the usage of wild reference casts. While at it, improved documentation and systematically renamed `Expression' inner typedefs as `expr_type'. -dd88081 Do not use TABs for code layout. Detected by ECLAIR service tabindnt. -ec76e73 Avoided som implicit integral conversion that changed the signedness of the underlying type. Detected by ECLAIR service utypflag. -e21546a Unwanted recursion removed. Detected by ECLAIR service funrecsn. -55227bf Prefer explicit cast to implicit narrowing conversion. Detected by ECLAIR service utypflag. -0873d96 Added helper method insert_precise_aux to avoid recursive call. Detected by ECLAIR service funrecsn. -076f771 Added several missing tags in Doxygen comments. -3307c8d Unwanted recursion removed. Detected by ECLAIR service funrecsn. -2a9d181 Fixed several minor documentation issues. -f6fd3a3 Use PPL_U when macro parameters are used as template type arguments. -5d14a67 Avoid outer-scope name hiding. Detected by ECLAIR service declhidn. -2d2a72e Avoid outer-scope name hiding. Detected by ECLAIR service declhidn. -359a800 Indentation fixed. Detected by ECLAIR service indntion. -38e903c Avoid implicit floating-integral conversions. Detected by ECLAIR service utypflag. -4cc7bec Do not let constant unsigned integer expressions wrap-around. Detected by ECLAIR service cnstwrap. -079da25 Use a standard comment header block. Detected by ECLAIR service cmntfile. -88e9d49 Literals fixed. -d9ca22e Comment improved. -c7decce Do not use comments to "comment out" code. Detected by ECLAIR service cmntdout. -60feec9 Use a standard comment header block. Detected by ECLAIR service cmntfile. -0b783b0 Code should not be on the same line as a null statement. Detected by ECLAIR service nullstmt. -93c41b7 Do not use C-style casts. Detected by ECLAIR service castexpr. -2b67686 Detected by ECLAIR service inclmixd. -19bb7a9 Fixed a couple of name hiding issues in Expression_Hide_Inhomo adapter. This commit is meanto to be part of 9e4c9c57ae8ffca73bb9ee6c75a43d6ed6cd4096 -9e4c9c5 Changed the way of accessing the underlying expression in classes Constraint, Generator, Congruence and Grid_Generator. -72e6f15 Version number bumped. -88cf8d3 Added a few recent changes regarding the Java language interface. -dda4797 A couple of changes to the Java interface: - Variable's id are of long type (like space dimension arguments); - added NOT_EQUAL value to enumeration Relation_Symbol. -da8fa48 Updated. -a292feb Added test class Custom_Variable_Stringifier and corresponding example for testing customization of Variable output in the Java interface. -af3298e Added native methods toString() and setStringifier() to class Variable. Implemented variable output function using the customizable stringifier. -7cf8a12 Added Variable_Stringifier interface. -1773d43 The default output function for Variable's objects made public. There is no actual reason to have it private: being public, we simplify the life of a user willing to set it back to default. -3a754d5 Use ArrayList instead of Vector for (constraints, ...) systems in Java. Added a paragraph to the introduction of the user manual to stress that the PPL *_System classes extend ArrayList. While at it, removed many useless import directives. Also fixed a couple of indentation issues. -6480261 Avoid a non-portable GNU Make idiom (using $< in a non-suffix rule context). -8a29319 Changed test04 to print more info when noisy. -3349eba Use std::floor() and std::frexp() instead of floorl() and frexpl(), respectively. -70012d3 Typo fixed. -2b53a49 Typo fixed. -88b390a Spurious blank line removed. -c8e7c38 Added AmatoPS12. -ff65402 Updated. -85218ea Work around a Doxygen bug. Stick to ASCII. -8a7f6b2 More PPL citations. -b16a683 Stick to ASCII. -e67bf30 Added a section on README.configure describing dense/sparse row choices. -3d84573 More PPL citations. -d3eee0d New PPL citations. -6d8e6c8 Redundant script removed. -88bea81 Upgraded doxygen configuration files to version 1.8.1.1. -3270894 Avoid useless namespace closing and reopening. -bf81124 Improved section announcing sparse/dense row representation adoption. -671176a Updated. -b953bd3 Updated. -e3e1b20 Updated. -dbcdb67 Updated. -6ead05b Updated. -6fd9b5f Notes fixed. -f3a3f61 BagnaraMPZ12IC has just been published. -ac5b71f Updated. -8875a80 Updated. -ff9eb6e Unconditionally distribute the man page. -e7616ab Fixed fpu rounding set/restore. -781172d Use macro PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS to exclude several classes/functions from user documentation. While at it, also wrap several long lines. -3033ad3 Version bumped. -9c2f92d Indentation fixed. -1fdc42b Cater for systems where Watchdog objects are not supported. -1ea5be4 Removed a couple of typedefs. These have become useless (and confusing) after the merge of sparse_matrices. -98e065d Fixed another couple of Doxygen warnings. -29702bd Fixed several Doxygen warnings. -94006e2 Typo in documentation fixed. -f7672cf Long source lines avoided. -d7d5124 Test restored. -25f38f8 Restore the pre-PPL rounding mode before using libm functions. -38a6756 Documentation of restore_pre_PPL_rounding() extended. -224d39b Updated. -b7d8c73 Message improved. -2cd23c6 Fixed a couple of Doxygen references. -ea7568f Mentioned a bug corrected. -57fc492 Fixed copy-and-paste mistake. (Thanks to Christian Luidolt.) -e27c255 Fixed a bug affecting method contains() of weakly-relational shapes. -5e45d91 Added tests showing a bug in method contains() of weakly-relational shapes. -794459a Links fixed. -597ea89 Mention a recently fixed bug in the PIP solver. -300c3a4 Properly match #endif's directives using comments. -2bfa68a Inclusions reordered to match the PPL coding standard. -339b75d Added missing inclusion of . -5453b06 Recompute the sign of the special_equality_row after modyfying it. This fixes the bug shown by test04() in tests/PIP_Problem/pipproblem3.cc. -62166e5 Added a new test showing a bug in PIP_Problem. The test was reduced from a slightly bigger one provided by Fred Mesnard. -b1156e9 Make sure template specializations are declared. -3500e3b Avoid implicit conversions changing integer signedness. Detected by ECLAIR service utypflag. -6c49cfb Fixed indentation. Detected by ECLAIR service indntion. -af42e4f Avoid C-style casts. Detected by ECLAIR service castexpr. -b36a417 Prefer PPL_UNREACHABLE to PPL_ASSERT(false). -f9e934b Avoid redundant explicit casts. Detected by ECLAIR service castexpr. -afcc028 Avoid unsigned integer wrap-around in constant expressions. Detected by ECLAIR service cnstwrap. -42943b3 Prefer parentheses to excessive reliance on C++ operator precedence rules. Detected by ECLAIR service exprprns. -10a80c3 Reduced scope of local variable. Detected by ECLAIR service minscope. -329c4ac Fixed comment about case-block termination. Detected by ECLAIR service swchsynt. -294b398 Fixed file comment block. Detected by ECLAIR service cmntfile. -2bc7eac Avoid use C++ library for exact conversion from floating point numbers to string: the library is free to ignore requested precision. -2a45cd9 Updated copyright years. -da2c524 Corrected expected results for (overflowing) tests on bounded coefficients. -126c34b Changed sign of overflow in 16-bits Prolog test. -e2d19cc test01() no longer overflows with 8-bits and assertions on C polyhedra. -0adb0e2 test09() no longer overflows with 8-bit coefficients and assertions on. -a57c6b6 Fixed typo. -1fd3370 Protect in_assert flag from exceptions. -0cb66f9 Another test where we get an overflow with changed sign. -70e0472 Sign of overflow has changed. -c0f985b test14() overflows with 16 bit integers and assertions turned off. -6e0e4f3 test16() overflows on 16 bits even with assertions turned off. -b8385e5 Test sampleh7.ine no longer causes an overflow. -eb9d162 Allow for Prolog exception errors to have message functor ppl_length_error. -d0e0499 Version number bumped. -dbf14ac Weaken assertion in mixed Sparse-Dense linear_combine(). (Note: they can be called in Constraint_System::affine_preimage() with a second argument row with a smaller size than the first one; see e.g. test02() in tests/Concrete_Expression/polyhedron1.cc). a call in Constraint_System::affine_preimage()). -beeeb4d Wrap a few long lines. -01eee00 Merge branch 'master' into sparse_matrices -c098c05 Fixed a few copy&paste errors in documentation. -46f8f37 Merge branch 'master' into sparse_matrices -440744b Use macro PPL_USED. -02b57d1 Merge branch 'master' into sparse_matrices -c26fbfa Prefer set_space_dimension(d) to 0*Variable(d-1) trick. -669dea9 Prefer set_space_dimension(d) to 0*Variable(d-1) trick. -a2831e3 Prefer set_space_dimension(d) to 0*Variable(d-1) trick. -a00d503 Prefer set_space_dimension(d) to 0*Variable(d-1) trick. -763a8e6 Added static data member recording default representation choice for the constraint/generator systems stored in a Polyhedron object. Current default values are DENSE. Use these values when constructing the con_sys and gen_sys data members. -c892e0f Avoid kludge for setting space dimension of congruence system. -c73f2c9 Improved methods (minimized_) constrints() and congruences(). -4d43258 By default, use a SPARSE representation for all syntactic representations. -daa305b Restored (after adapting it) commented out code. -faaf9b9 Merge branch 'master' into sparse_matrices -c1bbb65 Prefer pre-increment to post-increment. In a few places, improve readability by incrementing on a separate instruction. -4c0a1c6 Weaken assertion in Linear_System::shift_space_dimensions(). The variable argument is not required to be a space dimension of the system (it can be off-by-one). Removed a couple of useless inclusions. -e2c4169 Improved documentation for {Dense,Sparse}_Row::add_zeroes_and_shift(). Prefer using `coeff_allocator' rather than operator new. -adf7cee Do not call is_sorted() in method remove_row_no_check(). -d8ff8bc Added test showing an assertion crashing in Linear_System::remove_row_no_ok(). The tests mirrors in C++ a crash originally obtained with the OCaml interface. -8be2dc6 Merge branch 'master' into sparse_matrices -95219a9 Fixed a performance regression caused by a bug in the computation of the number of subsumed rows. -8f6d05d Restored old code trying to keep the system sortedness flag on. Factored out of loop some invariant space dimension computation. -3f4b4ad By default, use the default_representation in constructors. -a62e7d2 Restored some checks in OK() methods for constraint/generator systems. -45c9de9 Fixed bug spotted in test12() in tests/BD_Shape/boundedaffinepreimage1.cc. -b4b3f73 Added test showing a bug in BD_Shape::bounded_affine_preimage(). NOTE: the bug only affects the sparse_matrices branch and was synthesized from a corresponding Java interface test. -1ed36cb Fixed a bug in generalized_affine_image. -21b5672 Fixed a couple of comments and/or code layout issues. -96e0e97 Removed useless return of a void-typed expression. -79ab9a8 Unused variable declaration removed. -3c4a948 Merge branch 'master' into sparse_matrices -c966621 Restored public accessibility of several OK() methods. -ae6854c Added missing name qualification. -e5107ef Avoid warnings about unused variables. -93e499e Added new source file Linear_Expression_Impl.cc. Move template specializations that are not inline into new source file. Move other ones into Linear_Expression_Impl.inlines.hh. Prefer virtual method print() to non-standard virtual operator<< variant. -013b9e8 Avoid a couple of warnings about unused variables. -f6b04c0 Merge branch 'master' into sparse_matrices -8ce105e Reordered inclusions so that *.types.hh are included before *.defs.hh. -126ad84 Added missing inclusion. -77b9607 Files .inlines.hh should not include .defs.hh. -cbe0c72 Be more systematic when including Scalar_Products header files. -119aeb2 Use computed reference (and avoid unused variable warning). -6ee60dd Use helper function used() to avoid unused variable warnings. -611c99c Do not use typename keyword for non-dependent type names. -0eb6677 Sparse_Row: fix a bug in the constructor from a Dense_Row with a specified size. -37eeb42 Merge branch 'master' into sparse_matrices -589bf4d Grid_Generator_System: make the insert() method that recycles the input consistent with the one that doesn't. -8f42137 Constraint_System:optimize the constructor from a Congruence_System. -ce0f55f Constraint_System: make the insert() methods that recycle input consistent with those that don't. -e90141b Linear_System: remove the add_*row*() methods, and add a insert_pending_no_ok() instead. -28b0a0d Constraint_System, Generator_System, Grid_Generator_System: make some methods private. -a203238 termination: remove a useless helper function and move assign_all_inequalities_approximation() into Termination_Helpers. -1563b94 Congruence_System: make some methods private. -089d088 Linear_System: optimize the merge_rows_assign() method. -7821f9f Constraint, Generator, Grid_Generator: now constructors that take a space dimension actually construct an object with that space dimension (even in the NNC topology). -08f0ba4 Constraint, Congruence, Generator, Grid_Generator: remove the constructor that takes a space dimension. -1bca85a Generator: don't be friend of Grid_Generator. -6f2b99e Congruence: avoid including Constraint.defs.hh in Congruence.inlines.hh. -16557da Linear_System: simplify some methods. -d607407 Linear_System: fix the set_representation() method. -479908f Generator: simplify the OK() method. -a404707 Congruence: make is_equal_at_dimension() private. -f79604e Congruence: remove some related functions/operators. -c10e6b8 Grid: avoid using operator-=() and sub_mul_assign() on Congruences. -b89b87c Congruence: simplify one of the create() methods. -b51813e Constraint: avoid resizing Linear_Expressions when possible. -1535ef3 Constraint: improve readability and simplify the implementation. -7159b96 Use the copy-and-swap idiom in the assignment operator, in various classes. -070a43d Constraint_System, Generator_System: declare the swap() function in the header file. -9c6423f Implement swapping of Variables. -8a8a48c BD_Shape: avoid iterating through coefficients known to be 0, in generalized_affine_image(). -3826ae7 BD_Shape: clarify the contract of extract_bounded_difference(). -d791ea0 Constraint: remove the constructor from Congruence with a specified size. -7d280f1 Constraint, Generator, Grid_Generator: make all Topology-related constructors and methods private. -dd24906 Generator: make Kind, the constructors that take a Kind, and the [set_]is_line_or_equality() and [set_]is_ray_or_point_or_inequality() methods private. -9a785c6 Constraint: reorder the method declarations. -31e40bf Constraint: make the [set_]is_line_or_equality() and [set_]is_ray_or_point_or_inequality() methods private. -5cdc156 Constraint: make Kind and the constructors that take a Kind private. -fbc5f33 tests/Polyhedron/linearsystem1: avoid using a low-level constructor of Constraint. -a74dd27 Congruence: remove the set_inhomogeneous_term() method. -7cc646c Congruence: remove the shift_coefficients() method, use shift_space_dimensions() instead. -42bb58a Congruence: remove the add_space_dimensions() and add_space_dimensions() methods. -dc94560 Congruence: now the is_equal_at_dimension() method takes a Variable instead of a dimension_type. -b126355 Congruence: remove the modulus() method that returns a non-const reference. -b320062 Linear_Expression: make the negate() method private. -e428074 *_System: remove the release_row(s)() and take_ownership_of_rows() methods. Adapt client code. -e3f2f5b *_System (except Congruence_System): add a Representation field and a Representation parameter to all constructors. Make sure that all the rows have the same representation. -09fb1cd Implement the representation() and set_representation() methods, in various classes. -96e5d59 Constraint_System, Generator_System, Grid_Generator_System: use Linear_System's ascii_dump() and ascii_load() methods. -adf670d Linear_System: fix the ascii_dump() method by adding a missing space. -4069226 Congruece_System: make some methods public/private. -65beb73 Congruence_System, Linear_System: remove the internal_row_type typedef. -22c74b3 *_System, Matrix: remove the resize_no_copy() method. -3c4de27 Congruence_System: make the API higher-level: use the space dimension instead of the number of columns. -c9d40c9 Congruence_System: add a Representation field and a Representation parameter to all constructors. Make sure that all the rows have the same representation. -cad52ef Add ascii_load()/ascii_dump() functions for the Representation enum. -8460d58 Grid: fix a bug in relation_with(). -c1a9268 tests/Grid: use the Recycle_Input tag in the tests, fixing compilation errors. -edb5c61 test/Polyhedron/sparserow1: rename m_swap() into coefficient_swap(), fixing compilation errors. -c748c6e Merge branch 'master' into sparse_matrices -4c0dab7 Constraint, Generator, Grid_Generator, Congruence: add a default_representation constant and a Representation argument to constructors and factory methods. -a434f2b Grid_Generator: remove an obsolete typedef for row_type. -4280ced Use Constraint::Expression, Generator::Expression, Grid_Generator::Expression, Congruence::Expression instead of const Linear_Expression& when relevant. -46c0533 Congruence: remove the non-const expression() method and add an Expression typedef, for consistency with Constraint, Generator and Grid_Generator and to allow different implementations in the future. -adaf750 *_System: use the Recycle_Input tag instead of adding 'recycled' or 'recycling' to the method's name. -a0f059a Grid_Generator: make some methods private. -ea378d9 Generator: make some methods private. -e886a32 Constraint: make some methods private. -fed5b61 MIP_Problem, PIP_Problem: don't check Constraint::OK(), the Constraint class is responsible for making sure that all constraints are OK(). -e5f1a49 Octagonal_Shape: remove an unused variable. -f5aa780 Box: remove an unused variable. -323a335 Matrix: fix a compilation error caused by the renaming of *_Row::swap() to swap_coefficients(). -f5d91bc Merge branch 'master' into sparse_matrices_test -3915e7a Merge commit '0ae35bbbc1e8f4d1a38ced7fe7190be9a29e4fb6' into sparse_matrices_test -511aa56 Merge commit 'dbedf8514da0b58c7c5ff8c37356a9ffc8d1f835' into sparse_matrices_test -81ac726 Merge commit 'a9a6632bfcc7a546a2a7edcb636e47f60e4839b4' into sparse_matrices_test -dc35fb6 Merge commit '5d31265f3e17b7e1d0d03d0009a1906b2d03165c' into sparse_matrices_test -129623e Merge commit '39c1356315950be2201142fba21cf0f861e234c1' into sparse_matrices_test -59ea760 Grid_Generator: remove an obsolete swap() method that takes two Variables. -3d49034 Dense_Row, Sparse_Row: rename the swap() methods that take two dimension_type or two iterators into swap_coefficients(), to avoid name clashes with swap(). -45ab694 Merge commit '0442fb1660eb2a57e4412b44505a3a28a8d826f0' into sparse_matrices_test -a037e26 Merge commit '97f3e98708cbb53eabf0fb0c30f38e50eb549369' into sparse_matrices_test -5a7778b Merge commit '367a91ec09da66585614d6829dbb089066d57c77' into sparse_matrices_test -d1668f4 Merge commit 'a6e777561ba56e830bd44128adc8038609c8cb23' into sparse_matrices_test -0798bb9 Merge commit 'fa86778c6ae396672711e10f2c195df3cb13311f' into sparse_matrices_test -f58219b Merge commit '703cc3ccfae900375897b441b2abfe0ad6e0f210' into sparse_matrices_test -40b84cb Merge commit '09144610d98413a390afed2c0f5b189e7a9e5f30' into sparse_matrices_test -aa3422e Merge commit '95285ecc6049e25569f31f07d64d4f53a1be732e' into sparse_matrices_test -3433371 Merge commit 'a87bb62c2afee1571db0d44ac02b756c9e30cb3c' into sparse_matrices_test -a66ee10 Merge commit '50dc24772dc142eed06b6109672b3804e15a0804' into sparse_matrices_test -1d62ef7 Grid: add an assertion. -b81949a Constraint, Generator, Grid_Generator: make the expr field private again, and add needed friend declarations. -0ebb4b0 Generator: simplify the space_dimension() method. -9002b30 Constraint: use the expression() method instead of the expr field, in operator<<(). -c3e5d8c Congruence: use the expression() method instead of the expr field, in the constructors from a Constraint. -8db6e42 Grid: use the expression() method instead of the expr field, in constrains(). -440c1f0 Grid: use the expression() method instead of the expr field, in relation_with(). -6d29ffb Grid: use the expression() method instead of the expr field, in conversion(). -18c4519 Grid: use the expression() method instead of the expr field, in expand_space_dimension(). -3730a68 Grid: use the expression() method instead of the expr field, in map_space_dimensions(). -2eabf35 Polyhedron: use the expression() method instead of the expr field, in time_elapse_assign(). -98485ed Polyhedron: use the expression() method instead of the expr field, in constrains(). -d5b7022 Polyhedron: use the expression() method instead of the expr field, in contains_integer_point(). -7b7c94d Polyhedron: use the expression() method instead of the expr field, in is_universe(). -2273ff9 Polyhedron: use the expression() method instead of the expr field, in drop_some_non_integer_points(). -2d8bfbc Polyhedron: use the expression() method instead of the expr field, in strongly_minimize_constraints(). -8a6e4ff Polyhedron: use the expression() method instead of the expr field, in map_space_dimensions(). -225b1d5 Octagonal_Shape_Helper: use the expression() method instead of the expr field. -25f5cd3 MIP_Problem: use the expression() method instead of the expr field, in process_pending_constraints(). -dd991b8 MIP_Problem: use the expression() method instead of the expr field, in parse_constraints(). -7af715e PIP_Solution_Node: use the expression() method instead of the expr field, in update_tableau(). -05e0497 PIP_Problem: use the expression() method instead of the expr field, in solve(). -d7b29da termination: use the expression() method instead of the expr field, in one_affine_ranking_function_MS(). -ce06871 termination: use the expression() method instead of the expr field, in fill_constraint_systems_PR_original(). -1b4b509 termination: use the expression() method instead of the expr field, in fill_constraint_systems_PR(). -9d9b71a termination: use the expression() method instead of the expr field, in fill_constraint_systems_MS(). -09dbf85 wrap_assign: use the expression() method instead of the expr field, in wrap_assign_ind(). -763b2ca Box: use the expression() method instead of the expr field, in propagate_constraint_no_check(). -c486d85 Box: use the expression() method instead of the expr field, in the relation_with() method that takes a Generator. -cf7010e Box: use the expression() method instead of the expr field, in the relation_with() method that takes a Constraint. -b70721e Box: use the expression() method instead of the expr field, in the relation_with() method that takes a Congruence. -72d1550 Box: use the expression() method instead of the expr field, in the constructor from a Generator_System. -87d553e Box: use the expression() method instead of the expr field, in extract_interval_constraint(). -17387ea BHRZ03_Certificate: use the expression() method instead of the expr field, in compare(). -9388de4 BHRZ03_Certificate: use the expression() method instead of the expr field, in the constructor from a Polyhedron. -4dde8ba BD_Shape: use the expression() method instead of the expr field, in the constructor from a Generator_System. -5f23084 BD_Shape: use the expression() method instead of the expr field, in extract_bounded_difference(). -5963778 Affine_Space: use the expression() method instead of the expr field, in the constructor from a Generator_System. -5384688 Linear_Expression_Impl: remove the constructors from Constraint, Generator, Grid_Generator and Congruence. -3d7bb5b Linear_Expression: simplify the constructors from Constraint, Generator, Grid_Generator and Congruence. -898c6c0 Linear_Expression: add constructors from wrapped expressions. -2da44bf Grid_Generator: add two fields that wrap 'expr', hiding implementation details, and add an expression() method that returns the fully-wrapped expression. -73db2b0 Generator: add two fields that wrap 'expr', hiding implementation details, and add an expression() method that returns the fully-wrapped expression. -493eb02 Constraint: add a field that wraps 'expr', hiding implementation details, and add an expression() method that returns it. -3e416cc Constraint, Generator, Grid_Generator: remove the expression() method, and (temporarily) let client code use the expr field directly. -436023e tests/linearsystem1: avoid using the Constraint::expression() method. -16ca5cd Add the Expression_Hide_Last and Expression_Hide_Inhomo classes. -dbf2677 Generator: make some methods public/private and rearrange declarations in the class definition. -a97a7b0 Constraint, Generator, Grid_Generator: remove the non-const expression() method. -2fdf8a2 Instead of using the non-const expression() method of Constraint, Generator and Grid_Generator, use the field directly and assert OK() a fterwards (#3). -1d6fb9d Linear_System: remove the normalize() method. -c62b805 Linear_System: call shift_space_dimensions() on the rows instead of on their expressions. -eacf685 Instead of using the non-const expression() method of Constraint, Generator and Grid_Generator, use the field directly and assert OK() afterwards (#2). -4a99ec1 Generator, Constraint: normalize if necessary, in set_space_dimension(). Also add and use some unchecked methods. -17e8f6e Linear_System: avoid constructing invalid rows and fixing them afterwards, in add_universe_rows_and_columns(). -2577070 Constraint: the constructor from a Linear_Expression that takes a Type and a Topology no longer reduces the space dimension by 1. -c9e4437 Generator: the constructor from a Linear_Expression that takes a Type and a Topology no longer reduces the space dimension by 1. -27cc6ca Generator: add a constructor that takes a Linear_Expression, a Kind and a Topology. -3498564 Constraint: add a constructor that takes a Linear_Expression, a Kind and a Topology. -aac128e Add some comments. -5fb0802 Instead of using the non-const expression() method of Constraint, Generator and Grid_Generator, use the field directly and assert OK() afterwards. -c55d120 Polyhedron: make sure that mid_g is OK() before passing it to relation_with(), in BFT00_poly_hull_assign_if_exact(). Patch by Enea Zaffanella. -4f29d90 Congruence, Generator, Grid_Generator, Constraint: add a shift_space_dimensions() method. Use these methods in Polyhedron::concatenate_assign(). -cc2b405 Add a TODO. -d5afc56 Grid_Generator: remove the negate() method. -0d53c2d Remove some TODOs/FIXMEs. -f79b0b8 Congruence: make all *normalize() methods public. -fddc7b2 Congruence: improve the documentation of set_modulus() and remove the set_is_equality() method. -689266e Modify some comments. -9fcad9c Congruence: remove the negate() method. -d891d58 Congruence, Congruence_System: the affine_preimage() methods now take a Variable instead of a dimension_type. -cefe291 Avoid using the Linear_Expression get() and set() methods that take a dimension_type, where possible. -9249e34 Linear_Expression: add a get() and a set() method that take a Variable. -a40958b Linear_Expression: move the is_unbounded_obj_function() method to the MIP_Problem class, and modify it to use the public API of Linear_Expression. -eadb38b Congruence: simplify the constructors from a Constraint. -82098a5 Congruence: add a Recycle_Input tag to the constructor that steals the contents of a Linear_Expression. -8a49d6c Remove an obsolete TODO. -b0a797a Generator: remove the constructors that take a reserved_size. -69a0edd Linear_Expression_Impl: optimize the constructor from a Linear_Expression that takes a space dimension. -bb4d1ab Linear_Expression: move the modify_according_to_evolution() method to the Polyhedron class, and modify it to use the public API of Linear_Expression. -64a6798 Congruence: the constructor from a Linear_Expression and a modulus does not reduce by 1 the space dimension anymore. -21e45ca Linear_Expression, Congruence, Constraint, Generator, Grid_Generator: now most constructors take a space dimension instead of a size. -7cc182a Linear_Expression: allow the caller to specify the desired representation, to query it and also to change it afterwards. Also add the Representation enum. -868e1f6 Remove the Row typedef, use individual typedefs inside classes that need it instead. -e7c50af Linear_Expression_Interface, Linear_Expression_Impl: remove the swap() method. It's not needed, since Linear_Expression can just swap pointers. -c310fa6 Linear_Expression: optimize add_mul_assign() and sub_mul_assign() for the n==0 case. -8b589a9 BD_Shape: optimize deduce_v_minus_u_bounds(). -32715df BD_Shape: optimize the frequency() method. -bf0231e Add/Improve some TODO comments. -ab4dccd Octagonal_Shape: improve some TODO comments. -3d25172 Box: optimize generalized_affine_preimage(). -572b296 Box: optimize affine_image() and affine_preimage(). -74fd74f Box: optimize the alternative implementation of propagate_constraint_no_check(). -456a4b7 Box: optimize propagate_constraint_no_check(). -3d51070 Box: use Linear_Expression::last_nonzero() in propagate_constraint_no_check(). -fdf01b8 Linear_Expression: add a last_nonzero() method. -f0eadf7 Box: optimize the frequency() method. -fb2fc45 Box: optimize the max_min() method. -70ed80a Box: optimize the relation_with() method that takes a Generator. -203ee29 Box: optimize the relation_with() method that takes a Constraint. -4684866 Box: optimize the relation_with() method that takes a Congruence. -623e601 Box: optimize the bounds() method. -4ba5fa3 Box: optimize the constructor from a Generator_System (#2). -4802136 Box: optimize the constructor from a Generator_System (#1). -7336920 termination: avoid pointlessly copying Generator objects. -f713ff4 termination: optimize fill_constraint_system_PR_original(). -10178e3 termination: optimize fill_constraint_system_PR() (2/2). -3704285 termination: optimize fill_constraint_system_PR() (1/2). -b3f4f0f termination: optimize fill_constraint_systems_MS(). -3366091 BD_Shape: optimize generalized_affine_image() (2/2). -bcd2bb6 BD_Shape/generalizedaffinepreimage1: allow bigger floating-point errors (#2). -967735f BD_Shape: optimize generalized_affine_image() (1/2). -119e645 BD_Shape/generalizedaffinepreimage1: allow bigger floating-point errors. -d61bdb7 BD_Shape: optimize bounded_affine_image(). -3322712 BD_Shape: optimize affine_image(). -7d74f07 BD_Shape: optimize refine() (3/3). -f2f238f BD_Shape: optimize refine() (2/3). -519f729 BD_Shape: optimize refine() (1/3). -ae5dc10 BD_Shape: optimize deduce_u_minus_v_bounds(). -0af6eae BD_Shape: two little optimization in relation_with(). -d2460cc BD_Shape: optimize the constructor from a Generator_System. -0a71b47 Octagonal_Shape: use Linear_Expression::have_a_common_variable() and iterators to improve performance, in generalized_affine_image() and generalized_affine_preimage(). -3d70d7f Octagonal_Shape: optimize deduce_v_pm_u_bounds() and deduce_minus_v_pm_u_bounds(). -4ef99b7 BD_Shape: optimize the constructor from a Generator_System. -c794e02 Grid: optimize map_space_dimensions() using Linear_Expression::const_iterator. -79564d0 Grid_Generator: optimize operator<<() and move the code in a fancy_print() method. -68318ab BD_Shape: use Linear_Expression::have_a_common_variable() and iterators to improve performance, in generalized_affine_image() and generalized_affine_preimage(). -84f39f4 Grid: use Linear_Expression::const_iterator to improve performance, in generalized_affine_image() and generalized_affine_preimage(). -7b10c5a Grid: use Linear_Expression::have_a_common_variable() and iterators to improve performance, in generalized_affine_image() and generalized_affine_preimage(). -c6f93c8 Constraint: optimize operator<<(). -cf69a89 Linear_System: add a TODO comment. -9888d74 Polyhedron: optimize map_space_dimensions(). -9cd6bc0 Grid: add a comment about a missing break and use Linear_Expression::have_a_common_variable(), in relation_with(). -5d9e741 Grid: use the inhomogeneous_term() method instead of get(0), in simplify(). -a243a59 Generator: optimize operator<<() and move the code in a fancy_print() method so that it can access Linear_Expression's private methods. -291b5f1 Congruence: optimize operator<<(). -238e04f Congruence: use inhomogeneous_term() and set_inhomogeneous_term() instead of get(0) and set(0, c), in normalize(). -c5464d8 Polyhedron: use Linear_Expression::have_a_common_variable() and iterators to improve performance, in generalized_affine_image() and generalized_affine_preimage(). -ab9474b Linear_Expression: add a have_a_common_variable() method. -666edcb Polyhedron: explicitly specify !=0 in a condition, in simplify_using_context_assign(). -84c5dca MIP_Problem: choose_branching_variable() now scans input_cs by row instead of by column, increasing cache-efficiency. -68d9f17 MIP_Problem: improve some comments. -1459f0e PIP_Solution_Node: use Linear_Expression::const_iterator in update_tableau(). -5d0568b PIP_Tree: remove two useless variables in compatibility_check_find_pivot_in_set(). -62d6c4c PIP_Tree: improve a comment. -6a537e9 PIP_Problem: add a comment. -b52aec9 MIP_Problem: use Linear_Expression::const_iterator in process_pending_constraints(). -16a9907 Linear_Expression: add a const_iterator type and begin(), end() and lower_bound() methods. -0eebd18 CO_Tree: if an exception is thrown, the tree may be in a state where structure_OK() is false, but it can still be destroyed (the stored size may be wrong in such cases). -bc3f4d7 CO_Tree: fix typo in comment. -653fa8b CO_Tree: when constructing a new element, update the index only if the construction was successful, to avoid destroying an unallocated object if the constructor throws. -f5bfabb Remove an unused variable. -201db3c Linear_Expression_Impl: add an optimized version of has_a_free_dimension_helper() for sparse rows, and slightly improve the dense version. -3e3601a Linear_Expression_Impl: add an optimized version of first_nonzero() for sparse rows, and slightly improve the dense version. -862283a Linear_Expression_Impl: add an optimized version of last_nonzero() for sparse rows, and slightly improve the dense version. -fe385b4 Linear_Expression_Impl: add an optimized version of all_zeroes_except() for sparse rows, and slightly improve the dense version. -63aa379 Linear_Expression_Impl: add an optimized version of all_zeroes() for sparse rows, and slightly improve the dense version. -acfbc0e Linear_Expression_Impl: add an optimized version of gcd() for sparse rows, and slightly improve the dense version. -79427f6 Linear_Expression_Impl: add an optimized version of num_zeroes() for sparse rows, and slightly improve the dense version. -0d382fe Linear_Expression_Impl: add an optimized version of all_zeroes() for sparse rows, and slightly improve the dense version. -ca2095e Linear_Expression_Impl: add an optimized version of all_homogeneous_terms_are_zero() for sparse rows, and slightly improve the dense version. -d30c9ef Linear_Expression_Impl: add an optimized version of is_zero() for sparse rows, and slightly improve the dense version. -ad39593 Sparse_Row: add a num_stored_elements() method. -252b2fe Linear_Expression: inline some trivial methods. -970eb4f Linear_Expression_Impl: use a stronger invariant for sparse rows. -86fcc08 Linear_Expression: remove operator[]. -4e772e0 Linear_Expression: remove the sub_mul_assign() method. -432fbd7 Congruence: remove operator[]. -7d5530a Congruence: remove the sub_mul_assign() method. -4b4d090 Grid: avoid using Linear_Expression::operator[], in conversion() (#3). -44cc8b6 Grid: avoid using Linear_Expression::operator[], in conversion() (#2). -162e1f7 Grid: avoid using Linear_Expression::operator[], in conversion(). -472ca25 Grid: simplify/optimize lower_triangular(). -0dbe5f7 Grid_Generator: simplify scale_to_divisor() using mul_assign(). -75847a3 Grid: use linear_combine() instead of sub_mul_assign(), in reduce_reduced(). -f2a54f6 Linear_Expression_Impl: simplify the add_mul_assign() and the sub_mul_assign() methods that take a Coefficient and a Linear_Expression. -b9f9d5c Linear_Expression_Impl: simplify the add_mul_assign() method that takes a Variable and a Coefficient. -d396c0d Linear_Expression_Impl: optimize exact_div_assign(). -8b9a8ce Linear_Expression_Impl: optimize add_mul_assign(). -7067e25 Linear_Expression_Impl: optimize neg_assign(). -8c12929 Linear_Expression_Impl: optimize operator/=(). -4a09f80 Linear_Expression_Impl: optimize operator*=(). -c0708c9 Linear_Expression_Impl: optimize the operator+=() and operator-=() that take a Variable. -f8563b5 Linear_Expression_Impl: simplify the operator+=() and operator-=() that take a Linear_Expression. -65fe0df Linear_Expression_Impl: avoid storing zeroes in sparse rows, in permute_space_dimensions(). -6835424 Linear_Expression_Impl: simplify the constructor from a Variable. -74c2708 Linear_Expression_Impl: simplify the constructors from Constraints and Generators. -d9faa3e Linear_Expression_Impl: optimize compare() for sparse rows. -022715f Linear_Expression_Impl: use an optimized version of remove_space_dimensions() for sparse rows. -a41c5f8 Linear_Expression_Impl: avoid storing zeroes in sparse rows, and prefer using get() instead of operator[]. -74d89cc Linear_Expression_Impl: improve the constructor from a Coefficient. -d7f7c39 Linear_Expression: add some assertions. -8e85700 Linear_Expression_Impl: improve/simplify the implementation of linear_combine(). -770df61 Linear_Expression: document that the coefficients for the linear_combine() methods must be nonzero. -3bb5d86 Dense_Row: document that the coefficients for the linear_combine() methods must be nonzero. -74d5603 Indentation fixes and a minor change. -22d8615 Add some assertions. -fcc49b9 Grid: simplify reduce_parameter_with_line(). -1bbcee6 Linear_Expression: add a mul_assign() method. -a55dcf6 Grid: call Linear_Expression::all_zeroes() in rows_are_zero(). -208477f Grid: simplify/optimize the reduce_line_with_line(), reduce_parameter_with_line() and reduce_equality_with_equality() methods. -d952412 Use the get() and set() methods of Linear_Expression instead of operator[], in various places. -bae7476 Linear_Expression: add a set() method, and modify the get() method to return a Coefficient_traits::const_reference. -240417d Sparse_Row: optimize the copy constructor with a size parameter. -62a47c9 Little optimizations in the linear_combine() functions that take a Sparse_Row and a Dense_Row. -ce5b973 Optimize various linear_combine() functions/methods. -006c7b4 termination: only call linear_combine() when needed. -128bd3a Grid: slightly change the precondition of reduce_pc_with_pc() and simplify/optimize it. -1700c2d Linear_Expression: add two linear_combine_lax() methods. -d10ede6 CO_Tree: make insert_in_empty_tree() exception-safe. -8e7ee9b CO_Tree: make copy_data_from() exception-safe. -9597652 CO_Tree: make init() exception-safe. -659a231 CO_Tree: fix a bug in insert_precise(), where the data1 reference was invalidated by growing/rebalancing the tree and then it was used. -8bd0740 Fix a bug in the linear_combine() function that takes a Sparse_Row and a Dense_Row. -58564bd Sparse_Row: fix the doxygen documentation of the swap() method that takes two iterators. -2ead812 Sparse_Row: add a fast_swap() method. -888659a CO_Tree: add a fast_shift() method. -8eaaf26 Polyhedron: optimize/simplify generalized_affine_preimage(). -c52bd6b Polyhedron: optimize/simplify generalized_affine_image(). -177da44 Polyhedron: simplify/optimize contains_integer_point() (#2). -27f7598 Polyhedron: simplify/optimize contains_integer_point() (#1). -ee2461e MIP_Problem: optimize/simplify evaluate_objective_function(). -53b3065 MIP_Problem: optimize/simplify second_phase(). -8c659e7 MIP_Problem: use is_unbounded_obj_function() in process_pending_constraints(). -f5b2033 Linear_Expression: add a is_unbounded_obj_function() method. -5d215f5 Linear_Expression_Impl: add an assertion and fix an existing one, in scalar_product_assign(). -b0a92e7 Grid: optimize/simplify generalized_affine_preimage(). -67619c2 Grid: optimize/simplify generalized_affine_image(). -40d48e7 Grid: optimize/simplify simplify_using_context_assign(). -4e50eeb Grid: optimize/simplify constrains(). -b8ee0ab Grid: optimize/simplify the relation_with() method that takes a Constraint. -8c79d76 Grid: optimize/simplify the relation_with() method that takes a Generator. -926f3b8 Grid: optimize/simplify the constructor from a Polyhedron. -2799476 Box: optimize/simplify generalized_affine_image(). -804fff6 Box: optimize/simplify generalized_affine_preimage(). -552410f Linear_Expression: add two get_row() methods. -63576c0 Box: remove an unused constant. -3d70dce Dense_Row: the linear_combine() methods now detect when coeff1==1 and save some work. -5e4a37d Add some TODOs. -d701868 Octagonal_Shape: use Linear_Expression::last_nonzero() and Linear_Expression::all_zeroes(), making some methods faster. -d9a3106 Octagonal_Shape: optimize relation_with(). -a37767c Octagonal_Shape: little optimization in max_min(). -61aaf3a Octagonal_Shape: add some TODOs. -06f4946 Congruence, Constraint, Grid_Generator: don't take a capacity argument in methods/constructors. -b7b3e9b BD_Shape: use Linear_Expression::last_nonzero() and Linear_Expression::all_zeroes() instead of duplicating the implementation. -5e2a080 BD_Shape: replace expr.coefficient(Variable(n-1)) with expr.get(n), in several places. Also add some TODOs. -e315c09 BD_Shape: fix an off-by-one error in generalized_affine_image(). -c8368dd BD_Shape: optimize and simplify the relation_with() method that takes a Constraint. -701c61e termination: move some helper functions into a Termination_Helpers class, make it friend of Linear_Expression and optimize/simplify such functions. -87f7377 Linear_System, Constraint_System, Generator_System, Grid_Generator_System: add a shift_space_dimensions() method. -aa00ea1 Octagonal_Shape: move the extract_octagonal_difference() function into a class Octagonal_Shape_Helper, and make it a friend of Linear_Expression. Also optimize this function. -fe2c930 Generator: simplify and optimize is_matching_closure_point(). -efb1c86 Linear_Expression: add two additional is_equal_to() methods that work on a range. -b78cf0b Constraint: simplify and optimize is_tautological() and is_inconsistent(). -4c680c2 Constraint: simplify and optimize the constructors from a Congruence. -48f201c Linear_Expression: add a constructor from a Congruence that takes a size parameter. -c6d652d BD_Shape_Helpers: remove a useless parameter from extract_bounded_difference(). -acd82c3 BD_Shape: move the extract_bounded_difference() function into a class BD_Shape_Helpers, and make it a friend of Linear_Expression. Also optimize this function. -86fa71a Add some TODOs. -e5a1f32 Congruence_System: simplify operator==() and make is_equal_to() call operator==() instead of duplicating code. -8a4b2b1 Congruence_System: simplify and optimize has_a_free_dimension(). -8c615f3 Linear_Expression: add a has_a_free_dimension_helper() method. -9f96fa2 Congruence_System: simplify and optimize permute_space_dimensions(). -69fa632 Move extract_interval_{constraint,congruence}() into a Box_Helpers class, and make it friend of Linear_Expression. Also optimize and simplify these two functions. -c1980bc MIP_Problem: use Linear_Expression::first_nonzero() in parse_constraints(). -baaa514 Linear_Expression: add a first_nonzero() method. -43c5c61 Scalar_Products: simplify and optimize the code by calling Linear_Expression::scalar_product_{sign,assign}(). -a6965e9 Linear_Expression: add two scalar_product_assign() and scalar_product_sign() methods. -045663c Linear_Expression_Impl: support interaction between Dense_Row-based and Sparse_Row-based linear expressions. -e4dca5c Sparse_Row: add a constructor from a Dense_Row with a specific size and capacity. -e616fa6 Sparse_Row: simplify the implementation of the operator=() method that takes a Dense_Row. -d776993 Add swap() functions that take a Sparse_Row and a Dense_Row. -bdf474d MIP_Problem: call the linear_combine() function that takes a Dense_Row and a Sparse_Row when needed. -0734355 Add operator==() and linear_combine() functions that take any combination of dense and sparse rows. -7214142 Dense_Row: add a sizing constructor from a Sparse_Row. -a496c91 Make Linear_Expression_Impl a template, preparing support for sparse Linear_Expression objects. -0ca8276 Linear_Expression: contain a Linear_Expression_Interface* instead of a Linear_Expression_Impl*. -764e11e Create an interface named Linear_Expression_Interface with the methods in Linear_Expression_Impl, and let Linear_Expression_Impl derive from Linear_Expression_Interface. -99caf76 BHRZ03_Certificate: use Linear_Expression::num_zeroes() to simplify and optimize the code. -6290884 Linear_Expression: add a num_zeroes() method. -ebf6364 Add a TODO. -eb363c8 PIP_Problem: optimize and simplify solve(). -207bd8c Linear_Expression: add an all_zeroes_except() method. -5c7ea02 Constraint_System: optimize the affine_preimage() method slightly. -00455fa Grid: optimize and simplify expand_space_dimension(). -1985f1e Grid: optimize and simplify max_min(). -2262e47 Partially_Reduced_Product: optimize and simplify shrink_to_congruence_no_check(). -65e3b89 Polyhedron: optimize and simplify expand_space_dimension(). -0273e72 Grid: optimize and simplify select_wider_generators(). -dd66dfc Linear_Expression_Impl: fix the constructor from a Grid_Generator. -4b6d2b3 Linear_Expression_Impl: optimize and simplify the constructor from a Congruence. -ef217d6 PIP_Tree_Node::Artificial_Parameter: optimize and simplify operator==(). -1fbe33f PIP_Tree: add comment. -fab96d8 wrap_assign: optimize and simplify wrap_assign_ind(). -a39e512 Linear_Expression: make the all_zeroes() method that takes a Variables_Set public. -cdbfd09 Affine_Space: optimize the constructor from a Generator_System. -93d83f4 Congruence: store the modulus in a separate Coefficient field instead of inside the linear expression. -b0f60fc Linear_Expression, Linear_Expression_Impl: add an operator/=() method that takes a Coefficient. -9ee09e8 Linear_Expression_Impl: fix add_mul_assign() and sub_mul_assign(). -d1d479c Linear_Expression: add a comment about friend declarations. -f568449 Linear_Expression: inline/uninline code. -0ac5464 Simplify some Linear_Expression-related operators' implementations and remove a useless constructor. -558f24d Linear_Expression: implement a stronger invariant in OK() and use it in the assertions. -6c1250a Linear_Expression: remove the get_row() methods. -ea86064 test/Polyhedron/linearsystem1: avoid calling Linear_Expression::get_row(). -5a56545 Remove the last 2 calls to Linear_Expression::get_row(). -64771f5 Congruence: avoid calling Linear_Expression::get_row(), and reuse code when possible. -bc1e068 Linear_System: avoid calling Linear_Expression::get_row(), and reuse code when possible. -c8efb7b Linear_Expression: turn a comment into a doxygen comment. -21a33c2 Linear_Expression: add a last_nonzero() method and use it in Linear_System. -af2f741 Constraint, Generator, Grid_Generator, Linear_Expression: replace the linear_combine() and linear_combine_inhomogeneous() methods with a method that takes a dimension_type. -fa0d3b7 Polyhedron: move a code fragment into Linear_Expression, and optimize it for sparse rows. -a9cd236 Polyhedron: use Linear_Expression::all_zeroes(). -ed0c0a2 Linear_Expression: add an all_zeroes() method that takes a Variables_Set. -73a1749 Grid_Generator_System: avoid calling Linear_Expression::get_row(), and reuse code when possible. -d520fe5 Constraint_System: avoid calling Linear_Expression::get_row(), and reuse code when possible. -e72c534 Dense_Row: fix the precondition-related assertions in linear_combine(). -4066c7b Generator_System: avoid calling Linear_Expression::get_row(), and reuse code when possible. -8b31d90 Grid_Generator: avoid calling Linear_Expression::get_row(), and reuse code when possible (#2). -5acae4b Linear_Expression: add a negate() method. -5cab35e Grid_Generator: avoid calling Linear_Expression::get_row(), and reuse code when possible (#1). -d8b8859 Constraint, Generator, Grid_Generator, Congruence: use Linear_Expression::sign_normalize(). -1f7cefe Linear_Expression: add a sign_normalize() method. -495b2c4 Grid: avoid calling Linear_Expression::get_row(), and reuse code when possible (#3). -acf4bf6 Linear_Expression: add a linear_combine() method that works on a range. -c552084 Dense_Row: add a linear_combine() method that works on a range. -86fb879 Sparse_Row: add a linear_combine() method that works on a range. -01e537a Grid: avoid calling Linear_Expression::get_row(), and reuse code when possible (#2). -98b686f Grid: avoid calling Linear_Expression::get_row(), and reuse code when possible (#1). -369b3d3 Polyhedron: avoid calling Linear_Expression::get_row(), and reuse code when possible. -ddcdb86 Polyhedron: simplify some code and avoid using Linear_Expression::get_row(). -d041734 Polyhedron: simplify the code, reusing existing Linear_Expression methods and related functions. -9aeb94d Dense_Row: optimize operator=() so that it avoids reallocation if possible. -30bb510 PIP_Tree_Node::Artificial_Parameter: simplify the implementation of a constructor. -feffa55 Linear_Expression: improve the gcd() method. -0475200 Polyhedron: avoid some calls to Linear_Expression::get_row(). -5cc9b91 Polyhedron: avoid some calls to Linear_Expression::get_row(). -a8825e6 Linear_Expression: add a gcd() and an exact_div_assign() method. -ff23140 Polyhedron: avoid some calls to Linear_Expression::get_row(). -1c31ff6 Linear_Expression: add a all_zeroes() method. -8ba2105 Polyhedron: call Linear_Expression::shift_space_dimensions() when needed. -a67984b Grid: avoid some calls to Linear_Expression::get_row(). -367bf40 Linear_Expression: add a shift_space_dimensions() method. -ff3ae4c Grid: avoid some calls to Linear_Expression::get_row(). -bcfcab0 Congruence: contain a Linear_Expression instead of a Dense_Row. -2220649 Linear_Expression: add private operator[] methods and a get() method. -c6a7aa1 Grid: use the sub_mul_assign() function on ranges. -db4cb36 Grid: avoid calling Linear_Expression::get_row(). -7f13d93 Congruence: add a sub_mul_assign() function that works on a range of indexes. -c7f4741 Linear_Expression: add a sub_mul_assign() function that works on a range of indexes. -27e4c6d Constraint_System: avoid using Linear_Expression::get_row() in has_strict_inequalities(). -ff99bba Constraint_System: avoid using Linear_Expression::get_row() in adjust_topology_and_space_dimension(). -d73822e Generator_System: avoid calling Linear_Expression::get_row() and Generator.expression() in some methods. -5b8f471 Generator: remove the swap() method that takes two dimension_type parameters. -a9c740d Constraint, Generator: use Linear_Expression::ascii_{dump,load}() when needed. -39ce5f1 Linear_Expression: the ascii_dump() and ascii_load() methods now produce the same output, no matter if the representation is dense or sparse (note that sparse representations are still *not* supported, however). -10ba867 Constraint: use the {set_,}epsilon_coefficient() methods. -0a1efe6 Constraint: add the epsilon_coefficient() and set_epsilon_coefficient() methods. -705116c Generator: use the {set_,}epsilon_coefficient() methods. -3bdf400 Generator: add the epsilon_coefficient() and set_epsilon_coefficient() methods. -abefaa1 Generator: avoid using Linear_Expression::get_row() in several methods (#2). -71247a6 Generator: avoid using Linear_Expression::get_row() in several methods. -1dc8351 Generator: use Linear_Expression::permute_space_dimensions() in permute_space_dimensions(). -37d313b Generator: use Linear_Expression::remove_space_dimensions() in remove_space_dimensions(). -230e5ea Generator: avoid calling Linear_Expression::get_row() in point(), closure_point(), ray() and line(). -50a03f9 The compare() function for Generator objects now uses the compare() for Linear_Expression, and it is a friend of the Generator class. -9f1709c Constraint: avoid calling Linear_Expression::get_row() in sign_normalize(). -311eaed The compare() function for Constrant objects now uses the compare() for Linear_Expression, and it is a friend of the Constraint class. -cde9d33 Add a compare() function for Linear_Expression objects. -ce28578 Constraint, Generator, Grid_Generator: remove the linear_combine() method that takes a dimension_type. -72492f5 Linear_System: avoid using the linear_combine() method that takes a dimension_type (#3). -e37fd99 Linear_System: avoid using the linear_combine() method that takes a dimension_type (#2). -7577a99 Linear_System: avoid using the linear_combine() method that takes a dimension_type (#1). -46d836e Polyhedron: use Generator::linear_combine_inhomogeneous() instead of the linear_combine() method that takes a dimension_type, in BHRZ03_evolving_points(). -a9c868e Grid_Generator: add a linear_combine() method a a linear_combine_inhomogeneous() method. -5c2af1e Generator: add a linear_combine() method a a linear_combine_inhomogeneous() method. -7ef60b4 Constraint: add a linear_combine() method a a linear_combine_inhomogeneous() method. -84230b7 Linear_Expression: add a linear_combine() method a a linear_combine_inhomogeneous() method. -0e43e5d Constraint: remove some calls to Linear_Expression::get_row() (#2). -069a3d5 Replace an assert() with PPL_ASSERT(). -7d63368 Constraint: remove some calls to Linear_Expression::get_row() (#1). -1ab03cc Linear_Expression: add some methods. -3ea01c9 Grid_Generator: contain a Linear_Expression object instead of deriving from Linear_Expression. -13918c9 Congruence: add the expression() methods. -fa9ca98 Generator: contain a Linear_Expression object instead of deriving from Linear_Expression. -bb3a7d2 Constraint: contain a Linear_Expression object instead of deriving from Linear_Expression. -f735489 Generator: add an expression() method. -9ed2625 Remove the Linear_Row class. -1b003e6 Grid_Generator: inherit directly from Linear_Expression instead of Linear_Row. -e88dcdf Generator: inherit directly from Linear_Expression instead of Linear_Row. -71ad73f Constraint: inherit directly from Linear_Expression instead of Linear_Row. -9569181 Congruence: remove an unnecessary include. -b235654 Polyhedron: fix a comment. -4b6c0fd Polyhedron: add an include. -b3803c6 MIP_Problem: add an include. -0df4eea Linear_Row: remove all methods. -9ea65ac Grid_Generator: remove the Topology field, as Grid_Generator objects are always closed. -0eaad93 Grid_Generator: contain a Kind field and a Topology field instead of a Flags field. -743be7b Generator: contain a Kind field and a Topology field instead of a Flags field. -79065d5 Constraint: contain a Kind field and a Topology field instead of a Flags field. -72266fa Generator: add a constructor. -66f094f Linear_System: remove the add_pending_row() method that takes a Row::Flags argument. -0a4af54 Linear_Row: move the flags and all the methods involving flags to derived classes (Constraint, Generator and Grid_Generator). -2e0e596 Revert "Generator: use neg_assign(Linear_Expression&) in the point() method." -a2955cb Revert "Grid_Generator: use neg_assign(Linear_Expression&) in the parameter() and grid_poin() methods." -1544a3e Grid_Generator: use neg_assign(Linear_Expression&) in the parameter() and grid_poin() methods. -d89a152 Generator: use neg_assign(Linear_Expression&) in the point() method. -8d11cf7 Add a neg_assign() function that takes a Linear_Expression&. -d5a783a Linear_Expression: improve the constructors from Constraint, Generator and Grid_Generator. -a9f37c8 Scalar_Products: improve the internal implementation. -aae7eee Scalar_Products: work on Linear_Expression objects instead of Dense_Row ones. -67f7b03 Linear_Row: contain a Linear_Expression instead of a Dense_Row. -2c4d11c Congruence: add the get_row() methods. -9d80a8e Constraint: remove the OK() method with an argument. -cf2f437 Fix some comments. -c18dffc Polyhedron: use a Constraint_System instead of a Linear_System, in simplify_using_context_assign(). -81fd96a Polyhedron: the helper add_to_system_and_check_independence() function now takes an arbitrary system instead of a Linear_System. -91167ed Polyhedron: don't assume that Constraint IS-A Linear_Row, in topological_closure_assign(). -a7dbd16 Polyhedron: don't assume that Generator IS-A Linear_Row, in constrains(). -b4ecf49 Polyhedron: don't assume that Generator IS-A Linear_Row, in BFT00_poly_hull_assign_if_exact(). -fa06188 Linear_System: remove the remove_trailing_space_dimensions() and remove_trailing_space_dimensions_without_normalizing() methods. -392b310 Linear_System: call Row::swap_space_dimensions() in swap_space_dimensions(). -c5bcc0f Grid_Generator: add a swap_space_dimensions() method. -62dc90d Generator: add a swap_space_dimensions() method. -fa8a1ab Constraint: add a swap_space_dimensions() method. -b3d0320 Linear_System: use Row::permute_space_dimensions() in permute_space_dimensions(). -de9a59d Grid_Generator: add a permute_space_dimensions() method. -bce9f48 Generator: add a permute_space_dimensions() method. -2f0bfb8 Constraint: add a permute_space_dimensions() method. -4d177a7 *_System: invariants are now guaranteed, so make the OK() methods private. -2c7092c Linear_System: fix some comments. -c201fe1 Linear_Expression: contain a Dense_Row instead of a Linear_Row. -f60eda0 Scalar_Products: (temporarily) work on Dense_Row objects instead of Linear_Row ones. -70799b2 Linear_Expression: rename the get_linear_row() methods into get_row(). -fd93ad9 Linear_System: all rows now have the same space dimension instead of the same number of columns. -03a8a0f Partially_Reduced_Product: if the space dimension is greater than max_space_dimension(), throw an error directly instead of constructing objects with the wrong dimensions and expecting them to throw. -95d1cf1 Linear_System: the remove_space_dimensions() method now removes invalid rows from the system and uses the remove_space_dimensions() methods of rows objects. -67d69d1 Grid_Generator: add a remove_space_dimensions() method. -28716a5 Generator: add a remove_space_dimensions() method. -eb9d583 Constraint: add a remove_space_dimensions() method. -750f191 Generator: use a more meaningful format in ascii representation, and use it in Generator_System. -b7ce400 tests/Polyhedron/linearsystem1: test Linear_System instead of Linear_System. -df12ea8 Linear_Row: add the mark_as_{,not_}necessarily_closed() methods and change the semantics of set_topology() and set_{,not_}necessarily_closed(). Update client code to match. -f0d82a2 Generator: construct a valid object in the default constructor. -d905298 Polyhedron: use a Linear_System instead of a Linear_System, in simplify_using_context_assign(). -7f7eb49 Linear_System: remove the increase_space_dimension() method, use set_space_dimension() instead. -0502008 Generator_System: affine_image() now takes a Variable instead of a column index. -7306b56 Constraint_System: affine_preimage() now takes a Variable instead of a column index. -6a8bca3 Swapping_Vector: use a swap() method instead of std::swap(). -c51dee5 Fix typos. -330efa5 *_System: remove the swap_rows() method. -452671e Polyhedron: use *_System::remove_row(), in simplify() (#2). -9398010 Polyhedron: use *_System::remove_row(), in simplify(). -cb6b72a Linear_System: simplify and improve the remove_rows() method, adding a helper swap_row_intervals() method. -62090db Generator_System: add a remove_rows() method. -ff5aae8 Constraint_System: add a remove_rows() method. -fa10cef Polyhedron: call *_System::remove_row() when appropriate, in the constructor from a Box. -984e9b1 Polyhedron: call *_System::remove_rows() when needed, in conversion(). -ee935d0 Generator_System: add a remove_rows() method. -865f341 Constraint_System: add a remove_rows() method. -9f5bad8 Linear_System: add a remove_rows() method. -cd6f2c5 Generator_System: add a remove_row() method. -347b7d0 Constraint_System: set the sortedness correctly, in ascii_load(). -42010ea Polyhedron: use Constraint_System::remove_row() in strongly_minimize_constraints(). -725dcd6 Constraint_System: add a remove_rows() method. -a2a57ea Generator_System: use Linear_System::remove_row() in remove_invalid_lines_and_rays(). -0762679 Linear_System: improve the remove_row() method. -f19a92b Linear_System: add a remove_rows() method. -90c4c16 Grid: use Congruence_System::remove_rows() in remove_higher_space_dimensions(). -b37b96a Congruence_System: add a remove_rows() method. -e7d0e18 Constraint_System: use Linear_System::remove_row() in adjust_topology_and_space_dimension(). -0dad962 Generator_System: use Linear_System::remove_row() in adjust_topology_and_space_dimension(). -1a18fb0 Grid_Generator_System: use Linear_System::remove_row() in remove_invalid_lines_and_parameters(). -a6044df Linear_System: add a remove_row() method. -c279bc0 Grid_Generator_System: simplify the add_universe_rows_and_columns() method. -710ffa5 Grid_Generator_System: simplify the insert() method. -e94ad48 Grid_Generator_System: simplify the recycling_insert() method. -ffcd262 Constraint_System: remove the release_row() method. -5fea09b Constraint_System: output the size of each row in ascii_dump(), and read it in ascii_load(). -74495f4 Constraint: un-inline the ascii_dump() and ascii_load() methods. -5510704 Constraint_System: output the topology of each row in ascii_dump(), and read it in ascii_load(). -e2d4a1f tests/Polyhedron: fix the Makefile.am file. -83f3dc8 Linear_System, Constraint_System: remove the raw_*() methods. -1b749eb Linear_System: avoid using raw_set_topology() in ascii_load(). -fbaf1e1 Polyhedron: use the mark_as_{,not_}necessarily_closed() methods instead of the raw_set_{,not_}necessarily_closed() ones. -1beb6de Constraint_System: add the mark_as_{,not_}necessarily_closed() methods. -3b981c4 Linear_System: add the mark_as_{,not_}necessarily_closed() methods. -0346bd8 Grid_Generator_System: use higher-level methods of Linear_System, in ascii_load(). -b0f0dfa Generator_System: use higher-level methods of Linear_System, in ascii_load(). -c19de5e Generator_System: use higher-level methods of Linear_System, in convert_into_non_necessarily_closed(). -85a2c16 Constraint_System: use higher-level methods of Linear_System, in ascii_load(). -9a136a7 Constraint_System: use higher-level methods of Linear_System, in insert() and insert_pending(). -9e5c607 Generator_System: simplify the adjust_topology_and_space_dimension() method, using higher-level operations. -a005b04 Constraint_System: simplify the adjust_topology_and_space_dimension() method, using higher-level operations. -3cdeef3 Linear_System: add the set_topology() and set_{,not_}necessarily_closed() methods. -c2375f5 *_System: rename the set_topology() and set_*necessarily_closed() methods into raw_set_topology() and raw_set_necessarily_closed(). Also implement Linear_Row set_*necessarily_closed() methods in term of set_topology(). -500673b Constraint_System, Generator_System, Linear_System: replace the three-argument constructor with a two-argument one. -167784c Generator_System: remove the remove_trailing_columns() method. -e833def *_System: resize_no_copy() now takes the number of space dimensions as argument instead of the number of columns. -fe90464 Constraint_System, Generator_System, Grid_Generator_System: avoid using resize_no_copy() in ascii_load(). -6b74c27 Constraint_System, Generator_System: remove the add_columns() method. -22e0c1c Polyhedron: avoid using *_System::num_columns(). -d598885 Constraint_System, Generator_System: remove the add_zero_columns() method. -074e0ed Constraint_System, Generator_System: remove the swap_columns() method. -904500e Polyhedron, Grid_Generator_System: use *_System::remove_space_dimensions() when needed. -b5452f0 Linear_System, Constraint_System, Generator_System: add a remove_space_dimensions() method. -fff5196 Polyhedron: use *_System::set_space_dimension() when needed. -bb29508 Constraint, Generator, Grid_Generator, Linear_System, Generator_System, Constraint_System: add a set_space_dimension() method. -a73dcbd Linear_System, Constraint_System, Generator_System: add a swap_space_dimensions() method and use it instead of permute_space_dimensions() when it's enough. -9b376e8 Linear_System: move the epsilon coefficients and try to preserve sortedness in add_universe_rows_and_columns(). -de67f8f Linear_System: avoid depending on Linear_Row. -f0655c8 Grid_Generator: improve the documentation of is_equal_to() and simplify its implementation. -34c5ba9 Generator: add an is_equal_to() method. -fca5bc7 Constraint: add an is_equal_to() method. -4ca4554 Linear_System: prefer using swap() methods instead of std::swap(), to avoid performance regressions caused by wrong inclusions. -acf1b42 Grid_Generator_System: remove the add_zero_columns() method. -4c0550f Grid: use Grid_Generator_System::set_space_dimension() instead of Grid_Generator_System::add_zero_columns(). -37801af *_System: replace the permute_columns() method with an higher-level permute_space_dimensions(). -6d8db6e Grid_Generator_System: affine_image() now takes a Variable argument instead of its space dimension. -6bfe6ff Grid_Generator_System: remove the num_columns() method. -6bf55c7 Grid_Generator_System: replace the higher_space_dimensions() method with set_space_dimension(). -fc0b9e5 Constraint_System, Generator_System, Grid_Generator_System: remove the internal_row_type typedef. -71de0b1 Grid: avoid using *_System::internal_row_type. -a9b5d3d Polyhedron: avoid using *_System::internal_row_type. -6250fb3 Constraint_System: contain a Linear_System instead of a Linear_System. -8e79515 Linear_System: avoid copying rows during resize. -c236a07 Scalar_Products: actually implement the scalar product between a Generator and a Constraint. -e4c7357 Grid_Generator_System: contain a Linear_System instead of a Linear_System. -744e4c6 Grid_Generator_System: contain a Linear_System object instead of inheriting from Linear_System. -b9a750a Constraint_System: contain a Linear_System object instead of deriving from Linear_System. -f92e1b8 Linear_System: assert OK() at the end of each non-const method; apply some minor changes to avoid triggering assertions. -b5a0955 Polyhedron: keep Linear_System objects valid at each step. -5d680e1 Constraint_System: keep Linear_System objects valid at each step. -aa7e3e6 Linear_System: update index_first_pending in sort_rows(). -e397fa0 Linear_System: prepare for adding more assertions. -2eb0ea5 Linear_System: empty systems now have the minimum number of columns required by their topology. -44cec5e Linear_System: avoid using references to access the current object methods and fields; other minor changes. -5c081c2 Matrix: add a FIXME comment. -1dd7bed Constraint_System: don't depend on Polyhedron. -aa7a595 Grid_Generator_System: inherit from Linear_System with the 'public' specifier and avoid being friend of Grid. -c600412 Constraint_System: avoid being friend of Polyhedron. -2072002 Generator_System: contain a Linear_System instead of a Linear_System. -817e99f Linear_System: always compare rows as Linear_Row objects when sorting the system. -dfe7b0b Linear_Row: remove the iter_swap() function. -04a7154 Generator: add some constructors/methods calling the corresponding Linear_Row constructors/methods. -2bb1e8d Generator: inherit from Linear_Row with the 'public' specifier. -476cfbb Congruence: contain a Dense_Row object instead of deriving from the Dense_Row class. -730fb70 Grid: avoid calling Congruence::size(), in reduce_pc_with_pc(). -89080fe Linear_System: don't call contained objects' OK(), in OK(); also remove the OK() argument. -cbcc6b8 Constraint_System, Generator_System, Grid_Generator_System: don't call contained objects' OK(), in OK(). -8a786eb Grid: avoid using Congruence::operator[], in conversion(). -78d35df Congruence_System: use Congruence::set_space_dimension() instead of Congruence::resize(), in resize_no_copy(). -a22a4a2 Generator_System: contain a Linear_System object instead of inheriting from it. -f46e2a9 Generator_System: make some methods public and remove most friend declarations. -f8e3dae Linear_Expression: contain a Linear_Row object instead of deriving from it. -398e476 Linear_Expression: inherit from Dense_Row with the 'public' specifier, instead of 'private', and remove most friend declarations. -626802e Dense_Row: fix regression in ascii_dump(), introduced in commit 0db87bcb. -511787f Congruence: remove the set_coefficient() method, and add a permute_columns() method instead. -91e9886 Congruence_System: avoid using Congruence::set_coefficient() in add_unit_rows_and_columns(). -dcbcd0f Congruence: add FIXME comment. -6429017 Linear_Expression: add a set_space_dimension() method. -53e743c Congruence_System: remove the non-const operator[]. -0a53c3d Grid: avoid using the non-const Congruence_System::operator[], in simplify(). -2e7c4e7 Grid: prepare the simplify() method for further changes. -08192bd Grid: use the appropriate methods of Congruence instead of accessing the modulus and the inhomogeneous term directly, in simplify(). -ae47add Grid: use a switch instead of nested ifs and gotos, in simplify(). -cfa5dec Congruence_System: add a release_row() method. -1db1d23 Grid: avoid using Congruence::operator[], in reduce_congruence_with_equality(). -befdd04 Add operator+=(), operator-=(), add_mul_assign() and sub_mul_assign() for congruences. -394233e Grid: avoid using the non-const Congruence_System::operator[], in conversion(). -9c9a049 Grid: avoid using the non-const Congruence::operator[], in multiply_grid(). -278524b Grid: avoid using the non-const Congruence_System::operator[], in remove_higher_space_dimensions(). -35d9f17 Congruence_System: add a swap_rows() method. -efc45b4 Congruence_System: avoid using the non-const Congruence_System::operator[]. -ac549e8 Merge the Row_Flags class into Linear_Row::Flags. -0db87bc A Row_Flags field is now contained in Linear_Row, instead of Sparse_Row and Dense_Row. -12e7aec Grid: avoid using the non-const Congruence_System::operator[], in construct(). -7aff773 Congruence: add a set_inhomogeneous_term() method(). -955bee2 Grid: change the signature of the multiply_grid() helper method. -e1c52f9 Grid: change the signature of the reduce_congruence_with_equality() helper method. -7c70fad Congruence_System: avoid using resize_no_copy() in ascii_load(). -d28d135 Grid: avoid using the Congruence_System::resize_no_copy() method and the non-const Congruence_System::operator[], in conversion(). -1fa1d01 Grid: remove a useless cast in set_empty(). -b25f7de Congruence_System: merge the increase_space_dimension() and hemove_higher_space_dimensions() methods into a single set_space_dimension() method. -3512418 Congruence: add the scale() and affine_preimage() methods and use them in Congruence_System. -8adce40 Replaced the algorithm used for sorting Linear_System and Bit_Matrix. -8bbcceb Congruence_System: remove the add_zero_rows(), add_zero_columns() and remove_trailing_columns() methods. -0c22231 Grid: avoid using Congruence_System::add_zero_columns() in add_space_dimensions_and_embed(). -c5040f0 Grid: avoid using Congruence_System::add_zero_columns() in add_space_dimensions(). -3cd72d3 Grid: avoid using Congruence_System::add_zero_rows(), in simplify(). -6344960 Grid: avoid using Congruence_System::add_zero_rows(), in simplify(). -7f82c43 Congruence_System: add an insert_recycled() method. -ddf9d0d Congruence_System: replace the insert_verbatim() method with a new insert_verbatim_recycled() method. -35dd7a9 Congruence: now the default constructor takes an optional argument. -5422567 Congruence_System: simplify the remove_higher_space_dimensions() method. -a295cfa Congruence_System: implement add_unit_rows_and_columns() at a higher level. -9557001 Congruence_System: simplify the insert() method that takes a Congruence_System. -e57abda Congruence_System: simplify the recycling_insert() method that takes a Congruence_System argument. -282d2e5 Congruence_System: simplify the insert_verbatim() method. -c0eb3be Congruence: add a constructor from a Constraint that specifies the desired space dimension. -d9918be Dense_Row, Sparse_Row: weaken the requirements of the copy-constructor with specified size and capacity. -0e30cad Congruence_System: simplify the insert_verbatim() method. -a442c51 Congruence_System: simplify the increase_space_dimension() method. -cfe01f9 Merge branch 'master' into sparse_matrices -c46cd9c Congruence: replace the copy constructor that specifies the size and the capacity with a copy constructor that specifies the space dimension. -210bb22 Congruence: remove the copy constructor that takes a const Coefficient&. -5c08a53 Congruence: add a set_modulus() method. -10e7e1c Congruence_System: simplify the concatenate() method. -1100652 Congruence: add a shift_coefficients() method. -4bf6050 Congruence_System: avoid accessing a Congruence's coefficients directly (#3). -5a16342 Congruence: add the add_space_dimensions(), remove_space_dimensions() and set_space_dimension() methods. -892e482 Scalar_products: avoid accessing a Congruence's coefficients directly. -2f6b77e Linear_Expression: avoid accessing a Congruence's coefficients directly. -25dd0c1 Congruence_System: avoid accessing a Congruence's coefficients directly (#2). -3027c66 Congruence_System: avoid accessing a Congruence's coefficients directly (#1). -cccc923 Congruence: add a set_coefficient() method. -68e8b4b Congruence_System: use Congruence::max_space_dimension() to implement max_space_dimension(). -94f12a9 Congruence_System: remove the second argument of the add_rows() method. -ae17541 Constraint: avoid using Congruence::operator[] (#2). -4aca730 Constraint: avoid using Congruence::operator[] (#1). -8258c0f Congruence_System is now implemented with a vector of Congruence instead of a vector of Dense_Row. -f9067f7 Congruience: add a default constructor and a two-argument swap() method. -9aa4821 Polyhedron: don't assume that Generator_System, Constraint_System, Grid_Generator_System inherit from Linear_System. -05f40e3 Congruence_System: replace inheritance with containment. -fa9b827 Congruence_System: remove all friend declarations. -3f6c09f Congruence_System: derive from Swapping_Vector instead of Matrix. -ac087e9 Constraint: inherit from Linear_Row with the 'public' specifier and remove most friend declarations. -1d5cbc6 Congruence: inherit from Dense_Row with the 'public' specifier and remove all friend declarations. -3689ffe Grid_Generator: inherit from Linear_Row with the 'public' specifier and remove most friend declarations. -cb49c8a Linear_System: there's no need to include Row.defs.hh anymore. -5d8f155 Linear_System: make protected methods and fields private. -ae8338d Linear_System: 'iterator' does not allow to modify rows anymore. -987662e Linear_System, Constraint_System, Generator_System, Grid_Generator_System: remove the non-const operator[]. -5cba657 Grid: avoid using the non-const Linear_System::operator[], in the constructor from a Box. -8c1b17b Polyhedron: avoid using the non-const Linear_System::operator[], in generalized_affine_image() (#2). -d01b446 Polyhedron: avoid using the non-const Linear_System::operator[], in topological_closure_assign(). -9eaf3ff Polyhedron: avoid using the non-const Linear_System::operator[], in time_elapse_assign(). -8a23ada Polyhedron: avoid using the non-const Linear_System::operator[], in generalized_affine_image(). -6eca39a Generator_System: add the insert_recycled() and insert_pending_recycled() methods. -5cfd7ac Polyhedron: avoid using the non-const Linear_System::operator[], in add_recycled_generators(). -c2c759b Polyhedron: prefer const references to non-const ones. -34240fb Polyhedron: avoid using the non-const Linear_System::operator[], in add_generator(). -bf90bd7 Polyhedron: avoid using the non-const Linear_System::operator[], in drop_some_non_integer_points(). -d3061d2 Polyhedron: avoid using the non-const Linear_System::operator[], in strongly_minimize_constraints(). -58664a0 Polyhedron: avoid using the non-const Linear_System::operator[], in concatenate_assign() (#2). -b997c0a Polyhedron: avoid using the non-const Linear_System::operator[], in concatenate_assign(). -b3f9f69 Polyhedron: avoid using the non-const Linear_System::operator[], in add_space_dimensions_and_project(). -3974a20 Polyhedron: avoid using the non-const Linear_System::operator[], in add_space_dimensions_and_embed(). -10282f2 Polyhedron: use Linear_System::swap_rows() when needed, in simplify(). -8be6b90 Polyhedron: avoid using the non-const Linear_System::operator[], in simplify(). -4a00e13 Polyhedron: avoid using the non-const Linear_System::operator[], in minimize(). -544fc56 Polyhedron: avoid using the non-const Linear_System::operator[], in conversion(). -d0dffc9 Polyhedron: avoid using the non-const Linear_System::operator[], in add_space_dimensions(). -e402376 Polyhedron: fix an efficiency bug introduced in commit 436f43. -1066414 Grid: avoid using the non-const operator[] on systems (#4) -418640d Grid: avoid using the non-const operator[] on systems (#3) -c3e8b6e Grid: avoid using the non-const operator[] on systems (#2) -bd8638c Grid: avoid using the non-const operator[] on systems (#1) -bf351f4 Grid: change the signature of multiply_grid() and adapt client code. -3dfb671 Grid: change the signature of reduce_reduced() and adapt client code. -4dbc9c4 Congruence_System: add a typedef for internal_row_type and the release_rows()/take_ownership_of_rows() methods. -d8a9ea9 Grid: change the signature of reduce_parameter_with_line() and adapt client code. -0c719d8 Grid_Generator_System: avoid using the non-const operator[] (#2). -4c50720 Grid_Generator_System: avoid using the non-const operator[] (#1). -4702196 Generator_System: avoid using the non-const operator[] (#2). -9b25fe1 Generator_System: avoid using the non-const operator[]. -2a1940b Constraint_System: avoid using the non-const operator[]. -fd6416d Linear_System: call swap_rows() when needed. -e7b642d Linear_System: avoid using Linear_System::iterator. -1e5bd81 Linear_System: call set_sorted(true) in sort_pending_and_remove_duplicates(). -30ba5b5 Linear_System: avoid using the non-const operator[]. -ecc7c6c Linear_System: add a typedef for internal_row_type. -6c52401 Linear_System: take_ownership_of_rows() now considers all rows as non-pending. -45b1739 Linear_System: add some assertions. -7d2b289 Linear_System: rewrite the ascii_load() method to honour invariants. -6eca90b Matrix: don't assume thar Swapping_Vector's iterators are the same of std::vector. -f05b18d Linear_System: make private methods and fields protected. -4526acc Grid: add an assertion. -63db6fb Grid: rewrite part of the conversion() method, to keep the Linear_System subobject valid at each step. -8b669b0 Linear_System: disable part of the OK() method, to avoid triggering assertions for valid Grid_Generator_System objects. -8c3389e Linear_System: add the release_rows() and take_ownerhip_of_rows() methods. -93d7509 Grid: reverse the order of a loop, in conversion(). -1335669 Grid: prefer const references to non-const ones. -543ff21 Constraint_System: use swap_rows() when needed. -7282f55 Constraint_System: rewrite the ascii_load() method, to keep the Constraint_System object valid at each step. -3dba0e0 Grid_Generator_System: use swap_rows() when needed. -912f07d Grid_Generator_System: rewrite the ascii_load() method, to keep the Grid_Generator_System object valid at each step. -44c6c7d Linear_System: fix resize_no_copy(). -17a00c0 Linear_System: add a set_topology() method. -94596fd Grid_Generator: add an assertion. -7db5464 Grid_Generator: call set_necessarily_closed() in ascii_load(). -3fa4beb Grid_Generator: add a default constructor. -4896719 Generator_System: use swap_rows() when needed. -114d03a Generator_System: rewrite the ascii_load() method, to keep the Generator_System object valid at each step. -dc6960a Generator_System: add a convert_into_non_necessarily_closed() helper method and use it when needed. -81c5c77 Generator: add a default constructor. -37a8553 Swapping_Vector: avoid copying elements in the erase() methods. -507a739 Polyhedron: use a separate vector for recyclable rows, in conversion(). -1a30b23 Linear_System: fix the remove_trailing_rows() and release_row() methods. -aa7ced2 Linear_System: add an increase_space_dimension() method. -bcaac64 Linear_System: add a release_row() method. -0bed321 Swapping_Vector: add a pop_back() method. -88d0e76 Polyhedron: call Linear_System::swap_rows() when needed. -6537eaa Linear_System: add a swap_rows() method. -0821dbb Merge branch 'master' into sparse_matrices -bdba1db Linear_System: replace the add_*rows() methods with insert*() methods. -9f657ad Constraint_System, Generator_System: inherit from Linear_System with the `public' specifier. -3dbfc03 Linear_System: make the add_*row() methods private. -9de6d26 Grid_Generator_System: use the Linear_System::insert*() methods instead of the add*_row() methods. -4c8702a Generator_System: use the Linear_System::insert*() methods instead of the add*_row() methods. -69ec030 Polyhedron: use the Linear_System::insert*() methods instead of the add*_row() methods. -bd43e29 Linear_System: add the insert_recycled() and insert_pending_recycled() methods. -3a2f2ba Linear_System: rename the add_rows_and_columns() method into add_universe_rows_and_columns(). -af0a3c5 Linear_System: add more topology checks. -fde3fe3 Linear_System: keep the pending rows when constructing temporary copies of Linear_System objects. -23f9f15 Linear_System: clarify a comment. -beb797f Polyhedron: simplify add_recycled_generators(). -00bf420 Linear_Row, Linear_Row::Flags: add a set_topology() method. -9b288e6 Linear_System: avoid useless copies in insert() and insert_pending(). -6f8d776 Add a TODO comment. -aaeeb95 Linear_System: add the add_recycled_rows() and add_recycled_pending_rows() methods and use them in Polyhedron. -f469b98 Linear_System: don't modify sortedness in add_recycled_pending_row(), and simplify some code. -436f439 Linear_System: add an add_recycled_pending_row() method and change the semantics of add_recycled_row(). -21cac20 Swapping_Vector: avoid copying when reallocating the vector in push_back(). -3609c23 Linear_System is now implemented with a Swapping_Vector instead of a Matrix. -2da57c0 Linear_System: add a TODO comment. -38c4908 Merge branch 'master' into sparse_matrices -f4214b1 Linear_System: avoid deriving from Matrix. Add a Matrix field instead. -6435c86 Linear_Row: add a max_num_columns() method. -7d39441 Grid_Generator: remove the coefficient_swap() method. -a508abb Grid_Generator_System: avoid calling Matrix::add_zero_rows_and_columns() in add_universe_rows_and_columns(). -829d1ab Grid_Generator_System: avoid calling Matrix::add_zero_rows_and_columns() in recycling_insert(Generator_System&). -537741e Grid_Generator_System: avoid calling Matrix::add_zero_rows_and_columns() in recycling_insert(Grid_Generator_System&). -1e8f240 Grid_Generator_System: don't assume that Linear_System is implemented with a Matrix. -834a4f9 Linear_System: add a remove_trailing_columns_without_normalizing() method. -b27defb Linear_System: remove too-strict assertion. -8aff5ed Polyhedron: don't call Generator_System::add_zero_rows() in add_recycled_generators(). -3fc3348 Polyhedron: don't assume that Generator_System is implemented with a Matrix, in remove_space_dimensions(). -73504e4 Add a Swapping_Vector class and use it to implement Matrix. -ea341e0 Merge branch 'master' into sparse_matrices -d66a8fc Grid_Generator: some changes, possibly fixing the code. Patch by Enea Zaffanella. -4ee4336 Grid_Generator: fix normalization bug in parameter(). Now the whole testsuite passes. -38e3c1a Remove the (unused) Sparse_Matrix.types.hh file. -a05f9b5 Grid_Generator: remove operator[]. -281a232 Grid_Generator is now implemented using a Linear_Row instead of a Generator. -a54f7ec Grid_Generator: implement operator=() directly, instead of calling Generator::operator=(). -f4086a5 Grid_Generator: improve readability of is_equivalent_to(). Patch by Enea Zaffanella. -2c86834 Grid_Generator: implement the type() method directly, instead of calling Generator::type(). Patch by Enea Zaffanella. -e4c603c Grid_Generator: implement is_parameter() directly, instead of calling Generator::is_ray(). Patch by Enea Zaffanella. -e2d2c92 Grid_Generator: implement some methods direcly, instead of relying on the corresponding Generator methods. Patch by Enea Zaffanella. -0ef2138 Grid_Generator: improve the readability of the divisor() method. -cf871f3 Grid_Generator: improve the readability of is_equal_at_dimension(). Patch by Enea Zaffanella. -e521cc2 Grid_Generator: improve the readability of set_divisor(). Patch by Enea Zaffanella. -76ba320 Grid_Generator: improve the documentation of scale_to_divisor() and strong_normalize(). Patch by Enea Zaffanella. -f0e8292 Grid_Generator: simplify the implementation of all_homogeneous_terms_are_zero(). Patch by Enea Zaffanella. -c9d8f22 Grid_Generator: simplify the scale_to_divisor() implementation. Patch by Enea Zaffanella. -ed78231 Grid_Generator: make the is_equivalent_to() method's implementation more readable. Patch by Enea Zaffanella. -8ad66ca Grid_Generator: rewrite the OK() method. Patch by Enea Zaffanella. -a9b95ea Grid_Generator: add a constructor from a Linear_Expression. Patch by Enea Zaffanella. -53c2784 Grid_Generator: fix a comment. Patch by Enea Zaffanella. -131ff82 Grid_Generator: indentation fixes. Patch by Enea Zaffanella. -bea956d Grid_Generator: simplify the set_is_parameter() method. Patch by Enea Zaffanella. -96df7a6 Grid_Generator: add a comment in coefficient_swap(). Patch by Enea Zaffanella. -84fa9af Grid_Generator: use the set_is_parameter_or_point() method instead of set_is_ray_or_point_or_inequality(). Patch by Enea Zaffanella. -35c6ed9 Grid_Generator: use the Grid_Generator::Type enum instead of Generator::Type. Patch by Enea Zaffanella. -caf8af6 Grid_Generator: improve readability of the coefficient_swap() method. Patch by Enea Zaffanella. -02c3f9f Grid_Generator: use Linear_Row::set_is_ray_or_point_or_inequality() instead of Generator::set_is_ray_or_point(). Patch by Enea Zaffanella. -cf4605e Grid_Generator: indentation fixes. Patch by Enea Zaffanella. -a170b37 Grid_Generator: use a constaint in the parameter() method. Patch by Enea Zaffanella. -7cd325b Grid_Generator: add a throw_dimensions_incompatible() method. Patch by Enea Zaffanella. -9bf4f7d Grid_Generator: change the semantic of the negate() method. Patch by Enea Zaffanella. -8a2a2a8 Grid_Generator_System: inherit from Linear_System instead of Generator_System. Patch by Enea Zaffanella. -a9d8ed3 Grid_Generator_System: call Grid_Generator_System::remove_invalid_lines_and_parameters() instead of Generator_System::remove_invalid_lines_and_rays(), in the affine_image() method. Patch by Enea Zaffanella. -f21cda6 Grid_Generator_System: improve the implementation of the insert() method and update some comments. Patch by Enea Zaffanella. -1e5e24a Grid_Generator_System: replace nested if statements with a single one, in the insert() method. Patch by Enea Zaffanella. -319b98d Grid_Generator_System: remove a block enclosing part of the insert() code. Patch by Enea Zaffanella. -041a015 Grid_Generator_System: implement the has_points(), num_parameters() and num_lines() methods directly, instead of relying on the corresponding methods of Generator_System. Patch by Enea Zaffanella. -3727526 Grid_Generator_System: add a remove_invalid_lines_and_parameters() method. Patch by Enea Zaffanella. -41286cf Grid_Generator: fix a typo in example code included in a comment. Patch by Enea Zaffanella. -2fc7183 Congruence: change the semantic of the negate() method. Patch by Enea Zaffanella. -b06545d Generator_System: fix typo in a comment, in adjust_topology_and_space_dimension(). Patch by Enea Zaffanella. -c8a950a Grid_chdims: improve code readability. Patch by Enea Zaffanella. -d5c580f Merge the matrix1 and densematrix1 tests. Move the sparserow1 test in the Polyhedron directory. -b86714d tests/Polyhedron/memory2: use Matrix instead of Dense_Matrix. -f7b3af7 tests/Polyhedron/linearsystem1: use Linear_System instead of Linear_System. -807a439 Dense_Row: add a clear() method. -b4f4987 Revert "Generator: assert OK() in most constructors and non-const methods." -4bacf42 Constraint: make some methods public and remove most friend declarations. -ee36313 Constraint: simplify operator>(const Linear_Expression&,conse Coefficient&). -87d42aa Polyhedron: use Dense_Row::resize() in add_recycled_constraints(), improving performance and avoiding calls to the Constraint::set_is_inequality() method. -d09a154 Polyhedron: use Dense_Row::add_zeroes_and_shift() in concatenate_assign(), improving performance and avoiding calls to the Constraint::set_is_inequality() method. -672f483 Dense_Row: add an add_zeroes_and_shift() method. -771c88f Constraint: add some methods, to make its interface a superset of Linear_Row. -f9ccf2c Constraint.defs.hh: re-order the includes. -45ac2f1 Constraint: assert OK() in most constructors and non-const methods. -c5263d2 Constraint: call strong_normalize() in the constructor from a Linear_Expression. Remove such calls in client code. -73ee757 Constraint: simplify some methods. -9d91a68 Generator: assert OK() in most constructors and non-const methods. -827c7e0 Generator: call strong_normalize() in the constructor from a Linear_Expression. Remove such calls in client code. -3dcf87d Grid_Generator: avoid constructing an invalid Generator and fixing it afterwards. -6bdf889 Generator: avoid constructing an invalid Generator and fixing it afterwards. -d3769d9 Linear_System: pass the optional parameters to swapping_sort() and swapping_unique(), to make sure the right iter_swap() is used. -fc748c2 swapping_sort(), swapping_unique(): add an optional parameter that specifies the iter_swap algorithm. -b7190f9 Linear_Row: change the two-argument copy constructor semantic to match the Constraint's and Generator's ones. -2f05637 Linear_System: avoid using the Linear_Row copy constructor with specified capacity. -16c8b37 Polyhedron: let all methods support Linear_System objects with different Row type. -57291a0 Constraint: inherit from Linear_Row using the `public' specifier. -95e8f47 Do not include Linear_Row.defs.hh in Linear_System.defs.hh. -bce7237 Linear_System: use Row instead of Linear_Row. -aa5d014 Constraint_System, Generator_System, Grid_Generator_System, Polyhedron: use Linear_System instead of Linear_System. -a8cf68a Make Linear_System and Linear_System_With_Bit_Matrix_Iterator class templates. Replace uses of Linear_System and Linear_System_With_Bit_Matrix_Iterator with uses of Linear_System and Linear_System_With_Bit_Matrix_Iterator. -c95e579 Split the Linear_System::With_Bit_Matrix_iterator class out of Linear_System and rename it to Linear_System_With_Bit_Matrix_iterator. -ee5feef Linear_System.cc: put all definitions in the PPL namespace. -0d1f436 Polyhedron: add a typedef for Linear_System_Class and use it. -bbeb88a Generator_System: add a typedef for Base and use it. -6697684 Constraint_System: add a typedef for Base and use it. -367354e Congruence_System, Linear_System: fix some regressions. -1fed237 Revert "Make Linear_System a class template. Replace uses of Linear_System with uses of Linear_System." -81176f3 Make Linear_System a class template. Replace uses of Linear_System with uses of Linear_System. -cc3f972 Matrix: uncomment the PPL_OUTPUT_TEMPLATE_DEFINITIONS_ASCII_ONLY macro. -c9f5829 Scalar_Products: don't include Scalar_Products.inlines.hh in Scalar_Products.defs.hh. -045d5c5 Bit_Matrix: avoid inclusion of Linear_System.defs.hh. -e9a27d6 Generator: include Generator_System.types.hh instead of Generator_System.defs.hh. -7ceeae3 Generator_System: replace the const_iterator class with an external Generator_System_const_iterator class. -78e4346 Constraint: include Constraint_System.types.hh instead of Constraint_System.defs.hh. -e5da404 Constraint_System: replace the const_iterator class with an external Constraint_System_const_iterator class. -617d286 Dense_Row: improve exception safety in constructors. -9a53af2 Dense_Row: remove useless debugging code from the OK() method. -d888e2d Update some comments referring to the Dense_Matrix class. -c354550 Remove the Dense_Matrix class, and use Matrix instead. -2c9be05 Merge branch 'master' into sparse_matrices -31c662c Dense_Matrix: make all fields private instead of protected. -85190b2 Matrix: rename the row_capacity() method into capacity(). -fa35c94 Linear_System: avoid accessing private fields of Dense_Matrix. -a61d278 Congruence_System: avoid accessing private fields of Dense_Matrix. -d7e1b8a Grid_Generator_System: avoid accessing private fields of Dense_Matrix. -c359346 Dense_Matrix: add non-const iterator and the remove_rows() and reserve_rows() methods. -f4fe636 Grid: avoid accessing private fields of Dense_Matrix directly. -a19f58a Matrix: call reserve_rows() in resize() to improve performance. -b607a6d Matrix: add some methods: row_capacity(), reserve_rows(), remove_rows() and swap_columns(). -f968188 Dense_Row: remove the capacity argument from the two-argument OK() method. -2d2bbd8 Merge branch 'master' into sparse_matrices -9a14cdd Merge branch 'master' into sparse_matrices -0e0b4f3 Remove the Sparse_Matrix class and add a Matrix class instead. diff --git a/ppl-testsuite.changes b/ppl-testsuite.changes index 92c3fb2..a9e77e0 100644 --- a/ppl-testsuite.changes +++ b/ppl-testsuite.changes @@ -1,8 +1,95 @@ +------------------------------------------------------------------- +Sat Oct 24 00:00:54 UTC 2020 - Jan Engelhardt + +- Disable lpsol and lcdd. +- Drop old bundled changelog file + ------------------------------------------------------------------- Sun Sep 20 10:32:03 UTC 2020 - Jan Engelhardt - Remove useless keyring (outofdate key). +------------------------------------------------------------------- +Mon Aug 26 04:39:44 UTC 2019 - Jan Engelhardt + +- Disable static builds, disable baselibs (unused). +- Enable glpk components. + +------------------------------------------------------------------- +Tue Oct 11 14:33:01 UTC 2016 - adam.majer@suse.de + +- Update to new upstream release 1.2 + * Improved the efficiency of the conversion procedure for + polyhedra by adding a quick adjacency check. + * In the Java language interface, throw an exception when trying + to build a disequality Constraint. + * Fixed a bug in the implementation of dense rows. + * Fixed a bug in the implementation of ::relation_with + * Portability improved. +- soname bumped + +------------------------------------------------------------------- +Sat Nov 14 10:07:48 UTC 2015 - jengelh@inai.de + +- Update to new upstream release 1.1 +* Remove the Sparse_Matrix class and add a Matrix class + instead. +* Dense_Row: remove the capacity argument from the two-argument + OK() method. +* Matrix: add some methods: row_capacity(), reserve_rows(), + remove_rows() and swap_columns(). +* Dense_Matrix: add non-const iterator and the remove_rows() and + reserve_rows() methods. +* Matrix: rename the row_capacity() method into capacity(). +* Remove the Dense_Matrix class, and use Matrix instead. +* Constraint_System: replace the const_iterator class with an + external Constraint_System_const_iterator class. +* Generator_System: replace the const_iterator class with an + external Generator_System_const_iterator class. +* Split the Linear_System::With_Bit_Matrix_iterator class out of + Linear_System and rename it to Linear_System_With_Bit_Matrix_iterator. +* Many more API changes. See the git log summary lines for details, + provided in /usr/share/doc/packages/GLS-0.12-1.1. +- Drop ppl-gmp-5.1.0.patch (merged upstream) + +------------------------------------------------------------------- +Mon Nov 2 10:46:25 UTC 2015 - rpm@fthiessen.de + +- Fixed dependencies of devel package. +- Cleaned spec file: Use so-name. + +------------------------------------------------------------------- +Sun Sep 27 13:14:53 UTC 2015 - mpluskal@suse.com + +- Update to 0.12.1 + * See NEWS file for complete list of changes + +------------------------------------------------------------------- +Tue Aug 4 21:45:13 UTC 2015 - mpluskal@suse.com + +- Update to 0.12 + * See NEWS file for complete list of changes +- Cleanup spec file with spec-clener +- Remove no longer needed dependency on gpg-offline +- Refresh ppl-gmp-5.1.0.patch +- Reduce duplicate files in documentation + +------------------------------------------------------------------- +Wed Sep 4 12:43:27 UTC 2013 - rguenther@suse.com + +- Disable -g when building the testsuite. + +------------------------------------------------------------------- +Mon Apr 15 13:09:40 UTC 2013 - idonmez@suse.com + +- Comment out GPG part, since it'll break bootstrap + +------------------------------------------------------------------- +Mon Apr 15 09:35:38 UTC 2013 - idonmez@suse.com + +- Add Source URL, see https://en.opensuse.org/SourceUrls +- Add GPG verification + ------------------------------------------------------------------- Tue Mar 5 19:30:04 UTC 2013 - idonmez@suse.com @@ -14,12 +101,95 @@ Tue Jan 24 12:20:24 UTC 2012 - jengelh@medozas.de - Remove redundant sections (see specfile guidelines) ------------------------------------------------------------------- -Sun Jun 21 11:23:52 CEST 2009 - coolo@suse.de +Mon Jan 23 17:22:51 CET 2012 - meissner@suse.de -- add empty %install section to fix build +- include /usr/share/aclocal directory as we no longer require autoconf ------------------------------------------------------------------- -Tue Jun 16 14:44:47 CEST 2009 - coolo@novell.com +Wed Aug 31 13:44:35 UTC 2011 - rguenther@suse.com -- build test suite in a package on its own +- Fix fixed baselibs.conf + +------------------------------------------------------------------- +Thu Mar 3 14:24:24 UTC 2011 - rguenther@novell.com + +- Update to version 0.11.2. [fate#311972] + * Minor bugfixes + +------------------------------------------------------------------- +Wed Sep 22 07:17:41 UTC 2010 - coolo@novell.com + +- fix baselibs.conf + +------------------------------------------------------------------- +Thu Aug 5 09:36:22 UTC 2010 - rguenther@novell.com + +- Update to version 0.11. + * Many new features, see NEWS file +- Library package name changes for SONAME bumps. + +------------------------------------------------------------------- +Sun Jun 27 16:15:03 UTC 2010 - jengelh@medozas.de + +- use %_smp_mflags + +------------------------------------------------------------------- +Fri Jun 18 16:08:42 UTC 2010 - prusnak@opensuse.org + +- add baselibs.conf + +------------------------------------------------------------------- +Wed Dec 16 10:46:43 CET 2009 - jengelh@medozas.de + +- package documentation as noarch + +------------------------------------------------------------------- +Thu Apr 16 14:12:13 CEST 2009 - rguenther@suse.de + +- Update to version 0.10.2. [fate#306970] + * fixes build with gmp 4.3.0 + +------------------------------------------------------------------- +Tue Apr 14 15:16:26 CEST 2009 - rguenther@suse.de + +- Update to bugfix release 0.10.1. +- Make the testsuite fatal everywhere. +- Disable memory1 test on s390x. + +------------------------------------------------------------------- +Mon Mar 16 14:31:13 CET 2009 - rguenther@suse.de + +- Wrap Recommends in suse_version check. + +------------------------------------------------------------------- +Tue Nov 4 17:46:01 CET 2008 - rguenther@suse.de + +- Update to final version 0.10. + * many new features and bugfixes (see NEWS file for details) + +------------------------------------------------------------------- +Thu Oct 30 23:28:02 CET 2008 - rguenther@suse.de + +- Update to version 0.10pre37. +- Rename libppl_c0 to libppl_c2 to follow new shared object name. + +------------------------------------------------------------------- +Fri Sep 5 10:39:34 CEST 2008 - rguenther@suse.de + +- Re-add static libs to ppl-devel-static. + +------------------------------------------------------------------- +Wed Sep 3 17:55:41 CEST 2008 - rguenther@suse.de + +- Remove all static libs. + +------------------------------------------------------------------- +Wed Sep 3 13:46:30 CEST 2008 - rguenther@suse.de + +- Update to version 0.10pre24. + +------------------------------------------------------------------- +Sun Aug 3 20:23:09 CEST 2008 - rguenther@suse.de + +- Package version 0.9. diff --git a/ppl-testsuite.spec b/ppl-testsuite.spec index 79558da..f816c00 100644 --- a/ppl-testsuite.spec +++ b/ppl-testsuite.spec @@ -1,7 +1,7 @@ # -# spec file for package ppl +# spec file for package ppl-testsuite # -# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -12,16 +12,16 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # -%define so_name 14 +%define sover 14 Name: ppl-testsuite Version: 1.2 Release: 0 Summary: The Parma Polyhedra Library -License: GPL-3.0+ +License: GPL-3.0-or-later Group: Development/Libraries/C and C++ URL: https://www.bugseng.com/parma-polyhedra-library @@ -29,7 +29,6 @@ URL: https://www.bugseng.com/parma-polyhedra-library #Git-Clone: git://git.cs.unipr.it/ppl/ppl Source: http://bugseng.com/products/ppl/download/ftp/releases/%version/ppl-%version.tar.xz Source2: http://bugseng.com/products/ppl/download/ftp/releases/%version/ppl-%version.tar.xz.sign -Source4: GLS-0.12-1.1 BuildRequires: c++_compiler BuildRequires: fdupes BuildRequires: glpk-devel @@ -54,7 +53,7 @@ through its C and C++ interfaces. Summary: Development tools for the Parma Polyhedra Library C and C++ interfaces Group: Development/Libraries/C and C++ Requires: gmp-devel >= 4.1.3 -Requires: libppl%so_name = %version +Requires: libppl%sover = %version Requires: libppl_c4 = %version Recommends: ppl-doc = %version @@ -63,11 +62,11 @@ The header files, Autoconf macro, and ppl-config tool for developing applications using the Parma Polyhedra Library through its C and C++ interfaces. -%package -n libppl%so_name +%package -n libppl%sover Summary: C++ interface of the Parma Polyhedra Library Group: System/Libraries -%description -n libppl%so_name +%description -n libppl%sover Shared library for the Parma Polyhedra Library. %package -n libppl_c4 @@ -91,20 +90,20 @@ want to program with the PPL. %autosetup -p1 -n ppl-%version %build -%if "%name" == "ppl-testsuite" -export CXXFLAGS="%optflags -g0" -%endif +if [ ! -e configure ]; then autoreconf -fi; fi %configure \ - --disable-static \ - --disable-rpath \ - --disable-watchdog + --disable-static --disable-rpath --disable-watchdog \ + --disable-ppl_lpsol --disable-ppl_lcdd #sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool #sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool -make %{?_smp_mflags} +%make_build %if "%name" == "ppl-testsuite" %check -make %{?_smp_mflags} check +# https://www.cs.unipr.it/mantis/view.php?id=1078 +# https://www.cs.unipr.it/mantis/view.php?id=2113 +# both behind a stupid login wall +%make_build check %install @@ -114,27 +113,26 @@ make %{?_smp_mflags} check %make_install INSTALL="install -p" rm -f "%buildroot/%_libdir"/*.la # We don't build the binary, so delete its manpage -rm -f %buildroot%_mandir/man1/ppl_lpsol.1 +rm -f %buildroot/%_mandir/man1/ppl_lpsol.1 # We don't build pwl -rm -Rf %buildroot%_datadir/doc/pwl +rm -Rf %buildroot/%_datadir/doc/pwl # The pdf is enough -rm -f %buildroot%_datadir/doc/%name/ppl-user-*.ps.gz -rm -f %buildroot%_datadir/doc/%name/ChangeLog -rm -f %buildroot%_datadir/doc/%name/README.configure -rm -f %buildroot%_datadir/doc/%name/TODO -rm -f %buildroot%_datadir/doc/%name/gpl.* -rm -f %buildroot%_datadir/doc/%name/fdl.ps.gz -rm -f %buildroot%_datadir/doc/%name/fdl.pdf -rm -Rf %buildroot%_datadir/doc/%name/ppl-user-prolog-interface-%{version}* -rm -Rf %buildroot%_datadir/doc/%name/ppl-user-ocaml-interface-%{version}* -rm -Rf %buildroot%_datadir/doc/%name/ppl-user-java-interface-%{version}* -cp -a %_sourcedir/GLS-* "%buildroot/%_datadir/doc/%name/" +rm -f %buildroot/%_datadir/doc/%name/ppl-user-*.ps.gz +rm -f %buildroot/%_datadir/doc/%name/ChangeLog +rm -f %buildroot/%_datadir/doc/%name/README.configure +rm -f %buildroot/%_datadir/doc/%name/TODO +rm -f %buildroot/%_datadir/doc/%name/gpl.* +rm -f %buildroot/%_datadir/doc/%name/fdl.ps.gz +rm -f %buildroot/%_datadir/doc/%name/fdl.pdf +rm -Rf %buildroot/%_datadir/doc/%name/ppl-user-prolog-interface-%{version}* +rm -Rf %buildroot/%_datadir/doc/%name/ppl-user-ocaml-interface-%{version}* +rm -Rf %buildroot/%_datadir/doc/%name/ppl-user-java-interface-%{version}* # %%name == ppl %endif %fdupes -s %buildroot -%post -n libppl%so_name -p /sbin/ldconfig -%postun -n libppl%so_name -p /sbin/ldconfig +%post -n libppl%sover -p /sbin/ldconfig +%postun -n libppl%sover -p /sbin/ldconfig %post -n libppl_c4 -p /sbin/ldconfig %postun -n libppl_c4 -p /sbin/ldconfig @@ -146,13 +144,10 @@ cp -a %_sourcedir/GLS-* "%buildroot/%_datadir/doc/%name/" %doc %_datadir/doc/%name/CREDITS %doc %_datadir/doc/%name/NEWS %doc %_datadir/doc/%name/README -%_bindir/ppl_lcdd -%_bindir/ppl_lpsol %_bindir/ppl_pips -%_mandir/man1/ppl_lcdd.1.gz %_mandir/man1/ppl_pips.1.gz -%files -n libppl%so_name +%files -n libppl%sover %_libdir/libppl.so.* %files -n libppl_c4 @@ -172,7 +167,6 @@ cp -a %_sourcedir/GLS-* "%buildroot/%_datadir/doc/%name/" %_datadir/aclocal/ppl_c.m4 %files doc -%doc %_datadir/doc/%name/GLS-* %doc %_datadir/doc/%name/README.doc %doc %_datadir/doc/%name/fdl.txt %doc %_datadir/doc/%name/ppl-user-%version-html/ diff --git a/ppl.changes b/ppl.changes index 946bf3d..a9e77e0 100644 --- a/ppl.changes +++ b/ppl.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Sat Oct 24 00:00:54 UTC 2020 - Jan Engelhardt + +- Disable lpsol and lcdd. +- Drop old bundled changelog file + ------------------------------------------------------------------- Sun Sep 20 10:32:03 UTC 2020 - Jan Engelhardt diff --git a/ppl.spec b/ppl.spec index 43d457e..94d595f 100644 --- a/ppl.spec +++ b/ppl.spec @@ -1,7 +1,7 @@ # # spec file for package ppl # -# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -12,7 +12,7 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # @@ -21,7 +21,7 @@ Name: ppl Version: 1.2 Release: 0 Summary: The Parma Polyhedra Library -License: GPL-3.0+ +License: GPL-3.0-or-later Group: Development/Libraries/C and C++ URL: https://www.bugseng.com/parma-polyhedra-library @@ -29,7 +29,6 @@ URL: https://www.bugseng.com/parma-polyhedra-library #Git-Clone: git://git.cs.unipr.it/ppl/ppl Source: http://bugseng.com/products/ppl/download/ftp/releases/%version/ppl-%version.tar.xz Source2: http://bugseng.com/products/ppl/download/ftp/releases/%version/ppl-%version.tar.xz.sign -Source4: GLS-0.12-1.1 BuildRequires: c++_compiler BuildRequires: fdupes BuildRequires: glpk-devel @@ -91,20 +90,20 @@ want to program with the PPL. %autosetup -p1 -n ppl-%version %build -%if "%name" == "ppl-testsuite" -export CXXFLAGS="%optflags -g0" -%endif +if [ ! -e configure ]; then autoreconf -fi; fi %configure \ - --disable-static \ - --disable-rpath \ - --disable-watchdog + --disable-static --disable-rpath --disable-watchdog \ + --disable-ppl_lpsol --disable-ppl_lcdd #sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool #sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool -make %{?_smp_mflags} +%make_build %if "%name" == "ppl-testsuite" %check -make %{?_smp_mflags} check +# https://www.cs.unipr.it/mantis/view.php?id=1078 +# https://www.cs.unipr.it/mantis/view.php?id=2113 +# both behind a stupid login wall +%make_build check %install @@ -128,7 +127,6 @@ rm -f %buildroot/%_datadir/doc/%name/fdl.pdf rm -Rf %buildroot/%_datadir/doc/%name/ppl-user-prolog-interface-%{version}* rm -Rf %buildroot/%_datadir/doc/%name/ppl-user-ocaml-interface-%{version}* rm -Rf %buildroot/%_datadir/doc/%name/ppl-user-java-interface-%{version}* -cp -a %_sourcedir/GLS-* "%buildroot/%_datadir/doc/%name/" # %%name == ppl %endif %fdupes -s %buildroot @@ -146,10 +144,7 @@ cp -a %_sourcedir/GLS-* "%buildroot/%_datadir/doc/%name/" %doc %_datadir/doc/%name/CREDITS %doc %_datadir/doc/%name/NEWS %doc %_datadir/doc/%name/README -%_bindir/ppl_lcdd -%_bindir/ppl_lpsol %_bindir/ppl_pips -%_mandir/man1/ppl_lcdd.1.gz %_mandir/man1/ppl_pips.1.gz %files -n libppl%sover @@ -172,7 +167,6 @@ cp -a %_sourcedir/GLS-* "%buildroot/%_datadir/doc/%name/" %_datadir/aclocal/ppl_c.m4 %files doc -%doc %_datadir/doc/%name/GLS-* %doc %_datadir/doc/%name/README.doc %doc %_datadir/doc/%name/fdl.txt %doc %_datadir/doc/%name/ppl-user-%version-html/ diff --git a/pre_checkin.sh b/pre_checkin.sh index 5340fec..c550f0d 100644 --- a/pre_checkin.sh +++ b/pre_checkin.sh @@ -1,3 +1,4 @@ #!/bin/bash # This script is called automatically during autobuild checkin. sed -e "s,^\(Name:.*ppl\),\1-testsuite," ppl.spec > ppl-testsuite.spec +cp -f ppl.changes ppl-testsuite.changes