1221 lines
98 KiB
Groff
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.
|