SHA256
1
0
forked from pool/ppl
ppl/GLS-0.12-1.1
Matthias Mailänder 1318253325 Accepting request 526296 from devel:libraries:c_c++
as discussed a priori with rguenther, transfer the package to /science with new maintainer

OBS-URL: https://build.opensuse.org/request/show/526296
OBS-URL: https://build.opensuse.org/package/show/science/ppl?expand=0&rev=1
2017-09-19 15:50:06 +00:00

1221 lines
98 KiB
Groff

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 <CODE> 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 <stdexcept>.
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<Row>::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 <Name>.inlines.hh should not include <Name>.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<Constraint>, 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<Constraint> instead of Linear_System<Linear_Row>.
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<Constraint> instead of a Linear_System<Linear_Row>, 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<Constraint> instead of a Linear_System<Linear_Row>.
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<Grid_Generator> instead of a Linear_System<Linear_Row>.
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<Generator> instead of a Linear_System<Linear_Row>.
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<Dense_Row> instead of Matrix<Dense_Row>.
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<Linear_Row> 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<Row>. Add a Matrix<Row> 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<Linear_Row> 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<Dense_Row> instead of Dense_Matrix.
f7b3af7 tests/Polyhedron/linearsystem1: use Linear_System<Linear_Row> 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<Linear_Row> instead of Linear_System<Dense_Row>.
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<Dense_Row> and Linear_System_With_Bit_Matrix_Iterator<Dense_Row>.
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<Linear_Row>."
81176f3 Make Linear_System a class template. Replace uses of Linear_System with uses of Linear_System<Linear_Row>.
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<Dense_Row> 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<Row> class instead.